Unconfigured Ad

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • biocomputer
    Member
    • Dec 2013
    • 62

    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?
  • dpryan
    Devon Ryan
    • Jul 2011
    • 3478

    #2
    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.

    Comment

    • biocomputer
      Member
      • Dec 2013
      • 62

      #3
      I would like them separate so I can differentiate transcription between the plus and minus strands.

      Comment

      • dpryan
        Devon Ryan
        • Jul 2011
        • 3478

        #4
        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.

        Comment

        • blancha
          Senior Member
          • May 2013
          • 367

          #5
          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

          Comment

          • dpryan
            Devon Ryan
            • Jul 2011
            • 3478

            #6
            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.

            Comment

            • biocomputer
              Member
              • Dec 2013
              • 62

              #7
              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.

              Comment

              • ptr
                Junior Member
                • Oct 2016
                • 1

                #8
                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

                Comment

                • dpryan
                  Devon Ryan
                  • Jul 2011
                  • 3478

                  #9
                  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.

                  Comment

                  • Richard Finney
                    Senior Member
                    • Feb 2009
                    • 701

                    #10
                    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

                    Comment

                    Latest Articles

                    Collapse

                    • SEQadmin2
                      Proteomic Platforms: How to Choose the Right Analytical Strategy to Improve Detection and Clinical Applications
                      by SEQadmin2


                      Proteomics platforms are evolving rapidly, with advances in mass spectrometry and affinity-based approaches expanding what researchers can detect and at what scale. As the field moves toward deeper proteome coverage and clinical applications, scientists face an increasingly complex landscape of tools. This article will explore how researchers are navigating these choices to find the right platform for their work.

                      The systematic characterization of the human proteome has
                      ...
                      07-20-2026, 11:48 AM
                    • SEQadmin2
                      Advanced Sequencing Platforms Tackle Neuroscience’s Toughest Genomics Problems
                      by SEQadmin2



                      Genomics studies in neuroscience face a special challenge due to the brain’s complexity and scarcity of samples. Mapping changes in cell type and state using conventional next-generation sequencing methods remains challenging. Advances in technologies like single-cell sequencing, spatial transcriptomics, and long-read sequencing have opened the door to deeper studies of the brain and diseases like Alzheimer’s, amyotrophic lateral sclerosis (ALS), and schizophrenia.
                      ...
                      07-09-2026, 11:10 AM
                    • SEQadmin2
                      Cancer Drug Resistance: The Lingering Barrier to Rising Survival
                      by SEQadmin2



                      Cancer survival rates have significantly increased in the last few decades in the United States, reaching a combined 70% 5-year survival rate by 2021. Behind this number, there are years of research to find new therapies, drug targets, and early detection methods. But there is one core challenge that keeps slowing down these advances, and it’s about drug resistance.

                      There is no single reason why many patients don’t respond to treatment as expected. Cancer is...
                      07-08-2026, 05:17 AM

                    ad_right_rmr

                    Collapse

                    News

                    Collapse

                    Topics Statistics Last Post
                    Started by SEQadmin2, 07-24-2026, 12:17 PM
                    0 responses
                    31 views
                    0 reactions
                    Last Post SEQadmin2  
                    Started by SEQadmin2, 07-23-2026, 11:41 AM
                    0 responses
                    23 views
                    0 reactions
                    Last Post SEQadmin2  
                    Started by SEQadmin2, 07-20-2026, 11:10 AM
                    0 responses
                    215 views
                    0 reactions
                    Last Post SEQadmin2  
                    Started by SEQadmin2, 07-13-2026, 10:26 AM
                    0 responses
                    79 views
                    0 reactions
                    Last Post SEQadmin2  
                    Working...