Unconfigured Ad

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Graham Etherington
    Member
    • Apr 2010
    • 22

    #1

    Samtools Pileup Parser

    Hi,
    I'm trying to parse the Samtools Pileup format in Perl.

    I've created a paired-end assembly using BWA (aln, sampe) and then used Samtools to create a pileup (using import - sort - index - pileup).

    What I want to do is to open up the pileup (which is obviously in the Samtools Pileup format) and iterate over each position of the pileup, examining differences in base-calls.

    Does anyone know of anything available, or have and sample code they could post?
    Many thanks.
  • Pepe
    Member
    • Mar 2009
    • 30

    #2
    You cannot open a file in Pileup format with Bio:B::sam

    You should convert your SAM file to BAM format (samtools view) and sort it (samtools sort), maybe index it too? I'm not sure (samtools index).

    Then follow the instructions in the CPAN website, which are very, veryhelpful. Basically:

    use Bio:B::Sam;
    my $sam = Bio:B::Sam->new(-bam => "my_sorted_bam_file.bam",
    -fasta => "my_ref.fasta");
    my @targets = $sam->seq_ids;
    foreach my $chr (@targets){
    $sam->pileup($chr,$my_subroutine);
    }

    where $my_subroutine is a subroutine that you'll need to get to do what you want: snp calling, coverage calculation...

    Comment

    • Graham Etherington
      Member
      • Apr 2010
      • 22

      #3
      Originally posted by Pepe View Post
      You cannot open a file in Pileup format with Bio:B::sam

      You should convert your SAM file to BAM format (samtools view) and sort it (samtools sort), maybe index it too? I'm not sure (samtools index).

      Then follow the instructions in the CPAN website, which are very, veryhelpful. Basically:

      use Bio:B::Sam;
      my $sam = Bio:B::Sam->new(-bam => "my_sorted_bam_file.bam",
      -fasta => "my_ref.fasta");
      my @targets = $sam->seq_ids;
      foreach my $chr (@targets){
      $sam->pileup($chr,$my_subroutine);
      }

      where $my_subroutine is a subroutine that you'll need to get to do what you want: snp calling, coverage calculation...
      Hi,
      Thanks for your answer. I'd realised that Bio:B:Sam couldn't parse the pileup, so this is why I am asking if anyone has, or knows about, anything that could parse it, before I spent time writing a Samtools parser myself.
      I have a 'Parser.pm' module that parses various pileup formats (maq, bowtie, novoalign, etc), but I haven't added one for Samtools format yet.
      Cheers,
      Graham

      Comment

      • nekrut
        Member
        • Apr 2009
        • 22

        #4
        Galaxy's (http://usegalaxy.org) pileup parser might do the trick:
        http://bit.ly/cXtqD9

        Comment

        • Graham Etherington
          Member
          • Apr 2010
          • 22

          #5
          Originally posted by nekrut View Post
          Galaxy's (http://usegalaxy.org) pileup parser might do the trick:
          http://bit.ly/cXtqD9
          Thanks. That should give me enough to get started with.
          Best wishes,
          Graham

          Comment

          • cschu
            Junior Member
            • Aug 2012
            • 1

            #6
            I noticed that the referenced Galaxy code does not check for the '>' and '<' characters. Can anybody please provide some help how to process those? I.e., I don't really understand what "reference skip" means and would think that such a symbol means that the read does not cover the the respective position. Any help would be appreciated, thanks!

            Comment

            Latest Articles

            Collapse

            • SEQadmin2
              Beyond CRISPR/Cas9: Understand, Choose, and Use the Right Genome Editing Tool
              by SEQadmin2



              CRISPR/Cas9 sparked the gene editing revolution for both research and therapeutics.1 But this system still showed severe issues that limited its applications. The most prominent were the heavy reliance on PAM sequences, delivery limitations, double-stranded breaks that prompt unintended edits and cell death, and editing inefficiency (both in targeting and in knock-in reliability).

              Despite this, “CRISPR helped turn genome editing from a specialized technique into
              ...
              07-31-2026, 11:01 AM
            • 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

            ad_right_rmr

            Collapse

            News

            Collapse

            Topics Statistics Last Post
            Started by SEQadmin2, Yesterday, 12:22 PM
            0 responses
            12 views
            0 reactions
            Last Post SEQadmin2  
            Started by SEQadmin2, 08-11-2026, 10:35 AM
            0 responses
            14 views
            0 reactions
            Last Post SEQadmin2  
            Started by SEQadmin2, 08-06-2026, 07:41 AM
            0 responses
            31 views
            0 reactions
            Last Post SEQadmin2  
            Started by SEQadmin2, 08-03-2026, 10:13 AM
            0 responses
            50 views
            0 reactions
            Last Post SEQadmin2  
            Working...