GATK4 におけるハプロタイプの推定は、HaplotypeCaller コマンドが使われる。ハプロタイプの推定は、4 つのステップからなり、それぞれ (1) アクティブ領域の検出、(2) ハプロタイプ候補の同定、(3) リードとハプロタイプ同士の尤度計算、そして (4) 尤度に基づくジェノタイプの決定である。

アクティブ領域の検出
GATK4 ではあるウィンドウ幅を決め、それをゲノム上全領域に対してスライディングしながら、ウィンドウ内部にあるアラインメントされたリードの各塩基のエントロピーを計算する。次にエントロピーの高い場所を検出し、そこをアクティブ領域とする。
ハプロタイプ候補の同定
次にアクティブ領域にあるリードの塩基構成から、想定されるハプロタイプの候補を決める。この際に、塩基の構成割合に応じて、シーケンシングエラーとするのか、SNP と見なすのかの判定が行われる。

リードハプロタイプ間の尤度計算
ハプロタイプが推定されると、リードとハプロタイプの候補との間の尤度を計算する。この尤度計算を行う時に、PairHMM とよばれるプログラムを使用する。すべてのリードとすべてのハプロタイプ間の尤度が計算される。
ジェノタイプの決定
リードとハプロタイプ間の尤度を利用して、ジェノタイプをベイズ推定する。