2021년 6월 17일 목요일

Shovill 맛보기

Torsten Seemann의 Shovill은 일루미나 paired end read를 이용하여 박테리아의 유전체 염기서열을 조립하는 파이프라인이다. 사용 가능한 de novo assembler는 SPAdes, SKESA, 그리고 Megahit가 있다. Shovill 사용 연습을 하면서 NCBI가 2018년에 개발하여 공개한 SKESA도 처음 써 보았다. 실제 데이터를 이용하여 테스트를 하니 SKESA가 SPAdes보다는 더 나은 결과를 내는 것 같다.

Shovill이란 이름을 어디에서 따 왔는지에 대한 설명은 없지만, shovel(삽)과 발음이 유사할 것으로 여겨진다. 파이프라인을 마치면 스크립트에 포함된 재미난 문장이 하나씩 출력되는데, 어제의 테스트에서는 이런 메시지가 나왔다.

"A shovel will move more dirt than a spade."

Spade의 원래 뜻은 끝이 표족하고 T자 혹은 D자 형태의 손잡이가 달린 삽을 말한다. 여기서는 러시아에서 개발한 경쟁 프로그램인 SPAdes를 빗대어서 그보다 더 나은 프로그램임을 넌지시 나타내는 언어 유희에 해당한다.

파이프라인을 구성하는 각 단계를 살펴 보았다. 내가 잘 모르던 구성 프로그램이 눈에 뜨인다. 예를 들어 KMC는 k-mer를 이용하여 분석을 실시하는 유틸리티이고, Lighter는 k-mer 기반의 read correction tool이다. 가장 참신하게 여겨진 것은 paired read의 3'-말단에서 겹치는 부분을 찾아 하나의 긴 read로 전환하는 FLASh(Fast Length Adjustment of Short reads)라는 도구였다. Trimming이나 오류 교정 등 선택 가능한 전처리 과정을 거친 paired read는 일단 FLASh를 거쳐서 긴 서열 + (fwd + rev read pair)파일로 전환하여 이를 SPAdes 또는 SKESA에 투입하는 것이었다. 이렇게 함으로서 조립 오류도 현저히 줄고 더 긴 contig를 얻을 수 있다고 한다. FLASh를 16S rRNA amplicon sequencing의 양 말단 read를 연결하는데 쓰려는 시도를 하면 안될까? 이에 대한 질문과 답이 SEQanswers에 있었다. BBMap 패키지에 포함된 BBmerge도 비슷한 일을 하는 것으로 보인다. 라이브러리의 크기 분포와 trimming 여부 등이 FLASh를 통한 'read stitching'에 영향을 줄 것임은 자명하지만, 이를 사전에 철저히 조사하여 최적화를 해 보라는 권유사항은 없었다. 

게으른 shell script 작성자는 남이 만들어 놓은 작품을 엿보면서 배운다. 그저 고마울 따름이다. 굽실굽실...

Shovill의 어원을 알 수 있는 메시지가 어제 만든 수십 개의 shovill.log 파일 중 하나의 끝에 들어 있었다.

"Did you know? shovill is a play on the words 'Spades' and 'Illumina' ('shovel')"

그렇다! Shovill의 '-ill'은 일루미나에서 온 것이었다.

댓글 없음: