来自bioBakery Lab的宏基因组学微生物群落的代谢功能分析工具-HUMAnN 3.0的安装配置及分析使用方法-安装填坑

HUMAnN 3.0 简介:

HUMAnN 3.0 是一个用于宏基因组数据分析的工具,能够从宏基因组测序数据中推断出微生物群落的代谢功能信息。它可以识别微生物群落中存在的代谢途径,并定量这些通路的丰度。HUMAnN 3.0 依赖于多个工具和数据库来实现这些功能,其中包括 MetaPhlAn 3、DIAMOND、UniRef90 等。

原网站:humann3 – The Huttenhower Lab (harvard.edu)

仓库地址:github.com

HUMAnN 3.0 安装步骤:

通过conda或mamba安装

1. 创建并激活一个新的环境(可选步骤)

首先,您可以创建一个新的环境来安装 HUMAnN 3。在这个环境中,您可以独立管理 HUMAnN 3 及其依赖项。

# 因通过conda安装humann会默认配置MetaPhlAn,所以这里环境名称就使用bioBakery了
conda create --name biobakery3 python=3.7
# 或
mamba create --name biobakery3 python=3.7

接下来,激活新创建的环境:

conda activate biobakery3
# 或
mamba activate biobakery3

 设置conda chanel

conda config --add channels defaults
conda config --add channels bioconda
conda config --add channels conda-forge
conda config --add channels biobakery

2. 安装 HUMAnN 3

现在,您可以使用 mamba 来安装 HUMAnN 3。请注意,HUMAnN 3 是作为 Python 包发布的,因此您可以直接通过 pip 或 mamba 安装。

conda install -c bioconda humann
#
mamba install -c bioconda humann

这将从 bioconda 频道安装 HUMAnN 3 及其相关依赖项。

根据报错手动安装依赖环境:

#报缺少bowtie2
mamba install bowtie2 -c bioconda# 报缺少diamond
mamba install diamond -c bioconda

使用mamba或conda安装humann3我这里安装失败了,尝试了通过bioconda安装依赖,MetaPhlAn还是安装不上,所以最终使用pypi方法安装成功,目前为3.8版本

使用以下代码从 PyPI 安装 HUMAnN 3.0:

# 官方建议方法:
pip install humann --no-binary :all:###自动下载humann包然后配置解压就行了,我这里安装成功

通过pip这样安装后会出现找不到MetaPhlAn的错误,所以还得自己再配置安装,不然后面运行的时候会出错 :

CRITICAL ERROR: The metaphlan executable can not be found. Please check the install.

其实这个就是安装不完全的原因,在前面mamba或者conda设置chanels时没有生效,下面是正确的安装方式:

### 将所有需要的chanels全部加入,这样依赖才能解析完全。
mamba install humann -c biobakery -c bioconda -c conda-forge##### 真是醉了,连自己的bioBakery没有独立配置完整依赖,这个坑真的好大!!!!

 3. 下载数据库

HUMAnN 3.0 使用了多个数据库,需要下载这些数据库文件:

先查看可用的数据库:

humann_databases --availableHUMAnN Databases ( database : build = location )
chocophlan : full = http://huttenhower.sph.harvard.edu/humann_data/chocophlan/full_chocophlan.v201901_v31.tar.gz
chocophlan : DEMO = http://huttenhower.sph.harvard.edu/humann_data/chocophlan/DEMO_chocophlan.v201901_v31.tar.gz
uniref : uniref50_diamond = http://huttenhower.sph.harvard.edu/humann_data/uniprot/uniref_annotated/uniref50_annotated_v201901b_full.tar.gz
uniref : uniref90_diamond = http://huttenhower.sph.harvard.edu/humann_data/uniprot/uniref_annotated/uniref90_annotated_v201901b_full.tar.gz
uniref : uniref50_ec_filtered_diamond = http://huttenhower.sph.harvard.edu/humann_data/uniprot/uniref_ec_filtered/uniref50_ec_filtered_201901b_subset.tar.gz
uniref : uniref90_ec_filtered_diamond = http://huttenhower.sph.harvard.edu/humann_data/uniprot/uniref_ec_filtered/uniref90_ec_filtered_201901b_subset.tar.gz
uniref : DEMO_diamond = http://huttenhower.sph.harvard.edu/humann_data/uniprot/uniref_annotated/uniref90_DEMO_diamond_v201901b.tar.gz
utility_mapping : full = http://huttenhower.sph.harvard.edu/humann_data/full_mapping_v201901b.tar.gz### 为啥还是2019呢? 停止更新了????

下载指定数据库: 

humann_databases --download chocophlan full $DIR_TO_STORE_DB humann_databases --download uniref uniref90_diamond $DIR_TO_STORE_DB
# 其中 $DIR_TO_STORE_DB 是你希望存储数据库文件的路径。humann_databases --download chocophlan full /path/to/databases --update-config yeshumann_databases --download uniref uniref90_diamond /path/to/databases --update-config yeshumann_databases --download utility_mapping full /path/to/databases --update-config yes

手动下载数据库,可用链接直接使用前上面的humann_databases中分别对应的链接,并解压到指定文件夹:

wget -c http://huttenhower.sph.harvard.edu/humann_data/chocophlan/full_chocophlan.v201901_v31.tar.gz
wget -c http://huttenhower.sph.harvard.edu/humann_data/uniprot/uniref_annotated/uniref90_annotated_v201901b_full.tar.gz
wget -c http://huttenhower.sph.harvard.edu/humann_data/full_mapping_v201901b.tar.gzmkdir chocophlan_v296_201901
mkdir uniref90_v201901
mkdir mapping_v201901tar -zxvf full_chocophlan.v296_201901.tar.gz -C ./chocophlan_v296_201901/
tar -zxvf uniref90_annotated_v201901.tar.gz -C uniref90_v201901
tar -zxvf full_mapping_v201901.tar.gz -C ./mapping_v201901/

数据库设置,先查看已有设置情况:

# 查看已有数据库
humann_databases --list
### 命令不对。。。。。。。。。。### 还是直接查看数据目录吧。
# 默认数据库目录,当然前面如果自己有设定的话看已设定目录
/miniconda3/envs/biobakery3/lib/python3.7/site-packages/humann### 应该是 humann_config
humann_configHUMAnN Configuration ( Section : Name = Value )
database_folders : nucleotide = /path/to/databases/chocophlan_v296_201901
database_folders : protein = /path/to/databases/uniref90_v201901/
database_folders : utility_mapping = /path/to/databases/mapping_v201901/
run_modes : resume = False
run_modes : verbose = False
run_modes : bypass_prescreen = False
run_modes : bypass_nucleotide_index = False
run_modes : bypass_nucleotide_search = False
run_modes : bypass_translated_search = False
run_modes : threads = 1
alignment_settings : evalue_threshold = 1.0
alignment_settings : prescreen_threshold = 0.01
alignment_settings : translated_subject_coverage_threshold = 50.0
alignment_settings : translated_query_coverage_threshold = 90.0
alignment_settings : nucleotide_subject_coverage_threshold = 50.0
alignment_settings : nucleotide_query_coverage_threshold = 90.0
output_format : output_max_decimals = 10
output_format : remove_stratified_output = False
output_format : remove_column_description_output = False############################################################
humann_config --help
usage: humann_config [-h] [--print] [--update <section> <name> <value>]HUMAnN Configurationoptional arguments:-h, --help            show this help message and exit--print               print the configuration--update <section> <name> <value>update the section : name to the value provided

已准备好的数据库切换设置

## 更新格式:humann_config --update <section> <name> <value>
humann_config --update database_folders nucleotide /path/to/databases/chocophlan_v296_201901
humann_config --update database_folders protein /path/to/databases/uniref90_v201901/
humann_config --update database_folders utility_mapping /path/to/databases/mapping_v201901/## 更新后查看设置
humann_config# 还可以自己设置其他默认设置
# 比如说我的服务器都是30个线程以上,所以我将默认的运行线程数为30,这个根据自己服务器设置就行
humann_config --update run_modes threads 30
#######################
# HUMAnN configuration file updated: run_modes : threads = 30

运行 HUMAnN 3.0

全参数帮助内容查看:

usage: humann_config [-h] [--print] [--update <section> <name> <value>]HUMAnN Configurationoptional arguments:-h, --help            show this help message and exit--print               print the configuration--update <section> <name> <value>update the section : name to the value provided
(biobakery3) [root@mgmt ~]# humann --help
usage: humann [-h] -i <input.fastq> -o <output> [--threads <1>] [--version][-r] [--bypass-nucleotide-index] [--bypass-nucleotide-search][--bypass-prescreen] [--bypass-translated-search][--taxonomic-profile <taxonomic_profile.tsv>][--memory-use {minimum,maximum}][--input-format {fastq,fastq.gz,fasta,fasta.gz,sam,bam,blastm8,genetable,biom}][--search-mode {uniref50,uniref90}] [-v][--metaphlan <metaphlan>][--metaphlan-options <metaphlan_options>][--prescreen-threshold <0.01>] [--bowtie2 <bowtie2>][--bowtie-options <bowtie_options>][--nucleotide-database <nucleotide_database>][--nucleotide-identity-threshold <0.0>][--nucleotide-query-coverage-threshold <90.0>][--nucleotide-subject-coverage-threshold <50.0>][--diamond <diamond>] [--diamond-options <diamond_options>][--evalue <1.0>] [--protein-database <protein_database>][--rapsearch <rapsearch>][--translated-alignment {usearch,rapsearch,diamond}][--translated-identity-threshold <Automatically: 50.0 or 80.0, Custom: 0.0-100.0>][--translated-query-coverage-threshold <90.0>][--translated-subject-coverage-threshold <50.0>][--usearch <usearch>] [--gap-fill {on,off}] [--minpath {on,off}][--pathways {metacyc,unipathway}][--pathways-database <pathways_database.tsv>] [--xipe {on,off}][--annotation-gene-index <3>] [--id-mapping <id_mapping.tsv>][--remove-temp-output][--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}][--o-log <sample.log>] [--output-basename <sample_name>][--output-format {tsv,biom}] [--output-max-decimals <10>][--remove-column-description-output][--remove-stratified-output]HUMAnN : HMP Unified Metabolic Analysis Network 3optional arguments:-h, --help            show this help message and exit[0] Common settings:-i <input.fastq>, --input <input.fastq>input file of type {fastq,fastq.gz,fasta,fasta.gz,sam,bam,blastm8,genetable,biom} [REQUIRED]-o <output>, --output <output>directory to write output files[REQUIRED]--threads <1>         number of threads/processes[DEFAULT: 1]--version             show program's version number and exit[1] Workflow refinement:-r, --resume          bypass commands if the output files exist--bypass-nucleotide-indexbypass the nucleotide index step and run on the indexed ChocoPhlAn database--bypass-nucleotide-searchbypass the nucleotide search steps--bypass-prescreen    bypass the prescreen step and run on the full ChocoPhlAn database--bypass-translated-searchbypass the translated search step--taxonomic-profile <taxonomic_profile.tsv>a taxonomic profile (the output file created by metaphlan)[DEFAULT: file will be created]--memory-use {minimum,maximum}the amount of memory to use[DEFAULT: minimum]--input-format {fastq,fastq.gz,fasta,fasta.gz,sam,bam,blastm8,genetable,biom}the format of the input file[DEFAULT: format identified by software]--search-mode {uniref50,uniref90}search for uniref50 or uniref90 gene families[DEFAULT: based on translated database selected]-v, --verbose         additional output is printed[2] Configure tier 1: prescreen:--metaphlan <metaphlan>directory containing the MetaPhlAn software[DEFAULT: $PATH]--metaphlan-options <metaphlan_options>options to be provided to the MetaPhlAn software[DEFAULT: "-t rel_ab"]--prescreen-threshold <0.01>minimum percentage of reads matching a species[DEFAULT: 0.01][3] Configure tier 2: nucleotide search:--bowtie2 <bowtie2>   directory containing the bowtie2 executable[DEFAULT: $PATH]--bowtie-options <bowtie_options>options to be provided to the bowtie software[DEFAULT: "--very-sensitive"]--nucleotide-database <nucleotide_database>directory containing the nucleotide database[DEFAULT: /path/to/databases/chocophlan_v296_201901]--nucleotide-identity-threshold <0.0>identity threshold for nuclotide alignments[DEFAULT: 0.0]--nucleotide-query-coverage-threshold <90.0>query coverage threshold for nucleotide alignments[DEFAULT: 90.0]--nucleotide-subject-coverage-threshold <50.0>subject coverage threshold for nucleotide alignments[DEFAULT: 50.0][3] Configure tier 2: translated search:--diamond <diamond>   directory containing the diamond executable[DEFAULT: $PATH]--diamond-options <diamond_options>options to be provided to the diamond software[DEFAULT: "--top 1 --outfmt 6"]--evalue <1.0>        the evalue threshold to use with the translated search[DEFAULT: 1.0]--protein-database <protein_database>directory containing the protein database[DEFAULT: /path/to/databases/uniref90_v201901/]--rapsearch <rapsearch>directory containing the rapsearch executable[DEFAULT: $PATH]--translated-alignment {usearch,rapsearch,diamond}software to use for translated alignment[DEFAULT: diamond]--translated-identity-threshold <Automatically: 50.0 or 80.0, Custom: 0.0-100.0>identity threshold for translated alignments[DEFAULT: Tuned automatically (based on uniref mode) unless a custom value is specified]--translated-query-coverage-threshold <90.0>query coverage threshold for translated alignments[DEFAULT: 90.0]--translated-subject-coverage-threshold <50.0>subject coverage threshold for translated alignments[DEFAULT: 50.0]--usearch <usearch>   directory containing the usearch executable[DEFAULT: $PATH][5] Gene and pathway quantification:--gap-fill {on,off}   turn on/off the gap fill computation[DEFAULT: on]--minpath {on,off}    turn on/off the minpath computation[DEFAULT: on]--pathways {metacyc,unipathway}the database to use for pathway computations[DEFAULT: metacyc]--pathways-database <pathways_database.tsv>mapping file (or files, at most two in a comma-delimited list) to use for pathway computations[DEFAULT: metacyc database ]--xipe {on,off}       turn on/off the xipe computation[DEFAULT: off]--annotation-gene-index <3>the index of the gene in the sequence annotation[DEFAULT: 3]--id-mapping <id_mapping.tsv>id mapping file for alignments[DEFAULT: alignment reference used][6] More output configuration:--remove-temp-output  remove temp output files[DEFAULT: temp files are not removed]--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}level of messages to display in log[DEFAULT: DEBUG]--o-log <sample.log>  log file[DEFAULT: temp/sample.log]--output-basename <sample_name>the basename for the output files[DEFAULT: input file basename]--output-format {tsv,biom}the format of the output files[DEFAULT: tsv]--output-max-decimals <10>the number of decimals to output[DEFAULT: 10]--remove-column-description-outputremove the description in the output column[DEFAULT: output column includes description]--remove-stratified-outputremove stratification from output[DEFAULT: output is stratified]

humann主要功能模块

humann_barplot
humann_strain_profiler
humann_benchmark
humann_genefamilies_genus_level
humann_reduce_table
humann_rna_dna_norm
humann_build_custom_database
humann_humann1_kegg
humann_regroup_table
humann_split_stratified_table
humann_unpack_pathways
humann_associate
humann_infer_taxonomy
humann_split_table

使用以下命令来运行 HUMAnN 3.0:

单个样品分别运行

# humann3已经不需要带3了,与2不同
humann --input input.fastq.gz --output output_dir --threads NUM_THREADS
# 正反序列直接按顺序多加一个input或-i参数,或者在-i参数后面两个文件逗号隔开
# 注意文件名和文件路径相同部分不能因为相同部分就使用简写
# 另外最好是指定输入文件类型--imput-format
humann -i <input_forward.fastq> -i <input_reverse.fastq> --output <output_directory> --imput-format fastq#在此命令中,input.fastq.gz 是宏基因组数据文件,output_dir 是输出结果的目录,NUM_THREADS 是你希望使用的线程数。

查看结果

分析完成后,你可以在 output_dir 中找到生成的结果文件,包括代谢通路丰度、物种组成等信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/213800.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++新经典模板与泛型编程:策略类模板

策略类模板 在前面的博文中&#xff0c;策略类SumPolicy和MinPolicy都是普通的类&#xff0c;其中包含的是一个静态成员函数模板algorithm()&#xff0c;该函数模板包含两个类型模板参数。其实&#xff0c;也可以把SumPolicy和MinPolicy类写成类模板—直接把algorithm()中的两…

Python 网络爬虫(三):XPath 基础知识

《Python入门核心技术》专栏总目录・点这里 文章目录 1. XPath简介2. XPath语法2.1 选择节点2.2 路径分隔符2.3 谓语2.4 节点关系2.5 运算符3. 节点3.1 元素节点(Element Node)3.2 属性节点(Attribute Node)

获取类class对象的方式

一、什么是class对象 Class类位于java核心包lang包中&#xff0c;它是反射的源头。Class对象用于记录每个类的运行时数据结构&#xff0c;或者说是在内存中访问类的静态数据的接口&#xff0c;每个类都有一个唯一的Class对象。Class对象不能直接通过new来获取&#xff0c;因为…

【ArcGIS Pro微课1000例】0051:创建数据最小几何边界范围(点、线、面数据均可)

本实例为专栏系统文章:创建点数据最小几何边界(范围),配套案例数据,持续同步更新! 文章目录 一、工具介绍二、实战演练三、注意事项一、工具介绍 创建包含若干面的要素类,用以表示封闭单个输入要素或成组的输入要素指定的最小边界几何。 工具界面及参数如下所示: 核心…

CSS——sticky定位

1. 大白话解释sticky定位 粘性定位通俗来说&#xff0c;它就是相对定位relative和固定定位fixed的结合体&#xff0c;它的触发过程分为三个阶段 在最近可滚动容器没有触发滑动之前&#xff0c;sticky盒子的表现为相对定位relative【第一阶段】&#xff0c; 但当最近可滚动容…

FacetWP Relevanssi Integration相关性集成插件

点击阅读FacetWP Relevanssi Integration相关性集成插件原文 FacetWP Relevanssi Integration相关性集成插件是FacetWP与用于高级搜索的 Relevanssi 插件的集成显着增强了您网站的搜索功能。这个强大的工具使您的用户能够轻松找到他们寻求的特定内容&#xff0c;无论他们的查询…

联邦多任务蒸馏助力多接入边缘计算下的个性化服务 | TPDS 2023

联邦多任务蒸馏助力多接入边缘计算下的个性化服务 | TPDS 2023 随着移动智能设备的普及和人工智能技术的发展,越来越多的分布式数据在终端被产生与收集&#xff0c;并以多接入边缘计算(MEC)的形式进行处理和分析。但是由于用户的行为模式与服务需求的多样,不同设备上的数据分布…

Android 幸运转盘实现逻辑

一、前言 幸运转盘在很多app中都有&#xff0c;也有很多现实的例子&#xff0c;不过这个难度并不是如何让转盘转起来&#xff0c;真正的难度是如何统一个方向转动&#xff0c;且转到指定的目标区域&#xff08;中奖概率从来不是随机的&#xff09;&#xff0c;当然还不能太假&…

C语言数组(下)

我希望各位可以在思考之后去看本期练习&#xff0c;并且在观看之后独立编写一遍&#xff0c;以加深理解&#xff0c;巩固知识点。 练习一&#xff1a;编写代码&#xff0c;演⽰多个字符从两端移动&#xff0c;向中间汇聚 我们依旧先上代码 //编写代码&#xff0c;演⽰多个字…

UE小:UE5性能分析

开始录制性能追踪 要开始录制性能追踪&#xff0c;您可以简单地点击界面上的“开始录制”按钮。 查看追踪数据 录制完成后&#xff0c;点击“Trace”菜单中的“UnrealInsights”选项来查看追踪数据。 使用命令行进行追踪 如果点击录制按钮没有反应&#xff0c;您可以通过命令…

Leetcode—901.股票价格跨度【中等】

2023每日刷题&#xff08;五十二&#xff09; Leetcode—901.股票价格跨度 算法思想 实现代码 class StockSpanner { public:stack<pair<int, int>> st;int curday -1;StockSpanner() {st.emplace(-1, INT_MAX);}int next(int price) {while(price > st.top(…

【LeetCode】28. 找出字符串中第一个匹配项的下标 【字符串单模匹配:KMP算法】

题目链接 Python3 直觉解法 class Solution:def strStr(self, haystack: str, needle: str) -> int:pn, ph 0, 0n len(needle) h len(haystack)while ph < h:if haystack[ph] needle[pn]:if pn n-1: # 1234 123return ph - len(needle) 1else: pn 1ph 1else:…

53. Protocol buffer 的Go使用

文章目录 一、介绍二、安装三、protoc3语法1、 protoc3 与 protoc2区别2、proto3生成go代码包Message内嵌Message字段单一标量字段单一message字段可重复字段slicemap字段枚举 一、介绍 Protobuf是Google旗下的一款平台无关&#xff0c;语言无关&#xff0c;可扩展的序列化结构…

苹果IOS在Safari浏览器中将网页添加到主屏幕做伪Web App,自定义图标,启动动画,自定义名称,全屏应用pwa

在ios中我们可以使用Safari浏览自带的将网页添加到主屏幕上&#xff0c;让我们的web页面看起来像一个本地应用程序一样&#xff0c;通过桌面APP图标一打开&#xff0c;直接全屏展示&#xff0c;就像在APP中效果一样&#xff0c;完全体会不到你是在浏览器中。 1.网站添加样式 在…

一加 12 Pop-up快闪活动来袭,十城联动火爆开启

12 月 9 日&#xff0c;一加 12 Pop-up 快闪活动在北京、深圳、上海、广州等十城联动开启&#xff0c;各地加油欢聚快闪现场&#xff0c;抢先体验与购买一加 12。作为一加十年超越之作&#xff0c;一加 12 全球首发拥有医疗级护眼方案和行业第一 4500nit 峰值亮度的 2K 东方屏、…

solidity实现ERC20代币标准

文章目录 1、以太坊 - 维基百科2、IERC203、ERC204、Remix 编译部署 1、以太坊 - 维基百科 以太坊&#xff08;Ethereum&#xff09;是一个去中心化的开源的有智能合约功能的公共区块链平台。以太币&#xff08;ETH 或 Ξ&#xff09;是以太坊的原生加密货币。截至2021年12月&a…

js/jQuery常见操作 之各种语法例子(包括jQuery中常见的与索引相关的选择器)

js/jQuery常见操作 之各种语法例子&#xff08;包括jQuery中常见的与索引相关的选择器&#xff09; 1. 操作table常见的1.1 动态给table添加title&#xff08;指定td&#xff09;1.1.1 给td动态添加title&#xff08;含&#xff1a;获取tr的第几个td&#xff09;1.1.2 动态加工…

SSL 协议

SSL 是用于安全传输数据的一种通信协议。它采用公钥加密技术、对称密钥加密技术等保护两个应用之间的信息传输的机密性和完整性。但是&#xff0c;SSL 也有一个不足&#xff0c;就是它本身不能保证传输信息的不可否认性。 SSL 协议包括服务器认证、客户认证、SSL 链路上的数据完…

对String类的操作 (超细节+演示)

[本节目标] 1.认识String类 2.了解String类的基本用法 3.熟练掌握String类的常见操作 4.认识字符串常量池 5.认识StringBuffer和StringBuilder 1.String类的重要性 在C语言中已经涉及到字符串了&#xff0c;但是在C语言中要表示字符串只能使用字符数组或者字符指针&…

Nacos源码解读04——服务发现

Nacos服务发现的方式 1.客户端获取 1.1:先是故障转移机制判断是否去本地文件中读取信息&#xff0c;读到则返回 1.2:再去本地服务列表读取信息(本地缓存)&#xff0c;没读到则创建一个空的服务&#xff0c;然后立刻去nacos中读取更新 1.3:读到了就返回&#xff0c;同时开启定时…