多样本bam文件合并及vcf文件生成

进行细菌群体基因组分析时需要将多个样本比对到参考基因组生成vcf文件,常用的软件有snippy,snippy的结果只包含core snp,进行下游分析时往往需要更多的snp信息。

#首先将snippy的比对结果中所有样本的bam文件合并(将所有样本的bam及bai文件复制到一个文件夹)
samtools merge merge.bam *bam
samtools mpileup -gSDf ref.fasta merge.bam > merge.bcf
bcftools call -vm merge.bcf > merge.vcf
#过滤indel,保留snp
vcftools --remove-indels --recode --recode-INFO-all --vcf merge.vcf --stdout > merge.snp.vcf
#过滤掉50%样本中缺失的SNP位点
vcftools --vcf merge.snp.vcf --recode --recode-INFO-all --stdout --max-missing 0.5 > merge.filtered.vcf