Skip to content

GATK VariantCalling #

Find similar titles

14회 업데이트 됨.

Edit
  • 최초 작성자
    Jeong-han Seo
  • 최근 업데이트

Structured data

Category
Software

Variant Calling #

Variant Calling이란? #

Variant Calling은 genotypes (heterozygoushomozygous) 함께 SNPs를 찾는다. 현재 Variant Caller인 SAMtools, glfTools, Atlas2, GATK. 총 4개의 software를 비교한 논문이 있다. GATK는 Bayesian 모델을 이용하고, 알고리즘은 MapReduce를 이용하여 분산 처리가 가능하다는 장점이 있다. 또한, Realignment, Recalibration, VQSR 등을 통해 변이를 찾는데 우위에 있다. 따라서 GATK가 Variant Calling을 하는데 가장 좋은 분석 도구 중 하나라고 여겨진다.

Image

SNP 정의 및 detection 방법 #

SNP란 인구 집단에서 1% 이상의 빈도로 존재하는 2개 이상의 대립 염기서열이 발생하는 위치를 말한다.

Image

여기서 잠깐 궁금한 점을 풀어보자!

Q) 그렇다면 사람마다 평균적으로 얼마나 다른 SNP들을 가지고 있을까?
  (사람 간의 차이는 보통 1,000개의 염기마다 1개의 SNP 가진다.)
  (Human : 3 bilion base-pairs)

   1번 0.01% (eg. 300k)
   2번 0.1%  (eg. 3 million)
   3번 1%    (eg. 30 million)
   4번 10%   (eg. 300 million)

A) 2번 0.1% (eg. 3 million)

이와 같이 각 샘플의 Read data (D)로부터 샘플의 Genotype (T)를 알아내려면 Genotype이 나올 확률을 Bayesian rule을 이용하여 계산하면 된다. 즉, P(Ti|D)는 개개의 locus로부터 D라는 read data를 가지고 있을 때 Ti 라는 genotype이 나올 확률, P(D/T)는 주어진 genotype에서 read data가 나올 확률을 이용하는 것이다.

NGS Data Analysis pipeline #

Image

위 그림은 NGS 데이터 분석을 위한 파이프라인으로써 GATK는 Indel Realignment, Base Recalibration, Variant Calling, Variant Recalibration을 이용한다. 그 중에서 Variant Calling은 UnifiedGenotyperHaplotypeCaller로 구분된다.

HaplotypeCaller vs UnifiedGenotyper #

  • HaplotypeCaller : Variant Calling을 할 때에는 GATK의 HaplotypeCaller를 대표적으로 사용한다. 이 분석 도구는 alignment bam file을 사용하며, 잠재적인 변이들에 대해 SNP과 InDel (Insertion / Deletion)을 찾아낸다. 또한, de novo assembly 시에 많이 사용되며, 성능은 좋지만 속도는 느리다는 단점이 있다.

  • UnifiedGenotyper : 이 분석 도구는 매우 빠른 속도로 genotype을 한다. 한 예로 UnifiedGenotyper가 5분이 걸렸을 때, HaplotypeCaller는 45분이 걸렸다고 한다.

  • 전체적인 결론 : GATK의 HaplotypeCaller는 UnifiedGenotyper에 비해 전반적으로 나은 성능을 보여줬다. 이전 비교에서는 UnifiedGenotyper가 SNP에서 좋은 성능을 보였고, HaplotypeCaller가 Indel에서 좋은 성능을 보였으나, GATK 2.7에서 SNP calling 부분을 해결하였다. GATK pipeline을 사용할 경우, UnifiedGenotyper의 Indel 부분의 realigning에 성능이 떨어지므로 HaplotypeCaller를 사용할 것을 권장하였다.

Image

HaplotypeCaller와 UnifiedGenotyper의 command line #

HaplotypeCaller

> java -XX:+UseParallelGC -XX:ParallelGCThreads=8 -Xmx2g -jar GenomeAnalysisTK.jar 
  -R ucsc.hg19.fasta 
  -T HaplotypeCaller 
  -I HG00418.sort.rmdup.realn.recal.bam 
  --dbsnp /home/local/27626/exercises/snp_calling/dbSNP135.snps.sites.vcf.gz 
  -nct 8
  -o HG00418.haplotyper.raw.vcf
  -stand_call_conf 30.0 
  -stand_emit_conf 10.0
  • --dbsnp : 알려진 Human variation이 있다면 dbsnp 데이터로부터 SNP 정보를 annotation 해준다.
  • stand_call_cont와 stand_emit_conf는 sequence quality 정보인 Phred quality value를 의미하며 filtering할 때 사용한다.

UnifiedGenotyper

> java -jar GenomeAnalysisTK.jar            
  -T UnifiedGenotyper                               
  -R ucsc.hg19.fasta 
  --dbsnp dbsnp_138.hg19.vcf
  -L chr21
  -glm BOTH
  -I SAMPLE.fastq.gz.sort.rg.dedup.realign.recal.bam
  -o SAMPLE.vcf
  • 둘 다 출력 결과로 vcf 파일을 생성한다.

Reference #

Suggested Pages #

0.0.1_20230725_7_v68