처음으로 만들어낸 .fast5 파일에서 basecalling을 하는 것부터 쉽지 않았다. Metrichor(EPI2ME desktop agent를 통한)의 basecalling을 이제 별로 의미가 없는 것 같다. ONT 고객상담실에서도 Albacore를 사용하라고 했으니 말이다. 이것이 nanopore sequencing의 공식적인 basecaller가 되어가는 느낌이다. MinKNOW에서는 live basecallig을 하지 않는 이상(1D sequencing에서만 가능) fast5 파일 내에 염기서열 정보가 존재하지 않는다. Albacore는 이를 읽어들여서 fastq 형태의 파일을 만들기도 하고, 염기서열 정보를 새겨넣은 fast5 파일을 만들기도 한다. poretools로 QC를 하려면 염기서열 정보가 들어간 fast5 파일이 필요하다.
poretools는 매우 감동적인 도구이다. 다양한 diagnostic plot을 만들어내는 것은 물론이거니와 각종 집계와 fastq/fasta 파일 추출(basecall 결과가 수록된 fast5로부터)도 가능하기 때문이다. 그렇지만 진단용 그림을 뽑아내려면 Tcl/Tk 및 tkinter라는 것과 관련한 파이썬 설치 문제가 보통 복잡한 것이 아니다. CentOS 6.x에서 어떻게 해서든 설치를 해 보고 싶었지만(pyenv 환경) 결국은 실패하고 MinKNOW가 깔린 우분투 서버에서 겨우 성공하였다. 이것은 추후에 다시 한번 진지하게 도전해 볼 영역으로 남겨두겠다. 어쩌면 poretools을 계기로 하여 CentOS 7로 넘어가거나 혹은 Docker를 쓰는 단계로 넘어가게 될지도 모른다. Docker의 기본 개념은 여기에서 잘 설명하고 있다.
PoreCamp 교육 자료에 나온대로 ENA에서 자이레 에볼라바이러스의 MinION raw data를 몇 개 다운로드하였다. 임의로 하나를 골라서 pass 서브디렉토리 아래의 fast5 파일로부터 fasta 서열을 뽑아내었다. 다음은 poretools stats의 결과이다.
total reads 20787total base pairs 21,929,768mean 1054.98median 1013min 288max 3711N25 1060N50 1019N75 981이를 bwa로 매핑을 하여 bam 파일로 출력, 소팅과 인덱싱을 한다. samtools 0.1.18과 1.2를 번갈아 사용하였지만 다음의 명령이 소팅 단계에서 도무지 먹지를 않는다.
bwa mem -x ont2d EM_079517.fasta Ebola2D.fasta | samtools view -bS - | samtools sort -o Ebola2D.sorted.bam -samtools sort의 용법이 내가 알던 것과 약간 다르다. 구글을 열심히 뒤져서 이해해보려고 무던히 노력을 했지만 속 시원한 설명은 별로 없고 samtools sort 명령어 문법은 기괴하다('bizarre')는 글과 이를 수정하겠다는 개발자의 글만 발견할 수 있었다. samtools를 1.4.1로 업그레이드하여 모든 문제를 해결하게 되었다.
다음으로는 매핑 결과를 직접 눈으로 살펴보았다. tablet이나 IGV 등 몇 가지 솔루션이 있지만 나는 CLC Genomics Workbench를 이용하였다. track으로 전환한 다음 reference sequence(역시 track으로 전환)과 함께 track list를 만들어서 확대해 보았다. ONT 특유의 insertion error가 많이 보이지만 reference와 잘 맞는 consensus sequence를 볼 수 있다.
이번주 안에 실제 데이터를 이용한 성공적인 nanopore sequencing 결과를 보고 싶었는데 벌써 목요일이 다 지나가고 있다.
개발도구와 라이브러리의 버전 문제로 인하여 CentOS 7의 도입을 정말 진지하게 고민해 볼 시점이 되었다. 피할 수는 없는 대세이지만, 관리자 측면에서 너무나 많은 것이 변해서 공부를 하려면 또 얼마나 애를 먹게 될지...
댓글 없음:
댓글 쓰기