2016년 5월 20일 금요일

CentOS 6.7에 java 1.8.0 설치하기

요즘 PacBio를 이용한 효모의 de novo assembly 결과(HGAP)를 처음으로 분석하다가 미토콘드리아의 서열이 하나도 없다는 것을 발견하였다. Preassembly를 가져다가 reference sequence(S288c)에 매핑해 보면 미토콘드리아 서열(NC_001224, 86 kb)에 맞는 read들이 고스란히 존재하는데도 말이다.

PacBio로 genome sequencing을 하는 과정에서 길이가 짧은 플라스미드가 잘 재구성되지 않는다는 말은 종종 들은 적이 있다. 라이브러리의 길이가 워낙 길기에, 이보다 짧은 replicon이 라이브러리 제작 과정을 통과하지 못하는 일은 이해할 수 있다. 그런데 길이가 80 kb를 훌쩍 넘는 replicon에게 이러한 일이 생긴다는 것은 받아들이기 어렵다.

HGAP에서 de novo assembly를 담당하는 것은 Celera assembler(stand-alone tool로는 WGA라 불림)이다. 미토콘드리아는 염색체에 비해서 multi-copy로 존재하므로, 비정상적으로 높은 coverage를 나타내는 미토콘드리아 유래 contig를 적극적으로 제거해 버렸나? 그렇다면 이러한 나름대로의 철학을 담은 행동에 대해 WGS의 공식 문서에 설명이 있어야 한다고 생각한다. 그러나 웹을 아무리 뒤져보아도 이와 관련된 글귀를 찾을 수가 없었다. 별의별 질문이 다 올라오는 SEQanswers 같은 커뮤니티에 이런 현상에 대한 문의나 해결책이 한번쯤 있을 법도 한데 예상과 달리 전혀 발견하지 못하였다.

Eukaryotic genome assembly를 하는 사람들은 다 아는 문제를 나만 뒤늦게 발견하여 흥분을 했나? 지금까지 발간된 genome paper를 다 뒤져서 미토콘드리아나 엽록체의 염기서열이 제대로 나왔는지를 일일이 확인할 수는 없는 노릇이다. 이 샘플의 시퀀싱을 담당한 기관, 그리고 유전체 분석 시장에서 잘 알려진 M사를 통해서 문의하니 이러한 일을 이미 경험하였고, de novo assembler의 특성으로 생각하고 있다는 답변을 받았다.

그렇다면 long read를 다루는 다른 de novo assembler는 어떤 결과를 보일까? SMRT portal에서 preassembly를 내려받은 뒤 phrap과 mira 4.9.6을 돌려보았다. CLC Genomics Workbech(9.0)의 genome finishing module에 포함된 PacBio용 de novo assembly pipeline(beta)는 실행 중간에 에러가 발생하였다. phrap과 mira는 미토콘드리아 서열을 잘 재구성하였다. 여담이지만 mira는 성능에 비해 너무 저평가된 assembler라는 의견을 받아들이지 않을 수 없다!

SMRT analysis이외의 PacBio long read를 다룰 수 있는 다른 stand-alone tool을 설치해 놓아야 되겠다는 생각이 이제 들기 시작하였다. mira는 잘 돌아가는 중이고, 다음으로는 좀 미심쩍기는 해도 WGA를 제대로 써 봐야 되겠다고 결심하고 공식 웹사이트를 방문해 보니 이제는 Canu라는 도구에 자리를 넘겨주었다고 한다. Falcon assembler도 diploid genome에 대해서 괜찮은 성능을 보인다고 들었다. GitHub에서 Canu 바이너리를 받아서 corrected PacBio read에 대한 assembly를 하려고 시도하는 순간, java version이 너무 낮다는 메시지가 나온다. CentOS 6.7 상태에서 가장 최신의 java는 1.7.0_101인데, canu는 1.8 이상을 요한다. java, python, gcc 등 프로그램 개발과 실행에 매우 중요한 툴들이 CentOS에서는 너무 낮은 버전이 깔려 있어서 이를 해결하는 방법은 인터넷에 흔하게 널려있다. 해결의 핵심은 기존에 깔린 것을 완전히 삭제하고 윗 버전을 설치하는 것이 아니라, 예전 버전과 상위 버전을 같이 설치해 두고 필요에 따라 환경을 전환해서 사용하는 것이다. 예를 들어서 python에서는 virtualenv를 쓰는 것과 같은 방법이다. Java에서는 alternatives라는 것을 이용한다.

이제서야 본 글의 제목에 어울리는 글을 쓰게 되었다. 참고한 사이트는 다음과 같다.

How to Install Java 8 (JDK/JRE 8u91) on CentOS/RHEL and Fedora

64비트 CentOS에서는 다음과 같이 하면 된다.

# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.tar.gz"
# cd jdk1.8.0_91/
# alternatives --install /usr/bin/java java /opt/jdk1.8.0_91/bin/java 2
# alternatives --config java
4 개의 프로그램이 'java'를 제공합니다.
  선택    명령
-----------------------------------------------
*  1           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
   2           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
   3           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
 + 4           /opt/jdk1.8.0_91/bin/java
현재 선택[+]을 유지하려면 엔터키를 누르고, 아니면 선택 번호를 입력하십시오: 4
이러면 끝이다.

Canu의 첫 실행은? 실패다! 1000 bp 미만의 short read가 너무 많다고 불평을 한다. Mira에서는 32760 bp를 넘는 read가 있다고 뭐라 하고, canu에서는 짧은 read가 너무 많다고 불평을 하고... 짧은 read를 제거하는 스크립트를 또 하나 만들어야 되겠다. 어쩌면 miraconvert에 이를 처리하는 기능이 숨어있는지도 모른다.

댓글 4개:

for IT the :

I have read your blog its very attractive and impressive. I like it your blog.

Java Training in Chennai Core Java Training in Chennai Core Java Training in Chennai

Java Online Training Java Online Training Core Java 8 Training in Chennai Core java 8 online training JavaEE Training in Chennai Java EE Training in Chennai

for IT the :

Java Online Training Java Online Training Java Online Training Java Online Training Java Online Training Java Online Training

Hibernate Online Training Hibernate Online Training Spring Online Training Spring Online Training Spring Batch Training Online Spring Batch Training Online

for IT the :

Java Training Institutes Java Training Institutes Java EE Training in Chennai Java EE Training in Chennai Java Spring Hibernate Training Institutes in Chennai J2EE Training Institutes in Chennai J2EE Training Institutes in Chennai Core Java Training Institutes in Chennai Core Java Training Institutes in Chennai

for IT the :

Java Training Institutes Java Training Institutes Java Training in Chennai | Java Training in Chennai | Dot Net Training in Chennai JavaScript Training in CHennai JavaScript Training in CHennai | | Single Page Application Development