2017년 4월 18일 화요일

새로운 개념의 hybrid genome assembly: DBG2OCL

PacBio long read sequencing이 단순한 변이 검출(resequencing & variant calling)이 아니라 본격적인 de novo assembly에 쓰이게 된 것은 일루미나 read를 활용한 hybrid approach에 힘입은 바 크다. 짧지만 상대적으로 오류가 적은 일루미나 read를 long read에 정렬하여 오류를 교정한 뒤, 일반적인 overlap-layout-consensus(OLC) assembly 방법에 의해 유전체를 재구성한다는 전략이다.  그러다가 2013년에 long read만을 이용하여 스스로 오류를 교정하여 조립에 이르는 nonhybrid method가 나오면서 3세대 유전체 염기서열 해독법에 의한 유전체 해독이 더욱 대중화되었다.

"SMRT cell 하나만 시퀀싱을 맡기면 박테리아 유전체 해독은 끝난다네."

그렇게 틀린 말은 아닌다. 그러나 세부적으로 들여다보면 아무리 자체 교정을 해도 남아있는 오류가 꽤 있고, 심지어는 유전체에 따라서 조립 오류도 종종 관찰이 되고는 하다. 그리고 유전체가 크면 맘놓고 100x씩 Pacbio sequencing을 돌리기에 부담이 되는 것도 사실이다. 그래서 일정 분량의 short read를 만들어서 절충을 하는 전략이 아직은 완전히 버려지지는 않았다.

작년 6월 25일 Nucleic Acids Research에 Contiguous and accurate de novo assembly of metazoan genomes with modest long read coverage라는 제목의 논문이 실렸다. 연구비 규모가 넉넉한 부자 연구소가 아니라면 유전체는 큰데 막대한 물량 투입이 곤란한 상황을 직면하는 것이 일반적일 것이다. 이러한 상황에서는 어떻게 하는 것이 최선일까? 저자들은 완벽한 reference genome이 준비된 초파리를 대상으로 하여 long read 용 라이브러리 제작을 위한 효과적인 고품질 DNA 추출법을 검토함과 동시에, 보통 수준(~25x)의 PacBio sequencing 결과물을 가지고서 최적의 genome assembly를 만들어내는 방법을 제시하였다. 저자들은 wgs package를 이용한 PacBio only assembly 및 DBG2OLC(뒤에서 기술하겠다) 을 이용한 hybrid assembly를 먼저 실시한 다음 자체적으로 개발한 quickmerge 프로그램으로 병합하였으며, downsampling에 따르는 효과도 알아보았다. 다음 그림은 논문의 그림 4에서 설명한 quickmerge의 개요도이다. 여기서 말하는 downsampling이란 PacBio read를 긴 것부터 50% 또는 75%를 취하는 것을 말한다(아마 염기 수가 아니라 리드 수의 퍼센트일 것이다).


본 연구에서 내린 결론은 67.4x의 일루미나 리드(100 bp PE)와 10-30x의 PacBio long read가 같이 쓰인 assembly가 자체 교정을 통한 50x PacBio assembly보다 낫다는 것이다. 그런데 흥미로운 것은 hybrid assembly와 self-corrected assembly가 상호 보완적으로 작용한다는 것이다.

그러면 이 논문에서 사용한 hybrid asembler인 DBG2OLC(de Bruijn graph to overlap-layout-consensus)는 무엇인가? 이에 대한 논문은 같은 해 9월 30일 Scientific Reports에 실렸다("DBG2OCL: Efficient assembly of large genomes using long erroneous reads of the third generation sequencing technologies"). 이 논문의 제1저자인 Chengxi Ye는 sparse graph concept를 이용한 어셈블러인 SparseAssembler의 개발자이기도 하다. DBG2OCL은 long read를 염기 단위로 교정하는 - 꽤 시간이 많이 걸린다 - 일반적인 hybrid assembler와는 매우 다르다. 여기에서는 short read를 사용한 조립을 먼저 하여 DBG contig를 만든 다음, 이를 long read에 정렬함으로써 long read를 서열이 아니라 contig identifier의 목록이라는 구조로 간결하게 만든다. 논문에서는 이를 'compressed long read'라고 부른다. 이렇게 하여 long read 간의 비교 및 structural error를 최소화한다는 것이 큰 특징이다. 따라서 중간 결과물로서 chimeric long read 정보가 제공된다. Compressed long read에서 최적의 overlap graph가 얻어지면, 이들의 연결 구조로부터 consensus algorithm인 Sparc을 적용하여 DNA 서열이 산출된다.

약 2-3주 전까지는 Falcon을 설치하고 활용하는 것에 재미를 들여가고 있었는데, 어딘가 모르게 closing이 잘 되지 않는 박테리아 샘플(PacBio와 일루미나 read가 공존)에 DBG2OLC를 적용해보고 싶다는 생각이 들었다. Supplementary material이 내 기준으로는 약간 부실하여 순식간에 진도를 나가지는 못하였으나 어쨌든 결과는 얻었다. 하지만 박테리아 샘플에서는 그다지 큰 재미를 보지 못하였다. 그렇지만 서열 다운샘플링과 contig 수치의 계산을 위한 AssemblyUtility를 알게 된 것도 소소한 즐거움이 아니겠는가? 또 Falcon tutorial에서는 countFasta.pl라는 스크립트를 알게 되지 않았는가?

한 종류의 데이터를 가지고 이런저런 프로그램을 돌려서 갖가지 결과를 볼 수 있으니 이 어찌 不亦樂乎아! Long read 자체에 워낙 오류가 많으니 fastq든 fasta든 별 상관이 없다는 것도 또 재미있지 않은가?

댓글 없음: