User Tools

Site Tools


metamos_installation

MetAMOS의 설치와 활용

개요

MetAMOS를 처음으로 설치할 때에는 python 2.7과 gcc를 별도로 설치하여 virtualenv 등의 골치아픈 방법으로 사용하느라 그 고생이 이루 말할 수 없었다. 지금은 Linuxbrew를 사용하여 정말 행복한(?) 프로그램 설치 작업을 즐기고 있다.

사전 준비

설치 환경

본 테스트 작업은 “test”라는 계정을 새로 만들어서 실시하였다.Haeyoung Jeong 2016/11/17 19:17

CentOS 6.8을 기준으로 하되 Linuxbrew를 철저히 이용하여 관리자가 아닌 일반 사용자 수준에서도 프로그램 빌드에 필요한 환경을 손쉽게 갖추는 것을 전제로 기술하였다.

$ cat /etc/centos-release
CentOS release 6.8 (Final)

Linuxbrew를 설치하려면 최소한 development tool(yum groupinstall “Development tools”)과 ruby는 미리 깔려 있어야 한다. Linuxbrew 홈페이지를 참조하여 설치를 한 다음 brew doctor를 실행하니 git를 업데이트하라는 메시지가 나온다. brew install git를 하면 glibc, binutils 등 git가 의존하는 패키지가 자동적으로 설치될 것이다. 다음으로는 공식 문서에서 요구하는 prerequisite인 java(6+), perl(5.8.8+), python(2.7.3+), R(2.11.1+ with PNG support), gcc(4.7+), curl 및 wget이 설치되어 있는지 확인하라. gcc -v를 실행하면 linuxbrew를 통해서 5.3.0이 설치되었음을 확인할 수 있다. 현재 내가 쓰는 서버의 패키지 설치 상황은 여기를 참조하라.

Python

다음을 실행하면 python 2.7.12가 설치된다. pip도 이미 설치된 상태이다. Perl module을 편하게 설치하고 싶으면 cpanm도 설치하라. 설치된 패키지의 목록을 확인하려면 brew list, 진단을 위해서는 brew doctor를 실행한다.

$ brew install python
$ brew install cpanm
$ brew install open-mpi
$ pip install --upgrade pip

Linuxbrew에 의존하기 싫다면?

Linuxbrew가 제공하는 gcc는 버전이 5.x대라서 다소 높은 감이 없지 않다. Linuxbrew 없이 gcc의 버전을 높이려면 소스에서 직접 빌드하거나 devtoolset를 사용하는 방법이 있다. Anaconda를 이용하면 최고한 파이썬 실행 환경은 2.7대로 올릴 수 있다.

Prerequisite 설치

MetAMOS 공식 문서를 보면 미리 설치해야 할 Perl module 및 python module이 있다. cpanm을 일반 유저로서 실행하면 관리자만이 쓰기 권한이 있는 디렉토리에 설치하지 못한다는 경고가 뜨지만 무시하라.

$ cpanm File::Copy::Link (나머지 Perl module도 마찬가지 방법으로...)
$ pip install cython
$ pip install numpy (이걸 먼저 깔아야 matplotlib을 설치할 수 있다)
$ pip install matplotlib==1.3.0 (버젼 지정하기; 그러나 아마 빌드에 실패할 것이다 - 아래 참조)
$ pip freeze (설치된 라이브러리 확인)

사실은 여기서 설치하지 않아도 나중에 metAMOS의 설치 스크립트를 실행할 때 알아서 설치하기는 한다.

matplotlib 1.3.0 설치가 안되는 문제

이는 아마도 Linuxbrew로 설치한 gcc 5.3.0과 matplotlib 1.3.0이 서로 맞지 않아서 생기는 문제일 것이다. 그냥 pip install matplotlib이라고 하면 1.5.3이 깔리는데, metAMOS 공식 문서에서는 1.3.0보다 신규한 버전을 깔면 작동을 보장하지 못한다는 글귀가 있다.

주의할 사항

설치 과정에서 다양한 DB가 깔리는데 그 용도를 정확히 파악하는 것이 중요하다.

설치

최신 버젼의 설치 파일(v1.5rc3.zip, GitHub for browsing)을 가져다가 압축을 푼다.

INSTALL.py의 오류

python INSTALL.py core를 실행하기 전에 먼저 고려할 사항이 있다. INSTALL.py 스크립트를 몇 가지 고쳐야 한다는 점이다. 물론 이것을 고치지 않는다고 해서 설치가 아예 안된다는 것은 아니다.

프로그램 다운로드 URL의 오류

1. CBCB(Center for Bioinformatics and Computational Biology)

CBCB에서 관리하는 프로그램은 ftp://ftp.cbcb.umd.edu/pub/data/metamos/에 위치하는데, 이를 존재하지 않는 경로인ftp://cbcb.umd.edu/pub/data/metamos/로 잘못 표시한 것이 있다. Statistics-Descriptive-3.0203.tar.gz, Reapr_1.0.16.tar.gz, 그리고 FRC_align-master.zip가 그러하다.

2. 다른 사이트의 프로그램

googlecode.com에 있던 프로그램(psutil, pysam, prodigal, idba, ea-utils, spareshash)은 이제 더 이상 유효하지 않다. 이것은 인터넷을 적당히 뒤져서 원본 파일을 찾아내어 수작업으로 설치해야만 한다. 다행히 python library는 pip를 이용하여 공식화된 저장소로부터 직접 다운로드하여 설치할 수 있다.

metAMOS 설치 테스트를 너무 자주하게 되어서 아예 CBCB 사이트의 미러를 만들어 버렸다. 하지만 이 사이트는 방화벽 내부에 설치되어서 외부에서는 접근이 안된다.

더 이상 존재하지 않는 DB

유전체 데이터가 점점 증가하고 NCBI genome ftp site의 구조가 변경되면서 bacterial genome sequence를 전부 모아놓은 ftp://ftp.ncbi.nih.gov/genomes/Bacteria/all.fna.tar.gz는 이제 존재하지 않는다(관련 블로그 문서, NCBI gebines download (FTP) FAQ). 대신 ftp://ftp.ncbi.nih.gov/genomes/archive/old_refseq/Bacteria/ 하위를 뒤지면 예전 genome sequence file이 보관되어 있으니 여기에 있는 all.fna.tar.gz를 활용하면 된다. 이 파일은 갱신되지 않으니 유의하라. INSTALL.py를 다음과 같이 수정하면 된다(ftpSiteOld라는 새로운 변수를 설정). Virus 관련 파일은 아직 다운로드 URL이 변경되지 아니하였다.

all.fna.tar.gz 파일은 quast 및 kraken 설치(아랫부분 참조)시 전부 필요하다.

# since quast requires a reference, also download refseq
          ftpSite = "ftp://ftp.ncbi.nih.gov/genomes/"
          ftpSiteOld = "ftp://ftp.ncbi.nih.gov/genomes/archive/old_refseq/"
          file = "all.fna.tar.gz"
          if not os.path.exists("./Utilities/DB/refseq/") and not nodbs:
              print "Downloading refseq genomes (Bacteria/%s, Viruses/%s)..."%(file,file)
              print "\tThis file is large and may take time to download"
              os.system("curl -L %s/Bacteria/%s -o bacteria.tar.gz"%(ftpSiteOld, file))
              os.system("curl -L %s/Viruses/%s -o viruses.tar.gz"%(ftpSite, file))

all.fna.tar.gz는 quast를 설치하겠다고 선언했을 때(packagesToInstall) 비로소 다운로드한다. 다시 말하자면 core가 아니라 iMetAMOS workflow 설치를 지정해야만 깔린다는 것이다. 그런데 INSTALL.py 내의 all.fna.tar.gz 다운로드 경로를 수정하는 것으로 모든 문제가 해결되지 않는다. 왜냐하면 INSTALL.py가 호출하는 다른 스크립트가 또 all.fna.tar.gz를 다운로드하려고 시도하기 때문이다. 모든 스크립트를 뒤져서 all.fna.tar.gz를 옛날 URL에서 찾는 것들이 무엇이 있는지를 조사해 보았다(결과). 이걸 다 고쳐야 한단 말인가? 상당히 고민스럽다.

INSTALL.py의 실행

오류를 수정했다고 가정하고 이제부터 본격적인 설치 작업에 착수해 보자. 우선 맛보기로서 core를 설치한다.

$ pip freeze
backports-abc==0.5
blinker==1.4
certifi==2016.9.26
configobj==5.0.6
cycler==0.10.0
Cython==0.25.1
enum34==1.1.6
matplotlib==1.5.3
nose==1.3.7
numpy==1.11.2
psutil==0.6.1
pyparsing==2.1.10
pysam==0.9.1.4
python-dateutil==2.6.0
pytz==2016.7
singledispatch==3.4.0.3
six==1.10.0
tornado==4.4.2
$ python INSTALL.py core
<<Welcome to metAMOS install>>
Selected to install workflowName: CORE.
Will automatically install:
	Pysam
	Setuptools
	Fastqc
	Matplotlib
	Metavelvet
	Lap
	Kronatools
	Cython
	Sra
	Velvet
	Velvet-Sc
	Kraken
	Psutil
	Uniprot
	Amos
	Numpy
MetAMOS would like to record anonymous usage statistics, is this ok ? 
Enter Y/N: y

특별히 시간이 오래 걸리는 것은 다음의 DB 설치 과정이다.

  • NCBI taxonomy 자료(metAMOS-1.5rc3/Utilities/DB/kraken/taxonomy/): 다운로드 자체보다는 updateTaxonomy.sh에서 “Creating combined GI to taxID index…” 실행 단계
  • uniprot_sprot.fasta(metAMOS-1.5rc3/Utilities/DB/에 fasta file과 blast db 생성)

설치 여부를 묻는 것은 다음의 프로그램 혹은 DB이다.

optional program (or workflow)의 설치

isolate genome assembly를 위한 workflow인 iMetAMOS를 설치해 보자.

$ python INSTALL.py iMetAMOS
  • Unordered List Itemquast 설치 직후에 비로소 refseq genomes(Bacteria/all.fna.tar.gz, Viruses/all.fna.tar.gz; 수정된 URL로부터)을 다운로드한다. 이것은 assembled sequence에 대한 genome recruitment에 사용된다. 다운로드 및 압축 해제에 시간이 다소 소요되는 편이다. metAMOS-1.5rc3/Utilities/DB/refseq/에 총 7137개의 .fna 파일이 생긴다.
$ python INSTALL.py metaphyler
(FCP/NB를 위한 genome model download 여부 문의; 설치에 시간 소요)
(PhyloSift bianry 설치 여부 문의; marker + refseq protein DB 다운로드에 장시간 소요)
  <= 특히 fastacmd 실행에 많은 시간이 걸림

이제 옵션 없이 설치 스크립트를 실행해 보자.

$ python INSTALL.py
<<Welcome to metAMOS install>>
Selected to install workflowName: CORE.
Selected to install workflowName: OPTIONAL.
Selected to install workflowName: IMETAMOS.
Will automatically install:
	Pysam
	Fastqc
	Ca
	Ale
	Sga
	Velvet-Sc
	Metaphyler
	Phylosift
	Metavelvet
	Velvet
	Soap2
	Frcbam
	Quast
	Eautils
	Ray
	Numpy
	Freebayes
	Fcp
	Edena
	Uniprot
	Cython
	Cgal
	Mira
	Matplotlib
	Prokka
	Idba
	Cmake
	Lap
	Masurca
	Kronatools
	Abyss
	Sra
	Spades
	Kraken
	Psutil
	Setuptools
	Amos
	Phmmer
	Kmergenie
	Reapr
Checking whether refseq_protein is complete. Expecting 27 partitions.

Run setup.py..
/home/test/.linuxbrew/Cellar/python/2.7.12_3/lib/python2.7/site-packages/setuptools/dist.py:285: UserWarning: Normalizing '1.0b' to '1.0b0'
  normalized_version,
running install_scripts
running egg_info
writing metAMOS.egg-info/PKG-INFO
writing top-level names to metAMOS.egg-info/top_level.txt
writing dependency_links to metAMOS.egg-info/dependency_links.txt
reading manifest file 'metAMOS.egg-info/SOURCES.txt'
writing manifest file 'metAMOS.egg-info/SOURCES.txt'
running build_scripts
copying build/scripts-2.7/initPipeline.py -> /home/test/metAMOS-1.5rc3
copying build/scripts-2.7/runPipeline.py -> /home/test/metAMOS-1.5rc3
changing mode of /home/test/metAMOS-1.5rc3/initPipeline.py to 775
changing mode of /home/test/metAMOS-1.5rc3/runPipeline.py to 775
running build_ext
skipping './src/preprocess.c' Cython extension (up-to-date)
skipping './src/annotate.c' Cython extension (up-to-date)
skipping './src/fannotate.c' Cython extension (up-to-date)
skipping './src/mapreads.c' Cython extension (up-to-date)
skipping './src/findorfs.c' Cython extension (up-to-date)
skipping './src/findscforfs.c' Cython extension (up-to-date)
skipping './src/scaffold.c' Cython extension (up-to-date)

여기까지 왔으면 python INSTALL.py optional을 해도 더 이상 설치되는 것이 없다.

문제점 발견

kraken-build 과정에서 옛날 all.fna.tar.gz 다운로드 시도

메모리가 100 GB 미만이거나 nodbs를 지정하지 않은 경우(if (mem < 100) and not nodbs: - psutil은 메모리 측정에 필요) minikraken DB(파일 다운로드, kraken 웹사이트)를 설치하지만 그렇지 않다면 all.fna.tar.gz을 내려받아서 직접 custom kraken DB를 만들도록 되어있다. Utilities/cpp/Linux-x86_64/kraken/bin/kraken-build 스크립트 내부에서 download_genomic_library.sh 스크립트를 불러서 실행하는데, 바로 여기에 옛날 주소의 all.fna.tar.gz가 들어있는 것이다. INSTALL.py 실행 중에 kraken 소스를 내려받아서 설치하도록 되어있으므로, 이를 동시에 고칠 수는 없는 노릇이다. 그러면 해결 방법은 다음과 같다.

  1. INSTALL.py를 중간에 오류가 발생한 상태로(all.fna.tar.gz를 다운로드하지 못했다고 해서 install 과정 전체가 중단되지는 않는다) 일단 끝까지 가도록 한 다음, minikraken을 수동으로 설치한다.
  2. 또는 kraken 패키지의 download_genomic_library.sh 내의 all.fna.tar.gz 파일 주소를 고치고 나서 다음 명령을 직접 실행한다. 단, kraken DB를 만들려면 jellyfish v1.x가 필요하므로 metAMOS 환경에서 설치된 jellyfish binary가 $PATH에 포함되도록 해야만 한다. 상당히 시간이 많이 걸리니 각오하라!
$ bin/kraken-build --standard --threads $NUM_THREDS --db $METAMOSPATH/Utilities/kraken (장시간 소요)
$ ls -l /home/test/metAMOS-1.5rc3/Utilities/DB
합계 148994540
-rw-rw-r-- 1 test test  8589934608 2016-11-17 20:33 database.idx
-rw-rw-r-- 1 test test 71973546172 2016-11-17 20:31 database.jdb
-rw-rw-r-- 1 test test 71973546172 2016-11-17 21:17 database.kdb
-rw-rw-r-- 1 test test    16389717 2016-11-17 20:53 file2taxon.map
-rw-rw-r-- 1 test test    16952797 2016-11-17 20:52 gi2file.map
-rw-rw-r-- 1 test test           0 2016-11-17 21:21 lca.complete
drwxrwxr-x 4 test test        4096 2016-11-17 19:54 library
drwxrwxr-x 2 test test        4096 2016-11-17 17:24 taxonomy

ea-utils.1.1.2-537.tar.gz가 더 이상 존재하지 않음

ea-utils는 GitHub로 옮겨갔으며 버전과 디렉토리 구조도 달라졌다. 일단 파일명은 ExpressionAnalysis-ea-utils-27a4809.tar.gz이고 압축을 풀면 clipper라는 하위 디렉토리가 아래에 소스가 있다. 이를 ea-utils.1.1.2-537라는 이름의 폴더로 옮겨서 잠시 눈속임(?)을 하여 설치를 진행하였다. 가장 가까와 보이는 버젼으로는 ea-utils.1.1.2-805.zip을 구해 놓은 것이 있다.

첫 테스트 러닝(run_pipeline_test.sh)

metAMOS-1.5rc3/Test 디렉토리에는 테스트를 위한 갖가지 스크립트가 수록되어있다. 이를 사용하여 설치 상태가 완벽한지를 알아보도록 하자. run_pipeline_test.sh를 실행하면 Carsonella 유래의 10만개의 read를 조립하여 3개의 contig(단일 스캐폴드)를 만든 뒤 이에 대한 분석 작업을 실시하게 된다.

$ cd Test
$ cat run_pipeline_test.sh 
#/bin/sh
../initPipeline -f -m carsonella_pe_filt.fna -d test1  -i 500:3500
../runPipeline -a soap -c kraken -g fraggenescan -p 15 -d test1 -k 55 -f Assemble,MapReads,FindORFS,Annotate,FunctionalAnnotation,Propagate,Classify,Abundance,FindScaffoldORFS -n FunctionalAnnotation
$ ./run_pipeline_test.sh 
Warning: Celera Assembler is not found, some functionality will not be available
Warning: BLASR is not found, some functionality will not be available
Warning: Newbler is not found, some functionality will not be available
Warning: FRCbam is not found, some functionality will not be available
Project dir /home/test/metAMOS-1.5rc3/Test/test1 successfully created!
Use runPipeline.py to start Pipeline
[Steps to be skipped]:  set(['FunctionalAnnotation', 'FindRepeats'])
Starting Task = runpipeline.RUNPIPELINE
Starting metAMOS pipeline
..
Starting Task = findscaffoldorfs.FINDSCAFFOLDORFS
*****************************************************************
*************************ERROR***********************************
During findscaffoldorfs, the following command failed with return code -11:
>> /home/test/metAMOS-1.5rc3/Utilities/cpp/Linux-x86_64/FragGeneScan -s /home/test/metAMOS-1.5rc3/Test/test1/Scaffold/out/proba.linearize.scaffolds.final -o /home/test/metAMOS-1.5rc3/Test/test1/FindScaffoldORFS/out/proba.orfs -w 0 -t complete
*************************ERROR***********************************
*****************************************************************
rm: cannot remove `/home/test/metAMOS-1.5rc3/Test/test1/Logs/findscaffoldorfs.ok': 그런 파일이나 디렉터리가 없습니다
Oops, MetAMOS finished with errors! see text in red above for details.

설치되지 않은 프로그램에 대한 경고(Celera Assembler, BLASR, Newbler, FRCbam)는 나중에 검토하기로 하자. 당장 필수적인 것은 아니기 때문이다. 십중팔구는 FindScaffoldORFS 단계에서 에러를 발생하면서 비정상 종료를 할 것이다. 이는 FragGeneScan 바이너리의 호환성에 의한 문제로서 metAMOS의 GitHub 사이트에서도 여러차례 리포트가 된 상태이다. 공식적인 해결 방안은 FragGeneScan보다 우수한 프로그램인 MetaGeneMark의 실행파일인 gmhmmp(다운로드 사이트)를 각자 입수하여 쓰는 것이다. 라이센스 발급 문제로 인하여 MetaGeneMark를 metAMOS 배포판에 넣을 수가 없었던 것으로 생각된다. 예전에 작성한 블로그 글을 참조하여 MetaGeneMark를 사용 가능하게 만든 다음, run_pipeline_test.sh 내의 -g fraggenescan을 -g metagenemark로 고친다. 바로 직전 러닝에서 만들어진 test1 디렉토리를 제거한 뒤 다시 run_pipeline_test.sh를 실행해 본다.

이번에는 끝까지 잘 진행되면서 결과 파일(metAMOS-1.5rc3/Test/test1/Postprocess/out/html/summary.html)이 자동으로 웹브라우저에 나타난다.

그러나 주의하라. 아직 해결되지 않은 문제가 있다.

  • Abundance는 100% Gammaproteobacteria로 제대로 된 결과가 나왔지만
  • Annotate(taxonomic classification; by FCP, Kraken, and Phylosift) 결과가 없고
  • Classify에서는 세 개의 contig가 전부 unknown으로 나타난다.

Classifier 바꾸어보기

Classifier(-c 옵션)을 FCP 또는 metaphyler로 바꾸어 보았다.

Annotation coverage가 두 결과 사이에서 일치하지는 않지만 아무 것도 나오지 않은 kraken과는 매우 다르다. 특히 FCP를 사용한 것에서는 classify 결과도 제대로 표현되었다.

minikraken을 사용하면 문제가 해결될까?

minikraken DB를 다운로드하여 압축을 푼 뒤, Utilities/DB/kraken으로 심볼릭 링크(원본: minikraken_20140104)를 하여 다시 run_pipeline.sh를 실행하였다. 이번에는 Annotate와 Classify 결과가 생성되었다. 그렇다면 수작업으로 만든 kraken DB에 문제가 있다는 뜻이 된다.

custom kraken DB test

FRCbam 설치 문제

FRCbam은 내 경험으로는 metAMOS 설치 전체 과정에서 가장 까다로운 것으로 생각된다. boost library를 같이 설치하는 과정부터가 쉽지 않고, 궁합이 맞는 gcc를 찾는 것도 어렵다. 이미 Linuxbrew를 이용항 gcc v5.3.0을 갖춘 상태라서 이것만을 하위 버전으로 만드는 것은 상당히 골치가 아프다. 만약 /usr/bin/gcc와 /usr/bin/g++을 이용하여 INSTALL.py 스크립트를 실행할 수만 있다면 에러 없이 FRCbam을 설치할 수 있을지도 모른다. 아직 테스트를 해 보지는 않았다.

$ export CC=/usr/bin/gcc
$ export CPP=/usr/bin/cpp
$ export CXX=/usr/bin/c++

또는 scl enable devtoolset-1.1 bash을 실행하여 gcc v4.7.2 상태로 전환한 뒤 INSTALL.py를 실행한다면? 이건 나중을 위한 숙제로 남기자. 나는 다음과 같은 꼼수를 이용하였다.

1. boost library 1.54.0 설치(FRC_align을 위한 필수 사항)

'su'가 아니라 'su -'를 실행하면 gcc 4.4.7을 쓸 수 있다. 이 상태에서 boost library 1.54.0을 /usr/local/boost_1_54_0에 압축 해제하여 다음과 같은 방법으로 설치한다. 참고한 사이트는 여기이다.

# cd /usr/local/boost_1_54_0
# ./bootstrap.sh
# ./b2
# ./bjam link=static stage (이것이 대단히 중요하다)

2. FRC_align 설치

root 상태를 그대로 유지하면서(즉 gcc v4.4.7을 사용한다는 의미) FRC_align을 설치한다. 만들어진 FRC 바이너리를 metAMOS-1.5rc3/Utilities/cpp/Linux-x86_64/FRCbam/bin/ 디렉토리에 복사한다. 그러나 나중에 test_ima.sh를 실행해 보니 입축력 인터페이스가 바뀌어서 또 에러가 난다. 확인된 사용 가능 버전은 FRC_align-3398ca469b2077d6672b85317eee6fea171b6a27이다. 이것은 CBCB의 metAMOS 사이트에 있는 이 압축파일에 해당한다.

요지는 바로 이것이다. gcc v5.3.0이 결코 만능은 아니라는 것!

iMetAMOS test(test_ima.sh)

run_pipeline_test.sh 스크립트와는 달리, test_ima.sh는 test_ima.ini에서 모든 작업 내용을 설정한다는 것이 다르다. test_ima.sh 스크립트가 하는 것은 결과 프로젝트와 워크플로우를 선언하고 사용할 thread 수를 결정하는 것 정도이다. 이 테스트 러닝에서는 read file(carsonella_pe_filt.fna.gz)을 다운로드하여 전처리(kmer Genie; best k-mer 및 genome size 예측)를 한 뒤 여러가지 de novo assembler로 조립을 한 다음, 이를 reference assembly(Candidatus_Carsonella_ruddii_uid58773.fna)와 비교하여 최선의 것을 선택한 뒤(re-mapping이 필요) 후속 분석 작업을 진행한다. 원래 reference assembly까지 인터넷에서 다운로드하도록 파일이 짜여져 있으나, 앞에서 여러차례 소개했듯이 이미 유효하지 않은 URL이 되었기에 다른 방법으로 입수하여 실행 스크립트에 투입하였다. 선택된 assembly와 가장 가까운 genome을 reference genome DB로부터 recruit하는 것도 중요한 기능 중 하나이다.

FRCbam을 빌드하여 설치하였으므로 실행 시 나오는 첫 경고문에는 Celera Assembler, Newbler, BLASR이 없다고만 표시된다.

사전 점검

  1. FRCbam binary가 준비되었는가? 이것은 여러 de novo assembly의 결과물을 평가하기 위한 도구의 하나이다.
  2. metAMOS-1.5rc3/Test/test_ima.ini를 metAMOS-1.5rc3/Utilities/workflows/에 복사하였는가? metAMOS-1.5rc3/Utilities/workflows/enabled.ini에 test_ima를 삽입하였는가?
  3. test_ima.ini에서는 NC_008512.fna의 URL이 선언되었다. 그러나 이는 더 이상 유효한 URL이 아니므로, 이미 받아놓은 metAMOS-1.5rc3/Utilities/DB/refseq/Candidatus_Carsonella_ruddii_uid58773.fna를 이용하자.
  4. prokka에 딸려온 cmscanphmmer이 /lib64/libc.so.6: version `GLIBC_2.14' not found 에러를 유발할 수 있다. 이 두 가지 바이너리는 다른 경로를 통해서 빌드하여 metAMOS-1.5rc3/Utilities/cpp/Linux-x86_64/prokka/binaries/linux/에 복사하라라. 정말 끝도 없이 발생하는 에러가 지긋지긋하다!
  5. Classification용 kraken DB는 miniKraken으로 전환하였는가?

test_ima.sh

#/bin/sh
../initPipeline -d test_ima -W test_ima
../runPipeline -d test_ima -p 8 

test_ima.ini (metAMOS-1.5rc3/Utilities/workflows/에 위치)

inherit:iMetAMOS
modify:True
command: -q -u -r -v -I -c kraken -g metagenemark -p 16 -a spades,idba,mira,velvet-sc,metavelvet,abyss,ray,edena,sga,masurca,soap,soap2,velvet -t metamos -f Postprocess,FunctionalAnnotation -z phylum
asmcontigs:     Candidatus_Carsonella_ruddii_uid58773.fna
lib1format:     fasta
lib1mated:      True
lib1innie:      True
lib1interleaved:        True
lib1f1: ftp://ftp.cbcb.umd.edu/pub/data/metamos/carsonella_pe_filt.fna.gz,2000,5000,3500,500

결과

http://genoglobe.kr/data/2016-11-18_test_ima_out/html/summary.html ← metAMOS-1.5rc3/Test/test_ima/Postprocess/out/ 디렉토리만을 옮긴 것임.

Database update

Kraken DB

metAMOS process에서 Annotate와 Functional Annotate는 엄격하게 구분된다. Annotate는 바로 taxonomic classification을 의미한다. 현재 지원되는 소프트웨어는 FCP, Kraken(default), 그리고 Phylosift가 있다. 설치 단계에서 INSTALL.py nodbs를 지정하거나 혹은 메모리의 크기가 100GB 미만이면 minikraken을 설치하게 되어있다. INSTALL.py에서 설정된 다운로드 위치는 다운로드 여기이다.

MIDAS DB는 어떠한가?

KronaTools taxonomy data

이것은 INSTALL.py를 통한 자동 업데이트 기능은 없는 것으로 보인다. nodbs 옵션을 주지 않은 상태에서 tax_key.tab 파일이 없을 떄에만 설치가 된다. 필요하다면 다음을 이따금 실행하면 될 것이다. ${METAMOS_ROOT}KronaTools/taxonomy/taxonomy.tab과 ${METAMOS_ROOT}/Utilities/DB/tax_key.tab이 무엇이 다른지 비교해 보라. NCBI taxonomy DB를 kraken과 krona 설치작업 양쪽에서 따로 내려받는 것은 낭비라고 생각된다.

$ cd ${METAMOS_ROOT}/KronaTools
$ ./updateTaxonomy.sh
>>>>> Updating GI to taxID dump (nucleotide)...
>>>>> Unzipping GI to taxID dump (nucleotide)...
>>>>> Updating GI to taxID dump (protein)...
>>>>> Unzipping GI to taxID dump (protein)...
>>>>> Updating Taxonomy dump...
>>>>> Unzipping Taxonomy dump...
>>>>> Creating combined GI to taxID index...
>>>>> Extracting taxonomy info...
>>>>> Cleaning up...
>>>>> Finished.
$ ls -l taxonomy
합계 4390084
-rw-rw-r-- 1 hyjeong hyjeong 4417218044 2016-11-24 13:58 gi_taxid.dat
-rw-rw-r-- 1 hyjeong hyjeong   78222171 2016-11-24 13:59 taxonomy.tab
$ cd ..
$ cat KronaTools/taxonomy/taxonomy.tab | awk -F "\t" '{print $1"\t"$NF}' > ./Utilities/DB/tax_key.tab

RefSeq protein

INSTALL.py를 실행할 때마다(nodbs가 설정되지 않은 조건) Christiam Camacho의 스크립트인 metAMOS-1.53rc/Utilities/perl/update_blastdb.pl refseq_protein이 실행되어 DB를 최신 것으로 바꾼다.

Uniprot/Swissprot

이것은 functional annotation을 위한 DB이다. 한번 설치되면 업데이트되지 않는다. 다운로드 사이트는 CBCB이니 업데이트될 이유가 없다(uniprot.tar.gz, 548 Mb). 이것이 옛날 것이라고 해서 functional annotation에 특별히 실패할 가능성은 거의 존재하지 않는다. 최신 것을 UniProt download center에서 받고 싶다면 클릭하여 들어가거나, FASTA 파일이 필요하면 이 링크를 활용하여 BLAST DB를 생성하면 된다.

해결해야 할 문제점

  1. PhyloSift –thread 8에서는 잘 작동하지만 –thread 16으로 설정하면 진행이 되지 않는다.
metamos_installation.txt · Last modified: 2021/03/17 13:09 by 127.0.0.1