HUMAnN是基于宏基因组、宏转录组数据分析微生物通路丰度的有效工具。通过MetaPhlAn组件能够分析物种构成,并对UniRef和MetaCyc进行比对分析,描述群体成员的代谢潜能,以此回答微生物群体成员是什么,以及可能在干什么的问题。这个软件用起来,做物种构成感觉没有用Kraken爽,但是做通路分析是真的方便。
前几天赫然发现HUMAnN和MetaPhlAn都已经进入了3.0时代,于是对新版本的软件进行了安装,在此特意跟大家分享一下安装过程。我使用的系统是Ubuntu 20.04 LTS,硬件是NUC10i7FNH。
按照Huttenhower实验室的线上说明文档,有conda和pip两种安装方法。然而我使用conda安装的时候总会出现各种conflict的报错,最终使用pip安装成功。
需要先使用conda建立一个python 3.7的环境humann:
$ conda create -n humann python=3.7
然后启动这个环境:
$ conda activate humann
使用pip安装humann3
$ pip install humann
如果觉得安装速度比较慢,可以在后面加上-i调整一下pip的源,比如我就常规用隔壁学校的。
$ pip install humann -i https://pypi.tuna.tsinghua.edu.cn/simple
此时我们可以发现HUMAnN3其实还是不能使用,因为依赖项没有安装。官方要求的主要依赖项如下:
Python (>= 3.7)(这个在建立环境的时候已经建立了。)
MetaPhlAn (version >= 3.0)(这个不会自动安装。)
Bowtie2 (version >= 2.1)(这个不会自动安装。)
DIAMOND (>=0.9.0)(这个特别坑,说是>=0.9.0,其实指定要求用0.9.24。)
MinPath(这个应该已经自动搞定了。)
biom-format(这个没有在HUMAnN3的官方文档里面提到,但是后面发现是需要的。)
这个直接用conda安装应该没有问题。
$ conda install -c bioconda bowtie2
这个最后使用pip安装成功的,其他的安装方法貌似出现了问题,当然官方也是可以用conda安装。
$ pip install numpy
$ pip install biom-format
$ pip install h5py
官方文件也是可以用conda安装MetaPhlAn3,但是我还是出现各种conflict,最后使用pip搞定。
$ pip install metaphlan
Diamond是一个很优秀的快速比对工具,但是对于版本要求比较特殊,不同版本建立的索引好像不能相互兼容。我比较奇怪,使用conda安装的时候只能自动安装0.9.14版,无法在此使用。我估计软件使用的201901版uniref数据库是使用0.9.24,因此拷贝到其他更高的版本也不能识别。之后我就是直接从anaconda上面下载各个diamond的版本拷贝到anaconda3的各个环境的bin目录下面运行。
在使用过程中发现,uniref数据库(后面会讲到)当中的uniref90_ec_filtered_v201901可能不是用0.9.24版建立的索引,运行时会报错。搞不好在同一个软件里面还会出现版本冲突,其他三个索引文件能用0.9.24进行操作,就这个不行。我晚些时候再尝试一下其他版本的diamond看看行不行。
后来在github上跟作者沟通了一下,可以用如下代码从索引文件导出序列并重建索引:
$ /old/diamond getseq -d uniref90_201901.dmnd | /new/diamond makedb -d out_db
根据作者的说法,uniref90_ec_filtered_v201901.dmnd这个文件是用0.8.38版建立的索引,所以需要从https://github.com/bbuchfink/diamond/releases/tag/v0.8.38这里下载该版本,并使用上述的代码重新用0.9.24版建立索引。
HUMAnN软件的基本使用其实很简单:
$ humann -i input.fastq -o output_dir
但是在使用之前还是需要进行一些相关准备,特别是数据库的准备。
这里需要四个数据库的准备:
UniRef
Utility_Mapping
ChocoPhlAn
MetaPhlAn(缩写为mpa)
我在主目录下面建立了一个humann文件夹,里面放了三个目录:chocophlan、uniref和misc三个目录,分别放置ChocoPhlAn、UniRef和Utility_Mapping三个数据库,而这三个数据库下载地址如下:
chocophlan : full = http://huttenhower.sph.harvard.edu/humann2_data/chocophlan/full_chocophlan.v296_201901.tar.gz
uniref : uniref50_diamond = http://huttenhower.sph.harvard.edu/humann2_data/uniprot/uniref_annotated/uniref50_annotated_v201901.tar.gz
uniref : uniref90_diamond = http://huttenhower.sph.harvard.edu/humann2_data/uniprot/uniref_annotated/uniref90_annotated_v201901.tar.gz
uniref : uniref50_ec_filtered_diamond = http://huttenhower.sph.harvard.edu/humann2_data/uniprot/uniref_ec_filtered/uniref50_ec_filtered_201901.tar.gz
uniref : uniref90_ec_filtered_diamond = http://huttenhower.sph.harvard.edu/humann2_data/uniprot/uniref_ec_filtered/uniref90_ec_filtered_201901.tar.gz
utility_mapping : full = http://huttenhower.sph.harvard.edu/humann2_data/full_mapping_v201901.tar.gz
上述文件下载解压后放到对应的三个目录下面即可。chocophlan下面是10669个物种的特征性序列文件,uniref下面是四个diamond的索引文件,utility_mapping是大17个mapping用的文件。随后在HUMAnN3的设置当中对上述目录进行相应的设置。
$ humann_config --update database_folder nucleotide ~/humann/chocophlan/
$ humann_config --update database_folder protein ~/humann/uniref/
$ humann_config --update database_folder utility_mapping ~/humann/misc/
注意在前面diamond部分已经说过的,对uniref的uniref90_ec_filtered_201901数据索引文件使用0.8.38提取序列,再用0.9.24重建索引,否则不能顺利运行。
如果能够科学上网,其实最后一个MetaPhlAn的索引数据库安装情况本来也没什么特殊。特殊就在于这些索引数据库和这些数据库的索引文件被放到了不太方便的dropbox上面:
https://www.dropbox.com/sh/7qze7m7g9fe2xjg/AAA4XDP85WHon_eHvztxkamTa/file_list.txt?dl=1
而这个文件只不过是数据库的索引文件file_list.txt,还要按照这个索引文件的内容把索引数据库给下载下来才行。其实原来可以在biobakery的MetaPhlAn页面下载到这些文件的,但后来不知道为什么,都无法下载了。这里面主要的文件是mpa_latest和最新的mpa_v30_CHOCOPhlAn_201901.tar、mpa_v30_CHOCOPhlAn_201901.md5和mpa_v30_CHOCOPhlAn_201901_marker_info.txt.bz2。其他的文件嘛……还是也一起下载下来吧。
这些文件下载之后,按照代码本身的要求,需要放到script代码所在目录的metaphlan_databases目录下,具体位置应该是在~/anaconda3/envs/humann/lib/python3.7/site-packages/metaphlan/metaphlan_databases/这个目录里面。千万注意要把file_list.txt这个文件也一起放进去,因为我记得代码里一开始就是要识别这个文件在不在。
由于这个索引数据库比较大(再大也没有UniRef的索引数据库大),在写这个帖子的时候还没能上传完毕,所以过一段时间再分享这些文件吧。
文件地址分享如下:
链接:https://pan.baidu.com/s/1aiSzGaMU50KcgwIWarINoA 提取码:22J6
在此特别感谢我的好友,隐藏在某大厂里的高手高手之高高手,帮忙搞到了这些文件。
同时感谢陈同和刘永鑫Adam,在两位老师那里学到了很多东西,感谢!
最后祝大家软件使用愉快,有钱一定要用好主机,我跑一个500MB的数据,卡在diamond比对uniref90_annotated_v201901数据库已经三个多小时了……