2019년 5월 3일 금요일

Circlator의 에러: Found spades but couldn't get version

Python 3.7을 기본으로 하는 conda 환경에 circlator를 설치하고 나서 필요한 모든 프로그램이 있는지를 확인하기 위해 circlator progcheck를 실행하였다. SPAdes의 권장 버전인 3.7.1은 바이너리 파일을 직접 받아서 설치한 상태이다.

그런데 SPAdes의 버전을 확인하지 못한다는 에러 메시지가 나온다.

Found spades but couldn't get version.

왜 그럴까? 구글 검색(관련글 링크)과 테스트를 거쳐서 찾아낸 이유는 파이썬 버전이 맞지 않기 때문이었다. 명령행에서 python `which spades.py`를 실행했을 때 오류 메시지를 출력하지 않아야 한다. 파이썬 3.6 환경에서 이를 실행하면 다음과 같은 메시지가 나온다.

== Error ==  python version 3.6 is not supported!

Supported versions are 2.4, 2.5, 2.6, 2.7, 3.2, 3.3, 3.4, 3.5

SPAdes 최신 버전은 물론 이런 문제를 일으키지 않을 것이다.

Base environment(python 2.7)에 circlator를 다시 설치하려고 시도하였는데 이상하게 시간이 많이 걸린다. 뭐가 잘못되었나? Circlator의 bioconda-recipe를 찾아 보았다. 파이썬 버전 3 이상을 요구하는 것처럼 보였다. 환경을 바꾸어서 LS-BSR environment(python 3.5)에 circlator를 설치하였다. Circlator spades 3.13.0이 포함되어 있지만 circlator progcheck를 하면 3.7.1을 권장한다는 메시지가 나온다. 

(ls_bsr) [hyjeong@tube ~]$ circlator progcheck
Circlator version: 1.5.5

External dependencies:
bwa	0.7.17	/opt/anaconda2/envs/ls_bsr/bin/bwa
WARNING: Didn't find canu in path. Looked for:canu
nucmer	3.1	/opt/anaconda2/envs/ls_bsr/bin/nucmer
prodigal	2.6.3	/opt/anaconda2/envs/ls_bsr/bin/prodigal
samtools	1.9	/opt/anaconda2/envs/ls_bsr/bin/samtools
WARNING: SPAdes version 3.13.0 is being used. It will work, but better results are usually obtained from Circlator using SPAdes version 3.7.1. Although 3.7.1 is not the latest version, we recommend it for Circlator.
spades	3.13.0	/opt/anaconda2/envs/ls_bsr/bin/spades.py

Python version:
3.5.6 |Anaconda, Inc.| (default, Aug 26 2018, 21:41:56) 
[GCC 7.3.0]

Python dependencies:
openpyxl	2.4.0-b1	/opt/anaconda2/envs/ls_bsr/lib/python3.5/site-packages/openpyxl/__init__.py
pyfastaq	3.17.0	/opt/anaconda2/envs/ls_bsr/lib/python3.5/site-packages/pyfastaq/__init__.py
pymummer	0.11.0	/opt/anaconda2/envs/ls_bsr/lib/python3.5/site-packages/pymummer/__init__.py
pysam	0.15.2	/opt/anaconda2/envs/ls_bsr/lib/python3.5/site-packages/pysam/__init__.py

SPAdes 3.7.1의 바이너리를 PATH에 추가한 뒤 다시 circlator progcheck를 하였다. 더 이상 SPAdes와 관련한 불평은 나오지 않는다. 대신 canu가 PATH에 없다는 경고가 나왔다. Assembler로서 canu와 SPAdes 중 어느 하나만 있으면 되니 별로 문제가 될 것은 없다. 오늘은 이것으로 nanopore sequencing 조립결과(pomoxis 사용)를 처리해 볼 것이다.

댓글 없음: