No announcement yet.

Pileup differences with different SAMtools versions

  • Filter
  • Time
  • Show
Clear All
new posts

  • Pileup differences with different SAMtools versions


    Generating pileups of bacterial data sets with SAMtools 0.1.18 and 0.1.19, I have noticed differences in the pileup files. Version 0.1.18 produces pileups with greater depth. In both cases, the command line options are identical, just specifying the reference, the sample, and accepting defaults for all other options.

    samtools mpileup -f reference.fasta reads.bam

    Can anyone help explain what is causing the difference and offer best practice recommendations?

    See examples of differences below.


    samtools 0.1.18 pileup
    seq1 4991 A 29 .C...,,,,,,,,,,,,+1t,..,+1t..tgg.gG [email protected]>8.0;1<[email protected]+?9!#!-!!
    seq1 4992 T 29 G..GG,,,,,,,,,,,,,..,..,,g.cG [email protected]@?;13=/[email protected]%>6&%!B!!
    seq1 4993 G 29 A.$.AA,,,,,,,,,,,,,..,..,ac.a. !:1!!05,;@1/.60-,@CB(><-%!A!/
    seq1 4994 G 28 ....,,,,,,,,,,,,,..,..,,a.,. !1!!3>/AE:4,5386A<<283,%!:!*
    seq1 4995 A 29 GTGG,+1t,,+1t,,,,,,,,,,..,..,tg.t.^#c !&!!.:-=E24,5236ADB+<6,&!A!<!
    seq1 4996 T 29 CACC,,,,,,,,,,,,,..,..,c,.c.a !%!!#9$4?-5*2/12>EC(58('3A#:!
    seq1 4997 T 29 ..+5CACCG..,,,,,,,,,,,,,..,..,cc.g.g !%!!&@'>C28AB3=4E64,.,;',;$0!
    seq1 4998 G 29 .$A.$.$,,,,,,,,,,,,,..,..,,,.,.c !!!!+9(1?.,97.3.><;&503)&@*5!
    seq1 4999 G 27 C,,,,,,,,,,,,,..,..,,,.,.c^#, $,B77C:[email protected]/-;1,7+/!!
    seq1 5000 T 27 .,,,,,,,,,,,,,..,..,,,.,.,g +0B79C87A<190E6?42/;1,?+4!!

    samtools 0.1.19 pileup
    seq1 4991 A 18 .,,,,,,,,,,,,+1t,.... [email protected]>8.0;1<[email protected]?9
    seq1 4992 T 19 ..,,,,,,,,,,,,..... [email protected]@?;13=/[email protected]>6B
    seq1 4993 G 18 .$.,,,,,,,,,,...... :105;@1/[email protected]><A/
    seq1 4994 G 19 .,,,,,,,,,,,,..,... 13>/AE:45386A<<283:
    seq1 4995 A 17 ,+1t,,,,,,,,,,...... .:=E245236ADB<6A<
    seq1 4996 T 16 ,,,,,,,,,....,.. 94?52/12>EC583A:
    seq1 4997 T 17 ,,,,,,,,,,,...,.. @>C28AB3=4E64.;;0
    seq1 4998 G 17 ,,,,,,,,,,....,.. 91?.97.3.><;[email protected]
    seq1 4999 G 20 ,,,,,,,,,,,,..,.,,.. B77C:[email protected]/;17/
    seq1 5000 T 22 ,,,,,,,,,,,,,..,..,,.. 0B79C87A<190E6?42/;1?4

  • #2
    At first glance, it looks like the default quality filtering differs between the two, samtools 1.19 is more stringent. The ! in the quality string indicates the lower possible quality, the 1.18 version has many more than the 1.19 version, and the ! correspond to the non-consensus bases, so they are likely wrong anyway, so 1.19 is right in excluding them.


    • #3
      @swbarnes, thanks for the quick reply. That certainly explains what I am seeing. I inspected a larger sample and found SAMtools v01.19 is indeed filtering out the read bases with quality < 13.

      Interesting that SAMtools 0.1.18 is not behaving the same as v0.1.19. Both versions mpileup usage show this:

      -Q INT skip bases with baseQ/BAQ smaller than INT [13]


      • #4
        Searching around a bit, the SAMtools v0.1.18 behavior when mpileup uses the Q flag is documented here: