Seqanswers Leaderboard Ad

Collapse

Announcement

Collapse
No announcement yet.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Bowtie XA, X0, X1 tags in SAM output

    Hi Everyone,

    Background: I've been using bowtie and samtools for a couple years. In the past 6 months have I converted to outputing SAM directly from bowtie (using -S) instead of piping it through bowtie2sam.pl. I just realized recently that bowtie doesn't output number of possible mappings (e.g. using tag X0 or X1) in the output.

    Goal: I would like bowtie's ouput to SAM option -S to have the total number of loci to which a read can map. Specifically, tags X0 and/or X1 would be nice to see.

    Question: Is the below proposal a reasonable path to accomplishing the goal? Is there some reason that Bowtie didn't do this by default? Is h.oms appropriate?

    Proposed Fix: When I examined bowtie 0.12.8 source code, I found that an object of class Hit (variable is typically named 'h') has a field 'oms' that is used to track the number of mappable loci. In the bowtie output, there is output of h.oms, but not in SAM output.


    Bowtie's default output in hit.cpp:
    Code:
                    if(!suppress.test(field++)) {
                            if(firstfield) firstfield = false;
                            else ss << '\t';
                            ss << h.oms;
                    }

    Bowtie's -S SAM output in sam.cpp:
    Code:
            // SEQ
            ss << '\t' << h.patSeq;
            // QUAL
            ss << '\t' << h.quals;
            //
            // Optional fields
            //
            // Always output stratum
            ss << "\tXA:i:" << (int)h.stratum;
            // Output MD field
            size_t len = length(h.patSeq);
            int nm = 0;
            int run = 0;
            ss << "\tMD:Z:";

    The modified bowtie -S SAM output in sam.cpp to output the X0 tag for total number of loci that read can map to:
    Code:
            // Always output stratum
            ss << "\tXA:i:" << (int)h.stratum;
            ss << "\tX0:i:" << (int)h.oms;

    Thank you very much for any suggestions or comments you may have on this fix/hack.

    Best, Aaron

Latest Articles

Collapse

  • seqadmin
    Recent Advances in Sequencing Analysis Tools
    by seqadmin


    The sequencing world is rapidly changing due to declining costs, enhanced accuracies, and the advent of newer, cutting-edge instruments. Equally important to these developments are improvements in sequencing analysis, a process that converts vast amounts of raw data into a comprehensible and meaningful form. This complex task requires expertise and the right analysis tools. In this article, we highlight the progress and innovation in sequencing analysis by reviewing several of the...
    05-06-2024, 07:48 AM
  • seqadmin
    Essential Discoveries and Tools in Epitranscriptomics
    by seqadmin




    The field of epigenetics has traditionally concentrated more on DNA and how changes like methylation and phosphorylation of histones impact gene expression and regulation. However, our increased understanding of RNA modifications and their importance in cellular processes has led to a rise in epitranscriptomics research. “Epitranscriptomics brings together the concepts of epigenetics and gene expression,” explained Adrien Leger, PhD, Principal Research Scientist...
    04-22-2024, 07:01 AM

ad_right_rmr

Collapse

News

Collapse

Topics Statistics Last Post
Started by seqadmin, 05-10-2024, 06:35 AM
0 responses
19 views
0 likes
Last Post seqadmin  
Started by seqadmin, 05-09-2024, 02:46 PM
0 responses
21 views
0 likes
Last Post seqadmin  
Started by seqadmin, 05-07-2024, 06:57 AM
0 responses
20 views
0 likes
Last Post seqadmin  
Started by seqadmin, 05-06-2024, 07:17 AM
0 responses
21 views
0 likes
Last Post seqadmin  
Working...
X