[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 |