以前ニューヨーク大のindel検出のワークフローを紹介したが、その中で
Haplotypercallerの検出結果のフィルタリングを以下のような条件で行なった。
java -jar GenomeAnalysisTK.jar -T VariantFiltration -R ref.fa -V raw_snps.vcf --filterExpression 'QD < 2.0 || FS > 60.0 || MQ < 40.0 || MQRankSum < -12.5 || ReadPosRankSum < -8.0 || SOR > 4.0' --filterName "basic_snp_filter" -o filtered_snps.vcf
上記はSNPsのフィルタリングの例で、5つのフィルターが設けられている。
QD < 2.0 #QualByDepth。
FS > 60.0 #FisherStrand。
MQ < 40.0 #RMSMappingQuality。
MQRankSum < -12.5 #MappingQualityRankSumTest
ReadPosRankSum < -8.0
それぞれのパラメータと数値の意味については、GATKのページに説明がある。VQSRの補正は人のSNPs情報などを元にexomeデータなどの補正を行う(クオリティ補正を行うBQSRとは異なる)。大規模なデータがあるヒトでは機能するが、他の生物では結果が変わり得る。
QD: quallity score (6列目の値) をリード数で割って正規化した値。QDが2以下になるとVQSRを通らないものの割合が極端に増えるため、QD<2が使われている。