把多样本的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来汇总及可视化。