mcpField
T
tooluniverse-microbiome-research

tooluniverse-microbiome-research

github.com/mims-harvard数据与数据库1.8k149 次安装3 天前更新
代码仓库

关于 tooluniverse-microbiome-research

面向微生物组研究者的 ToolUniverse 技能,整合 MGnify、GTDB、ENA、文献等来源以探索研究、分类组成和功能注释。它还支持菌株表型、培养基信息及疾病相关样本数据查询。

主要功能

  1. 01按环境检索宏基因组研究
  2. 02获取分类组成与功能注释
  3. 03搜索微生物基因组及分类信息
  4. 04查询菌株表型和培养基配方
  5. 05整合测序数据与文献

适用场景

  1. 01寻找特定生物群落的测序研究
  2. 02分析样本的微生物分类组成
  3. 03评估宏基因组组装基因组质量
  4. 04查询菌株培养条件和疾病相关样本

MCP 相关

该技能通过 ToolUniverse 调用 MGnify、GTDB、ENA、文献及其他数据源的工具;输入未说明其与 MCP 的具体关系。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-microbiome-research

安装后在 Claude Code 中输入/tooluniverse-microbiome-research确认已加载。

详细介绍

使用 ToolUniverse 进行微生物组研究

使用 MGnify(EBI 宏基因组学)、GTDB(基因组分类学)、ENA(测序数据)、OLS(ENVO 生物群系本体查询)和 EuropePMC(文献)进行全面的微生物组分析。

核心工具

工具用途认证
MGnify_search_studies按生物群系/关键词查找宏基因组学研究无
MGnify_get_study_detail研究元数据、摘要、样本数量无
MGnify_list_analyses列出某项研究的分类学/功能分析结果无
MGnify_get_taxonomy获取某项分析的分类组成无
MGnify_get_go_terms获取某项分析的 GO 功能注释无
MGnify_get_interproInterPro 蛋白质结构域注释无
MGnify_list_biomes浏览 MGnify 生物群系层级结构无
MGnify_search_genomes搜索宏基因组组装基因组(MAG)无
MGnify_get_genome基因组质量指标(完整度、污染度)无
GTDB_search_genomes按分类搜索细菌/古菌基因组无
GTDB_get_species获取 GTDB 中的物种簇详情无
GTDB_get_taxon_info获取 GTDB 层级结构中的分类等级信息无
GTDB_search_taxon按部分名称搜索所有等级的分类单元无
ENAPortal_search_studies在 ENA 中查找测序研究。查询格式:description="keyword"无
ENAPortal_search_samples查找包含环境元数据的样本无
ols_search_terms在 ENVO 本体中搜索生物群系/环境术语无
EuropePMC_search_articles查找微生物组相关出版物无
PubMed_search_articles文献检索(与 EuropePMC 的覆盖范围不同)无
BacDive_search_by_taxon列出某属的 BacDive 菌株 ID(可选指定物种)无
BacDive_get_strain经整理的菌株表型:形态、革兰氏染色、培养温度/培养基、氧耐受性、分离来源无
MediaDive_search_media按名称子串查找培养基无
MediaDive_get_medium获取培养基的完整配方(成分+用量+制备步骤)无
MediaDive_search_ingredients / MediaDive_get_ingredient查询培养基成分的化学标识符(CAS/ChEBI/PubChem)无
GMrepo_search_species获取某物种的肠道微生物组样本数量和表型覆盖范围(超过 96,000 个经整理的样本)无
GMrepo_get_phenotypes列出/筛选 GMrepo 中具有肠道微生物组数据的 350 多种健康状况无

对于药物-微生物组研究,还可使用:

  • PubChem_get_CID_by_compound_name / PubChem_get_compound_properties_by_CID — 药物身份信息
  • CTD_get_chemical_gene_interactions — 药物-基因相互作用(例如,二甲双胍会影响 1,175 多个基因)
  • kegg_search_pathway / kegg_get_pathway_info — 微生物代谢通路(丁酸、丙酸)
  • ReactomeAnalysis_pathway_enrichment — 受药物影响基因的宿主通路富集分析
  • drugbank_vocab_search — 药物机制和靶点

MGnify 提示:使用简洁的单关键词进行搜索(例如,“metformin”)——多词查询可能会超时。MGnify API 处理范围较广的搜索时可能较慢。

快速入门

from tooluniverse import ToolUniverse

tu = ToolUniverse()
tu.load_tools()

# 1. Search for gut microbiome studies
studies = tu.run_one_function({
    'name': 'MGnify_search_studies',
    'arguments': {'search': 'gut microbiome', 'size': 5}
})

# 2. Get study details
detail = tu.run_one_function({
    'name': 'MGnify_get_study_detail',
    'arguments': {'study_accession': 'MGYS00006860'}
})

# 3. List analyses for a study
analyses = tu.run_one_function({
    'name': 'MGnify_list_analyses',
    'arguments': {'study_accession': 'MGYS00006860', 'size': 5}
})

# 4. Get taxonomic profile from an analysis
taxonomy = tu.run_one_function({
    'name': 'MGnify_get_taxonomy',
    'arguments': {'analysis_id': 'MGYA00793746'}
})

# 5. Get functional annotations
go_terms = tu.run_one_function({
    'name': 'MGnify_get_go_terms',
    'arguments': {'analysis_id': 'MGYA00793746'}
})

常见工作流

工作流 1:按环境发现研究

使用 MGnify 的生物群系层级结构查找特定生物群系的研究:

# Browse biome hierarchy
biomes = tu.run_one_function({
    'name': 'MGnify_list_biomes',
    'arguments': {'lineage': 'root:Host-associated:Human', 'depth': 3}
})

# Search studies in a specific biome
studies = tu.run_one_function({
    'name': 'MGnify_search_studies',
    'arguments': {'biome': 'root:Host-associated:Human:Digestive system', 'size': 10}
})

# Look up ENVO ontology terms for environment metadata
envo = tu.run_one_function({
    'name': 'ols_search_terms',
    'arguments': {'query': 'human gut', 'ontology': 'envo', 'rows': 5}
})
工作流 2:分类学分析

获取宏基因组样本的微生物组成:

# Get analyses for a study
analyses = tu.run_one_function({
    'name': 'MGnify_list_analyses',
    'arguments': {'study_accession': 'MGYS00006860', 'size': 3}
})

# Get taxonomy for a specific analysis
taxonomy = tu.run_one_function({
    'name': 'MGnify_get_taxonomy',
    'arguments': {'analysis_id': 'MGYA00793746'}
})
# Returns organisms with lineage, abundance counts, and taxonomy rank
工作流 3:基因组质量评估

评估宏基因组组装基因组(MAG):

# Search for genomes from a specific taxon
genomes = tu.run_one_function({
    'name': 'MGnify_search_genomes',
    'arguments': {'taxonomy': 'Faecalibacterium prausnitzii', 'page_size': 5}
})

# Get quality metrics for a genome
genome = tu.run_one_function({
    'name': 'MGnify_get_genome',
    'arguments': {'genome_id': 'MGYG000000001'}
})
# Returns completeness, contamination, N50, genome length, taxonomy

# Cross-reference with GTDB taxonomy
gtdb = tu.run_one_function({
    'name': 'GTDB_search_genomes',
    'arguments': {'operation': 'search_genomes', 'query': 'Faecalibacterium', 'items_per_page': 5}
})
工作流 4:功能注释

探索宏基因组的功能潜力:

# GO terms from an analysis
go_terms = tu.run_one_function({
    'name': 'MGnify_get_go_terms',
    'arguments': {'analysis_id': 'MGYA00793746'}
})

# InterPro domains
interpro = tu.run_one_function({
    'name': 'MGnify_get_interpro',
    'arguments': {'analysis_id': 'MGYA00793746'}
})
工作流 5:整合文献

将宏基因组数据与已发表的研究相结合:

# Find relevant publications
papers = tu.run_one_function({
    'name': 'EuropePMC_search_articles',
    'arguments': {'query': 'gut microbiome AND Faecalibacterium AND (IBD OR "Crohn")', 'limit': 10}
})

# Find sequencing data in ENA
ena_studies = tu.run_one_function({
    'name': 'ENAPortal_search_studies',
    'arguments': {'query': 'description="gut microbiome 16S"', 'limit': 5}
})
工作流 6:菌株表型、培养要求与疾病关联检出率

回答“这种生物实际上是什么样的,以及它在疾病 X 中有多常见”——这是 MGnify/GTDB(仅提供组成和分类信息)无法回答的问题:

# 1. Find BacDive strain IDs for a taxon (genus required, species optional)
strains = tu.run_one_function({
    'name': 'BacDive_search_by_taxon',
    'arguments': {'genus': 'Faecalibacterium', 'species': 'prausnitzii', 'limit': 3}
})
# -> [{'bacdive_id': 159475}, {'bacdive_id': 159476}, {'bacdive_id': 159477}]

# 2. Get the curated phenotype for one strain
strain = tu.run_one_function({
    'name': 'BacDive_get_strain',
    'arguments': {'bacdive_id': 159475}
})
# -> anaerobe, mesophilic (37C), isolated from human feces, grows on
#    "YCFA-MEDIUM (MODIFIED) (DSMZ Medium 1611)" and chopped-meat medium

# 3. Cross-reference the named medium in MediaDive for the actual recipe
medium = tu.run_one_function({
    'name': 'MediaDive_search_media',
    'arguments': {'query': 'YCFA'}
})
# -> medium_id 1611 matches the BacDive culture_media entry exactly
recipe = tu.run_one_function({
    'name': 'MediaDive_get_medium',
    'arguments': {'medium_id': 1611}
})
# -> full solution-by-solution ingredient list with amounts/units and prep steps

# 4. Check GMrepo for how prevalent/associated the species is in human gut studies
prevalence = tu.run_one_function({
    'name': 'GMrepo_search_species',
    'arguments': {'query': 'Faecalibacterium prausnitzii'}
})
# -> present in 21,286 of ~96,000 samples (22.0%), spanning 88 phenotypes

conditions = tu.run_one_function({
    'name': 'GMrepo_get_phenotypes',
    'arguments': {'query': 'Crohn'}
})
# -> Crohn Disease (MeSH D003424): 5,636 samples across 1,440 species, 602 genera

解读 BacDive 的 culture_media 字段:该字段会列出培养基名称(例如 "YCFA-MEDIUM (MODIFIED) (DSMZ Medium 1611)"),但不提供配方——请务必在 MediaDive 中搜索培养基名称以查找其 medium_id,然后调用 MediaDive_get_medium 获取实际配方。oxygen_tolerance 可能是空数组(表示该菌株尚未整理此信息),这是正常情况——不要根据空列表推断其需氧或厌氧状态。

GMrepo 范围说明:presented_samples/all_samples 是从公开研究中整理出的样本数量,并不代表真实的群体检出率——某个物种未出现在 GMrepo 的某种疾病表型列表中,可能只是尚未在该数据库中研究过,并不能证明它不存在于该疾病患者的肠道微生物组中。

MGnify 生物群系层级

主要生物群系谱系(使用 MGnify_list_biomes 发现其他谱系):

  • 人类肠道:root:Host-associated:Human:Digestive system
  • 人类口腔/皮肤:root:Host-associated:Human:Oral / root:Host-associated:Human:Skin
  • 土壤:root:Environmental:Terrestrial:Soil
  • 海洋/淡水:root:Environmental:Aquatic:Marine / root:Environmental:Aquatic:Freshwater
  • 废水:root:Engineered:Wastewater

关键标识符

MGnify:研究=MGYS*,分析=MGYA*,基因组=MGYG*。ENA 研究=PRJEB*。GTDB 基因组=GCA_*。ENVO 术语=ENVO:*(例如 ENVO:00002041)。BacDive 菌株 ID 和 MediaDive 培养基/成分 ID 均为普通整数(偶尔带后缀,例如 "1a"),没有固定前缀——请务必先通过搜索进行解析。GMrepo 表型使用 MeSH ID(例如 Crohn Disease 对应 D003424)。

推理框架

起点:先明确问题

微生物组分析应从明确问题开始。查证而非猜测——解读结果前,务必先检查研究类型和测序方法。

数据类型决策树:

  • 群落组成(有哪些生物?)→ 16S/ITS 扩增子 → alpha/beta 多样性、差异丰度
  • 功能潜力(它们能做什么?)→ 鸟枪法宏基因组学 → MGnify GO 术语、InterPro、KEGG 通路
  • 活跃功能(它们现在正在做什么?)→ 宏转录组学 → 专用分析流程(仅靠 MGnify/GTDB 不足以完成)

调用任何工具前,请通过 MGnify_get_study_detail 确认用户拥有的数据类型——分析流程类型(扩增子或鸟枪法)决定了哪些分析有效。不要将 16S 多样性指标用于宏基因组数据,反之亦然。

菌群失调评估策略

菌群失调(微生物不平衡)取决于具体情境——不存在普遍适用的“健康”微生物组。查证而非猜测——应与研究中匹配的对照组比较,而不是与一般人群的参考数据比较。

  1. 检查 alpha 多样性:相较于对照组,Shannon 指数降低可能提示菌群失调。使用 MGnify_get_taxonomy 获取群落谱,再评估丰富度和均匀度。
  2. 识别关键类群的变化:已知有益类群减少(例如肠道中的 Faecalibacterium、Roseburia),或致病共生菌增多(例如 Enterobacteriaceae)。使用 GTDB_get_species 查询类群的作用,并通过 EuropePMC_search_articles 查阅文献。查证而非猜测。
  3. 功能后果:分类组成变化是否与代谢通路的丢失/增加相关?检查受影响样本的 MGnify_get_go_terms 和 MGnify_get_interpro。
  4. 混杂因素:抗生素、饮食、年龄和地理位置都会影响微生物组组成。要提出菌群失调的结论,必须控制这些因素,或承认它们是局限性。
分类学分析与功能分析:何时使用
  • 仅分类学分析 足以回答“有哪些生物?”或“不同组之间的群落组成是否存在差异?”。使用 MGnify_get_taxonomy + GTDB_search_genomes。
  • 当问题是“代谢能力有哪些差异?”或“分类学上的变化为何重要?”时,需要进行 功能分析。使用 MGnify_get_go_terms + MGnify_get_interpro + kegg_search_pathway。
  • 当需要将生物与功能联系起来时,两者结合使用(例如,“健康人群与 IBD 患者的肠道中,哪些分类群会促进丁酸盐的生成?”)。将分类学谱与同一 MGnify 分析的功能注释交叉参照。
证据分级
等级描述示例
T1多个队列中重复观察到且效应一致的发现超过 10 项独立研究发现 IBD 患者的 Faecalibacterium 减少
T2一项样本量充足(n > 100)且对照设置恰当的研究对照试验中与二甲双胍相关的 Akkermansia 富集
T3试点研究或观察性关联,样本量较小病例对照研究中 n=15 出现分类学变化,且无验证队列
T4计算预测或单样本观察具有预测功能的新型 MAG,未经培养确认
解读指南

Alpha 多样性(样本内):Shannon 指数衡量丰富度和均匀度。较高的 Shannon 指数(肠道样本中 >3.0)表明群落较稳定。Alpha 多样性降低与菌群失调相关(IBD、抗生素)。务必与研究中匹配的对照组进行比较——多样性会因身体部位、测序深度和地理位置而异。

Beta 多样性(样本间):Bray-Curtis(基于丰度)或 UniFrac(基于系统发育)。PERMANOVA p < 0.05 且 R-squared > 0.05 表明聚类由条件驱动。即使 p 显著,若 R-squared 较低(<0.02),也说明相较于个体间差异,效应较小。丰度较高的分类群最重要时,选择加权 UniFrac;稀有分类群较重要时,选择非加权 UniFrac。

分类学组成:门水平的相对丰度(Firmicutes/Bacteroidetes 比值)是粗略指标;优先采用属或种水平的分辨率。在多个样本中的相对丰度 >1% 的分类群可可靠检出。低于 0.1% 的分类群可能是噪声或测序伪影。GTDB 分类法可能会重新划分 NCBI 名称(例如,Firmicutes 被拆分为多个门)。

功能谱分析:MGnify 的 GO 术语和 InterPro 结构域反映的是群落的代谢潜能(不一定代表实际活性)。解读特定通路(例如,丁酸盐生成、LPS 生物合成)的富集情况时,应结合分类学数据,识别哪些生物贡献了这些功能。

综合分析问题

一份完整的微生物组报告应回答:

  1. 不同条件下的 Alpha 多样性有何差异?差异是否显著?
  2. Beta 多样性分析是否显示由条件驱动的聚类(PERMANOVA)?
  3. 哪些分类群的丰度存在差异?它们是已知的共生菌还是病理共生菌?
  4. 富集了哪些功能通路?哪些分类群可能驱动这些通路?
  5. 这些发现与针对相同生物群系或条件的已发表研究相比如何(文献背景)?

提示

  • MGnify 研究登录号以 MGYS 开头,分析以 MGYA 开头,基因组以 MGYG 开头
  • 先使用 MGnify_list_biomes 查找正确的生物群系谱系字符串
  • MGnify_get_taxonomy 返回从门到种水平的组成信息
  • GTDB 提供标准化的细菌和古菌分类法(部分谱系与 NCBI 不同)
  • 对于 16S 扩增子研究,分类学是主要输出;对于鸟枪法宏基因组研究,则可获得分类学和功能注释
  • MGnify 工具中的 size 参数控制每页结果数(最多 100)

评论

支持 Markdown