关于 quickgo-database
用于查询 QuickGO 基因本体及证据资源的命令行技能,适合将基因产物映射到功能、探索 GO 关系并查看注释证据的研究者;通过封装 QuickGO REST API 的工具执行查询。
主要功能
- 01搜索 GO 术语及关系
- 02查找基因产物注释
- 03将基因符号解析为标识符
- 04查询证据本体术语
- 05生成 GO Slim 概览
适用场景
- 01将基因产物映射到功能注释
- 02查找注释到某 GO 术语的基因
- 03查看术语定义及祖先关系
- 04用 GO Slim 汇总候选基因
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ google-deepmind/ science-skills --skill quickgo-database安装后在 Claude Code 中输入/quickgo-database确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/annotations.mdcitation.bibeco_terms.mdgene_products.mdgo_terms.mdscripts/quickgo_tool.py详细介绍
QuickGO 数据库技能
GO(基因本体)注释是标注基因功能的主要方式之一。QuickGO 是一个快速的 Web 浏览器,用于浏览 GO 和证据与结论本体(ECO),由 EMBL-EBI 的基因本体注释(GOA)团队维护。
它提供一个集中式资源,用于探索基因产物(蛋白质、RNA 和复合物)的功能属性。它是功能注释映射的主要工具,因为它可以将基因(例如 USH2A)关联到其特定的生物过程(例如光刺激的感觉感知)、分子功能和细胞组分。
前提条件
uv:阅读uv技能,并按照其中的设置说明确保已安装uv,且它位于 PATH 中。- 用户通知:如果工作区根目录中尚不存在 .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将结果限制为人类。 - 通知:如果使用了此技能,确保在输出中提及。
此工具有四个主要子命令:
go:用于检索 GO 术语信息(例如定义、祖先、后代和精简集)。请参阅 references/go_terms.md。annotation:用于查找将基因产物关联到 GO 术语的功能注释。这是主要的功能映射工具。请参阅 references/annotations.md。geneproduct:用于将基因符号(如PROC)解析为其正式数据库标识符。请参阅 references/gene_products.md。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