![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
How to convert sam/bam or bed file into wig file | roll | Bioinformatics | 5 | 02-05-2014 05:43 AM |
NEw to Chip-seq and have .bam/.sam/.bam.bai files... then what? | NGS newbie | Bioinformatics | 11 | 05-25-2011 08:48 AM |
conversion tool sam to wig | jasonbcold | Bioinformatics | 3 | 04-18-2011 06:01 AM |
RNA-Seq: SAMMate: a GUI tool for processing short read alignments in SAM/BAM format. | Newsbot! | Literature Watch | 0 | 01-15-2011 03:50 AM |
Pair-End SAM/BAM to .wig converter | davisc | Bioinformatics | 0 | 04-15-2010 04:49 PM |
![]() |
|
Thread Tools |
![]() |
#1 |
Member
Location: Canada Join Date: Dec 2013
Posts: 62
|
![]()
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?
|
![]() |
![]() |
![]() |
#2 |
Devon Ryan
Location: Freiburg, Germany Join Date: Jul 2011
Posts: 3,480
|
![]()
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.
|
![]() |
![]() |
![]() |
#3 |
Member
Location: Canada Join Date: Dec 2013
Posts: 62
|
![]()
I would like them separate so I can differentiate transcription between the plus and minus strands.
|
![]() |
![]() |
![]() |
#4 |
Devon Ryan
Location: Freiburg, Germany Join Date: Jul 2011
Posts: 3,480
|
![]()
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.
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Location: Montreal Join Date: May 2013
Posts: 367
|
![]()
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 |
![]() |
![]() |
![]() |
#6 |
Devon Ryan
Location: Freiburg, Germany Join Date: Jul 2011
Posts: 3,480
|
![]()
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. |
![]() |
![]() |
![]() |
#7 |
Member
Location: Canada Join Date: Dec 2013
Posts: 62
|
![]()
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.
|
![]() |
![]() |
![]() |
#8 | |
Junior Member
Location: Germany Join Date: Oct 2016
Posts: 1
|
![]() Quote:
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 |
|
![]() |
![]() |
![]() |
#9 |
Devon Ryan
Location: Freiburg, Germany Join Date: Jul 2011
Posts: 3,480
|
![]()
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. |
![]() |
![]() |
![]() |
#10 |
Senior Member
Location: bethesda Join Date: Feb 2009
Posts: 700
|
![]()
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 |
![]() |
![]() |
![]() |
Thread Tools | |
|
|