2016년 5월 12일 목요일

QIIME 설치(+khmer)

아무리 관심이 가는 연구 및 기술 분야라 해도 정작 내 손에 관련된 데이터가 없으면 기술 습득이 잘 되지 않는다. Metagenomics가 바로 그러한 예이다. 거의 항상 미생물 단일 genome의 분석을 하는데 시간을 쏟고 있는 상황이니 연구의 세계적인 흐름이 microbiome, community sequencing 쪽으로 흘러감에도 불구하고 '관심' 그 이상의 정성을 쏟지 못하였다.

다행스럽게도 같은 연구 조직 안에서 community sequencing 결과물의 분석하는 사람들이 생겨나면서 자연스럽게 교류의 기회가 생겼다. 나는 최우선적으로 내가 관리하는 비교적 고사양의 장비에 QIIME(quantitative insights into microbial ecology의 약자이며 '차임'이라고 발음한다)를 설치하는 일부터 맡았다. Metagenomic shotgun data를 다루는 환경인 MetAMOS를 설치해 본 일은 있지만 완전한 상태가 아니다. 단일 도구인 Kraken 정도만 써 본 것이 전부이다. 여담이지만 deep metagenome sequencing data의 전처리 방편으로 k-mer 분석을 하는 일에 빠져들어서 오히려 미생물 단일 유전체의 시퀀싱 데이터를 평가하고 개선하는데 매우 유용하게 사용하고 있다.

QIIME은 Nature Methods 7:335(2010)에서 소개된바 있으며 공식 웹사이트는 http:.//qiime.org이다. 그 기능을 간략하게 나열해 본다.

  • Network analysis
  • Histogram of within- or between-sample diversity
  • Analysis of of whether 'core' sets of organisms are consistently represented in certain habitats
  • Provides graphical displays that allows users to interact with the data
파이썬으로 만들어진 QIIME은 가상머신을 받아서 쓰거나, 최소 설치 혹은 완전 설치의 세 가지 방법으로 사용할 수 있다. 나는 두번째의 방법을 택하였다. 필요로 하는 파이썬 버전은 2.7.0과 3.0.0 사이여야만 한다. 잘 알려져있다시피 CentOS 6.x 대에 설치된 파이썬은 2.6.x이다. 이를 완전히 제거하지 않고 필요시에만 윗등급의 파이썬을 사용하는 설치 방법을 과거 몇 번의 포스팅으로 단편적으로 소개한 적이 있다. 이번에는 새로운 장비를 써야 하므로 이 과정을 다시 반복해야 한다. 전 과정을 소개해 본다. 가장 먼저 개발과 관련된 도구를 yum으로 설치한다. 그 다음 파이썬 2.7.x 소스코드를 받아서 설치하되 make altinstall 명령을 쓴다는 것에 유의하라. 다음으로는 python2.7 바이너리를 이용하여 distribute(easy_install 제공)을 설치한 다음 이를 이용하여 virtualenv와 pip를 순차적으로 설치한다. 이제 virtualenv를 활성화한 다음 마지막으로 pip를 사용하여 numpy와 qiime을 가져다 설치하면 된다.
# yum groupinstall "Development tools"
# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel
# wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2
# tar xf Python-2.7.3.tar.bz2
# cd Python-2.7.3
# ./configure --prefix=/usr/local
# make
# make altinstall
# cd ..
# wget https://pypi.python.org/packages/source/d/distribute/distribute-0.6.49.tar.gz --no-check-certificate
# tar xvfz distribute-0.6.49.tar.gz
# cd distribute-0.6.49
# python2.7 setup.py install
# easy_install-2.7 virtualenv
# easy_install-2.7 pip
# mkdir /data/qiime
# virtualenv -p python2.7 /data/qiime/
# source /data/qiime/bin/activate
(qiime) # pip install numpy
(qiime) # pip install qiime
# print_qiime_config.py -t 
말하자면 pip를 설치하기 위해 distribute라는 징검다리를 거쳐간 셈이다. 이렇게 하지 않고 pip를 단독으로 설치하는 방법도 찾아보면 어딘가 있을 것이다.

python 2.7이 필요한 모든 스크립트를 실행하기 위해 명령행에서 일일이 python2.7을 타이프할 수는 없으니 아예 virtualenv를 쓰기로 한 것이다. 파이썬 2.7만을 설치해 놓고 virtualenv 없이 qiime을 깔아서 쓰려면 어떻게 하면 될까?
# pip2 install qiime (numpy도 마찬가지)
언제 시간이 되면 다른 머신(가상머신?)에서 테스트를 해 봐야 되겠다.

KHMER 2.0의 설치

QIIME을 실행하기 위해 python 2.7환경을 만들어 놓았으므로, khmer를 새롭게 설치하려면 이를 그대로 이용하면 된다. 즉 이 리눅스 머신에서 python 2.7에 절대적으로 의존하는 유틸리티를 앞으로 설치하려면 이 방법을 계속 활용하라. 단, khmer를 제대로 설치하려면  gcc를 업데이트해야 한다. 그렇지 않으면 "-std=c++11" 옵션을 이해하지 못한다는 에러 메시지가 발생한다. CentOS 6.x에서는 더 이상 높은 버전으로 올라가질 않으니 devtoolset을 이용해야 한다. 이에 대해서는 예전에 이미 포스팅한 일이 있다.
# gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16)
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo -P /etc/yum.repos.d
# sh -c 'echo "enabled=1" >> /etc/yum.repos.d/devtools-1.1.repo'
# sudo yum install devtoolset-1.1
# scl enable devtoolset-1.1 bash
# gcc --version
gcc (GCC) 4.7.2 20121015 (Red Hat 4.7.2-5)
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# source /data/qiime/bin/activate
(qiime) # pip install khmer
...

댓글 없음: