2017년 12월 6일 수요일

BLAST score ratio(BSR)을 이용한 유전체 비교 분석

BLAST score ratio(BSR)는 2005년에 논문을 통해 소개된 개념으로서 생물학적 서열의 계산에서 활용되는 매우 고전적인 방법이라 할 수 있다(Rasko 등, Visualization of comparative genomic analyses by BLAST score ratio, BMC Bioinformatics doi:10.1186/1471-2105-6-2). 당시의 논문을 보면 BSR을 이용한 사례로서 박테리아 세 종(겨우!)의 비교를 들었으니 그 사이에 일어난 기술의 발전은 실로 놀랍기만 하다. 서열 사이의 관계를 알아보고 싶을 때 아직까지도 가장 널리 쓰이는 것은 BLAST이다. 그러면 data parsing을 위하여 사용할 지표, 즉 hit를 줄세우기할 때에는 무엇을 참조하는 것이 가장 좋겠는가? E-value는 database의 크기와 match 길이에 영향을 받는다. 이러한 bias는 BLAST raw score를 씀으로써 해결되지만, 이것 역시 정렬된 서열의 길이의 similarity에 따라 달라진다. Rasko 등은 이 문제를 해결하기 위해 BSR라는 개념을 도입하였다.

그 방법을 간단히 설명하자면 이러하다. 세 종류의 박테리아에서 유래한 단백질 서열의 집합(proteome)을 각각 Reference, Query1, 및 Query2라고 가정한다. Reference peptide을 자신에게 BLAST하였을 때 산출되는 raw score를 reference score라 부르자. 그 다음 reference peptide를 Query1, 및 Query2에 대하여 BLAST를 실시하여 query score를 얻는다. BSR은 각 peptide에 대한 query score를 reference peptide로 나눈 것이다. Query 집합이 두 개이므로, 각 reference peptide에 대하여 (BSR1, BSR2)의 값을 얻게 된다. 모든 peptide에 대해서 이렇게 얻은 값을 plotting하면 결국 세 개의 proteome을 구성하는 개별 단백질들이 공유 관계에 따라 어떻게 분포하는지를 파악할 수 있다.

출처: http://www.biomedcentral.com/1471-2105/6/2 (그림 1)

지금 기준으로 본다면 대단히 소박한 시각화 방법이다. 상식적으로 3개 집합을 비교한 벤 다이어그램을 그리면 7개의 구획이 나와야 한다. BSR을 이용한 위 그림에서는 3 개 집합 중에서 어느 하나를 "Reference"로 놓았기 때문에 마치 단백질 집합이 4 개의 구획으로 나오는 것처럼 여겨진다. 하지만 여기에서 중요한 것은 시각화 방법이 아니라 BSR이라는 개념 자체이다. 즉 방금 생성된 대용량의 미생물 유전체 조립물이 있을 때, 어떠한 reference protein set이 각각의 유전체 샘플에 존재하는지의 여부를 적절한 BSR cutoff 값(0.5? 0.6?)으로 결정할 수 있다는 것이다. (O, X)의 문제로 환원하는 것이 부담스럽다면 [0, 1] 사이에 분포하는 BSR 값을 가지고 heatmap을 그려서 시각화를 하면 샘플 유전체 전체를 꿰뚫는 insight를 주는데 도움이 될 것이다. 2005년도 논문의 저자들은 전부 TIGR(The Institute for Genomic Research)  소속이었고, 제1저자인 David A. Rasko는 많은 TIGR 과학자들이 그러했듯이 매릴랜드 의대로 소속을 옮겼다(현재 Rasko 소개 웹사이트). 2005년의 BSR 논문에 쓰인 펄 스크립트와 데이터파일은 여기에 남아있다.

BSR을 계산하는 파이썬 패키지인 blast-score-ratio 1.0.6이라는 것도 있어서 흥미를 끈다.

Large-scale blast score ratio(LS-BSR)

요즘 '뜨는' 다제내성 감염균의 하나인 Acinetobacter baumannii의 병원내 분리균주에 대한 대용량 유전체 비교 분석 논문(무려 254종의 isolate를 다루었고, 그 중에 203개가 A. baumannii였음)을 보다가 LS-BSR을 이용한 그림을 접하였다. Rasko는 이번에는 공저자로서 'The large-scale blast score ratio (LS-BSR) pipeline: a method to rapidly compare genetic content between bacterial genomes'(PeerJ 2016)라는 논문을 발표하였고, 여기에 소개된 프로그램(LR-BSR; GitHub)이 A. baumannii 논문에 쓰인 것이다. 대용량 유전체 데이터를 이루는 모든 CDS의 연관성을 일목요연하게 보일 수 있도록 매트릭스 형태의 LS-BSR을 계산하는 파이프라인으로 확장이 된 것이다. 2005년 논문과 비교하여 달라진 점이 있다면 단백질을 query로 하여 유전체 서열을 검색하는 것이 일반적인 상황이므로 TBLASTN을 적용하고, BLAST raw score가 아니라 bit score를 쓴다는 점이다. 시각화 도구로는 Multiple Experiment Viewer(이 또한 고전적!)이나 R을 쓰면 된다.

LS-BSR의 특징은 ortholog의 clustering, pan-genome의 계산의 용도로도 쓰일 수 있다는 것이다. 즉 pan genome analysis tool로 내가 애용하는 Roary와 많은 부분이 겹친다. 2016년 논문의 제1저자이자 LS-BSR 개발자인 Jason W. Sahl(링크; 머리카락이 좀 덜 빠지고 약간 야윈 제이슨 스테이섬을 떠오르게 하는...)은 GitHut의 위키 페이지에서 Roary와 LR-BSR을 비교한 글 "Some thoughts on comparing Roary to LS BSR"을 기고하였다. 두 소프트웨어는 활용 목적이 분명히 다르고, 기본 알고리즘도 역시 상이하다. 따라서 어느 것이 더 빠르고 정확하다고 쉽게 단정지어 이야기하는 것은 바람직하지 않다. 내가 이해하는 수준에서 말하자면 LS-BSR은 적극적인 클러스터링 도구는 아니다. 또한 Roary는 genome annotation 정보가 있어야만 돌아간다.

마침 논문을 통해서 찾은 virulence gene의 존재 여부를 100여개 미생물 유전체에서 확인하여 시각화하는 방법을 고민하는 중이었다. 이것이 LS-BSR의 첫 경험이 될 것이다. Reference protein은 genome level이 아니라 20개 남짓한 수준의 것을 별도로 준비한다는 점이 LS-BSR의 기본 전제 조건과는 약간 다르다.

댓글 없음: