유전자정보분석

정밀 종양학 텍스트마이닝(1) - 문헌에서 변이정보 추출하기

hongiiv 2020. 12. 15. 15:29
반응형

내가 특정 암(또는 질병)에 대한 변이를 모아 놓았다고 할때, 해당 변이가 언급된 논문을 항상 최신으로 업데이트 해주는 경우 해당 변이가 해당 질병에 어떠한 영향을 주는지에 대한 정보를 항상 지켜볼 수 있게 된다. 더 나아가 해당 논문에서 언급된 변이를 논문을 보고 manual curation을 거쳐 knowledge base화 하는데에도 도움을 줄 수 있다.

 

다음은 BRCA Exchange로 BRCA1/2 mutation의 pathogenicity 정보를 제공하는 데이터베이스로 mutation을 클릭하면 다양한 정보와 함께 해당 mutation이 언급된 논문(제목, 저자, PMID, 해당 mutation이 언급된 본문 내용) 정보를 함께 제공한다.  아래 변이는 BRCA1의 L1750P 변이로 ClinVar에 지금까지 submit된 내용은 P(athogenic) 3건, LP(likely pathogenic) 3건, VUS가 1건으로 나온다.  

 

이러한 경우, 일반적으로 population frequency등 해당변이의 여러정보를 기반으로 ACMG 가이드의 룰에 따라 변이의 pathogenicity를 판단하지만, 위에서 언급한 문헌을 보면, 해당 변이가 언급된 논문들이 대부분 한국인(Korean)을 대상으로 하는 연구에서 해당 변이가 VUS가 아닌, pathogenic이라는 논문들이 꾸준히 언급되고 있다.

 

ACMG 가이드라인에도 'reputable source'라는 criteria가 존재하기 때문에 기존의 rule에 해당 criteria를 적용하는데 적어도 한국인을 대상으로한 검체에서 나온 변이라면 문제가 없다.

 

그럼, 실제 이러한 것을 어떻게 구현할 것인가에 대해서 알아보도록 하자. 우선 다음의 각 단계를 적절한 툴을 이용하여 진행한다.

 

1) 문헌 crawl 단계

모든 텍스트 마이닝이 마찬가지겠지만, mining할 대상을 수집하는 단계로, 여기서는 pubmed를 기반으로 crawling하게 되며, 직접 크로링할 수 있도록 구현해도 되지만, pubmed에서 검색하고 실제 PDF 형태의 논문과 excel 및 기타 여러 형식의 supplement를 각 논문별로 해당 논문 site에 가서 가져오는것을 일일이 구현하는건 만만치 않다. 이 생고생을 이미 구현한게 있으니 pubMuch (github.com/maximilianh/pubMunch)로 지가 알아서 각 논문 site에서 pdf 등을 다운로드 하고 이를 text로 변환까지 진행하여 crawling을 수행한다.

 

또 하나 눈여겨 보아야 할 project중 하나는 BioC 프로젝트(bioc.sourceforge.net/)로 biomedical text processing에서의 상호운용성을 위해 XML 형태로 문헌을 표현한다. 더 나아가 NCBI에서는 BioC API for PMC(www.ncbi.nlm.nih.gov/research/bionlp/APIs/BioC-PMC/)를 운영중인데, PubMed Central(PMC)에서 open access 가능한 문서를 아예 BioC 포맷으로 만들어서 제공하기도 한다. PubMed에서 문헌 검색을 하다보면, PMC full text free라는 딱지가 보이면서 논문을 free로 확인할 수 있는걸 자주 보았을 것이다.

 

2) Crawling 데이터를 text로 변환

앞서 이야기 했듯이 모아온 문헌 정보는 pdf, excel, word 등 다양한 포맷으로 제공되기 때문에 이들을 모두 text 포맷으로 변경해야 하며, 이때 앞서 언급한 pubMuch가 이 부분을 담당하고 있다. 물론 BioC 포맷으로 문헌 정보를 다운로드한 경우 이과정이 불필요하다.

 

3) Text에서 변이 문구 찾기

이제 여기서부터는 머리좀 굴려야 한다. text에서 변이를 표현하는 단어를 찾아야 한다. 일반적으로 ACMG 가이드라인에서는 HGVS nomenclature를 이용하여 변이를 표현하라고 하지만, 이는 어디까지나 clinical report에 한정된 이야기로 논문에서야 변이를 어떻게 표현하는지에 대한 명확한 표준(가이드)이 존재하지 않는다. 아래처럼 하나의 변이를 표현하는데 있어서 genomic position으로 표현하는지? 이것도  reference 37인지? 38인지? hgvs nucleotide? or Protein인지? protein change는 1-letter인지? 3-letter인지? rs번호를 사용하던지 지맘대로 논문에 표시할 수 있는것이기에.... 이 부분도 마찬가지로 정규표현식 등 다양한 방법으로 텍스트내 변이를 표현하는 부분을 찾는 것을 pubMuch가 해주고 있다.

4) 변이 표현 방식(hgvs) 맞추기

 genomic position <->RefSeq(NM) <->Ensembl(ENST) 간의 변환이나 hgvs.p <-> hgvs.n 간의 변환 뿐 아니라 variant normalization(left or right align) 등을 고려하여 논문에서 언급된 변이를 최종적인 hgvs 형식으로 모두 깔맞춤해 놓는다.

 

5) 기존 db의 변이와 match하기

문헌의 변이를 hgvs로 맞추어 준비하고, 기존의 변이의 hgvs와 match 시켜 변이 db에서 변이를 검색하면 해당 변이가 언급된 문헌을 보여주어 최종 마무리한다.

 

참 쉽죠,,

덧) brca1/2 검색어로 한정지어 pubmed 검색결과를 crawling 돌려 놓으면 몇일에 걸쳐 해당 논문을 crawling하게 된다. 물론 crawling한 결과의 용량도 무시못한다. 따라서 이러한 crawing 작업은 여러 노드에 분산하여 실행하는 방법을 권하며, 주기적으로 crawling 작업을 수행하도록 하여 crawling 결과를 update하도록 한다.

 

 

반응형