바이오인포매틱스

Detecting Somatic Mutations - Ensemble Approach

hongiiv 2015. 1. 14. 13:50
반응형

예전에도 두어번 블로그글을 통해 variant calling에 있어서 Ensemble approach에 대해서 언급했었더랬습니다. comparison of variant detection methods, somatic caller는 뭘 사용해야 하나요? 를 참고하세요. 오늘은 그 끝판왕으로 준비했습니다. 왜냐구요? 잠시 광고 하나 하고 넘어가려고 합니다. 한국유전체학회 동계 심포지엄이 2월 4일부터 진행되는데 올해는 이틀간에 걸쳐 "Somatic Calling 알고리즘 소개 및 실습" 워크샵이 준비되어 있습니다. 현재 저조한 등록을 보이고 있다고 합니다. 오늘은 그래서 워크샵에서 진행할 내용을 미리 소개하는 시간을 가져 보려고 끝판왕으로 준비했습니다. ;-) 더 안오실지도 모르겠군요.


아! 그리고 저번 포스팅에서 구글애드센스 광고를 달았다고 말씀드렸는데요. 구글에서 광고수익을 지불 방법을 확인하는 우편도 도착했구요. 현재 무려 $15의 수익을 올리고 있습니다. 이자리를 빌어 이글을 보시는 모든분들께 감사하다는 말씀을 전합니다. ㅋㅋㅋ


Somatic Mutation Calling Tools

그럼 본론으로 들어가 보도록 하겠습니다. 뭐 요즘 핫한 분야는 바로 somatic mutation 찾기 아닐까 합니다. 암 샘플의 heterogeneous하고 normal cell과의 dilute 등등 그만큼 챌린저블한 분야이며, 무엇보다도 실제 clinical에 응용될 수 있는 부분이라 그런것 아닐까 생각이 듭니다.Ding 아주머니 (워싱턴 대학에서 SomaticSniper와 VarScan을 만드신)의 최근 리뷰 논문에 따르면 아래와 같이 수많은 cancer genome 분석 툴들이 존재합니다. (중간에 잘린 표입니다.)



이미 잘알려진 JointSNVMix, MuTect, SomaticSniper, Strelka, VasrScan 등이 우선 눈에 들어오고 최근 Dream Challenge의 Somatic Mutation Calling Challenge주인공들이 만든 툴들이 보이네요. 


 ICGC-TCGA DREAM Somatic Mutation Calling Challenge의 주인공들

역시 Broad-너네가 다해 먹어랏, Ding 아주머니도 보임


각각의 툴들에 대한 알고리즘이나 특징은 해당 논문을 찾아보시거나 여러툴들을 비교한 논문들이 꽤 존재합니다. 따라서 툴 소개는 이것으로 마무리하려고 했지만... Wang의 "Detecting somatic point mutation in cancer genome sequencing data: a comparison of mutation caller"를 잠깐 보면 다음과 같이 각 툴들을 소개하고 있습니다. 끝



하나로는 부족해 우리 합치자!

비단 bioinformatics 분야뿐만 아니라 다른 곳에서도 같은 목적을 위해 여러 툴들이 합쳐 각각의 단점은 상쇄시키고 장점을 부각하는 일명 ensemble 방법 (또는 consensus, combining)이 많이 사용되고 있다. 그런데 문제는 이 ensemble이라는 방법이 걍 사용한다고 해서 좋은 것 아니라는 것입니다. 좀 세련되게 각 툴의 결과와 feature들을 뽑아서 training을 시키거나 암튼 consensus를 구하는데에도 갖가지 어려운 수식이 오가면서 ensemble을 적용하는 것 또한 만만치 않다는 것입니다. 그래서 기름기를 쫙 뺀 바로 저 멀리 남반구 호주 멜버른의 Goode가 A simple consensus approach improves somatic mutation prediction accuracy"라는 제목부터 simple을 달고 나온 방법을 소개해보려고 합니다.


Data Sets

27 ovrian tumor와 그와 매칭하는 germline 샘플을 HiSeq 2000 으로 whole exome sequencing을 평균 102~225x로 100bp paired-end로 뽑아냅니다. 그리고 나서 JointSNVMix2, MuTect, SomaticSniper를 돌리죠. 왜 저 3개의 툴을 사용했냐? 메이저 tumor 논문에서 사용한 툴들이니까요 :-) 그리고 나서 총 9,226개의 somatic SNV를 prediction합니다. 평균 샘플당 321개이며, 툴별로 보면 S와 J는 샘플당 170개 정도 M의 경우 좀 더 보수적으로 115개의 SNV를 찾아내게 됩니다.



중요 포인트는 Non-reference allele frequency

그런데 somatic이라고 뽑은 mutation들의 해당 read가 reference와 같은 allele인지 아닌지를 한번 더 살펴보게 되며 germline에서 보면 J와 S에서 높게 나타나는 행패를 부립니다. 즉 somatic이라고 뽑은 놈이 germline mutation이게 되는 것입니다. 즉 이 놈들은 False Positive인 놈들인거죠. (그림의 빨간색 박스 참고) 반면 M은 somatic을 잘 뽑아낸것 처럼 보입니다. 여기서 그럼 somatic이라고 뽑은 놈들이 germline mutation 즉 germline에서 non-reference인 것들을 filterout 시킨다면 좀 더 True Positive에 가깝게 되겠지요. 이건 다음 filtering 부분에서 다시 보겠습니다. 




이제 tumor에서 non-refernece allele frequency를 보면 M,J,S와 JS, MJ의 경우 낮게 보이는데요. 요것 또한 somatic이라고 뽑은 놈들이라면 tumor에서 높은 non-reference  allle를 보여야 한다는 거죠.


즉, 3개의 툴이 공통으로 찾은 somatic mutation에 대해서 위에서 언급한 non-reference allele에 대한 필터를 거친다면 더욱 True Positive에 가까운 mutation을 찾을 수 있게 되겠죠. 그래서 이들은 찾은 mutation에 대해 sanger sequencing을 수행해서 validation set을 가지고 consensus call과 몇몇 filtering 과정을 거쳐 성능이 향상되는지를 확인하게 됩니다.


Additional filtering 왜? consensus의 specificity를 높이려구

앞서 언급했듯이 non-refence allele 부분과 관련한 부분을 해결코자 tumor/normal 샘플(.bam)에 대해서 GATK Unified Genotyper를 이용하여 tumor와 germline에 대한 SNV를 calling 합니다. 이걸가지고 consensus call에 대해서 우선 GATK UG의 germline SNV를 제거합니다. 그리고 나선 GATK UG가 tumor에서 찾은 SNV와 겹치는 것만 남기게 되죠. 이렇게 하면 아래 처럼 183개중 50개만 맞췄던 결과가 113개중 48를 맞추게 됩니다. 그에 더불어 mate-rescued된 read를 통해 필터를 더 추가시키게 되면 결과는 87개중에 48를 맞추게 됩니다. 결국 2개의 true positive를 잃게 되지만, 183개에서 87개로 확 줄어둔 즉 specificity를 확 증가시키게 되는 결과를 보입니다.



결론

결론적으로 간단한 consensus와 필터링만으로 validation rate를 높이고 sensitivity를 증대 시킬 수 있게 되었다는 것입니다. 하지만 그에 따라 다양한 툴들을 돌려야 한다는 즉 computation 리소스는 부담으로 남게 되며 multiple 툴을 병렬로 빠르게 돌리는 것에 대한 논의가 또 있어야 하겠죠.


뭐 어찌되었던간에 광고로 돌아가서 2월달 워크샵에서는 TCGA 데이터를 가지고 위의 consensus 메소드를 실제로 구현하고 검증하는 과정과 더불어 ranking을 통해 좀 더 연구자에게 보기 좋은 결과물을 얻는것이 실습으로 진행되니 관심있는 분들의 많은 참여를 바랍니다. 


안녕, ;-)

반응형