Major Study./Bioinformatics

haplotype과 GATK HaplotypeCaller

sosal 2016. 1. 26. 19:37
반응형

 

/*

 http://sosal.kr/
 * made by so_Sal
 */

Haplotype(일배체형)은 Haploid(반수체) + genotype(유전형) 이다.

 

유전학에서는 같은 염색체상에 있는 대립형질의 조합을 말한다.

또한 연관되어있는 SNP(Single Nucleotide Polymorphism) 집합을 의미하기도 한다.

- https://ko.wikipedia.org/wiki/하플로타입

 

 

연관되어 있다는 건, 동일한 염색체 위에 가까이 존재하는 2개의 유전좌위는 함께 다음세대에 전달된다는 뜻이다.

다른 염색체이 있는 경우는 독립적으로 유전될 것이고, 한 염색체에서 매우 먼 위치에 존재하는 경우 유전자 재조합에 의해 함께 전달되지 않을 수 있다.

 

 

htSNP: Haplotype-tagging SNP - 특정 haplotype을 대표하는 SNP.


 

- SNP genotyping을 통한 haplotype 구성 및 tagSNP 선별과정

 

http://www.brown.edu/Research/Istrail_Lab/proj_cmsh.php

- International HapMap Consortium. (2003). Nature 426:789-796.

 

 

Haplotype-tagging SNP는 전체 haplotype중에서 구분될 수 있는 최소한의 SNP들의 set을 의미한다.

모든 SNP들을 genotyping 하는 것은 비용이 너무 많이 들기 때문에, htSNP를 이용하면 genotyping 해야 할 SNP의 수는 최대한 줄일 수 있으면서도 전체 집단의 모든 유전변이들을 모두 독립적으로 구분할 수 있게 된다. 즉, 대표할 수 있는 최소한의 SNP set인 htSNP를 genotyping 한다면 비용은 최소화 하면서 모든 변이를 genotyping 한 것과 같은 결과를 얻을 수 있다.

 

 

 

- GATK HaplotypeCaller

  Sequencing data를 이용하여 variant를 추출하는 GATK 같은 경우, HaplotypeCaller를 대표적으로 사용한다.

GATK HaplotypeCaller는 alignment bam file을 사용하며, alignment 결과 잠재적인 변이들에 대해 'local de novo assembly'을 사용하여 SNP와 InDel (Insertion / Deletion)을 찾아낸다.

  de novo assembly라는 것은 reference sequence를 사용하지 않고, sequence fragment 들을 조합하는 방식을 말한다. 따라서 성능은 좋지만 속도는 매우 느리다.

 

java -XX:+UseParallelGC -XX:ParallelGCThreads=8 -Xmx2g -jar GenomeAnalysisTK.jar \
   -T HaplotypeCaller \
   -R chr21.fasta \
   -I HG00418.sort.rmdup.realn.recal.bam \
   --dbsnp /home/local/27626/exercises/snp_calling/dbSNP135.snps.sites.vcf.gz \
   -stand_call_conf 30.0 \
   -stand_emit_conf 10.0
   -o HG00418.haplotyper.raw.vcf \

java -Xmx6g -jar $GATK/GenomeAnalysisTK.jar \
    -T HaplotypeCaller \
    -R ${reference} \
    -I ${result}/reduced_reads.bam \
    -L chr21 \
    --genotyping_mode DISCOVERY \
    -stand_emit_conf 10 \
    -stand_call_conf 30 \
    -o ${result}/raw_variants.vcf

 

(extra options)

--dbsnp: 알려진 Human variation이 있다면 dbsnp 데이터로부터 SNP 정보를 annotation 해준다.

stand_call_conf와 stand_emit_conf는 시퀀스 quality 정보인 Phred quality value의 값을 의미하며 filtering 할때 사용된다.

 

- GATK UnifiedGenotyper

  매우 빠른 속도로 Genotype을 해주며, 성능도 HaplotypeCaller에 거의 근접한다. 특정 예제에서 UnifiedGenotyper가 5분이 걸렸다고 한다면, HaplotypeCaller는 45분이 걸린다.

 

java -XX:+UseParallelGC -XX:ParallelGCThreads=8 -Xmx2g -jar GenomeAnalysisTK.jar \
   -R chr21.fasta \
   -T UnifiedGenotyper \
   -I HG00418.sort.rmdup.realn.recal.bam \
   --dbsnp /home/local/27626/exercises/snp_calling/dbSNP135.snps.sites.vcf.gz \
   -o HG00418.snps.raw.vcf \
   -nct 4 \
   -stand_call_conf 30.0 \
   -stand_emit_conf 10.0