美文网首页
批量合并vcf文件

批量合并vcf文件

作者: 可能性之兽 | 来源:发表于2022-02-13 15:59 被阅读0次

合并不同sample的vcf文件,通过bcftools - 组学大讲堂问答社区 (omicsclass.com)

需要批量合并VCF文件,看都不看文件名字,只要是文件夹内叫vcf的都直接合并一个文件,所以基于上面的基础写了个小脚本

# Copyright Contributors to the MLP.
name=$1".merge"
for i in *vcf;do bgzip -c -f -@ 10 $i > $i.gz;done
for da in *vcf.gz;do ~/Biosoft/bcftools-1.14/bcftools  index $da;done

echo -n "~/Biosoft/bcftools-1.14/bcftools merge --force-samples --info-rule DP:sum " >> $name.txt;for g in *vcf.gz;do echo -n "  $g ">>$name.txt;done;echo -n "  -o $name.merge.gz" >>$name.txt

把上面的内容丢入叫test.sh文件之中,然后再写一个文件test2.sh

bash test.sh $1
bash $1".merge.txt"

最后运行

bash test2.sh test3

不过,其实bcftools里面已经提供了批量合并的命令了,bcftools merge -l 便是批量合并的命令,只需要将你要合并的文件名放入一个叫merege.txt的文件里面,参考下面的内容
How to merge 7000 VCF files with bcftools merge? (shicheng-guo.github.io)

ls *.vcf.gz | split -l 500 - subset_vcfs

for i in subset_vcfs*; 
do 
bcftools merge -0 -l $i -Oz -o merge.$i.vcf.gz; 
tabix -p vcf merge.$i.vcf.gz
done
ls merge.*.vcf.gz > merge.txt
bcftools merge -l merge.txt -0 -Oz -o all_merged.vcf.gz

相关文章

网友评论

      本文标题:批量合并vcf文件

      本文链接:https://www.haomeiwen.com/subject/nvaahrtx.html