2015년 11월 17일 화요일

khmer 유틸리티와 파이썬

요즘은 deep metagenome sequencing data로부터 미생물 유전체를 재구성하는 방법에 대해 공부를 하는 중이다. 내년에는 MinION 플랫폼도 경험을 좀 해봐야 하는데... 하루가 멀다하고 새로운 기술이 나오는 것이 그렇게 반갑지는 않다. 더 많은 프로젝트를 할 수 있다는 것은 분명한 사실이지만 그것이 항상 가치있는 일인지는 여전히 고민스럽기 때문이다.

khmer란 무엇인가? 이는 k-mer에 기반을 둔 서열 데이터의 분석 및 전환(transformation) 도구이다. 주로 metagenome이나 transcriptome의 de novo assembly를 위한 각종 전처리를 해 주는 파이썬 라이브러리와 스크립트의 모임이라고 보면 된다. 과연 어떤 기능들이 있는지를 홈페이지를 통해 알아보았다.
  • normalizing read coverage ("digital normalization")
  • dividing reads into disjoint sets that do not connect ("partitioning")
  • eliminating reads that will not be used by a de Bruijn graph assembler;
  • removing reads with low- or high-abundance k-mers;
  • trimming reads of certain kinds of sequencing errors;
  • counting k-mers and estimating data set coverage based on k-mer counts;
  • running Velvet and calculating assembly statistics;
  • optimizing assemblies on various parameters;
  • converting FASTQ to FASTA;
나는 파이썬에 대해 잘 모르기 때문에 가끔 파이썬 스크립트를 실행하려면 당혹스러울 때가 많다. 파이썬의 버전, pip, setuptools, virtualenv 등에 관한 체계적인 지식이 없어서 늘 애를 먹는다. khmer의 설치 역시 그러하였다.  파이썬이 특히 혼동스런 것은 서로 다른 버전을 동시에 운용할 필요가 있기 때문이다. 내가 사용하는 리눅스 머신은 CentOS 6.7이고, 기본적으로 설치된 것은 파이썬 2.6.6이다. 하지만 khmer는 파이썬 2.7을 요구한다. 그러면 어떻게 해야 할까? 구글링을 통해서 유용한 자료를 하나 찾았다.


distribute란 파이썬 패키지의 빌드, 설치, 업그레이드 및 삭제를 용이하게 하는 패키지이다(Setputools에게 자리를 내어주었다는데?). virtualenv란 파이썬 개발 프로젝트 단위로 서로 다른 버전의 파이썬을 유지하게 하는 도구인 것으로 생각된다. 

간혹 gcc의 버전이 너무 낮아서 문제가 되는 경우도 있다. 현재의 CentOS에 기본적으로 딸려오는 gcc는 4.4이다. 이를 4.7로 업그레이드하려면? 리눅스 배포판에 맞추어진 패키지의 버전을 임의로 올리는 것은 그렇게 간단하지는 않다. 다음 사이트를 보면 이러한 gcc 업그레이드 방법이 상세하게 나와있다. 별도의 리포지토리를 등록하여 devtoolset-1.1을 설치한 뒤 scl command를 실행하는 것이다.

How to upgrade gcc on CentOS

khmer 설치의 실제

khmer의 git clone을 만들어서 설치하려면 오히려 더 혼동스럽다. 관리자 권한으로서 devtoolset-1.1이 설치된 상황이라면 다음과 같이 하라. /usr/local/apps 아래에 적당한 디렉토리를 만들어서 virtualenv 환경을 만든 다음에 pip2로 khmer를 설치하는 것이 좋다. 관리자 권한이 없다면 OS X에서 설치하는 방법을 따르면 된다.
# cd /usr/local/apps
# mkdir khmer
# cd khmer
# python2.7 -m virtualenv khmerEnv
New python executable in khmerEnv/bin/python2.7
Also creating executable in khmerEnv/bin/python
Installing setuptools, pip, wheel...done.
# 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 khmerEnv/bin/activate
(khmerEnv)# pip2 install khmer
Collecting khmer
Collecting bz2file (from khmer)
Collecting screed>=0.9 (from khmer)
Installing collected packages: bz2file, screed, khmer
Successfully installed bz2file-0.98 khmer-2.0 screed-0.9
(khmerEnv)#

댓글 없음: