使用bcftools 将vcf文件拆分成单个vcf

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用bcftools 将vcf文件拆分成单个vcf相关的知识,希望对你有一定的参考价值。

参考技术A 使用bcftools query -l test.vcf > 453.list 将vcf文件中的样品名提取出来

不使用软件:

head -100 all.vcf |grep "#C" |cut -f10-|xargs -n 1 > wild.txt

使用sh脚本
# 将453份数据写入变量$sample 

for sample in $(cat 453.list);

#创建每个样本的list文件

do touch list/$sample.list;

#将样本写入每个文件

#echo $sample >> list/$sample.list;

#使用bcftools提取

do bcftools view -S list/$sample.list /public/home/lianglunping/work/SV/453.vcf>/public/home/lianglunping/work/SV/453/$sample.vcf;

done

bcftools常用命令总结

参考技术A

bcftools是一个用于检测突变和处理vcf(variant call format)、bcf(vcf对应的二进制形式)文件的工具。虽然bcftools的大部分命令都可以直接处理没有索引的bcf和vcf,但是个别命令需要建立索引。尤其当bcftools需要同时处理多个vcf时,任何命令都要求vcf文件为压缩形式并存在对应索引文件。

关于输入文件:

主要功能:添加注释信息;删除注释信息

call 是bcftools查找变异的工具,它取代了bcftools 之前的view caller

用于将多个VCF/BCF文件合并为1个。常常用来将多个染色体的vcf文件合为一个;或者将snp和indel两种不同突变类型的文件合并为1个。
注意:

同样用于合并vcf文件, merge 主要是将单个样本的VCF文件合并成一个多个样本的VCF文件。

注意:

该命令用于多个vcf文件之间取交集、差集、并集等操作。经典的应用场景是对多种软件的SNP calling 结果进行venn 分析。

用于统计vcf文件的基本信息,例如,突变个数、突变类型的个数、转换和颠换的个数、测序深度、INDEL长度等。同时,还可以用plot-vcfstats进行可视化处理。
如果该命令后面接了2个vcf文件,则会分别计算两个vcf文件的交集和补集(默认以position比较,倘若vcf文件内包含多个sample的突变信息,则需要通过 -s 或 -S 参数载入“样本名称”)。并判断两个vcf文件的一致性(突变基因对应频率的一致性、样本基因型的一致性、以及不一致的基因型)和关联性。

对bgzip压缩的bcf、vcf文件建立索引,默认索引格式为 csi (coordinate-sorted index),同时支持 tbi 索引

可以处理vcf和bcf文件(bcf文件为vcf文件的二进制形式),用来将vcf文件和bcf文件互相转换。也可以通过使用过滤参数或限制位置区间提取文件信息。
下面介绍几个过滤参数:
(注意⚠️: 取子集的参数 过滤参数 尽可能不要出现在同一个命令行)

输出指定格式的vcf和bcf文件

按照染色体位置对vcf文件排序

编辑VCF/BCF文件的头部或替换VCF文件中的样本名

待更新ing....

以上是关于使用bcftools 将vcf文件拆分成单个vcf的主要内容,如果未能解决你的问题,请参考以下文章

bcftools合并vcf文件

bcftools将vcf生成bgzip和index格式

bcftools常用命令总结

python vcf2tsv - 脚本生成一个bcftools调用,该调用将输出VCF中所有可用的INFO和FORMAT列。

无法使用conda安装bcftools-gtc2vcf-plugin

2022-06-08修改vcf文件样本名称,提取指定vcf样本