NGS DNA-seq pipeline: GATK Best Practice Code – Part3. Vcf manipulation

앞선 포스팅의 두가지 과정을 거치고 나서 생성된 VCF 파일을 이용하면 드디어 분석 가능한 변이들을 확인할 수 있습니다. 그러나 실제로 이 데이터를 열어보면, 지저분하고 활용하기 위해서는 어느 정도 가공이 필요합니다. 그래서 이번 포스팅은 VCF Filter를 적용하여 분석을 위한 변이들을 정제하고, 분석에 참조하기 위한 Annotation 작업을 위한 Code까지 정리해보도록 하겠습니다.

관련 포스팅 보기>

NGS 분석 파이프 라인의 이해: GATK Best Practice

NGS DNA-seq pipeline: GATK Best Practice Code – Part1. Fastq to Bam

NGS DNA-seq pipeline: GATK Best Practice Code – Part2. Bam to Vcf

vcf_3

[일반적인 VCF 파일의 구조]

IV. Variant Filtration and Annotation : Genotype Refinement Workflow

VCF call을 하고 나면, 많은 변이 데이터가 생산되는데, 실제로 데이터의 퀄리티와 오류를 보정하는 작업이 필요합니다. 이 부분은 아직까지 확립된 최적의 Work Flow는 없지만, GATK에서는 Genotype Refinement Workflow를 제공하고 있습니다. 여기서는 Call된 genotype이 인구집단이나 가계도 정보에 근거하여 적절한 Call인지를 판단하게 됩니다. 가계도의 경우에는 양쪽 부모 정보가 모두 (Trio) 필요합니다. 아래에서는 이 Workflow를 따라 Code를 작성해보도록 하겠습니다.

Genotype refinement

1. CalculateGenotypePosteriors

VCF call을 통해 생성된 genotype을 기반으로 이번에는 거꾸로 Genotype의 posterior를 계산해줍니다. 이 결과를 토대로 변이 call을 판정해서, Genotype의 quality를 계산합니다. 이 과정에는 인구 집단이나 가계도의 Prior 정보를 이용하는데, 가계도 정보를 이용하기 위해서는 PED 파일 생성이 필요합니다.

PED 파일 생성 정보는 아래 링크를 참고하시기 바랍니다.

http://zzz.bwh.harvard.edu/plink/data.shtml

gatk --java-options 'Xmx16g' 'Xms8g' CalculateGenotypePosteriors -V [cohort.recal.vcf] \
-ped family.ped --skip-population-priors -O [cohort.GP.vcf]

2. Filter Low Quality Genotypes

위의 과정에서 계산된 GQ 값을 기준으로 Filter 조건을 걸어서 지저분한 변이 call들을 제외 시킬 수 있습니다. 아직까지 표준화된 Filter 조건은 없기 때문에, 사용자가 적절하게 필터 조건을 설정해주어야 합니다. 여기서 선언해주는 조건은 흔히 JEXL expression이라고 부르는 방법으로 작성을 해야한다고 하는데, 여기서는 널리 쓰이는 Filter option인 GQ < 20 을 걸도록 하겠습니다.  필요에 따라 수치를 변경시키거나, 조건을 바꾸면 됩니다. 자세한 내용은 아래에서 찾아보시기 바랍니다.

article about using JEXL expressions

https://software.broadinstitute.org/gatk/documentation/tooldocs/current/org_broadinstitute_hellbender_tools_walkers_filters_VariantFiltration.php

마지막으로 filter조건에 부합하는 변이만 남기기 위해, GATK의 SelectVariants 이용하도록 하겠습니다.

gatk --java-options 'Xmx16g' 'Xms8g' VariantFiltration -R [hg19_reference.fa] -V [cohort.GP.vcf] \
--genotype-filter-expression "GQ<20" --genotype-filter-name "lowGQ" -O [cohort.filter.vcf]
gatk --java-options 'Xmx16g' 'Xms8g' SelectVariants -V [cohort.filter.vcf] --exclude-filtered true --max-nocoll-fraction 0.1 -O [cohort.filtered.vcf]

3. VCF annotation using Annovar

이제 어느 정도 정제가 된 변이 데이터셋이 생성되었습니다. 이제 불러온 변이들에 맞는 annotation 작업을 진행하면 분석을 진행할 수가 있습니다. 최근에 GATK에서 Funcotator를 개발하여, annotation이 가능해졌는데 아직까지는 Annovar를 이용하는게 대세이므로, Annotation 작업은 Annovar를 이용하도록 하겠습니다.

관련 포스팅 보기>

Annovar: Population frequency, in-silico prediction tool 및 기타 database 활용

Annovar 홈페이지를 통해 다운로드 신청을 하면,  등록된 메일로 Kai Wang에게서 자동으로 다운로드 url을 받을 수 있습니다. Annotation을 원하는 Database의 크기가 크기 때문에, 처음에는 DB 다운로드에 시간이 많이 소요가 될 수 있습니다.

Annovar를 설치하고, 아래 부위에 원하는 DB의 이름을 찾아서 넣으면 다운로드가 진행됩니다.

annotate_variation.pl -buildver hg19 -downdb -webfrom annovar [refGene] humandb

Annotation은 아래 code를 통해서 진행합니다. 여기서는 refGene, cytoBand, avsnp150, dbnsfp35a, exac03, gnomad_exome, clinvar_20190305 DB를 이용하여 annotation 작업을 진행하도록 하겠습니다. 각각의 DB는 Gene-based, Region-based, Filter-based annotation에 해당하는 카테고리가 있고, 이를 operation 옵션에 g, r, f를 이용하여 나타내줍니다.

table_annovar.pl [cohort.filtered.vcf] humandb/ -buildver hg19 -out [myanno] -protocol refGene,cytoBand,avsnp150,dbnsfp35a,exac03,gnomad_exome,clinvar_20190305 -operation g,r,f,f,f,f,f -nastring . --vcfinput --remove --thread 8

[References]

VCFtools를 이용한 VCF filtering: 위에서는 GATK를 이용하였지만, 과거에 많이 사용하였던 VCFtools를 이용하는 방법도 있습니다. 자세한 내용은 아래를 참조하시기 바랍니다.

http://www.ddocent.com/filtering/

GriffithLab에서 소개하고 있는 VCF filter 과정: 해당 내용은 GATK4로 넘어오면서 코드가 약간 달라졌습니다. 다만 전반적인 과정은 유사하므로, 참고하시기 바랍니다.

https://pmbio.org/module-04-germline/0004/02/02/Germline_SnvIndel_FilteringAnnotationReview/

광고

SNP array와 array CGH의 원리 및 UK Biobank Array, Korean Chip

오늘은 최근에 연구를 하면서 확실하게 차이를 알게된 array CGHSNP array에 대해 정리하고, SNP array의 일종으로 많은 연구자들이 사용하고 있는 한국인칩에 대해서 소개하는 포스팅을 올리고자 합니다.

저는 이해하기 쉽게 정리하는 걸 선호하기 때문에 공통적으로 array의 개념부터 정리하겠습니다.

Affymetrix

array (= 배열) 검사: 여러개의 열에 각각 특정 sequence를 인식하는 탐식자 (probe)를 심어, 해당 부위를 검출하기 위한 목적으로 만든 검사 방법

두 검사 모두 array 기법을 이용하는 점은 공통이나 검사의 목적이나 응용 방법, 그리고 장, 단점 등등에 차이가 있습니다.

cgh_test.jpg
[array CGH (A) 와 SNP array (B) 비교] A는 control 물질과의 상대적 신호 세기를 이용하여 Copy number 검출이 목적인 반면, B는 oligo-probe를 이용하여 target 영역의 Genotype 검출이 목적이라는 점이 가장 다릅니다.

I. array CGH (comparative genomic hybridization)

array CGH는 원래 처음에는 암 조직을 이용한 연구에 많이 사용되었습니다. 암세포는 정상 세포와 달리 염색체의 구조적 이상이 많이 발생하게 되는데, 암세포에서 이러한 염색체 이상을 확인하기 위한 방법으로 array CGH를 이용하기 시작한 것이지요. 저도 10년 전에 의대 강의를 들을 때, 처음 array CGH와 FISH 검사 방법에 대해서 배웠던 기억이 어렴풋하게 납니다. array CGH가 이러한 염색체 이상을 확인할 수 있다는 것을 알게되면서, 그 다음으로 많이 이용된 분야는 신생아 기형 검사입니다. 다운 증후군이나 에드워드 증후군처럼 염색체 검사를 통한 수적 이상이 확실하게 확인되는 경우 이외에도, 염색체 이상이 의심되는 기형을 갖고 태어나는 신생아들에서 많은 경우, 염색체 미세 결실 또는 중복 (micro-deletion and duplication)이 관찰되는 경우가 많기 때문에 이러한 것을 검출하는데 이용되기 시작한 것이지요. 따라서 처음에는 탐식자의 크기가 크고 해상도도 낮았으나, 점점 probe의 갯수가 늘어나고 해상도도 개선되어 최근에는 매우 작은 크기의 염색체의 구조적 변이도 검출이 가능해졌습니다. 이와 더불어 구조적 변이 (Structural variation)CNV (Copy number variation) 검출도 가능하여, 임상 진단 외의 많은 연구 영역에서 활용되고 있습니다.  (그러나 아직까지도 검사 비용이 매우 비싼 것이 단점입니다.)

관련 포스팅 > [유전학 중요개념 정리] Structural variation 및 Copy-number variation

array CGH
[array CGH의 검사 원리] 환자 검체와 정상 대조군을 각각 다른 형광 물질로 표지하여 나오는 상대적인 신호를 검출하여, 해당 탐식자가 검출하는 염색체 부위에 수적 이상이 있는지를 확인하게 됩니다.

II. SNP (Single Nucleotide Polymorphism) array

array CGH와 달리, SNP array는 최근 GWAS (Genome-Wide Association Study)와 더불어 더 각광받게된 검사 방법입니다. 유전체의 특정 SNP을 타깃으로 하는 oligo probe를 매우 많이 포함하는 array를 개발하여, 거의 대부분의 유전체 영역을 커버하는 array를 개발하고 연구에 활용하고 있는 것이지요.

관련 포스팅 > 전장 유전체 연관 분석, GWAS란 무엇인가?

snp_schema
[SNP array의 검사 원리] 타겟 영역에 특이적으로 결합하는 수 많은 oligo probe가 해당 부위의 SNP genotyping 정보를 제공해주게 됩니다.

가장 유명하고 많이 쓰이는 SNP array는 Affymetrix 사의 Genome-Wide Human SNP array 6.0 버전인데, 90만개 이상의 SNP을 탐지하는 probe와 CNV 분석을 위한 별도의 94만개의 probe를 포함하여 약 180만개의 marker가 심어져 있습니다. SNP array를 통해서도 CNV 분석이 가능합니다만, CGH와 다르게 control이 있는 것이 아니기 때문에 B allele frequency (BAF) 라고 하는 genotype call 정보를 이용하며 분석 방법도 다르게 됩니다.

그림1

 

III. UK Biobank Array와 Korean Chip (the Korea Biobank Array)

UK Biobank는 연구 자원 활용 및 이를 통한 국민의 복지 증진을 목적으로 영국에서 운영하는 국가 단위의 프로젝트입니다. 이를 위해서, 엄청나게 많은 수(약 50만명)의 영국인을 대상으로 Array 기반 genotyping을 진행하였는데, 이때 이용한 SNP array가 흔히 말하는 UK Biobank Array 입니다. UK Biobank Array를 통한 genotyping 정보는 함께 보관된 수많은 임상 정보와 함께 종합적으로 활용이 되고 있는데, 현재도 연구의 재현 및 검증을 위하여 다른 나라의 연구자들이 분양을 받아 이용하고 있습니다.

우리 나라에서도 비슷한 목적으로 사업을 시작하여,  한국인에 맞춘 SNP array 칩이 제작되었는데, 이것이 한국인칩 (the Korea Biobank Array or Korean Chip)입니다. 기존의 비싼 가격과 Cover가 되는 SNP이 인종에 따른 차이를 반영하지 못하는 문제 등을 개선하여 한국인을 대상으로 더 효율적인 연구가 가능하도록 하였습니다. 자세한 정보는 한국인칩 컨소시엄 홈페이지 에 잘 소개되어 있는데 , 대략 83만개의 대표 마커를 포함하며 한국인 특이 희귀 변이(Rare variants)를 많이 추가한 것이 눈에 띕니다. 자세한 내용은 최근에 발표된 아래 논문을 참고하시기 바랍니다.

2

 

[References]

UK Biobank Arrays: https://www.thermofisher.com/order/catalog/product/902502

한국인칩 컨소시엄: https://www.koreanchip.org/project

Moon, Sanghoon, et al. “The Korea biobank array: design and identification of coding variants associated with blood biochemical traits.” Scientific reports 9.1 (2019): 1-11.

DTC 유전자 검사의 딜레마: 과학과 산업 사이

유전자 검사법 개정

1
생명윤리 및 안전에 관한 법률 제 6장 50조 (유전자검사의 제한 등)을 보면, 의료 기관이 아니더라도 민간업체에서 질병의 예방과 관련된 유전자 검사가 가능해졌습니다.

지난번 유전체 학회 부스에 갔더니, 바이오벤처 기업에서 유전자 검사 서비스를 홍보하는 것을 보고 깜짝 놀랐습니다. 자세히 알아보니 비교적 제약이 많았던 우리 나라에서도 ‘생명윤리 및 안전에 관한 법률’이 개정되어, 민간업체에서도 영리 목적의 제한적 유전자 검사가 가능해졌다고 합니다. 민간업체에서 검사 가능한 유전자는 총 46개로 건강 관련 6가지 (비만, 콜레스테롤, 중성지방, 혈당•혈압, 카페인대사)과 미용 관련 6가지 (비타민C 대사, 피부색소침착, 피부노화, 피부탄력, 탈모, 모발굵기)등 총 12가지 항목입니다. 이렇게 민간업체에서 직접 유전자 검사를 해서, 소비자에게 바로 제공하는 것 DTC (Direct-To-Consumer)라고 하는데, 우리나라도 DTC 유전자 검사가 가능해진 법적 기반이 만들어진 것입니다.

 

2
영리목적의 유전자 검사기관에서 검사 가능한 질병 예방 목적의 유전자 46개의 리스트

 

DTC 유전자 검사 결과의 해석

문득, 업체들에서 유전자 검사를 도대체 어떻게 검사하고 시행하는지 무척이나 궁금해졌습니다. 왜냐하면, 유전형이 사람들의 형질을 설명할 수 있는 비율이 매우 제한적이고, 더구나 항목당 몇 개 안되는 유전자 수로 변이를 해석해서 건강과 미용을 해석해준다는게 넌센스이기 때문입니다. 저는 병원 진단검사의학과 검사실에서 무척이나 다양한 검사 레포트를 작성해보았지만, 저런 유전자 검사로 건강과 미용에 대한 결과 레포트를 작성하는 것이 상상이 되지 않았습니다. 그러다 우연히 한 업체의 레포트 샘플을 살펴 볼 수 있었습니다. 우선, 눈에 띄는 것은 일반인들이 최대한 이해하기 쉽도록 검사 결과지를 만든것으로 보이고, 한 두군데 중요하다고 보고된 지역의 SNP (단일 염기변이)만 spot typing 한 것으로 보입니다. 그 지역의 형질 빈도 정보는 나타내주고 있지만, 어떤 지역의 어느 위치인지 (SNP ID라던가 유전자의 염기 서열 번호 등) 전혀 나타나 있지 않아서, 중요한 유전자 정보는 의사 및 전문가와 상담하라고 하는데, 전혀 가치있는 정보를 얻을 수 없습니다. 무엇보다 유전형을 통해서 의사 처방 의약품 및 추천 건강 식품을 추천해주는 것으로 보이지만, 사실 둘 사이에는 아무런 관련도 없습니다. 유전자 검사 결과 체질량 지수가 높아질 확률이 높은 변이가 한개 검출 되었으니 다이어트에 좋은 식품을 먹어라 정도로 이해가 되지만, 체질량 지수를 결정하는 변이는 한 두개가 아니며, 많은 변이를 통해 예측을 한다고 하더라도 그것이 맞을 확률 또한 충분하지 않습니다.

inner_out_1
어느 업체의 건강 관련 DTC 유전자 검사 결과 레포트 샘플 (저는 본 업체와 아무런 이해 상충 관계도 없음을 밝힙니다.)

 

사주와 유전자 검사

인간은 본래 미래를 예측하기를 좋아하는 것 같습니다. 그래서 사주나 역학이 발달해왔는지도 모르겠습니다. 사주나 역학을 비판하는 것은 아니지만, 사주나 점술은 비과학적인 근거에 기반합니다. 그에 비해, 최근에 발달한 유전학은 실제적인 유전형에 근거하여, 형질을 예측하고 설명하고자하는 학문입니다. 따라서 유전자 검사를 통해, 질병을 예측하고 검사하는 것은 과학적 근거에 기반해야합니다. 그러나 현재 가능한 DTC 유전자 검사는 충분한 과학적 근거도, 정보도 제공해주지 못합니다. 유전자 검사 자체에 문제가 있는 것이 아니라, 그 검사 결과를 충분한 형태의 정보로 제공할 수 있는 수준이 아니라는 것이죠.

지금의 수준은 유전자 검사의 탈을 쓴 사주나 타로 카드와 크게 다를 바가 없습니다. 우리나라보다 산업계의 제약이 훨씬 적은 미국의 경우에는 수많은 바이오 벤쳐기업이 세워졌고, 몇몇 기업은 과학자들에게 엄청난 비난을 받고 있습니다. 대표적으로 유전자 검사를 통해 최적의 와인을 찾아준다고 선전하는 Vinome, 축구를 잘하는 유전자를 검사해준다고 하는 Soccer Genomics 같은 회사들이 있습니다. 이러한 회사들이 구체적으로 어떤 유전 정보를 활용하여 결과를 보고하는지는 모르겠습니다. 유전체 정보가 정말로 중요한 것은 맞지만, 어떠한 형질을 유전체 정보 만을 이용해서 예측하는데는 생각보다 많은 한계가 있음을 알아야 합니다.

soccer
미국에는 축구를 위한 유전자 검사 및 맞춤 훈련 프로그램을 제공하는 바이오 벤쳐 기업도 나타났습니다.

 

과학계와 산업계의 딜레마

위와 같은 산업들이 과학적으로 비판을 받을 수 밖에 없음에도 불구하고, 위와 같은 시도와 DTC 유전자 검사를 무조건 제한하는 것도 적절하지는 않다고 봅니다. 본디 과학은 불완전한 것에서 시작하고, 여러 시행착오와 관찰을 통해서 발전하기 때문입니다. 비록 지금의 저러한 시도는 근거가 부족하고 비과학적인 측면이 많지만, 자체적으로 점점 발전하고 개발이 된다면 나중에는 훌륭한 모델로 성장할 수도 있다는 것이지요. 즉, 과학적인 관점에서 기업들의 이윤 추구를 위한 저러한 시도는 분명 비판할 수 밖에 없지만, 다른 한편으로는 산업적 측면에서 자금이 모여야 과학도 함께 발전할 수 있기 때문입니다. 그래서 우리 나라의 생명 윤리에 관한 법률 개정도 이러한 산업계의 여러 요구를 반영한 것이라고 생각합니다.

 

그렇다면 DTC 유전자 검사를 어떻게 봐야 하는가?

마지막으로 그렇다면 일반인들은 DTC 유전자 검사를 어디까지 믿고, 신뢰해야 할까요? 아직까지의 수준은 걸음마입니다. 그렇기 때문에 일반인들은 그 한계점을 명확히 알고, 거짓 또는 과장 광고에 속아서는 안됩니다. 사실 지금의 수준은 사주나 타로와 다를 바 없다고 봅니다. 개개인의 유전형을 검사해서 검사 결과는 충분히 정확하게 얻을 수 있는 데에는 이견이 없으나, 그 유전형 만을 가지고 12가지 항목의 형질을 설명한다는 것은 타로 카드로 점괘를 보는 것과 다를바가 없기 때문입니다. 사실 보건복지부에서 어떠한 기준에서 46개 유전자를 선정해서 허용을 했는지도 불분명하고, 유전자들이 형질을 설명하는 것에 대한 과학적 근거도 약한게 사실입니다. 사실 그 이면에는 바이오 벤처 산업을 육성해야한다는 정치적 이해 관계 및 요구가 많았겠지요. 그럼에도 불구하고 현재의 수준은 미약하나, 미래에는 충분히 그럴듯한 서비스가 될지는 아무도 모르겠습니다.