展开

Variant calling

最后发布时间 : 2023-10-20 08:21:55 浏览量 :

bcftools的作用是什么?

Bcftools are a set of utilities for variant calling and manipulating VCFs and BCFs.

bcftools mpileup的作用是干什么呢?官方的解释是:

生成包含一个或多个比对(BAM或CRAM)文件的基因型似然的VCF或BCF文件。这基于原始的samtools mpileup命令(使用-v或-g选项)生成VCF或BCF格式的基因型似然( producing genotype likelihoods in VCF or BCF format),而不是文本格式的堆叠输出。为了避免在mpileup+bcftools调用流程中使用不兼容版本的samtools和bcftools导致的错误,mpileup命令被转移到bcftools中。

因此在使用命令samtools mpileup -v -f EAEC.fna sample1.filtered.bamsamtools会提示:

Note that using "samtools mpileup" to generate BCF or VCF files has been removed. To output these formats, please use "bcftools mpileup" instead.

samtools的官网查Variant calling的文档时我们经常看到的命令是:

bcftools mpileup \
    -Ou \
    -f EAEC.fna \
    sample1.filtered.bam | \
    bcftools call \
    -mv \
    -Oz \
    -o calls.vcf.gz

或者生成bcf文件

bcftools mpileup \
    -f EAEC.fna \
    sample1.filtered.bam | \
    bcftools call \
    -mv \
    -Ob \
    -o calls.bcf
  • -Ou 选项指定输出为未压缩的BCF格式(-Ou)
  • -f 选项用于指定参考基因组文件
  • -mv 选项指定输出包括变异和非变异位点(-m),以及只输出变异位点(-v)
  • -Oz 选项指定输出以gzip格式压缩(-Oz)
  • -o 选项用于指定输出文件为 calls.vcf.gz

从官方对bcftools mpileup的描述,该命令已经生成了VCFBCF格式的文件。那么bcftools call的作用是什么?官方的描述是:

该命令替代了以前的bcftools view调用器。在过渡到htslib的过程中,部分原始功能暂时丢失,但将根据广泛需求重新添加。可以使用-c选项调用原始的调用模型。

什么意思,将这两个命令单独运行,看一看结果差异

bcftools mpileup  -f EAEC.fna sample1.filtered.bam > bcftools_mpileup.vcf
bcftools call bcftools_mpileup.vcf -mv -o bcftools_mpileup.call.vcf

生信小木屋

可以看到,使用bcftools mpileup生成的结果起始位置(列POS)是42。使用bcftools call生成的是已经过滤后的文件。同时可以看到bam文件的起始位置也是42。

生信小木屋

igv可视化可以看到正确贴上reads的地方也是位置42

生信小木屋

查看bcftools call过滤后的文件的第一、二行,以及igv中的对应位置,可以看到,在第一个位置碱基由G变为A,在第二个位置碱基由A变成了G