SEQanswers

Go Back   SEQanswers > Bioinformatics > Bioinformatics



Similar Threads
Thread Thread Starter Forum Replies Last Post
How to convert sam/bam or bed file into wig file roll Bioinformatics 5 02-05-2014 04:43 AM
NEw to Chip-seq and have .bam/.sam/.bam.bai files... then what? NGS newbie Bioinformatics 11 05-25-2011 07:48 AM
conversion tool sam to wig jasonbcold Bioinformatics 3 04-18-2011 05:01 AM
RNA-Seq: SAMMate: a GUI tool for processing short read alignments in SAM/BAM format. Newsbot! Literature Watch 0 01-15-2011 02:50 AM
Pair-End SAM/BAM to .wig converter davisc Bioinformatics 0 04-15-2010 03:49 PM

Reply
 
Thread Tools
Old 11-28-2014, 09:12 AM   #1
biocomputer
Member
 
Location: Canada

Join Date: Dec 2013
Posts: 62
Default sam/bam to wig for rna-seq

What is the best way to convert rna-seq sam/bam files to .wig files? I've come across a few possibilities: deeptools bamcoverage, samtools pileup, samtools depth, bedtools genomecov, igvtools count. Can any of these properly deal with the stranded, spliced, paired-end reads usually generated by rna-seq?
biocomputer is offline   Reply With Quote
Old 11-28-2014, 11:55 AM   #2
dpryan
Devon Ryan
 
Location: Freiburg, Germany

Join Date: Jul 2011
Posts: 3,480
Default

Do you want separate files for each strand or are you ok with both strands being merged? If you're ok with merged values, then samtools pileup (or even just depth) would suffice.
dpryan is offline   Reply With Quote
Old 11-28-2014, 12:21 PM   #3
biocomputer
Member
 
Location: Canada

Join Date: Dec 2013
Posts: 62
Default

I would like them separate so I can differentiate transcription between the plus and minus strands.
biocomputer is offline   Reply With Quote
Old 11-29-2014, 01:36 AM   #4
dpryan
Devon Ryan
 
Location: Freiburg, Germany

Join Date: Jul 2011
Posts: 3,480
Default

If you can't find a prewritten tool then you can do this with either pysam using a pileup or the htslib C API. If you're familiar with either of those then this won't be too bade to write, but if not it'll be a bit daunting. If I have a chance this weekend then I'll see if I can just quickly code something, though the odds of me having a half hour to write and test something before Monday is relatively low.
dpryan is offline   Reply With Quote
Old 11-29-2014, 06:28 AM   #5
blancha
Senior Member
 
Location: Montreal

Join Date: May 2013
Posts: 367
Default

1. Split the BAM files by strand with samtools view (& samtools merge).
2. Generate bedgraph files for the positive strand and negative strand BAM files with bedtools genome cov.
3. Generate bigWig files with bedGraphToBigWig
blancha is offline   Reply With Quote
Old 12-01-2014, 02:40 AM   #6
dpryan
Devon Ryan
 
Location: Freiburg, Germany

Join Date: Jul 2011
Posts: 3,480
Default

Since I can foresee needing something like this at some point anyway, here's a quick C implementation using htslib (the basis for samtools): https://github.com/dpryan79/Answers/...Qanswers_48599

If you clone that repo, switch to the SEQanswers_48599 directory and type "make", you'll get a bam2wig program that should do what you want. You can filter by MAPQ and phred scores if you want and you should be able to set how the strand is determined (the default is for dUTP-based libraries, which are the most common). This has not been tested other to ensure that it actually runs, so have a look at the output in IGV and ensure it matches the raw data.
dpryan is offline   Reply With Quote
Old 12-01-2014, 07:22 PM   #7
biocomputer
Member
 
Location: Canada

Join Date: Dec 2013
Posts: 62
Default

Thank you for the replies, I'm going to try both of the options given here and a few others and see what's the best.
biocomputer is offline   Reply With Quote
Old 10-12-2016, 01:45 AM   #8
ptr
Junior Member
 
Location: Germany

Join Date: Oct 2016
Posts: 1
Default

Quote:
Originally Posted by dpryan View Post
Since I can foresee needing something like this at some point anyway, here's a quick C implementation using htslib (the basis for samtools): https://github.com/dpryan79/Answers/...Qanswers_48599
Hi Devon,

thanks for the code, I used it as a template for my own implementation.
I have a question regarding your -p option for the min base quality of a base being counted: You write that 0 would indicate overlapping bases from paired-end reads, which should be not counted twice. I am wondering if there is a mapper that sets those bases to 0 upon encountering overlapping mates while mapping? Or is this done by on a read merging program prior to mapping?

thanks,
Peter
ptr is offline   Reply With Quote
Old 10-12-2016, 05:49 AM   #9
dpryan
Devon Ryan
 
Location: Freiburg, Germany

Join Date: Jul 2011
Posts: 3,480
Default

Hi Peter,

I'm not aware of any aligners that do that for you, this is usually done post-hoc...though honestly it'd be an easy enough thing to do. This is only really needed when people are making pileups, at which point it's easy enough to just do it then.
dpryan is offline   Reply With Quote
Old 10-12-2016, 06:52 AM   #10
Richard Finney
Senior Member
 
Location: bethesda

Join Date: Feb 2009
Posts: 700
Default

I like this bam2wig script ... just need samtools and awk ...

samtools depth -aa your.bam | awk '{if (prev!=$1) print "fixedStep chrom="$1" start="$2" step=1 span=1\n"$3; else print $3; prev=$1}' > your.wig
Richard Finney is offline   Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT -8. The time now is 03:58 PM.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Single Sign On provided by vBSSO