美文网首页
批量合并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