mcpField
T
tooluniverse-gene-disease-association

tooluniverse-gene-disease-association

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

关于 tooluniverse-gene-disease-association

这是一项 ToolUniverse 技能,用于比较多个数据库中的基因—疾病关联并整理分级证据报告,适合评估关联的生物医学研究者。其重点是跨库一致性分析,以及区分孟德尔疾病与复杂疾病证据。

主要功能

  1. 01解析基因和疾病标识符
  2. 02跨数据库查询关联
  3. 03比较证据评分与一致性
  4. 04区分孟德尔与复杂疾病
  5. 05可选的变异级证据

适用场景

  1. 01比较基因—疾病关联证据
  2. 02按证据排序基因的疾病关联
  3. 03审查罕见孟德尔疾病证据

MCP 相关

该技能使用 ToolUniverse 工具查询基因、疾病、通路和变异数据库;输入未说明 MCP 服务或其向客户端提供的接口。

安装

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

$npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-gene-disease-association

安装后在 Claude Code 中输入/tooluniverse-gene-disease-association确认已加载。

详细介绍

基因-疾病关联分析

系统地查询并比较 6 个以上数据库中的基因-疾病关联,生成统一且按证据分级的报告。交叉参考 DisGeNET 评分、OpenTargets 证据、Monarch Initiative 跨物种数据、OMIM 孟德尔遗传映射、GenCC 整理的有效性数据,以及 Orphanet 罕见病关联。

重要:在工具调用中始终使用英文基因名称和疾病术语。使用用户所用的语言回复。


查找,不要猜测

对任何不确定的科学事实,应先查询数据库(PubMed、UniProt、ChEMBL、ClinVar 等),不要依靠记忆推理。经过数据库验证的答案总是比猜测更可靠。


核心原则

  1. 报告优先 - 先创建报告文件,再逐步填充内容
  2. 多数据库交叉验证 - 至少查询 4 个来源,并进行交叉验证
  3. 量化评分 - 报告各数据库的数值评分
  4. 一致性分析 - 统计支持每项关联的数据库数量,并分析其独立性
  5. 证据推理 - 根据证据层级、一致性和机制合理性评估每项关联
  6. 孟德尔遗传与复杂疾病的区分 - 区分单基因(OMIM/Orphanet)与复杂疾病(GWAS/DisGeNET)关联
  7. 记录阴性结果 - “在 [数据库] 中未发现关联”也是有用信息

工作流概览

Phase 1: Gene/Disease Identification & ID Resolution
  Resolve gene symbol to Ensembl ID, HGNC CURIE, MIM number
  OR resolve disease name to UMLS CUI, EFO ID, MONDO ID, ORPHA code
      |
Phase 2: DisGeNET Associations (scored, multi-evidence)
  Gene-disease association scores with evidence type filtering
      |
Phase 3: OpenTargets Associations (integrated evidence)
  Disease phenotypes and genetic associations from OpenTargets
      |
Phase 4: Monarch Initiative (cross-species evidence)
  Gene-disease associations integrating OMIM, ClinVar, model organisms
      |
Phase 5: Mendelian Disease Evidence (curated)
  OMIM gene-disease map, GenCC validity classifications, Orphanet rare diseases,
  Gene2Phenotype (G2P) clinical-panel assertions
      |
Phase 6: Variant-Disease Associations (optional, if gene query)
  DisGeNET variant-disease links, ClinVar pathogenic variants
      |
Phase 7: Evidence Synthesis
  Unified table, concordance scoring, confidence levels, final report

阶段 1:基因/疾病识别与 ID 解析

from tooluniverse import ToolUniverse
tu = ToolUniverse()
tu.load_tools()

# Gene query: resolve IDs
gene_info = tu.tools.MyGene_query_genes(query=f"symbol:{gene_symbol}", species="human",
    fields="symbol,ensembl.gene,entrezgene,name", size=5)  # -> ensembl_id
Monarch_search = tu.tools.MonarchV3_search(query=gene_symbol, category="biolink:Gene", limit=5)  # -> HGNC CURIE
omim_result = tu.tools.OMIM_search(query=gene_symbol, limit=5)  # -> MIM number
gene_summary = tu.tools.Harmonizome_get_gene(gene_symbol=gene_symbol)

# Disease query: resolve IDs
monarch_disease = tu.tools.MonarchV3_search(query=disease_name, category="biolink:Disease", limit=5)  # -> MONDO CURIE
mappings = tu.tools.MonarchV3_get_mappings(entity_id=mondo_id, limit=20)  # -> OMIM, ICD10, SNOMED, Orphanet

阶段 2:DisGeNET 关联

需要 API 密钥:DisGeNET 工具需要 DISGENET_API_KEY 环境变量。没有该变量,所有 DisGeNET 调用都会失败。请前往 https://www.disgenet.org/api/#/Authorization 注册以获取免费的学术密钥。 无密钥时的替代方案:跳过此阶段,使用 OpenTargets(阶段 3)和 Monarch(阶段 4);它们免费,且涵盖了许多相同的数据。

# Gene -> diseases
disgenet_diseases = tu.tools.DisGeNET_search_gene(gene=gene_symbol, limit=20)
disgenet_gda = tu.tools.DisGeNET_get_gda(gene=gene_symbol, source="CURATED", min_score=0.3, limit=25)

# Disease -> genes (accepts name or UMLS CUI like "C0006142")
disgenet_genes = tu.tools.DisGeNET_search_disease(disease=disease_name, limit=20)
disgenet_ranked = tu.tools.DisGeNET_get_disease_genes(disease=disease_name, min_score=0.3, limit=50)

DisGeNET 评分的解读:评分越高,表示证据来源越多、整理质量越高。与其死记硬背阈值,不如判断该评分是由整理过的来源还是文本挖掘驱动的。使用 source="CURATED" 加以区分。


阶段 3:OpenTargets 关联

ot_diseases = tu.tools.OpenTargets_get_diseases_phenotypes_by_target_ensembl(ensemblId=ensembl_id)
ot_evidence = tu.tools.OpenTargets_target_disease_evidence(ensemblId=ensembl_id, efoId=efo_id)
# Both require pre-resolved Ensembl/EFO IDs. Use OpenTargets_multi_entity_search_by_query_string to discover IDs.

阶段 4:Monarch Initiative 关联

# Gene -> diseases (integrates OMIM, ClinVar, Orphanet, model organisms)
monarch_diseases = tu.tools.MonarchV3_get_associations(
    subject=hgnc_curie, category="biolink:CausalGeneToDiseaseAssociation", limit=20)
# Disease -> genes
monarch_genes = tu.tools.MonarchV3_get_associations(
    subject=mondo_id, category="biolink:CorrelatedGeneToDiseaseAssociation", limit=20)
histopheno = tu.tools.MonarchV3_get_histopheno(entity_id=mondo_id)  # phenotypes by body system
entity = tu.tools.MonarchV3_get_entity(entity_id=hgnc_curie)  # details, synonyms, xrefs

注意:EnsemblPheno_get_by_gene 是另一个多来源的基因->表型聚合器(GWAS Catalog/ClinVar/OMIM/Orphanet),但目前 Ensembl 上游持续返回 HTTP 500 错误——此问题已确认,并非 ToolUniverse 的 bug。其变异级对应工具 EnsemblPheno_get_by_variant 可以正常工作;请参阅 tooluniverse-variant-analysis 中的“Ensembl 表型关联”部分。在 Ensembl 的基因/术语/区域端点恢复之前,优先使用上述 Monarch/G2P。


阶段 5:孟德尔遗传病证据

需要 API 密钥:OMIM 工具需要 OMIM_API_KEY。请前往 https://omim.org/api 注册以获取学术访问权限。 无密钥时的替代方案:使用 Monarch Initiative(阶段 4 中的 biolink:CausalGeneToDiseaseAssociation),无需密钥即可获取 OMIM 数据。此外,还可使用 GenCC(见下文),它完全开放。

# OMIM: Mendelian gene-disease mapping (use gene MIM number, not phenotype MIM)
omim_entry = tu.tools.OMIM_get_entry(mim_number=mim_number)
omim_gene_map = tu.tools.OMIM_get_gene_map(mim_number=mim_number)
omim_clinical = tu.tools.OMIM_get_clinical_synopsis(mim_number=phenotype_mim)

# GenCC: curated validity (Definitive/Strong/Moderate/Limited/Disputed/Refuted)
gencc_result = tu.tools.GenCC_search_gene(gene_symbol=gene_symbol)  # handles gene renames
gencc_disease = tu.tools.GenCC_search_disease(disease="Marfan syndrome")  # word-tokenized matching
gencc_classifications = tu.tools.GenCC_get_classifications(gene_symbol="BRCA1", disease="breast cancer")

# Orphanet: rare disease associations (filter results by exact gene.symbol match)
orphanet_result = tu.tools.Orphanet_get_gene_diseases(gene_name=gene_symbol)

# Gene2Phenotype (G2P): EBI-curated gene-disease pairs organized into clinical panels
# (DD=developmental disorders, Cancer, Skeletal, Eye, Cardiac, Ear, Skin, Prenatal).
# Distinct from GenCC/OMIM: G2P assertions carry genotype (monoallelic/biallelic),
# molecular mechanism (loss/gain of function), and are grouped by clinical specialty panel
# rather than by disease name alone -- useful when the query maps naturally onto a panel
# (e.g. "what developmental-disorder genes are definitive-confidence" -> DD panel).
g2p_hits = tu.tools.G2P_search(query=gene_symbol)  # -> list of stable_ids, one per gene-disease pair
g2p_record = tu.tools.G2P_get_record(stable_id=g2p_hits["data"]["results"][0]["stable_id"])
# g2p_record includes genotype, molecular_mechanism, disease.ontology_terms (MONDO + OMIM
# cross-refs), confidence, and supporting publications (PMIDs) -- richer per-pair evidence
# than G2P_search's summary row.

# To enumerate every gene in a clinical panel (e.g. building a candidate gene list for a
# developmental-disorder patient), download the full panel rather than searching gene-by-gene:
g2p_panel_genes = tu.tools.G2P_download_panel(panel="DD")  # every curated DD gene-disease pair
g2p_panel_stats = tu.tools.G2P_get_panel(panel="dd")  # just counts (total_records, total_genes, by_confidence)

G2P 置信度等级(definitive > strong > moderate > limited)与 GenCC 的 Definitive/Strong/Moderate/Limited/Disputed/Refuted 等级相对应。当两个来源对同一基因-疾病组合进行分类时,两个独立整理资源给出的“definitive”/“Definitive”评级相符,比单独任一来源提供的证据更有力。如果两者不一致,请检查 G2P 的专家组分类是否符合疾病背景:某基因在 Cancer 专家组中被评为“definitive”,并不能说明它与心脏表型等其他疾病的关联状态。


阶段 6:变异-疾病关联(可选)

在基于基因的查询中,若变异级证据有助于分析,则运行此阶段。

vda_result = tu.tools.DisGeNET_get_vda(gene=gene_symbol, limit=25)  # variant-disease links
clinvar_result = tu.tools.ClinVar_search_variants(gene=gene_symbol, max_results=20)
clinvar_detail = tu.tools.ClinVar_get_variant_details(variant_id="12345")  # detailed variant info

阶段 7:证据综合

统一关联表

为每个基因-疾病组合汇总所有结果,填入单个表格:

## Gene-Disease Associations for BRCA1

| Disease | DisGeNET Score | OpenTargets Score | Monarch | OMIM | GenCC | Orphanet | Sources |
|---------|---------------|-------------------|---------|------|-------|----------|---------|
| Breast cancer | 0.82 | 0.95 | Yes | #114480 | Definitive | ORPHA:227535 | 6/6 |
| Ovarian cancer | 0.78 | 0.91 | Yes | #604370 | Definitive | ORPHA:213500 | 6/6 |
| Pancreatic cancer | 0.35 | 0.42 | Yes | - | Moderate | - | 3/6 |
| Fanconi anemia | 0.45 | 0.38 | Yes | #605724 | Strong | ORPHA:84 | 5/6 |
证据评估的推理策略

证据强度推理:有多条独立证据(遗传学、功能研究、模式生物)支持的基因—疾病关联,比只有一项研究支持的关联更有说服力。请思考:有多少独立来源支持这一关联?这些来源是否指向同一种机制?

遗传学证据层级:孟德尔遗传共分离(基因突变导致家族成员患病)> GWAS(人群中的统计关联)> 候选基因研究(由假设驱动)。第一类证明因果关系,第二类表明相关性,第三类则只是提出假设。OMIM/GenCC 中标注为“Definitive”的条目代表这一层级的顶端;DisGeNET 文本挖掘结果则代表底端。

跨数据库一致性:如果 DisGeNET、OpenTargets 和 OMIM 都将基因 X 与疾病 Y 关联起来,说明一致性较强。如果只有一个数据库显示该关联,请查明原因——是否只有一项研究被该数据库收录?跨数据库的一致性不等于证据独立,因为它们可能都引用了同一项原始研究。请统计支持每项关联的数据库数量,同时判断这些数据库是否提供了真正独立的证据。

机制推理:了解基因的功能有助于评估关联。编码肝酶的基因与肝病相关,在机制上具有合理性。同一基因若与精神疾病相关,则需要更强的证据,因为其机制不那么明显。可利用 Harmonizome 基因摘要和 Monarch 表型概况评估机制上的合理性。


常见模式

  • 以基因为中心:MyGene ID 解析 -> DisGeNET/OpenTargets/Monarch/OMIM/GenCC/Orphanet -> 按一致性排序的统一表格
  • 以疾病为中心:MonarchV3 疾病搜索 -> DisGeNET 疾病相关基因 -> Monarch/OMIM -> 按证据排序的统一基因表格
  • 基因—疾病配对:解析两个 ID -> 针对特定配对查询所有数据库 -> 包含变异级数据的深入证据摘要
  • 孟德尔遗传发现:OMIM_search -> OMIM_get_gene_map -> 按基因查询 GenCC -> Orphanet -> 按人工整理的有效性筛选
  • 跨物种:Monarch 关联(HP/MP/ZP 表型)+ DisGeNET ANIMAL_MODELS 来源 -> 模式生物证据
  • 基因重命名:GenCC 通过 _gene_matches() 自动处理重命名。其他工具需要从 MyGene_query_genes 获取当前 HGNC 符号。

故障排除

  • DisGeNET 返回空结果:检查 DISGENET_API_KEY。尝试使用 UMLS CUI,而非疾病名称。
  • OMIM 未返回基因图谱:使用基因 MIM 编号,而非表型 MIM 编号。
  • Monarch 未返回关联:检查 CURIE 格式(应为 HGNC:1100,而非 HGNC:BRCA1)。先使用 MonarchV3_search。
  • OpenTargets 未返回疾病:通过 MyGene_query_genes 并设置 fields="ensembl.gene" 验证 Ensembl ID。
  • GenCC 返回空结果:并非所有基因都有分类。检查基因是否已重命名。
  • GenCC 疾病搜索未找到结果:简化查询词(例如,使用“乳腺癌”,而非“遗传性乳腺癌和卵巢癌综合征”)。
  • 非 GenCC 工具未找到重命名的基因:只有 GenCC 会自动处理重命名。使用 MyGene_query_genes 确认当前的规范符号。
  • G2P_search 搜索真实的疾病相关基因时返回 0 条结果:G2P 仅涵盖其某个面板(DD、Cancer、Skeletal、Eye、Cardiac、Ear、Skin、Prenatal)中至少有一项经临床整理的断言的基因——它并非像 DisGeNET 那样覆盖全基因组的资源。在此处未找到结果,并不意味着其他地方不存在关联;请改用 Phase 5 的其他来源。
  • G2P 面板名称不匹配:面板名称是区分大小写的短代码(dd、cancer、cardiac、skeletal、eye、ear、skin、prenatal),而非完整的疾病领域描述——如果不确定准确代码,请先查看 G2P_get_panel。

资源

如需全面的疾病报告:tooluniverse-disease-research 如需罕见病诊断:tooluniverse-rare-disease-diagnosis 如需变异解读:tooluniverse-variant-interpretation 如需药物靶点验证:tooluniverse-drug-target-validation

评论

支持 Markdown