mcpField
Q
quickgo-database

quickgo-database

github.com/google-deepmind数据与数据库3.4k2.1k 次安装5 天前更新
代码仓库

关于 quickgo-database

用于查询 QuickGO 基因本体及证据资源的命令行技能,适合将基因产物映射到功能、探索 GO 关系并查看注释证据的研究者;通过封装 QuickGO REST API 的工具执行查询。

主要功能

  1. 01搜索 GO 术语及关系
  2. 02查找基因产物注释
  3. 03将基因符号解析为标识符
  4. 04查询证据本体术语
  5. 05生成 GO Slim 概览

适用场景

  1. 01将基因产物映射到功能注释
  2. 02查找注释到某 GO 术语的基因
  3. 03查看术语定义及祖先关系
  4. 04用 GO Slim 汇总候选基因

安装

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

$npx skills add https://github.com/google-deepmind/science-skills --skill quickgo-database

安装后在 Claude Code 中输入/quickgo-database确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
annotations.md
citation.bib
eco_terms.md
gene_products.md
go_terms.md
scripts/
quickgo_tool.py

详细介绍

QuickGO 数据库技能

GO(基因本体)注释是标注基因功能的主要方式之一。QuickGO 是一个快速的 Web 浏览器,用于浏览 GO 和证据与结论本体(ECO),由 EMBL-EBI 的基因本体注释(GOA)团队维护。

它提供一个集中式资源,用于探索基因产物(蛋白质、RNA 和复合物)的功能属性。它是功能注释映射的主要工具,因为它可以将基因(例如 USH2A)关联到其特定的生物过程(例如光刺激的感觉感知)、分子功能和细胞组分。

前提条件

  1. uv:阅读 uv 技能,并按照其中的设置说明确保已安装 uv,且它位于 PATH 中。
  2. 用户通知:如果工作区根目录中尚不存在 .licenses/quickgo_database_LICENSE.txt,则(1)醒目地通知用户查看 https://www.ebi.ac.uk/QuickGO/ 和 https://www.ebi.ac.uk/QuickGO/api/index.html 上的条款,然后(2)创建该文件,记录通知文本和时间戳。

用法

此技能提供一个 Python CLI 封装脚本 scripts/quickgo_tool.py,用于查询 QuickGO REST API。它负责格式化请求、遵守速率限制,并安全地存储可能很大的 JSON 响应。

核心规则

  • 使用封装脚本:始终执行提供的辅助脚本来查询数据库,不要直接访问数据库。脚本会自动以适当方式强制执行所需的速率限制。
  • 分页与限制:使用 --limit 100 将端点限制为每页最多 100 条结果;对于较大的数据集,使用 --page 参数。
  • 输出文件:始终使用 --output 标志将响应增量保存到文件,或通过 jq 解析。
  • 证据代码:优先使用实验性证据(ECO:0000269),而非电子证据(ECO:0000501),以避免产生大量噪声预测。
  • 分类群筛选:分析临床或人类基因组数据时,使用 --taxonId 9606 将结果限制为人类。
  • 通知:如果使用了此技能,确保在输出中提及。

此工具有四个主要子命令:

  1. go:用于检索 GO 术语信息(例如定义、祖先、后代和精简集)。请参阅 references/go_terms.md。
  2. annotation:用于查找将基因产物关联到 GO 术语的功能注释。这是主要的功能映射工具。请参阅 references/annotations.md。
  3. geneproduct:用于将基因符号(如 PROC)解析为其正式数据库标识符。请参阅 references/gene_products.md。
  4. eco:用于检索证据与结论本体术语(注释中用于说明注释的来源,例如实验或电子证据)。请参阅 references/eco_terms.md。

常见工作流

1. 将基因映射到其功能(注释)

要了解某个基因的功能,必须先将其符号解析为 UniProtKB ID,然后查询其注释。通常最好筛选实验性证据(例如 EXP 对应的 ECO:0000269,或 IDA、IMP 等其他证据),以避免产生大量噪声电子预测。

# Step 1: Find the UniProtKB ID for human (9606) gene PROC
uv run scripts/quickgo_tool.py geneproduct search --query "PROC" --taxonId 9606 --limit 5 --output proc_id.json
# (Look at proc_id.json, observe the ID is e.g., UniProtKB:P04070)

# Step 2: Find experimental GO annotations for that ID
uv run scripts/quickgo_tool.py annotation search --geneProductId "UniProtKB:P04070" --taxonId 9606 --evidenceCode "ECO:0000269" --limit 50 --output proc_annotations.json
2. 查找通路中的所有基因

要查找注释到特定 GO 术语的所有基因(例如,GO:0003700 表示“转录因子活性”):

# Find human genes with this specific molecular function
uv run scripts/quickgo_tool.py annotation search --goId "GO:0003700" --taxonId 9606 --limit 50 --output tf_genes.json
3. 探索 GO 层级结构

要检查某个 GO 术语是否属于更广泛类别的后代术语,或获取其定义:

# Fetch term details (definitions, synonyms)
uv run scripts/quickgo_tool.py go terms --ids "GO:0003150" --output term_details.json

# Check ancestry (e.g., is GO:0001917 a child of something?)
uv run scripts/quickgo_tool.py go terms --ids "GO:0001917" --relation ancestors --output term_ancestors.json
4. 创建 GO 精简集摘要

如果你有一组候选基因,并希望生成高层次的功能摘要,可以将它们映射到预定义的 GO 精简集。首先,获取这些基因的注释以提取其 GO ID,然后将这些 ID 传递给精简集端点:

# Step 1: Find GO IDs for candidate genes (e.g., via their UniProt IDs, fetching their annotations)
# ... (output yields e.g., GO:0006915,GO:0008219)

# Step 2: Create a slim summary from those specific GO IDs
uv run scripts/quickgo_tool.py go slim --slimsToIds "GO:0005575,GO:0008150,GO:0003674" --slimsFromIds "GO:0006915,GO:0008219" --output my_slim.json

评论

支持 Markdown