過濾和比對沒什么好說的,fastp + bwa足夠
重點是call snp這塊,GATK作為精度最高的東西,運行速度也是最慢的,卡的要死。有人提出可以使用freebayes進(jìn)行快速snp calling。 然而freebayes如果運用不當(dāng),可以成為比gatk更卡的東西
那么如何使用freebayes提速,發(fā)揮他真正的實力呢?
重點有2,一個是參數(shù)選對,一個是切片。
先說最簡單的,切片,對參考基因組進(jìn)行分割,然后call指定位點的變異,這個freebayes提供了軟件內(nèi)部的腳本fasta_generate_regions.py
python fasta_generate_regions.py x.fasta 1000000 > x.bed
按100Mb的窗口大小切割然后call的時候用這個生成腳本加到-r 參數(shù)后面就行
其次是加一些特定參數(shù)提高運行速度,一個是-g 1000 去掉coverage 大于1000 計算量很大但是沒什么有用結(jié)果的地方;然后是--use-best-n-alleles 4 去掉一些complex的情況。
100個樣本在60核250RAM的情況下,應(yīng)該可以在一天內(nèi)結(jié)束calling。 之后可以使用vcftools進(jìn)行合并,vcffilter過濾出高質(zhì)量snp位點,再使用vcftools進(jìn)行過濾。
合并:vcf-concat *.vcf > combined.vcf
過濾indel和complex: cat combined.vcf | vcffilter -f "TYPE = snp" > x.snp.vcf
vcftools進(jìn)一步過濾: 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
最后再進(jìn)行bgzip和tabix即可得到最終用于下游分析的VCF文件