2017년 5월 23일 화요일

dRep을 이용한 metagenome data set의 중복 제거

동일한 생태계에서 수집한 관련성 있는 메타게놈 샘플을 shotgun 방식으로 시퀀싱을 하는 것은 요즘 매우 흔히 볼 수 있는 연구 방법이다. 예를 들자면 어떤 항생제를 투여한 뒤 장내 microbiome을 일정 시간 간격으로 샘플링하여 분석함으로써 외부에서 주어진 변동 요인(항생제)에 따라서 미생물 군집이 어떻게 변화하는지를 살펴 보는 것이다. 일반적으로 거의 동일한 미생물들이 단지 그 비율만 샘플링 시점에 따라서 달라질 것임을 예상할 수 있다.

실제 분석에서는 각 샘플에서 생성된 read를 모두 합쳐서 조립을 한 다음(co-assembly) 이를 바탕으로 각 샘플 read를 다시 매핑하는 방법을 많이 사용한다고 들었다. 이러한 방법에서는 데이터의 규모가 커지고 이에 따라서 복잡성이 증가하며, 동일 species의 서로 다른 strain이 존재하면 fragmented assembly를 유발하게 된다.

그렇다면 각 샘플을 독립적으로 조립하는 것이 유리할지도 모른다. 그러나 이렇게 얻어진 assembly간의 중복을 제거하는 de-replication 과정이 필요하게 된다. 뿐만아니라 각 replicate set에서 가장 품질이 좋은 게놈 데이터를 선발하는 일도 필요해진다. UC Berkeley의 Banfield lab에서는 이러한 필요성을 충족시킬 수 있는 새로운 도구인 dRep을 bioRxiv에 발표하였다(학과 소식 사이트). 논문의 제목은 "dRep: A tool for fast and accurate genome de-replication that enables tracking of microbial genotypes and improved genome recovery from metagenomes(링크)"이다.

이 도구는 당장 나에게도 큰 도움이 된다. 입원 환자에게서 분리된 소위 'emerging pathogen'에 해당하는 어떤 세균의 MiSeq sequencing data를 분석할 일이 최근 생겼다. 총 112개 스트레인의 시퀀싱 결과로서 단일 프로젝트로 나에게 주어진 것으로는 가장 큰 규모이다. 그중에는 분명히 엉뚱한 균주도 몇 개는 섞여있을 것이다. 이를 점검하는 용도로 dRep을 활용하자는 것이다. 실은 reference sequence 하나에 대해서 112개 균주의 데이터를 1:1로 비교하면 별로 많은 시간이 걸리지는 않는다. 하지만 각 샘플 간의 거리는 알기 어려워진다. pyani를 돌려서 ANI(average nucleotide identity) matrix를 만드는 것도 가능하나, 모든 샘플 사이에서 1:1 비교를 해야 하므로 나의 소박한 컴퓨터로는 엄청난 시간이 걸린다. dRep도 pair-wise 비교를 하는 것은 마찬가지이다. 그러나 빠르기로 소문난 Mash를 이용하여 primary cluster를 신속하게 만든 뒤, MUMmer를 이용하여 각 cluster 내에서 ANI를 계산하는 전략을 취하고 있다.

설치는 생각보다 까다로왔다. 필요로 하는 다른 프로그램의 목록은 별로 길지 않으나 이를 설치하려면 또 다른 dependency가 있어서 꼬리에 꼬리를 무는 느낌이다. 게다가 dRep은 파이썬 3.x이 필요한 반면에 같이 실행되는 checkm 파이썬 2.x이 필요하여 pyenv를 잘 활용해야만 한다. 내 리눅스 시스템은 linuxbrew와 pyenv 등으로 뒤죽박죽이 된 상태라서 계정을 새로 만들어가면서 시행착오를 겪은 끝에 겨우 테스트 러닝에 성공하였다. 설치 방법을 문서로 정리해야 하는데 하도 실타래처럼 꼬여서 잘 기억이 나질 않는다... 패키지에 포함된 예제를 통과했으니 다음은 22개 genome set를 투입해 보았다. Primary 및 secondary cluster의 덴드로그램을 소개한다.


checkm은 genome completeness & contamination을 점검하는 도구이다(소개).

댓글 없음: