[GATK] HaplotypeCaller 알고리즘 Start.

BioinformaticsAndMe



GATK4에서 Unifiedgenotyper를 이기고 살아남은
HaplotypeCaller
Variant calling 과정을 살펴보겠다.



#HaplotypeCaller는 아래 그림에서 보듯이, 4가지의 주요 과정으로 변이을 찾아낸다.


1. Define active regions
- 변이가 나올 것이라 예측되는 active region을 정의.
- 간단하게 생각하면 위 그림에서처럼 reference와 다른 allele들이 반복적으로 나오는 곳을 특정함.
- 아래 그림처럼 active region을 정의할 수 있으며, 다음 칼럼에서 좀 더 자세하게 다뤄 볼 예정.





2. Determine haplotypes by re-assembly of the active region
- 각 ActiveRegion으로 De Bruijn 그래프(아래 참조)를 만들어 ActiveRegion을 재구성하고, 데이터에서 나올 수 있는 haploytype들을 추출한다.
- 그다음 잠재적 variant를 확인하기 위해, Smith-Waterman algorithm(아래아래참조)을 사용하여 각각의 haploytype들을 reference에 다시 매핑한다.

#De Bruijn 그래프: genome assembly에서 Read들을 효율적으로 조립하기 위한 알고리즘.
#아래 그림에서 주어진 Read를 4mer로 +1씩 sliding했을 때, 8개의 조각들이 나오고,  그 순서에 따라 엣지를 그려 De Brujin 그래프를 만들었다.


#Smith-Waterman algorithm: 두 서열(haplotype과 reference)을 정열하여 비교하는 알고리즘 정도로 이해 (자세히는 아래 인실리코젠 홈페이지 참조).





3. Determine likelihoods of the haplotypes given the read data
- PairHMM 알고리즘을 사용하여 각 haplotype에 ActiveRegion의 Read들을 pairwise하게 매핑.
- 이 과정을 통해 주어진 리드에 대한 haplotype likelihood 매트릭스를 생성.

#HMM 알고리즘 참고




4. Assign sample genotypes
- Read x Haplotype 매트릭스에서 각 리드마다 타겟 allele의 가장 높은 확률을 선택.

- 아래 그림 오른쪽 표를 이용해 베이지안 모델에 적용하여, 가장 높은 evidence를 가지는 variation을 선택하여 변이 동정.





#베이즈 이론 참고







[GATK] HaplotypeCaller 알고리즘 End.

BioinformaticsAndMe

'Algorithm' 카테고리의 다른 글

[GATK] Base Quality Score Recalibration (BQSR)  (0) 2018.08.25
[PCA] 주성분분석 3  (0) 2018.08.02
[PCA] 주성분분석 2  (0) 2018.08.01
[PCA] 주성분분석 1  (0) 2018.07.25
[GWAS] Imputation  (2) 2018.07.09

+ Recent posts