This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Why Does Mpileup Skip some variants ?

Why Does Mpileup Skip some variants ?

when I make variant call with bcftools mpileup and call , i can't get some variants,especially those have the same number of Ref and Mutant reads!!!

My command is :

bcftools mpileup -Ou -f ref my.sorted.bam | bcftools call --ploidy 1 -mv -Ov -o my.vcf

I can't find this variant in my vcf :

T (Ref: with depth=94) ---> C (Variant: with depth=94)

This variant exist in IGV but i can't find it in my vcf.

variants mpileup call

Hello sami!

We believe that this post does not fit the main topic of this site.

OP won't provide context and is rude.

For this reason we have closed your question. This allows us to keep the site focused on the topics that the community can help with.

If you disagree please tell us why in a reply below, we'll be happy to talk about it.

Cheers!

1 answer

Your question is severely lacking in details. Please show all commands that you have used, and also describe your experimental setup. From my experience, mpileup has greater sensitivity over other variant callers for germline variants.

my command is :

bcftools mpileup -Ou -f ref  my.sorted.bam | bcftools call  --ploidy 1  -mv -Ov -o my.vcf

I can't find this variant in my vcf :

T (Ref: with depth=94) ---> C (Variant: with depth=94)

This variant exist in IGV but i can't find it in my vcf.

because i work on mycobacterium complex , and strains of this complex have only one chromosome . Most of bacteria have only one chromosome. --ploidy 1 mean , there is only one chromosome / sample

Great; so, you sequenced a mixed population of bacteria and expect that some of these carry a mutation?

I see no further details. If you sequenced a mixed population of Mycobacterium spp. where you expect 50% of the population to be wild-type and the other [50%] to have a mutation, and are now telling BCFtools mpileup to expect ploidy of 1, then BCFtools will struggle to get the result that you want. Try the other option of Freebayes.

My problem is:

In this position : ====> T (Ref: with depth=94) ---> C (Variant: with depth=94)

T and C have the same depth of coverage , so bcftools don't call this variant.

I need to tell bcftool to call variant when there is the same depth of coverage in the reference and in the mutant allele. BUT I DON'T KNOW HOW TO DO IT

  1. I have asked you multiple times for more information about your experimental setup so that I can better diagnose the problem. As yet, you have not provided any information except that this is a bacterium.
  2. I have already implied that BCFtools is more sensitive for germline variants, where the frequencies are ~50% or ~100% for diploid (ploidy 2), or just 100% for haploid (ploidy 1). So, by using ploidy = 1, BCFtools will struggle to call this variant for you unless you alter other parameters.
  3. I have already suggested to try FreeBayes in place of BCFtools for this type of data. I can only guess at the exact data, because you have never adequately described it.

Good luck with it.

Because i don't have more detail .

FreeBayes is good but it dosen't give me DP4 in vcf.

I have the same problem without ploidy 1 with bcftools!

Do you have any idea how can i force DP4 to be present in vcf ? what parameters should i give to FreeBayes !

When i check DP4 , i get this error : Error: the tag "DP4" is not defined in the VCF header

Thank you!

Yes i know already that there a mutation

what do you think about my problem ??

Please explain in full detail your experimental setup (see my other comments)

You may instead try Freebayes.

Thanks!

My problem is:

In this position : ====> T (Ref: with depth=94) ---> C (Variant: with depth=94)

T and C have the same depth of coverage , so bcftools don't call this variant.

I need to tell bcftool to call variant when there is the same depth of coverage in the reference and in the mutant allele. BUT I DON'T KNOW HOW TO DO IT

Using all caps is rude. Please follow etiquette and avoid rude comments, or your posts will be closed.

you can close it. thank you

Log in to answer this question.