[12] Routy B, Le Chatelier E, Derosa L, et al. Gut microbiome influences efficacy of PD-1-based immunotherapy against epithelial tumors. Science 2018;359:91–7.
[13] Gopalakrishnan V, Spencer CN, Nezi L, et al. Gut microbiome modulates response to anti-PD-1 immunotherapy in melanoma patients. Science 2018;359:97–103.
[14] Matson V, Fessler J, Bao R, et al. The commensal microbiome is associated with anti-PD-1 efficacy in metastatic melanoma patients. Science 2018;359:104–8.
2019년도 Gut 논문에서는 이상의 세 가지의 연구 사례에서 공통적인 'microbial signal'이 없다는 점에 착안하여 같은 분석 파이프라인을 적용하여 어떤 결과가 나오는지를 살펴보기로 한 것이다. 16S 데이터는 QIIME 1.9.1을, shotgun metagenome data는 MetaPhlAn2를, R과 NR 집단에 연관된 바이오마커 동정에는 LEfSe를 사용하였다. 결론에서는 taxonomic profiling으로는 두 집단을 가르는 '미생물 시그날'을 찾아내긴 어려우며, function의 차이를 유의해서 보아야 될 것이라 하였다. 그러려면 shotgun 방색의 metagenomics가 앞으로는 더욱 중요하다는 뜻이 된다. 예전에는 assembly 기반의 shotgun metagnomic에 관심이 많았었지만 용도에 따라서는 그럴 필요가 없다고 느껴진다.
QIIME Installation Guide에 따르면 Miniconda에서 환경을 만들라고 하였다. 파이썬은 2.7을 쓰라고 하였다. 나는 Anaconda를 설치해 두었으니 여기에서 시작하면 되겠다고 생각을 했다. 그런데...
(base) $ conda create -n qiime1 python=2.7 qiime matplotlib=1.4.3 mock nose -c bioconda ... PackagesNotFoundError: The following packages are not available from current channels: - matplotlib=1.4.3
matplotlib의 버전(1.4.3)이 너무 옛날 것인가? 채널에 해당되는 버전이 없다는 에러 메시지가 나왔다. 그래서 matplotlib 뒤에 지정된 버전을 지우기도 하고, 파이썬만 있는 qiime1 conda environment만 먼저 만들어서 여기에 진입하여 qiime1을 설치하는 등 여러 시도를 했지만 'Package XYZ conflicts for:'에러가 수십개나 발생하는 것이다. 이래서는 도저히 안되겠다 싶어서 alternative installation methods document를 확인하였다. 시스템에 원래 설치된 python 2.7에서 관리자 권한으로 pip를 사용하여 최소 설치를 하면 될 것이라 생각을 하였다.
회사 환경은 SSL 인증서 문제로 프로그램 설치가 참 까다롭다. conda, git, pip... 뭐 하나 쉬운 것이 없다. pip를 쓰려면 명령행에 누더기처럼 --trusted-host pypi.org --trusted-host files.pythonhosted.org를 덧붙여야 한다.
문서를 보면 먼저 numpy를 설치하란다. 이는 이미 설치가 되어 있는 상태이다. 그러면 본격적으로 QIIME 1.9.1을 깔아보자!
# pip install qiime==1.9.1 --trusted-host pypi.org --trusted-host files.pythonhosted.org ... ERROR: ipython 5.8.0 has requirement setuptools>=18.5, but you'll have setuptools 0.9.8 which is incompatible. ERROR: ipapython 4.6.4 has requirement dnspython>=1.15, but you'll have dnspython 1.12.0 which is incompatible. ERROR: ipapython 4.6.4 has requirement python-ldap>=3.0.0b1, but you'll have python-ldap 2.4.15 which is incompatible.
이건 또 뭔가? setuptools, dnspython, 그리고 python-ldap만 수동으로 설치하면 되려나? pip install로 하나씩 설치를 해 나가는데 또 이런 에러 메시지가 나왔다.
ERROR: Cannot uninstall 'XYZ'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
구글을 뒤져보니 이 에러는 distutils가 설치한 프로그램이라서 정확히 어떤 파일이 제거되어야 하는지 알 수 없다라는 의미라고 한다(distutils는 uninstaller 를 가지고 있지 않아서 distutils로 설치하면 지우기가 어렵다고 함). 이런 경우에는 --ignore-installed 옵션을 쓰라고 한다. 즉 다음과 같이 하여 별로 필요하지 않은 requirement를 일일이 점검하지 않고 다시 QIIME을 설치하게 만들었다.
# pip install --ignore-installed qiime==1.9.1 --trusted-host pypi.org --trusted-host files.pythonhosted.org
설치가 끝났으면 테스트 스크립트를 실행한다.
# print_qiime_config.py -t
...
ImportError: No module named Tkinter
이것은 또 뭔가? Tkinter라는 Tcl/Tk 파이썬 인터페이스 패키지가 없다는 에러이다. 전에도 본 일이 있다. yum으로 tkinter를 설치하면 된다. 우분투용 패키지 이름은 python-tk, python3는 python3-tk라고 한다. 내 환경은 CentOS 7이다.
자, 그러면 다 되었겠지?
# print_qiime_config.py -t
AssertionError: Unsupported FastTree version. 2.1.3 is required, but running 2.1.10.
아이고, 별게 다 속을 썩인다. FastTree-2.1.3 소스 코드를 가져다가 컴파일하였다.
# mkdir /usr/local/apps/FastTree-2.1.3 # cd /usr/local/apps/FastTree-2.1.3 # wget http://www.microbesonline.org/fasttree/FastTree-2.1.3.c # gcc -O3 -finline-functions -funroll-loops -Wall -o FastTree FastTree.c -lm # ln -s FastTree fasttree
방금 빌드한 fasttree 바이너리가 가장 먼저 인식되도록 PATH 변수를 수정한 다음 다시 print_qiime_config.py -t를 실행하였다. 드디어 에러가 하나도 발생하지 않았다. 얼마나 반가운 OK 사인인가!
# PATH=/usr/local/apps/FastTree-2.1.3:$PATH # print_qiime_config.py -t System information ================== Platform: linux2 Python version: 2.7.5 (default, Jun 20 2019, 20:27:34) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] Python executable: /usr/bin/python QIIME default reference information =================================== For details on what files are used as QIIME's default references, see here: https://github.com/biocore/qiime-default-reference/releases/tag/0.1.3 Dependency versions =================== QIIME library version: 1.9.1 QIIME script version: 1.9.1 qiime-default-reference version: 0.1.3 NumPy version: 1.16.5 SciPy version: 1.2.2 pandas version: 0.24.2 matplotlib version: 2.2.4 biom-format version: 2.1.7 h5py version: Not installed. qcli version: 0.1.1 pyqi version: 0.3.2 scikit-bio version: 0.2.3 PyNAST version: 1.2.2 Emperor version: 0.9.61 burrito version: 0.9.1 burrito-fillings version: 0.1.1 sortmerna version: SortMeRNA version 2.0, 29/11/2014 sumaclust version: SUMACLUST Version 1.0.00 swarm version: Swarm 1.2.19 [Aug 28 2019 11:29:13] gdata: Installed. QIIME config values =================== For definitions of these settings and to learn how to configure QIIME, see here: http://qiime.org/install/qiime_config.html http://qiime.org/tutorials/parallel_qiime.html blastmat_dir: None pick_otus_reference_seqs_fp: /usr/lib/python2.7/site-packages/qiime_default_reference/gg_13_8_otus/rep_set/97_otus.fasta sc_queue: all.q topiaryexplorer_project_dir: None pynast_template_alignment_fp: /usr/lib/python2.7/site-packages/qiime_default_reference/gg_13_8_otus/rep_set_aligned/85_otus.pynast.fasta cluster_jobs_fp: start_parallel_jobs.py pynast_template_alignment_blastdb: None assign_taxonomy_reference_seqs_fp: /usr/lib/python2.7/site-packages/qiime_default_reference/gg_13_8_otus/rep_set/97_otus.fasta torque_queue: friendlyq jobs_to_start: 1 slurm_time: None denoiser_min_per_core: 50 assign_taxonomy_id_to_taxonomy_fp: /usr/lib/python2.7/site-packages/qiime_default_reference/gg_13_8_otus/taxonomy/97_otu_taxonomy.txt temp_dir: /tmp/ slurm_memory: None slurm_queue: None blastall_fp: blastall seconds_to_sleep: 1 QIIME base install test results =============================== ......... ---------------------------------------------------------------------- Ran 9 tests in 0.026s OK
다음으로는 도커 이미지도 다운로드해 두었다.
# docker pull quay.io/biocontainers/qiime:1.9.1--np112py27_1
pip를 이용하여 개별적으로 설치하느라 괜히 고생을 한 것은 아닌지 모르겠다.
2021년 5월 13일 업데이트
지금은 conda를 이용하여 쉽게 설치할 수 있으니 이런 고생을 할 필요가 없다. 2021년 5월에 QIIME 1.9.1이 웬 말이냐고 하겠지만, 아직 쓸모가 있는 것 같다.
댓글 없음:
댓글 쓰기