Domains (49)

임상 시험의 설계


앞선 포스팅에서 임상시험의 단계에 대해 다루었다. 임상 시험 단계에서 가장 많은 시간과 비용이 소모되는 제 3상에서는 임상시험 디자인을 결정하고, 이에 따른 적절한 대상자의 수를 결정한 후, 디자인에 맞게 병원별 대상자를 모집하여 임상 시험을 실시한다. 실제로 임상 시험을 실시하는 과정은 엄청난 시간과 비용이 들고 다기관이 참여하며 고려해야할 사항이 매우 많다. 본 포스팅에서는 그 중 임상 시험에서 일반적으로 쓰이는 설계 방법에 대해 정리하였다. 


1. 평행 설계 (Parallel Design)

  • 평행 설계는 가장 일반적인 형태의 임상시험이다. 연구대상자는 무작위 배정에 의해서 서로 다른 처리군으로 배정이 되며, 연구의 종료시까지 처음 배정된 군을 유지하며 진행된다. 평행 설계의 장점은 그 방법이 이해하기 쉽고 간단하다는 점이다. 하지만 두 그룹이 각각 서로 다른 집단이기 때문에 두 집단이 완벽하게 randomization 이 되어있지 않으면 bias 가 발생하기도 한다. 이로 인해 혼란 변수의 보정, stratified randomization 등이 필요할 수 있다. 
  • 평행 설계에서 발생할 수 있는 bias 를 줄이려는 목적으로 대응 평행 설계 (Matched pairs parallel design) 을 실시하기도 한다. 이 방법은 비슷한 특성을 가진 2명의 참여자를 하나의 블록으로 하여 각각 대조약과 시험약을 처리하는 실험 디자인이다. 
  • 평행 설계에 의해 연구를 수행할 때, 준비기간 (run-in periods) 이 필요하다. 준비기간은 무작위 배정을 받기 전 다른 약물을 투여하지 않는 기간으로 이전 치료의 효과를 없애는 휴약 기간 (Washout period) 이다. 

2. 교차 설계 (Crossover design)

  • 교차 설계는 한 연구대상자에게 처리, 대조 모두 각각 한 번 씩 두 번 적용하는 설계 방법이다. 연구 대상자는 처리 또는 대조군에 배정되어 결과를 평가하고, 일정 시간이 지난 후 반대 처리를 받게 된다. 
  • 이 방법은 한 명의 연구 대상자에게 두 번 처리하여 직접 비교할 수 있기 때문에 총 연구 대상자의 수를 줄일 수 있다는 장점이 있다. 
  • 또한 피험자간 변이를 줄일 수 있기 때문에 검정력이 높아진다 -> 이로인해 또 특정 검정력 하에서의 연구 대상자의 수를 줄일 수 있다. 
  • 교차 설계에서 유의해야할 점은 연속적으로 두 처리를 하는 방법이기 때문에 두 처리 간에 충분한 시간 (Washout period) 을 두고 진행해야 한다는 점이다. 그렇지 않다면 잔류효과에 의해 시험이 제대로 되지 않을 수 있다. 
  • 또한 교차 설계는 그만큼 연구 기간이 늘어나기 때문에 처리->결과 관찰의 시간이 짧은 약 또는 의료기기에 대해 실행할 수 있다. 예를 들어, 말기암 환자에게 처리약을 투여 후, 예후를 관찰하는 실험에 있어 중도 탈락의 우려가 크기 때문에 평행 설계가 더 나은 방법일 수 있다. 

교차설계가 가능한 임상 시험의 예 

  • 비교적 짧은 반감기를 갖고 예방적 목적의 약물을 이용한 시험
  • 휴약기간을 둘 수 있는 임상 시험 
  • 약물 효과를 치료 기간 중 충분히 볼 수 있는 약물 


교차설계는 세부적으로 기본 교차 설계 (2x2 교차설계)와 다차원적 교차설계 (high-order design) 으로 나눌 수 있다. 다차원적 설계는 단순히 A-B, B-A 두 순서로 대상자를 배정하는 것이 아니라 A-A, B-B 등으로도 배정하여 분석의 타당성을 높이기 위한 방법이다. 


<2x2 교차설계>


교차설계시 중요하게 고려해야할 부분

  • 잔류 효과를 반드시 없애야 통계적 타당성이 높다. (이를 검증하기 위해 period 2 에서 이전 약물의 효과가 남았는지를 verification 하는 과정이 있으면 좋다.)
  • 교차설계시 평행설계에 비해 결측의 영향이 크다. 결측을 최소화하는 방법에 대한 고려가 필요하다.


3. 요인 설계 (Factorial design)

  • 요인설계는 두 개 이상의 처리군의 조합의 효과를 확인하기 위한 설계 방법이다. 조합의 효과는 교호작용 (interaction) 이라고 부른다. 

 

 약물 A 처리

 약물 A 미처리

 약물 B 처리

 A,B 모두 투여 (n)

 B 만 투여 (n)

 약물 B 미처리

 A만 투여 (n)

 A, B 모두 미투여 (n)


기본 2x2 요인 설계는 위처럼 대상자를 네 군으로 나누어 시험을 실시하는 방법이다. 평행 설계에서는 A만 투여한 군과 B 만투여한 군으로 배정하여 비교하는 것으로 볼 수 있다. 하지만 평행 설계에서는 새로운 약물 1개에 대해서만 검증할 수 있다. 하지만 요인 설계에서는 새로운 약물 2개에 대해 한 번에 검증할 수 있다는 점이 평행설계와 요인설계의 차이점이다. 또한 새로운 약물 2개의 대한 교호작용도 볼 수 있다. 따라서 특정 상황에서는 요인설계가 평행설계에 비해 효율적일 것이다. 


요인설계의 장점
  • 한 시험으로 두 개의 약물의 치료 효과 파악 가능하므로 경제적이다.
  • 피험자 수를 줄일 수 있다. 
  • 상호작용을 검정할 수 있다. 

요인설계가 평행설계에 비해 적절한 상황

  • 두 개 이상의 치료 효과를 한 번에 보고 싶을 때
  • 두 치료 효과의 상호작용이 중요할 때 


참고자료

식약처 식품의약품안전평가원에서 임상시험의 통계원칙이라는 public book 을 작성하였습니다. 이 책에 임상 시험에 사용되는 통계 관련하여 개괄적으로 참고할 부분이 많습니다. (https://asancpt.github.io/book-stat/design.html)

임상시험의 단계 정리 



1. 전임상 단계


임상시험을 실제로 시작하기 전에 가장 먼저 시작하는 단계로 연구실 내 안전성 시험 및 동물 실험, 선행 논문 조사 등이 이 단계에 포함된다. 한국의 경우, 전임상 단계를 거쳐 임상시험계획서 (Investigational New Drug, IND) 를 식품의약품안전처에 제출하여 임상시험의 허가를 받아야한다. 


2. 제 1상 


목적 : 안정성 검증 및 최대 투약량 결정

  • 본격적인 임상시험의 단계이다. 소수의 건강한 참여자 (예를 들어, 20~80명) 를 대상으로 독성, 부작용 등의 중요한 반응만을 관찰한다. 제 1상의 한 가지 목적은 최대 허용량 (Maximum Tolerated Dose, MTD) 을 결정하는 것이다. MTD 를 결정하는 방법은 참여자를 대상으로 점점 투약량을 높여가며 이상 반응 및 약물동력학적 검사를 통해 결정한다. 즉, 1상의 목적은 크게 안정성 검증 및 최대 투약량 결정이다. 


3. 제 2상 


목적 : 3상 진입 가능 여부 판단 (효율성 판단), 투약량 결정 

  • 특정 질환의 환자를 대상으로 임상 효과를 처음 관측하는 단계이다. 건강한 사람만을 대상으로한 1상과는 대상자의 구성이 다르다. 1상을 통해 새로 개발된 약이 안전한 건 알겠고, 실제로 효과가 있는지를 검증해야하는 단계로 넘어가야하는데, 1상은 그 단계로 넘어갈만한 가치가 있는지를 검증한다. 일종의 사전 검증이라 할 수 있다. 왜 바로 효과성 검증 단계로 넘어가지 않고, 사전 검증을 하냐면 다음 단계인 3상은 엄청난 시간과 비용의 소모가 있기 때문이다. 2상은 3상을 넘어가기전 근거를 기반으로 넘어가도 될만한지 판단하는 단계라고 볼 수 있다. 또한 3상에서 쓰일 투약 용량을 결정한다. 


2상-A 단계

  • 2상을 A, B 단계로 구분하기도 한다. 2상 A 단계는 투약 용량을 결정하도록 고안된 임상시험이다. 


2상-B 단계

  • 2상 B 단계는 효율성을 평가하도록 고안된 임상시험이다. 


이렇게 A, B 단계로 세부적으로 나누기도 하지만 이 구분이 반드시 필요한 것은 아니다. 


4. 3상 


목적 : 약 효과 확증

  • 3상은 확증 임상시험 (Confirmatory Clinical Trial) 이다. 데이터를 바탕으로 해당 약이 효과가 있는지를 확증하는 단계이다. 2상에서는 단지 3상으로 넘어갈만한 근거를 확보하기 위한 단계였다면, 3상은 실제로 이 약이 효과가 있다는 것을 확증하는 단계로, 3상에서 효과가 확증되면 그 약은 실제로 효과가 있는 것으로 간주된다. 3상은 임상시험에서 가장 시간과 비용이 많이 소모되는 단계이다. 일반적으로 3상에서만 수백억원 이상이 든다. 
  • 제약회사는 임상 시험을 디자인 하고, 2상의 결과, 법 등을 고려하여 연구자가 정한 연구자가 원하는 차이의 정도 (델타), 유의수준(알파), 검정력(베타, 파워) 를 바탕으로 샘플 사이즈를 계산한다. 샘플 사이즈는 연구 디자인에 따라서도 달라진다. 

5. 4상 

목적 : 장기간 투약시 약효, 부작용 평가
  • 3상 결과 해당 약이 실제로 효과가 있다는 것이 확증되면 4상으로 넘어간다. 4상은 시판 후 조사과정(Post-marketing Surveillance; PMS) 이라고도 부른다. 유통 과정에서 약의 효과와 부작용 등을 평가하고 개선점을 찾기 위한 과정이다. 3상에서 보기 힘든 장기간 투약 효과를 확인할 수 있다. 


Chip-seq 의 기초 이해 


Genome 상의 단백질을 코딩하는 부분이 아닌 지역 (non-coding region) 에서 기능적인 부분을 찾기 위한 노력들이 이루어지고 있습니다. genome 연구 초창기에는 non-coding region 이 junk DNA 즉, 아무런 기능을 하지 않는다고 잘못 알려져 있었던 적도 있지만, non-coding region 에 위치한 다양한 기능 부위 (functional elements)들은 유전자 발현에 중대한 영향을 미치며, 이것이 인간의 복잡성을 결정하는 것으로 이해되고 있습니다. 이런 의미에서 non-coding region 을 이해하는 것은 중요하며, 이를 위해 다양한 실험 데이터가 모이고 있습니다. 그 중 하나가 바로 chip-seq 데이터입니다. 





Chip-seq의 핵심



  • Chip-Seq = Chip + Next Generation Sequencing 
  • Chip = Chromatin + Immunoprecipitation 


Immunoprecipitation (면역침강반응) 어떠한 sample에서 '특정 물질' (target) 을 찾기 위해 그 특정물질의 항체 (antibody) 를 이용하는 것입니다. Chip은 Chromatin (염색질) 에 Immunoprecipitation 을 하는 것입니다. 이것이 Chromatin 에 적용되는 경우, antibody 를 이용해 DNA 에 특정 위치에 결합한 단백질 (ex. transcription factor) 을 찾을 수 있습니다. 이 부분을 침강시킨 후, NGS 기술을 이용해 시퀀싱하는 것이 Chip-seq 입니다. 


Chip-seq 의 종류 


ChIP–seq and beyond: new and improved methodologies to detect and characterize protein–DNA interactions (Nature review genetics, 2012)


  • Transcription factor chip-seq 
  • Histone modification chip-seq 


Chip-seq은 크게 transcription binding site (tfbs) 를 찾기 위한 tf chip-seq 과 histone modification site 를 찾기위한 hm chip-seq 으로 나뉩니다. 두 경우 실험적으로 약간의 차이가 납니다 (위 그림 참). 또한 sequencing 이후에, 관찰되는 결과도 상당히 다른데, tf chip-seq 의 결과 나타나는 peak는 수십에서 최대 수백 서열 정도 (narrow)이지만, hm chip-seq 의 경우, 많게는 100만 서열 단위까지 길게 나타납니다 (broad peak).



Chip-seq control 


Chip-seq의 목적 중 하나는 genome 상의 특정 기능을 수행하는 부분: tfbs 또는 hm 을 찾기 위한 것입니다. 이를 chippeak finding 라 하는데, 이를 위해 control 데이터가 필요합니다. control 데이터가 필요한 이유는 간단히 말해 Chip-seq 에서 발생하는 noise 때문인데, noise 는 실험적 noise 와, 실제 생물학적 noise 로 나누어볼 수 있을 것 같습니다. 실험적 noise 의 경우, 해당 target 이 아닌 genome  상의 다른 부분이 sequencing 이 된 것입니다. 약 80~90 % 정도가 target 이 아닌데도 sequencing 이 된 부분 입니다. 이를 background noise 라고도 부릅니다. 생물학적인 noise 의 경우, genome 상의 특정 부분 예를 들어 repetitive sequence 가 있는 부분은 실험적인 이유에서가 아니라 그냥 reference genome 에 alignment 가 잘 되기 때문에 peak 처럼 보이기도 합니다. 따라서 이러한 noise 들을 보정하기 위해 control 데이터가 필요합니다. 


control 데이터는 크게 "input"과 "mock" 으로 나뉩니다. 


  • input: cross-link와 sonication 은 됐는데, immunoprecipitation 안된 것 
  • mock: IgG 라고하는 특별한 항체를 이용해 genome 상의 random 한 부분이 immunoprecipitation 되도록한 것 


이 중에서 일반적으로 input 이 control 로 많이 쓰입니다. 



Peak Finding


Chip-seq 도 NGS 이기 때문에, 최종 결과로 fastq 파일이 나옵니다. 이를 reference genome 에 alignment 를 해서 bam 파일이 나오게 되는데, 이 bam 파일에서 chip-seq 의 한가지 목적 = functional region 찾기를  하기 위한 것 peak finding 입니다. peak 가 있는 부분은 더 많이 sequencing 이 되었다는 것이고, chip-seq 에서 immunoprecipitation 이 많이 된 부분이기 때문에 알고자 하던 부분 (tfbs, hm)일 가능성이 크기 때문입니다. peak finding 을 할 때 여러가지 이슈가 있기 때문에 여러 복잡한 알고리즘들이 많이 쓰입니다. 이러한 알고리즘을 종합해서 구현해 놓은 tool 중 가장 많이 쓰이는 것이 MACS2 라는 Tool 입니다. Chip-seq 의 경우, single-end sequencing 이기 때문에 strand-dependant bimodality 의 문제가 생기는데, MACS 에서는 이를 보정하기 위한 shifting 모델을 사용하고, local dynamic 파라미터를 활용한 포아송 분포 모델을 통해 특정한 크기를 갖는 window로 genome 을 훑으며 통계적으로 유의한 지역 (peak) 을 찾습다. 


참고

http://epigenie.com/wp-content/uploads/2013/02/Getting-Started-with-ChIP-Seq.pdf

'Domains > Bioinformatics' 카테고리의 다른 글

Functional genomics - Chip-seq 의 기초  (0) 2019.09.05
Samtools, Bcftools 설치 방법  (0) 2018.05.14
GATK4 설치  (0) 2018.02.20
Chip-seq 데이터를 통한 binding motif 분석 [rGADEM]  (0) 2018.01.13
Variant calling 이란?  (0) 2017.11.20
IGV Tutorial [BAM File]  (0) 2017.10.16

Post-GWAS 와 Functional Genomics 의 이해


Post-GWAS Era: From Association to Function 논문을 기초로하여 Post-GWAS 와 functional genomics 의 등장에 대해 포스팅해보려고합니다. 


DNA 의 구조 발견 및 코돈 


DNA (deoxyribonucleic acid) 의 구조와 유전암호 (genetic code, codon) 이 발견된 이후 수십년간, 인간 유전학 연구는 단백질 코딩 유전자 (protein-coding gene) 의 기능과 구조를 이해하고 왜 단백 코딩 유전자에 변이가 생겼을 때, 질병이 발생하는지에 대한 연구가 중점적으로 이루어져 왔습니다. Central dogma 라고 불리는 생물학의 중심 원리는 유전자가 mRNA 로 전사 (transcribe), 다시 mRNA는 단백질로 번역(translate) 된다고 상정하고 있습니다. 직관적인 유전암호 덕분에 단백질 코딩 유전자에 변이가 생겼을 때, 최종 산물인 단백질의 아미노산 구성에 어떤 영향이 미칠지 쉽게 예측할 수 있었습니다. 


멘델리안 질병


가족 직접성 (Familiar aggregation) 을 강하게 보이고, 가족 내에서 질병이 예측할 수 있는 패턴으로 관찰되는 멘델리안 질병 (Mendelian disease)은 한 유전자의 돌연변이가 생겨 발생합니다.1983년 헌팅턴 질병의 유전적원인을 찾은 것을 시작으로, 다한 멘델리안 질병의 인과성이 있는 유전적 변이를 positional cloning 방법을 통해 잇달아 발견했습니다. 이를 통해 멘델리안 질병에 대한 유전적 원인을 어느정도 이해할 수 있었습니다. 


복합 질환과 전장 유전체 분석


하지만 현재 흔하고, 질병 부담이 큰 질병, 예를 들어 심혈관 질환 (cardiovascular disease), 암 (cancer), 알츠하이머 병 (Alzheeimer's disease), 파킨슨 병 (Parkinson's disease), 당뇨병 (type 2 diabetes) 등의 질병의 경우, 하나의 유전자의 돌연변이로 인해 발생하지 않습니다. 이러한 질병을 "복합질환 (complex trait)" 라고 하는데, 복합질환은 여러 유전 요인 및 환경 요인과 그들의 조합에 의해 영향을 받아 발생합니다. 


복합질환과 연관성이 있는 DNA 의 돌연변이 (genetic variant) 를 찾기 위해 전장 유전체 분석 (genome-wide association study, GWAS) 이 2005 년부터 시작됩니다. 최초의 GWAS 연구라고 불리는 연구는 2005년 science에 출간된 나이 관련 황반병성 관련 연구입니다. 


Complement Factor H Polymorphism in Age-Related Macular Degeneration, Science, 2015)


complement factor H 유전자 주위의 유전적 변이를 나이관련 황반 변성과 연관시킨 이 연구를 시작으로해서 전세계 수많은 연구자들이 복합질환과 연관성이 있는 유전적 변이를 찾기 위한 수많은 전장 유전체 분석 연구를 수행하였습니다. 전장유전체분석은 통계적으로 유의하게 질병과 연관성이 있는 유전적 변이를 찾는 방법이며, 일반적으로 단일염기 다형성 (Single nucleotide polymorphism) 이 많이 사용됩니다. 같은 질병을 대상으로한 GWAS 연구에서 반복적으로 통계적으로 유의하다고 발견되면, 이 변이는 실제 연관성이 있는 (질병의 위험도를 높이는) 변이라고 생각해볼 수 있었습니다. 


하지만 문제는, GWAS 연구의 결과로 발견된 변이 (GWAS Hit) 라도 그것이 실제 생물학적으로 질병의 위험도를 높이는 변이가 아닐 수 있다는 것입니다. 어떤 변이가 질병과 연관성이 있다는 사실은, 해당 인구집단 내에서 개인의 질병 위험도를 계산하는데에는 유용하게 쓰일 수는 있어도, 이것을 통해 질병의 생물학적인 메커니즘을 이해할 수 있는 것은 아니었습니다. 이유는 다음과 같습니다. 


1) 많은 GWAS Hit 들이 실제 연관성이 있는 변이 (causal variant) 와 Linkage disequilibrium 관계에 있음

2) 많은 GWAS Hit 들이 non-coding region 에 위치 (> 90%)해 있는데 이 지역이 무엇을 하는지 모름 


1) Linkage disequilibrium 이란 genome 상의 특정 부분의 서열 (genotype) 이 다른 genotype 과 연관성이 있는 것을 말합니다. LD 가 있는 것은 두 genotype 을 골랐을 때, random 하게 나오는 쌍의 빈도보다 얼마다 deviation 되어있는지를 통해 판단하며, LD 는 genome 상의 실제 거리가 가까울 수록 높습니다. 따라서 causal variant 과 LD관계에 있는 변이들이 GWAS hit 으로 나오게 되는 것입니다. 만약 genome 상의 X 라는 위치에 AA, Aa, aa 3개의 genotype 이 있을 수 있는데, a가 causal variant 라고 할 때, X와 LD 관계에 있는 Y 에 b 라고 하는 대립유전자가 a와 연관이 되어있으면, b도 GWAS hit 으로 나올 가능성이 큽니다. 그리고 GWAS 자체가 imputation 이라는 방법을 이용해서 LD 를 '이용' 해서 통계적으로 유의한 variant 를 찾아내기도 합니다. 


2) 90 % 이상의 GWAS hit 들이 non-coding region 에 위치해 있습니다. 즉, genetic code를 이용해서 해당 변이가 어떤 결과를 불러오는지 알아낼 수 있는 protein coding region 에 비해 non-coding region 은 이러한 해석이 불가능했습니다. 한 가지 가능한 해석은 이 지역이 유전자 근처에 위치해 유전자 발현에 영향을 주는 지역 (cis-regulatory region, cRE) 이라는 것입니다. 이것이 가능한 해석이긴 했지만, 진핵생물의 경우, 전사 조절 (transcriptional regulation) 이 워낙 복잡하기 때문에, 그것이 LD 인지, cRE 인지 알기가 힘들었습니다. 유전자 발현은 조직별로 다르게 나타나며, 어떠한 variant가 transcription 에 영향을 주는 경로는, DNA methylation, histone modification, splicing, transcription factor binding intensity change, mRNA stability 등으로 매우 다양합니다. 


Functional genomics 


Functional genomics의 최종적인 목적은 genome 상의 element 들이 어떤 기능을 하는지 알아내고자 하는 것입니다. GWAS hit 들의 많은 부분이 eQTL 과 겹칩니다. 하지만 문제는, variant가 expression 을 '아주 조금' 변화시킨다는 것입니다. 대부분의 variant 들인 target gene 의 expression을 평균적으로 2배 미만으로 증가시킵니다. 그리고 왜 expression 에 영향을 주는지 확실하게 밝히기가 어렵습니다. 현재까지로는, 복합질환의 경우 variant가 최종 표현형 (phenotype)인 질병에 영향을 주는 메커니즘이 수많은 variant 가 target gene의 expression 에 조금씩 영향을 주고, 이것이 최종적으로 질병 발생의 위험도를 증가시키는 것으로 이해할 수 있습니다. functional genomics 에는 많은 분야가 있지만, 아래 두 관계에 대한 생물학적인 이해를 하고자하는 것이 중요해보입니다. 


1) variant -> target gene expression 

2) target gene -> phenotype 


genotype-phenotype 관계를 생물학적 기능을 이해함으로서 풀고하는 분야가 바로 functional genomics 라고할 수 있습니다. 이를 위해 다양한 실험 데이터 (chip-seq, 5c, hi-c, dnase-seq ...)와 생물정보학적 방법이 동원되고 있습니다. functional genomics 의 한가지 특징은 전통적인 'gene-by-gene 분석보다는 NGS 등을 이용한 genome-wide 분석이 장려된다는 것입니다. 


Functional genomics (Wikipedia, Sep, 2019)

Functional genomics is a field of molecular biology that attempts to describe gene (and protein) functions and interactions. Functional genomics make use of the vast data generated by genomic and transcriptomic projects (such as genome sequencing projects and RNA sequencing). Functional genomics focuses on the dynamic aspects such as gene transcription, translation, regulation of gene expression and protein–protein interactions, as opposed to the static aspects of the genomic information such as DNA sequence or structures. A key characteristic of functional genomics studies is their genome-wide approach to these questions, generally involving high-throughput methods rather than a more traditional “gene-by-gene” approach.


Functional genomics 의 대표적인 데이터베이스


  • GTEX (Genotype-Tissue Expression): GTEX 는 genotype 과 tissue specific gene expression 을 저장하고 있는 DB 입니다. 50 개 이상의 tissue 에 대한 gene expression level 과 genotype 데이터를 갖고 있습니다. 이 때 어떤 genotype 이 어떤 tissue 의 어떤 gene 의 expression 에 영향을 주는 것이 통계적으로 관찰되면 이를 eQTL (expression quantitative trait loci) 라고 부릅니다. 실제로 많은 GWAS hit 들이 eQTL 과 겹치는 것으로 나타납니다 (ASHG, 2018). 
  • ENCODE (Encyclopedia of DNA Elements): genome 상에서의 transcription, transcription factor association, chromatin structure, histone modification을 밝혀내기 위한 프로젝트입니다. 이러한 genome 상에서의 기능적인 요소들을 식별함으로써 현재 인간 genome의 80%의 부분이 최소 1개 이상의 biochemical function 을 한다고 생각되어지고 있습니다. 

genome 상의 non-coding region 의 functional element 를 찾기 위한 ENCODE 프로젝트


의생명 분야에서의 신경망 모델 (Deep learning in biomedicine)

본 포스팅에서는 Nation biotechnology에서 publish된 논문을 기반으로 하여 의생명 분야에서 적용되고 있는 신경망 모델 (Deep learning) 에 대해서 살펴보려고합니다. (https://www.nature.com/articles/nbt.4233)

자율 주행차, 게임, 음성 인식, 텍스트 인식 등 Deep learning은 인공지능 연구자들과 일반 대중들의 마음을 사로잡고 있습니다. 최근에는 Deep learning은 임상 의사들의 관심도 끌고 있습니다. 지금까지의 많은 분야에서의 AI를 통한 모델링의 목표는 인간 레벨의 인공지능 (human-level AI)였습니다. 이미 사람이 잘 하는 것들을 높은 정확도로 모방하는 것입니다. 

이러한 분야들과 의생명 분야 (Biomedical) 데이터의 차이점은 의생명 분야의 데이터는 사람도 이해하기 힘들다는 것입니다. 예를 들어, genome 데이터는 사람이 맨눈으로 보고 바로 이해하기 어렵습니다. Biomedical 분야에 AI를 적용하는 것의 한가지 목표는 이렇게 사람이 쉽게 하기 힘든 분야에서 AI가 추론을 통해 사람에게 통찰력을 전해줄 수 있을까 하는 것입니다. 

딥러닝과 Biomedical 분야의 간략한 역사


실제로 이러한 것들을 실현 가능하도록하는 기회가 만들어지고 있습니다. 큰 규모의 Biomedical dataset들이 수집되고 있기 때문입니다. 예를 들어, NGS 데이터를 들 수 있습니다. Biomedical 분야에 Deep learning을 적용한다는 것은, 다양한 분야에서 각광 받고 있는 AI의 방법론인 Deep learning 라는 도구를 이용해서 이 데이터들로부터 유용한 가치를 이끌어내고, 과학적인 발견을 하고자 하는 것입니다. 


NGS (Next-generation sequencing) 데이터의 증가




머신러닝과 Deep learning의 핵심 아이디어를 간단하게 이야기해보겠습니다. 간단한 모델, 예를 들어, Linear regression과 다르게 Deep learning은 조금 더 복잡하고 유연한 모델링을 할 수 있습니다. Label을 Input feature로 바로 mapping 하는 것이 아니라 intermediate variable을 만들고, 이 intermediate variable의 function으로 output을 예측하는 모델을 만드는 것입니다. Deep learning의 강점은 이러한 Feature (독립변수)와 Label(종속변수) 사이의 어떠한 복잡한 함수관계도 유연하게 모델링할 수 있다는 것이며, 이론적으로도 이것이 가능하다는 것입니다 (Universal approximation theorem). 1980-90년대쯤 이러한 복잡한 모델링이 대한 이론적이 이미 정립이 되어있었지만, 이를 실현 가능한 하드웨어 기술이 부족해 실현할 수 없었습니다. 현 시대에서는 이러한 복잡한 모델에서 계수를 찾는 것이 계산적으로 가능합니다. 이는 이러한 Deep learning model의 수많은 계수 추정을 효율적으로 할 수 있는 다양한 알고리즘 및 라이브러리들 (Pytorch, tensorflow) 의 등장과 GPU 등의 발전으로 인한 컴퓨팅 파워의 발전의 결과입니다.  


Shallow model vs. Deep model.
 


우선 Shallow model과 Deep model의 차이에 대해 간단하게 설명을 하고 넘어가려고 합니다. Linear regression의 경우, Input feature와 Label 사이의 Linear 한 관계를 가정합니다. 그래서 예측값은 Input feature와 Weight의 linear combination으로 만들어 집니다. (여기에 bias를 더해준 값이 됩니다.) 

하지만 딥러닝의 한 종류인 Multi-layer perceptron의 경우, Layer라는 개념을 도입해서 output을 바로 예측하지 않고, Intermediate variable들을 만듭니다. Deep learning 이란 이러한 Layer 구조를 도입하여 Input feature와 Label 사이의 복잡한 함수관계를 모델링 하는 것을 말합니다. 이러한 구조를 도입하면, X와 Y의 관계가 linear한 관계가 아닌 경우, 혹은 다양한 형태의 Interaction이 존재하는 경우에, Y를 Linear regression 보다 더 잘 예측할 수 있게 됩니다. 즉, Deep model은 bias를 줄인다고 할 수 있습니다. 반면, Overfitting 등의 문제로 variance가 커질 수 있다는 것이 Deep model의 단점이기도 합니다. 


Genome sequencing 데이터에 대한 신경망 모델의 응용


다음으로는 Biomedical 데이터의 한 종류라고 할 수 있는 Genome sequencing 데이터에 어떻게 Deep learning이 어떻게 적용되는지를 알아보겠습니다. 예를 들어, motif detection (transcription factor binding site detection) 같은 분야를 예로 들어보면, 이 분야에는 Bioinformatics 분야에서 전통적으로 자주 사용되었던 Position weight matrix라는 방법이 있습니다. 어떤 문제에 대해 이러한 DNA Sequence들이 알려져 있을 때, 이것에 기반하여 아래와 같은 matrix를 만듭니다. 

Position weight matrix (position probability matrix)


이 Matrix는 해당 위치에서 어떤 sequence가 발견된 확률을 나타내는 matrix입니다. 이것을 기반으로 새로운 sequence가 들어왔을 때, 어떤 score를 내주고 이 score를 기반으로 sequence에 존재하는 어떤 pattern을 detection 할 수 있습니다. 이것은 Sequence와 어떤 pattern을 직접적으로 mapping 시킨 것으로 볼 수 있습니다. 반면 Deep learning에서의 방법은 layer를 더 만들어, Sequence와 어떤 pattern 사이에 존재할 수 있는 복잡한 관계를 모델링할 수 있습니다. 


이 그림은 CAACTT 라고 하는 sequence pattern을 찾는 CNN Model을 나타낸 것입니다. 물론 실제 상황에서는 CAACTT라고 하는 Pattern을 우리가 알 수는 없습니다. Deep learning에서는 수많은 데이터를 주고, 그 속에서 CAACTT라고 하는 Pattern을 딥러닝이 직접 학습하도록 하는 것입니다. 그리고 딥러닝의 강점이 바로 이런 것입니다. CNN에 익숙하신 분들은 잘 아시겠지만, 이 것은 1-D Convolution에 Same padding을 적용한 것으로 볼 수 있습니다. 그림에 나와있듯, Filter size는 3으로 잡고, 총 Input sequence로는 18의 길이를 갖는 sequence를 넣어준 것입니다. 이것은 일렬로 죽 늘어선 1차원 공간상의 이미지로 볼 수 있습니다. 2차원 이미지에는 W-H-(RGB) 3개의 차원이 있다면, Genome data의 경우 W-(ATCG) 2개의 차원이 있는 것입니다. 

딥러닝을 통해 Sequencing 데이터에 무슨 일을 할 수 있는가?

다음으로는 이러한 Deep learning이 Biomedical 분야에 어떻게 적용되고 있는지를 설명하였습니다. genetic data에 어떻게 되고 있는지를 먼저 예로 들었습니다. 현재, Genotype-Phenotype 관계를 규명하는데 GWAS (Genome-wise association study) 라고 하는 도구가 사용됩니다. 수많은 샘플을 보아 variant랑 phenotype의 association을 통계적으로 보는 것입니다. GWAS를 통해 variant를 찾는 것에 추가적으로 variant의 function을 연구하는 것도 한 가지 주제입니다. 왜냐하면, GWAS를 통해 찾아낸 variant (SNPs)는 그것이 질병과 인과관계를 갖는다고 보기 어렵기 때문입니다. GWAS의 경우 Mendelian disease와는 다르게 LD, 작은 effect size, regulatory network의 복잡한 구조 등으로 인해 causal variant를 찾기가 힘듭니다. 몇몇 coding 지역에 위치한 causal variant는 코돈을 통해서 그 변이의 effect를 예측할 수 있지만, non-coding variant 같은 경우, 해석이 매우 어렵습니다. Deep learning은 이 분야에서 적합합니다. 바로 transcription, splicing, regulation 등의 Molecular phenotype과 genetic variant의 관계를 보는 것입니다. 

신경망을 통한 Molecular phenotype 예측 소프트웨어, 논문

1. SPIDEX
    DNA sequence → percent-spliced-in of cassette exons across tissues
2. DeepBind
    DNA and RNA sequence → transcription factor and RNA-binding protein binding
3. Basset
    DNA sequence → DNase hypersensitivity
4. DeepSEA and DanQ
    DNA sequence → transcription factor binding
5. TITER
    DNA sequence → translation initiation sites

이것들이 현재 논문으로 나와 있거나 소프트웨어로서 구현된 variant를 통해 molecular phenotype을 예측하는 구현체들입니다. 이러한 non-coding variant로부터 molecular phenotype을 예측하는 일에는 주로 CHIP-seq이나 DNase-seq 데이터를 트레이닝 데이터로 이용하며, DNA sequence로부터, transcription factor binding이나, DNase hypersensitivity (이를 chromatin feature 라고도 합니다.) 같은 것들을 예측합니다. 


DeepSEA (Deep learning based sequence analyzer)

DeepSEA는 Deep learning based sequence analyzer의 약자인데, Genome Sequence를 input으로 받아들여, variant의 effect를 chromatin에 미치는 영향을 바탕으로 예측합니다. ENCODE, Roadmap epigenomics 와 같은 genome의 function을 찾아내려는 목적을 갖고 수집된 데이터들, Chip-seq 또는 DNase-seq 데이터를 학습해, variant가 chromatin feature 에 미치는 영향을 학습한 후, 최종적으로 학습된 모델에 wild-type과 variant가 있는 두 개의 input을 주고, output을 뽑아내서 이 output의 비율로 그 variant의 effect를 예측하는 방식입니다. 


DeepSEA의 데이터 구축 (Ground truth) 및 딥러닝 모델 구조

DeepSEA의 데이터 구축 과정 및 모델 아키텍쳐입니다. 데이터 구축 과정에서는 총 919개의 chromatin feature를 학습하도록 Ground truth가 마련되습니다. 시퀀스를 통해 이것이 chromatin feature (예를 들어, Dnase hypersensitive site) 인가? 하는 것이 바로  Y, 즉 예측하고자 하는 것입니다. X로는 whole genome을 200bp 로 나눈 후, 이 시퀀스 중 절반 이상이 919개의 chromatin feature의 peak region에 포함되면 1 아니면 0으로 코딩되었습니다. 모델로는 Convolutional neural network를 사용하였고, Regularization을 위해 L2, L1 regularization, Dropout을 사용하였습니다. 



모델 구축


DeepSEA의 목적은 총 2개로 나눌 수 있습니다.


1. 해당 Variant가 Chromatin feature에 미치는 영향 파악, 이를 통해 variant의 각각의 chromatin feature (919개) 에 대한 기능을 파악할 수 있습니다.

2. 해당 Variant의 overall한 functional prediction 


1을 위해서 variant가 없는 sequence (1000bp 단위) 와 variant가 있는 sequence를 모델에 넣어서 log(P(reference)/P(alternative))를 통해 해당 chromatin에 variant가 미치는 영향을 파악합니다. 2를 위해서는 총919개의 chromatin feature에 대한 예측값과 함께 Evolutionary conservation score를 이용합니다. 저는 이 부분이 DeepSEA 가 대단한 부분이라고 생각합니다. 기존에 알려진 과학적 지식을 Deep learning 모델에 통합하여 더욱 잘 functional score를 예측하는 것이죠. 일종의 앙상블 모델이라고 볼 수 있습니다. 이를 통해 딥러닝 모델로부터 발생할 수 있는 오버피팅을 방지하고 더욱 robust한 모델이 될 수 있습니다. 



모델 테스트


위 링크에 방문하면 실제로 웹으로 구현된 DeepSEA 를 이용해볼 수 있습니다. variant를 나타내는 VCF file을 인풋으로 넣어주면, VCF file에 있는 각각의 variant에 대해, 919개의 chromatin feature에 대한 영향과, overall한 functional prediction score를 구합니다. 

신경망을 통한 Phenotype 을 예측하는 것이 가능한가?

Sequence를 통해 바로 phenotype을 예측할 수 있지 않겠냐 라는 의문이 들 수 있습니다. 물론, 최종적으로 나아가야할 목표는 sequence를 통해 phenotype 보는 것입니다. 하지만 아직까지 딥 러닝이 그 정도의 수준은 아닌듯 합니다. Molecular phenotype은, genotype에서 phenotype으로 이어지는 복잡한 메커니즘 중 최하단에 있다고 말할 수 있는 것이고, 아직까지 그것조차 제대로 해결되어지고 있지 않습니다. 그 다음으로 해결할 과제는 network-level gene interaction, physiological process 등 여러가지 해결해야할 과제들이 남아있습니다. 하지만 본 논문에서는 궁극적인 목표는 딥러닝에 genotype-phenotype 데이터를 학습시키고, 여기에 여러가지 생물학적 지식, 실험 데이터를 합쳐서 바로 phenotype을 예측하는 것이라고 주장하고 있습니다. 저는 DeepSEA에서의 사례처럼 Evolutionary conservation score 처럼, 학습된 딥러닝 모델에 이러한 explicit한 "지식" 들을 어떻게 통합하냐가 하나의 해결해야할 과제로 보입니다.


Medical Image에서의 신경망의 응용

다음으로는 medical image 분야에서의 딥러닝의 응용입니다. 이 분야는 딥러닝이 가장 직접적으로 응용이되고 있는 분야이고, 실제로 임상에서 활용이 되고 있는 분야이기도 합니다. Medical image의 특징은, Multi-modal, 즉 MRI, X-ray, CT 등 다양한 방법으로 이미지가 얻어지고, 같은 MRI 데이터라도 세팅값, 기기 종류에 따라 intensity가 모두 다릅니다. 또한, CT 같은 경우 3D 이미지 이기 때문에 다루기 까다롭습니다. 하지만 그럼에도 불구하고 딥러닝이 가장 성공을 한 분야이기도 합니다.

신경망을 Medical Image에 적용할 때 발생하는 이슈들

1. 이미지에 대한 높은 수준의 해석은 Automation이 힘듭니다. 이는 사람에 있어서도 사람마다 주관적인 기준이 있기 때문에 Intra-class variation이 크기 때문입니다. 

2. 또한 딥러닝 자체가 블랙박스의 성격을 띈다는 것입니다. 특히, 이미지 진단의 경우에는 이해 관계가 매우 크기 때문에, 딥 러닝의 결과를 어떻게 설명하느냐가 매우 중요합니다. 이 논문에서는 딥러닝이 그렇게 예측한 이유, 그 지역을 highlighting을 해주는 등의 전략이 필요하다고 언급하였습니다.

3. 세 번째는 사람의 예측값을 Ground truth로 해서 트레이닝 했을 때, 사람의 성능을 뛰어넘기 힘들다는 것입니다. 물론, 딥러닝은 계속 같은 값을 내기 때문에 Reliability는 좋습니다. 다만, 그 트레이닝 데이터가 한 사람의 기준에만 맞춘 경우, 다른 데이터를 대상으로 했을 때, bias가 생길 수 있다는 것입니다. 그러므로 Multi-expert consensus가 중요하다고 할 수 있습니다. 

국내 Medical Image 응용

국내에서는 2018년도에 Vuno에서 최초로 식약처에서 의료기기 사용허가를 받았습니다. 성장기 소아에서 X-ray 영상에서 인공지능을 통해 골연령을 자동으로 측정해주는 Vunomed-Boneage 소프트 웨어를 통해서입니다. Vuno에서는 이 방법의 효율성을 보이기 위해 임상시험 논문을 냈습니다. 결과에 따르면 AI가 2명의 의사들보다 consensus와의 concordance가 더 좋았고, 특히 의사가 AI 를 보조적으로 활용했을 때, 그렇지 않았을 때보다 concordance가 증가하는 결과를 보였습니다. (이 부분에 대해 궁금하신 분들은 최윤섭님의 유투브를 참고하시기 바랍니다. https://www.youtube.com/watch?v=wqXzmChH3N0&t=349s)




딥러닝과 실제 세계의 괴리

다음으로는 Deep learning이 실제 현실에 사용되었을 때 발생할 수 있는 문제점에 대한 것입니다. 

1. 가장 중요한 것은 반드시 Deep learning의 성능이 보장 되어야한다는 것입니다. 
    • 이를 위해서는 Performance 측정을 해야합니다. C.V 나 hold out validation 같은 방법을 통해 충분한 validation이 이루어져야 합니다.
    • 두 번째는 Deep learning을 Overfitting이 큰 문제이기 때문에, 모델의 불확실성이 어느정도인지를 보여주어야 한다는 것입니다. 통계적인 모델처럼 딥러닝은 결과의 신뢰구간을 통계적인 방법으로 얻어낼 수 없기 때문에 부트스트랩이나 베이지안 방법 등을 통해 모델의 신뢰구간을 추정할 수 있습니다. 

2. 또한 딥러닝의 문제점은 딥러닝이 목표하는 바와 실제 목표하는 바가 다를 수 있다는 것입니다. 이것이 Target mismatchloss function mismatch 입니다. 예를 들어, 임상에서는 종양의 크기가 일정한 임계치를 넘는 것이 중요한데, 딥러닝 모델을 트레이닝 할 때는 Intersect over union을 최소화 하기 위해 트레이닝을 보통 이용하곤 합니다. 이 경우에 딥 러닝 모델은 실제로 원하는 결과에서 bias가 생길 수 있습니다.

3. 다음으로는 오로지 딥러닝은 현재 이용가능한 데이터에 기반하여 예측 모형을 만드는 것이기 때문에 selection biasconfounding 이 생길 수 있고, 이 경우에 Causality 는 추론하는것이 매우 힘들다는 것입니다. 예를 들어, 여자라는 단어는 인문학, 남자라는 단어는 이공계와 연관시키거나, 흑인을 백인보다 더 위험하다고 학습할 수 있습니다. 


신경망 모델이 신뢰를 얻기 위해서는?

1. Performance를 보장해야합니다.
    • Stakeholder가 원하는 메트릭을 제공해야 한다.
    • Performance를 보장하기 위해서는 데이터 가공, 모델 선택, 오버피팅, 아웃라이어 제거, 혼란 변수등을 잘 해야한다는 것입니다.
    • 원하는 메트릭이 Stakeholder 마다 다르기 때문에 여러가지 메트릭에 대해 성능을 테스트해서 로버스트 한지를 봐야합니다.


2. Stakeholder가 그것을 사용할만한 Rationale이 있어야합니다.

  • 이들은 Small-test를 한다거나 직관, 사고실험 등으로 신뢰할만한지를 판단하기 때문에 이런것들에 도움을 주어야 합니다.
  • 가장 좋은 Rationale은 인과적인 설명입니다. 그래서 causal relationship 에 대한 설명이 반드시 이루어져야 합니다.

결론

1. 의생명 분야는 복잡하기 때문에 정확하게 이해하기 힘들고, 그렇기 때문에 AI의 서포트가 필요합니다.

2. 딥러닝은 수많은 데이터셋을 포함하여 복잡한 모델링을 하는데 유망한 방법이고, 그렇기 때문에 Deep learning 은 의생명 분야에서 중요한 역할을 할 것입니다. 



SAMtools BCFtools 1.8버전 설치


다운로드 링크

http://www.htslib.org/download/


설치 절차

1. 위 링크에서 우분투 운영체제 wget을 통해 samtools, bcftools tar.gz2 파일을 다운받는다.

2. tar -xvf [파일명] 을 통해 압축을 해제한다.

3. 이 때, 압축 해제는 아무데나 해도된다.


cd samtools-1.x    # and similarly for bcftools and htslib
./configure --prefix=/where/to/install
make
make install

4. 이후 /where/to/install/bin에 samtools binary 파일이 생성된다.

5. /usr/bin 에 심볼릭 링크를 만들어준다.


sudo ln -s /where/to/install/bin /usr/bin/samtools


6. samtools --version  명령어를 통해 잘 설치 되었는지 확인한다.


BCFTools도 이와 마찬가지 방법이다. 폴더 명만 바꿔주면된다.


'Domains > Bioinformatics' 카테고리의 다른 글

Functional genomics - Chip-seq 의 기초  (0) 2019.09.05
Samtools, Bcftools 설치 방법  (0) 2018.05.14
GATK4 설치  (0) 2018.02.20
Chip-seq 데이터를 통한 binding motif 분석 [rGADEM]  (0) 2018.01.13
Variant calling 이란?  (0) 2017.11.20
IGV Tutorial [BAM File]  (0) 2017.10.16
제목

부모-자식 데이터를 통한 유전율 추정


본 포스팅은 부모-자식 데이터를 통해 heritability를 추정하는 것을 포스팅한다. 아래 데이터는 parent와 child의 height를 나타내는 수치이다. 옥수수의 키라고 생각하자. 알고 싶은 것은 child의 키가 유전적 요소로 설명되는 정도이다. 우리는 이 수치를 heritability(h^2)라는 값으로 표현한다. 데이터는 이곳에서 다운로드 할 수 있다.


\[ h^2 = \frac{V(G)}{V(Y)}\]

library(data.table)
## Warning: package 'data.table' was built under R version 3.4.3
load("C:\\workspace\\r\\genetics\\data\\mod7_data.R")
  head(Galton)
##     parent child
  ## 1 71.40788  61.7
  ## 2 68.57945  61.7
  ## 3 64.33681  61.7
  ## 4 62.92260  61.7
  ## 5 62.21549  61.7
  ## 6 67.16524  62.2

데이터에 약간의 random error를 주어 아래의 그래프를 통해 표현해보자.

plot(Galton$parent+rnorm(928,0,.1),Galton$child+rnorm(928,0,.1),xlab="Father's Height",ylab="Child's Height")
  abline(v=mean(Galton[,1]),col=2,lty=3,lwd=3)
  abline(h=mean(Galton[,2]),col=2,lty=3,lwd=3)
  abline(a=0,b=1,col=2,lty=3,lwd=3)

summary(lm(Galton$child~Galton$parent))
## 
  ## Call:
  ## lm(formula = Galton$child ~ Galton$parent)
  ## 
  ## Residuals:
  ##     Min      1Q  Median      3Q     Max 
  ## -7.8050 -1.3661  0.0487  1.6339  5.9264 
  ## 
  ## Coefficients:
  ##               Estimate Std. Error t value Pr(>|t|)    
  ## (Intercept)   36.87187    1.98827   18.55   <2e-16 ***
  ## Galton$parent  0.45700    0.02909   15.71   <2e-16 ***
  ## ---
  ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
  ## 
  ## Residual standard error: 2.239 on 926 degrees of freedom
  ## Multiple R-squared:  0.2105, Adjusted R-squared:  0.2096 
  ## F-statistic: 246.8 on 1 and 926 DF,  p-value: < 2.2e-16

회귀계수가 0.457이다. 이 때, 유전율은 0.457*2 = 약 92%로 추정된다. 왜 그런지 살펴보기 위해 우선 beta의 추정치를 아래와 같이 회귀식의 양변에 Cov(, X)를 취해 구해보자.


\[ Y = \alpha + \beta X \] \[ Cov(Y, X) = \beta Cov(X,X) \] \[ \hat{\beta} = \frac{Cov(Y,X)}{Var(X)} \]

Phenotype Y에 대해 아래와 같은 일반적인 Phenotype에 대한 모델을 세우자. 이 때, A,D,C,E 각각의 컴포넌트들에 대한 것은 나중에 살펴보고 i, j 두 개체의 Covariance만 살펴본다. A : additive effect D : dominance effect C : shared environment effect E : residuals \[ Y = A + D + C + E\] r은 relatedness, k2는 genome상의 IBD2의 비율, a는 shared environment를 나타내는 수치이다. 만약 shared environment이면 a=1, 아니면 a=0이다. 



이 Covariance 모델은 어디까지나 가정이다. 이 가정 하에서 각각의 Variance를 추정하고 이를 통해 heritability를 추정하게 된다.

\[ E[Cov(Y_i, Y_j)] = rVar(A) + k_2Var(D) + aVar(C)\]

이제 현재 데이터에서 위 식을 적용하자. 이 때, r=0.5, k2=0, a=0을 가정하자. (부모-자식 간의 IBD2=0이므로 k2=0이다. ) 그러면 랜덤으로 i번째 부모-자식 pair를 골랐을 때, Covariance 모델은 아래와 같다. (P : Parent, C : Child의 약자)


이러면 Var(D)가 사라지기 때문에 우리는 쉽게 Var(A)를 데이터를 통해 추정할 수 있다.

\[ E[Cov(P_i, C_i)] = 0.5Var(A)\] \[ Var(A) = 2E[Cov(P_i, C_i)] \]

print(var(Galton$parent))
## [1] 6.389121
print(var(Galton$parent, Galton$child)) # Sample Covariance
## [1] 2.919806

따라서 위 데이터에는 D(Dominance effect가 없으므로 아래와 같이 유전율을 추정할 수 있다.) \[ h^2 = \frac{V(G)}{V(Y)} = \frac{V(A)}{V(P)} \]

따라서 2.91*2 = 5.82 = Var(A) 이다. Var(P) = 6.39 (Phenotype의 분산을 V(P)로 추정) 이므로 이 모델하에서 추정한 유전율은 아래와 같다.

\[ \frac{V(A)}{V(P)} = 5.82/6.39 = 0.91 \]

print(paste0("Heritability : ", 2*var(Galton$parent, Galton$child) / var(Galton$parent)))
## [1] "Heritability : 0.913992906289406"

따라서 부모-자식 데이터에 이러한 모델을 통해 유전율을 추정할 때 유전율은 회귀계수의 2배를 해주면 된다.


참고

https://jvanderw.une.edu.au/AGSCcourse.htm


인공지능, 머신러닝은 더 이상 현실 세계와 동떨어진 이야기가 아니다. 헬스케어 분야를 리드하는 기업들은 인공지능, 머신러닝 기술들을 자신의 분야에 이미 적용시키고 있다. 이는 AI 기술들이 헬스케어 분야에 실용적으로 적용되고 있다는 것을 뜻한다. 회사들은 AI를 활용하여 자신들의 서비스를 개선하고, 수익을 증대하며 발생할 수 있는 리스크를 줄인다. 본 포스팅에서는 AI가 헬스케어 분야에 적용되어 불러올 수 있는 사회적 가치와 응용 사례를 살펴보려고 한다.


AI FOR GOOD


기술은 그 자체로도 중요하지만 사회적으로 그 기술을 활용하여 무언가의 이득을 얻을 때 그 가치가 가장 크다고 생각한다. 예를 들어, 기존에 해결할 수 없던 문제를 해결한다거나, 어려웠던 문제를 더 쉽게 만든다거나, 돈을 더 벌어준다더가 하는 것이다. AI FOR GOOD 이라는 말은 이러한 여러 사회적 가치 중 "공익"에 관한 것이다. 인공지능이 헬스케어분야에 적용하는 것의 가장 큰 가치는 바로 공익의 증진이다. AI의 헬스케어 적용은 기존의 헬스케어 분야에서 기존의 해결하기 어렵거나, 해결하는데 시간이 오래걸렸던 문제를 해결하고, 가속화하여 공익의 증가에 기여한다. 


AI-based Medicine을 통한 의학 분야의 돌파구


Accenture에 따르면, 현재 가장 큰 가치를 갖고 있는 기술들은 로봇 보조 수술, 가상 환자 돌봄 서비스(virtual nursing assistant), 행정 보조 기술 등이다. 이는 빅데이터, 인공지능 등의 키워드가 뜨기전부터 의학 분야에 적용되어온 기술들이다. 하지만, 의영상 분야도 큰 가치를 갖고 있다. 왜냐하면 취약 계층의 경우, 질병을 진단 받을 때, 의영상 진단 기술의 도움을 받기 힘들다. 전문가의 진단은 비싸며, 일정 수준 이상의 수요를 필요로하기 때문이다. 이러한 취약 계층에 AI 기반의 의영상 진단 기술이 적용될 경우, 공익에 큰 기여를 할 수 있다. 본 포스팅에서는 AI 기반 의료의 실제 사례를 몇 가지 살펴보려고 한다. 


AI 기반 의료의 실제 사례


- 개발 도상국 국가에서 X-RAY를 결핵 환자 발견



의영상 이미지에서 무언가의 패턴을 찾는 것은 가장 유망하며, 실제로 AI가 많이 적용되고 있는 분야이다.  많은 연구자들이 이러한 AI 기반의 의영상 진단 기술을 연구하고 있다. (원논문) 이러한 기술들이 개발 도상국 국가에서 활용된다면, 영상의학 전문의의 도움 없이도 결핵에 걸린 환자를 발견해 낼 수 있다. 또, 한 국가의 여러 지역에서 이런 기술을 적용한다면, 결핵 취약 지역을 발견해 낼 수 있다. 만약 결핵 예방, 치료 사업을 한다고 하면, 이러한 방식의 접근 법을 통해 정책의 우선순위를 결정할 수도 있다.



- 응급실에서의 환자 뇌출혈 발견


이스라엘의 회사인 MedyMatch와 IBM Watson은 응급실에서 환자의 뇌출혈을 확인하는데 인공지능을 활용하고 있다. 




- 피부 사진을 통한 암 진단


암진단에도 종종 AI가 응용된다. CT, MRI, X-ray 등이 암진단을 위한 의영상 기술로 적용되고 있지만, 이 기술들을 통해 암 진단을 하지 못할 경우, 치명적이다. 암환자가 아닌데 암환자로 진단하는 경우 (false positive, 1종 오류) 보다 암환자인데 암환자로 진단하지 못한 경우(false negative, 2종 오류), 환자의 생명에 영향을 주는 치명적인 판단 오류라고 볼 수 있다. 또한 false negative를 위해 false positive를 늘리는 소위 과잉진료로 인한 문제도 심각하다. 이는 환자에 생명에 영향을 주진 않지만, 잘못된 진단 결과로 인해 의료 비용을 높이고 환자의 심적 부담을 증가시킨다. 따라서 정확한 암 진단 기술이 중요하며, 이 진단 과정에 AI가 적용되어 진단의 속도와 정확성을 높이려는 시도가 이루어지고 있다. 


Stanford의 AI 팀은 피부 이미지를 통해 피부암을 진단하는 AI 기술을 내놓았다. 이 AI 기술은 21명의 피부과 의사들과 비교해 진단 능력이 떨어지지 않았다. 



- CT 사진을 통한 폐암 진단


Enlitic은 회사는 폐 CT 사진을 통해 폐암을 진단하는 AI 기술을 개발하였다. 딥러닝을 활용해 병변의 존재와 그 위치를 파악하는 것이다. 회사는 정확도가 영상의학전문의의 50% 이상이라고 주장한다. 




역사상 많은 기술들이 과대 선전되어 왔다. 누군가는 인공지능 기술이 과대 포장되고 실체는 별로 없는 기술이라고 생각할 수 있다. 또한 누군가는 인공지능이 실제로 산업에 적용되어 가치를 불러올 수 있을까하는 의문을 제기할 수 있다. 인공지능이 인간을 완전히 대체하는 것은 어려울지도 모른다. 오로지 데이터 기반 접근법이라는 문제로 인해, 적절한 수의 훈련 데이터 없이는 동작할 수 없으며, 과적합의 가능성이 있다. 또한 AI의 경우 기기별 차이를 감안하여 모든 기계에 대해 robust한 모델을 만드는 것이 아직까지는 완벽하지 않은 경우가 많다. 하지만, 확실한 것은 특정한 제한된 범위의 태스크에서는 AI가 인간보다 나을 수 있다는 것이다.  현재 의료 산업 분야에 활발히 적용되고 있는 인공지능 기술과, 인공지능 스타트업에 투자되고 있는 금액의 규모가 인공지능의 의료분야에서의 가능성을 보여준다.


참고

https://sigmoidal.io/artificial-intelligence-and-machine-learning-for-healthcare/

GATK4 설치


이곳에서 원하는 버전 zip파일 다운로드

https://github.com/broadinstitute/gatk/releases


예를 들어, 4.0.1.1 버전이면 다운로드를 받은 후,


unzip gatk-4.0.1.1 


명령어를 통해 압축을 풀면 설치가 끝난다.


만약에 binary 파일을 다른 곳에 위치시키고 싶다면(예를 들어 /usr/bin), gatk 파일을 카피해서 원하는 폴더 (/usr/bin)으로 옮긴다.


cp gatk /usr/bin


하지만 binary 파일이 다른 파일들과 떨어져있을 경우, 기존 폴더의 경로를 명시적으로 지정해주어야한다. 이는 환경변수를 지정함으로써 할 수 있는데 환경변수 $ GATK_LOCAL_JAR 을 gatk-package-4.0.1.1-local.jar 파일의 위치로 지정하면 된다.


예를 들어, export GATK_LOCAL_JAR=/home/gatk-package-4.0.1.1-local.jar 을 통해 환경변수를 지정하면, binary 파일이 떨어져있어도 실행 가능하다.

'Domains > Bioinformatics' 카테고리의 다른 글

Functional genomics - Chip-seq 의 기초  (0) 2019.09.05
Samtools, Bcftools 설치 방법  (0) 2018.05.14
GATK4 설치  (0) 2018.02.20
Chip-seq 데이터를 통한 binding motif 분석 [rGADEM]  (0) 2018.01.13
Variant calling 이란?  (0) 2017.11.20
IGV Tutorial [BAM File]  (0) 2017.10.16

Domains/Genetics

Solar 설치

2018. 1. 29. 17:55

Solar 설치


홈페이지

http://www.solar-eclipse-genetics.org/


설명

Heritability 분석을 위한 프로그램이다.



1. 이 링크(https://www.nitrc.org/frs/?group_id=558)에 들어가 아래 압축 파일을 다운받는다.


SOLAR Eclipse General Version 8.1.1



2. 다운 받은 압축 파일의 압축을 푼다.


tar -zxvf 파일명.tar.gz -C /원하는위치



3. 아래 명령어로 인스톨 한다. 


./install_solar <solar-base> <solar-script-dir>


파라미터에 대한 설명 (readme 파일 열어보면 나옴)

<solar-base> is the directory name where the bulk of this release of SOLAR

is to be installed.  To keep it separate from other releases, the release

number should be included in this directory name.  For example, we use:

/opt/appl/solar/8.1.1


<solar-script-dir> is the existing directory to which the 'solar' script

that starts SOLAR is to be put.  /usr/local/bin is a typical choice.

This should be in the PATH of everyone who will use solar.

You can move this script later if desired.  If you already have an older

script named 'solar' there, you must rename or delete it first.



이 때 solar-base에는 실제 실행 파일이 위치한 곳, solar-script-dir에는 실행파일을 연결할 파일의 경로를 써준다. 일반적으로 solar-script-dir은 /usr/local/bin 파일에 위치하도록 하고, solar-base는 아무 곳에나 놔두어도 되지만 /usr/local/bin에 위치해도 크게 상관은 없다. 


***********************************************************

Ignore error messages (if any) from the tests below

Ignore error messages (if any) from the tests above

***********************************************************



    *** Successful Installation ***


SOLAR has been installed with the command name solar


The new documentation directory is /mnt/c/Users/JuYoungAhn/Downloads/solar/8.1.1/doc


For command line editing, give command ./install_rlwrap


root@DESKTOP-F14K9HF:/mnt/c/Users/JuYoungAhn/Downloads/solar_linux# solar

/mnt/c/Users/JuYoungAhn/Downloads/solar/8.1.1/bin/rlwrap: 1: /mnt/c/Users/JuYoungAhn/Downloads/solar/8.1.1/bin/rlwrap: Syntax error: "(" unexpected


SOLAR Eclipse version 8.1.1 (General), last updated on January 29, 2018

Copyright (c) 1995-2018 Texas Biomedical Research Institute

Enter help for help, exit to exit, doc to browse documentation.


위와 같은 메시지가 뜨면 설치 완료된 것이고, /usr/local/bin에 script 파일을 넣은 경우 환경변수를 설정하지 않아도 커맨드 창에 solar를 치면, solar가 실행된다.