bcftools相关命令

bcftools最常用的子命令是index,index子命令主要用于对vcf文件进行查看,过滤和取子集。

bcftools view snp.merged.vcf.gz -s C001 -t ^1 -r2,3 -Oz -o snp.chr2_3.vcf.gz

这里来解释一下这些常用参数,-s为取子集用的,这里提取了snp.merged.vcf.gz文件中的样本C001的基因型注释,我们也可以使用-S来读取文件中的样本名称,如下例子

$cat samples
C001
C002
C004
bcftools view -S samples snp.merged.vcf.gz -Oz -o subset.vcf

第二个参数-t/--target和第三个参数-r/--region均是用来提取某个染色体区域的位点的,区别存在如下两点

  1. -t参数可以使用^脱字符来取反,这里-t^1为提取除去1号染色体以外的区段的位点
  2. -t参数在检查indel是否在某个区域时,仅查看开头是否在,而-r参数会检查起始和结束的位置

而我们也可以使用-T和-R来读取文件中的区域信息,这里有一点需要注意的是-R的文件,如果是bed文件,那么程序将视为0-base的,否则视为1-base的文件,文件内容为CHROM POS TOPOS三列内容

输出最常用的参数是-O,它决定了输出文件的类型,一共有4种不同的文件可以做选择,分别是b(compressed bcf),

u(uncompressed bcf),z(compressed vcf)以及v(uncompressed vcf)。而-o则是输出文件的名称。

接下来是一些过滤常用的方法

bcftools相关命令_第1张图片

如上图所示是一些过滤常用的内置函数和比较方法 

接下里是一些例子:

$bcftools view -i 'FMT/DP>=10' snp.merged.vcf.gz #提取覆盖深度大于10reads的位点
$bcftools view -i 'INFO/AC[0] = 2 & INFO/AN = 16' snp.merged.vcf.gz#提取AC为2AN为16的位点

这个例子中的AC是变异的等位基因数量,而AN是所有的等位基因数量,如果是一个样本的一个0/1的位点,那么 AC=1,AN=2,这里是因为有8个样本merge到了一个vcf文件中,因此AN一般为16,这里AC=2说明有两个样本是0/1,其他样本都是未突变的情况。

$bcftools-1.6 view -i '%TYPE="snp"' snp.merged.vcf.gz

提取snp位点

bcftools view -h可以查看一些常用的过滤条件

bcftools相关命令_第2张图片

你可能感兴趣的:(Linux/Shell,bioinformatics)