mOTUs profiler 是一个生信分析工具,使用宏基因组鸟枪法测序数据估计已知和当前未知微生物群落成员的相对分类丰度。(Github https://github.com/motu-tool/mOTUs)
按照Github提供的安装流程使用conda进行安装:
# Install in the base environment
conda install motus
# OR, create a new environment
conda create -n motu-env motus
conda activate motu-env
或使用pip进行安装:
# Download and install mOTUs
pip install motu-profiler
在安装完成后需要构建数据库,官方步骤为:
# Download the mOTUs database
motus downloadDB
但运行时会出现URL连接报错Errorno 111 connection refused错误:
$ motus downloadDB
------------------------------------------------------------------------------
| SETUP MOTUS TOOL |
------------------------------------------------------------------------------
Download the compressed motus database (~3.5Gb)
Traceback (most recent call last):
File "/path/to/lib/python3.8/urllib/request.py", line 1354, in do_open
h.request(req.get_method(), req.selector, req.data, headers,
File "/path/to/lib/python3.8/http/client.py", line 1256, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/path/to/lib/python3.8/http/client.py", line 1302, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/path/to/lib/python3.8/http/client.py", line 1251, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/path/to/lib/python3.8/http/client.py", line 1011, in _send_output
self.send(msg)
File "/path/to/lib/python3.8/http/client.py", line 951, in send
self.connect()
File "/path/to/lib/python3.8/http/client.py", line 1418, in connect
super().connect()
File "/path/to/lib/python3.8/http/client.py", line 922, in connect
self.sock = self._create_connection(
File "/path/to/lib/python3.8/socket.py", line 808, in create_connection
raise err
File "/path/to/lib/python3.8/socket.py", line 796, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refusedDuring handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/path/to/bin/motus", line 7, in <module>
from motus.motus import main
File "/path/to/lib/python3.8/site-packages/motus/motus.py", line 77, in <module>
motus.downloadDB.main()
File "/path/to/lib/python3.8/site-packages/motus/downloadDB.py", line 83, in main
save_f(link_db, db_name)
File "/path/to/lib/python3.8/site-packages/motus/downloadDB.py", line 45, in save_f
urllib.request.urlretrieve(url, filename, reporthook)
File "/path/to/lib/python3.8/urllib/request.py", line 247, in urlretrieve
with contextlib.closing(urlopen(url, data)) as fp:
File "/path/to/lib/python3.8/urllib/request.py", line 222, in urlopen
return opener.open(url, data, timeout)
File "/path/to/lib/python3.8/urllib/request.py", line 525, in open
response = self._open(req, data)
File "/path/to/lib/python3.8/urllib/request.py", line 542, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
File "/path/to/lib/python3.8/urllib/request.py", line 502, in _call_chain
result = func(*args)
File "/path/to/lib/python3.8/urllib/request.py", line 1397, in https_open
return self.do_open(http.client.HTTPSConnection, req,
File "/path/to/lib/python3.8/urllib/request.py", line 1357, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [Errno 111] Connection refused>
解决方法:
找到 downloadDB.py 代码,发现其中有这么几行:
motus_version = "3.1.0"
link_db = "https://zenodo.org/record/7778108/files/db_mOTU_v3.1.0.tar.gz"
md5_db = "f841c36150025af837f7a9a358c9a3c3"
DOI_db = "10.5281/zenodo.7778108"
其中link_db的这一链接可以直接访问并下载
也可以通过官网找到Database所在链接 https://zenodo.org/records/7778108
只要预先将db_mOTU_v3.1.0.tar.gz文件下载到本地,并修改link_db的路径到本地文件,就能够避免connection refused报错了。
如将db_mOTU_v3.1.0.tar.gz存储到 /path/to/db_mOTU_v3.1.0.tar.gz
修改downloadDB.py 代码中link_db的值:
motus_version = "3.1.0"
# link_db = "https://zenodo.org/record/7778108/files/db_mOTU_v3.1.0.tar.gz"
link_db = "file:///path/to/db_mOTU_v3.1.0.tar.gz"
md5_db = "f841c36150025af837f7a9a358c9a3c3"
DOI_db = "10.5281/zenodo.7778108"
再次运行motus downloadDB:
$ motus downloadDB
------------------------------------------------------------------------------
| SETUP MOTUS TOOL |
------------------------------------------------------------------------------
Download the compressed motus database (~3.5Gb)
100%, 2968 MB, 275349 KB/s, 11 seconds passedCheck md5: MD5 verified
Extract files from the archive...done
Remove zipped file...done
Add version file...done
发现已经成功了
qiime2的motus插件安装时也有同样的问题,可以尝试同样方法解决。