把多样本的vcf文件拆分

2018-12-24  本文已影响8人  因地制宜的生信达人

把多样本的vcf文件拆分

参考:https://www.biostars.org/p/224702/

非常多已经造好的轮子可以完成,包括bcftools,vcftools,还有大名鼎鼎的GATK,随便举例如下:

module load java/1.8.0_91
GENOME=/home/jianmingzeng/biosoft/GATK/resources/bundle/mm10/Mus_musculus/UCSC/mm10/Sequence/WholeGenomeFasta/genome.fa
INDEX=/home/jianmingzeng/biosoft/GATK/resources/bundle/mm10/Mus_musculus/UCSC/mm10/Sequence/BWAIndex/genome.fa
GATK=/home/jianmingzeng/biosoft/GATK/gatk-4.0.2.1/gatk


for sample in `bcftools query -l merge.snp.filter.vcf.gz`
do
$GATK  --java-options "-Xmx15G -Djava.io.tmpdir=./"  SelectVariants \
-sn ${sample}  -R $GENOME -V merge.snp.filter.vcf.gz  -O split/${sample}.snp.vcf  
done

for sample in `bcftools query -l merge.indel.filter.vcf.gz`
do
$GATK  --java-options "-Xmx15G -Djava.io.tmpdir=./"  SelectVariants \
-sn ${sample}   -R $GENOME -V merge.indel.filter.vcf.gz  -O split/${sample}.indel.vcf  
done

cd split 

for i in *vcf
do
echo  ${i%.*}
java -jar  ~/biosoft/SnpEff/snpEff/snpEff.jar -csvStats ${i%.*}.stat.csv  -i vcf GRCm38.75 $i > ${i%.*}.eff
done

然后就可以批量进行统计

for i in *vcf  
do
echo  ${i%.*}  
java -jar  ~/biosoft/SnpEff/snpEff/snpEff.jar -csvStats ${i%.*}.stat.csv  -i vcf GRCm38.75 $i > ${i%.*}.eff.vcf
done 

最后这些csv统计结果就可以使用multiqc来汇总及可视化。

上一篇 下一篇

猜你喜欢

热点阅读