freebayes快速群体call snp流程优化

过滤和比对没什么好说的,fastp + bwa足够

重点是call snp这块,GATK作为精度最高的东西,运行速度也是最慢的,卡的要死。有人提出可以使用freebayes进行快速snp calling。 然而freebayes如果运用不当,可以成为比gatk更卡的东西

那么如何使用freebayes提速,发挥他真正的实力呢?

重点有2,一个是参数选对,一个是切片。

先说最简单的,切片,对参考基因组进行分割,然后call指定位点的变异,这个freebayes提供了软件内部的脚本fasta_generate_regions.py

python fasta_generate_regions.py x.fasta 1000000 > x.bed

按100Mb的窗口大小切割然后call的时候用这个生成脚本加到-r 参数后面就行

其次是加一些特定参数提高运行速度,一个是-g 1000 去掉coverage 大于1000 计算量很大但是没什么有用结果的地方;然后是--use-best-n-alleles 4 去掉一些complex的情况。

100个样本在60核250RAM的情况下,应该可以在一天内结束calling。 之后可以使用vcftools进行合并,vcffilter过滤出高质量snp位点,再使用vcftools进行过滤。

合并:vcf-concat *.vcf > combined.vcf

过滤indel和complex: cat combined.vcf | vcffilter -f "TYPE = snp" > x.snp.vcf

vcftools进一步过滤: vcftools --remove-indels --recode --recode-INFO-all --vcf x.snp.vcf --maf 0.05 --minDP 5 --maxDP 50 --minGQ 20 --hwe 0.001 --max-missing 0.8 --stdout > final.snp.vcf

最后再进行bgzip和tabix即可得到最终用于下游分析的VCF文件

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容