gget 是一个面向生物信息学快速查询的技能,提供 CLI 与 Python 两种使用方式,用于在基因组参考数据库之间进行快速查找。其典型用途是:在构建完整本地分析流程之前,快速获取基因、序列、比对与注释层面的证据,并保留可复现的查询记录。
【用途】 当任务需要跨基因组参考数据库进行快速查找时,可以使用 gget。具体包括:查找 Ensembl ID、基因元数据、转录本详情或序列;在不搭建完整本地流程的情况下运行快速的 BLAST 或 BLAT 查询;从 Ensembl 获取参考基因组链接与注释;通过统一接口查询蛋白质结构、通路、癌症、表达或疾病关联模块;在转向 Biopython、Snakemake、Nextflow、BLAST+ 或特定数据库客户端等更重的工具之前,创建可复现的首轮证据日志。
【何时不应使用】 当任务需要受监管的临床解读、高通量生产流程,或需要对数据库版本和本地索引进行精细控制时,应改用专门的工作流,而不是 gget。
【安装】 建议使用干净的 Python 环境。
python -m venv .venv . .venv/bin/activate python -m pip install --upgrade pip python -m pip install --upgrade gget gget --help
如果可用 uv:
uv venv . .venv/bin/activate uv pip install gget
在依赖旧环境之前,先升级 gget 并重新查看模块文档,因为 gget 查询的上游数据库会随时间变化。
【基本使用形式】 CLI 形式:
gget <module> [arguments] [options]
Python 形式:
import gget
result = gget.search(["BRCA1"], species="human") print(result)
常见工作流:确定物种、组装版本、基因 ID 类型和所需数据库;查看当前模块文档以确认参数;先运行一个小查询;用明确的文件名和日期保存输出;记录模块名称、版本、参数与数据库假设。
【常见模块】 确切参数请以当前上游文档为准。以下模块是常见首选:
- gget search:根据搜索词查找 Ensembl ID。
- gget info:获取 Ensembl、UniProt 或相关 ID 的元数据。
- gget seq:获取核苷酸或氨基酸序列。
- gget ref:获取参考基因组下载链接。
- gget blast:运行快速 BLAST 查询。
- gget blat:将序列定位到受支持的基因组组装版本。
- gget muscle:运行多序列比对。
- gget diamond:针对参考序列运行本地序列比对。
- gget alphafold 与 gget pdb:查看蛋白质结构参考。
- gget enrichr、gget opentargets、gget archs4、gget bgee、gget cbio 与 gget cosmic:探索富集、靶点、表达、癌症与疾病关联数据。
不要假设每个模块都支持所有 Python 版本或依赖组合。某些可选科学依赖的版本支持范围比核心包更窄。
【快速示例】 查找基因:
gget search -s human brca1 dna repair -o brca1-search.json
获取基因元数据:
gget info ENSG00000012048 -o brca1-info.json
获取序列:
gget seq ENSG00000012048 -o brca1-seq.fa
运行小型 BLAST 查询:
gget blast "MEEPQSDPSVEPPLSQETFSDLWKLLPEN" -l 10 -o blast-results.json
Python 示例:
import gget
genes = gget.search(["BRCA1", "DNA repair"], species="human") info = gget.info(["ENSG00000012048"]) sequence = gget.seq("ENSG00000012048")
【可复现日志】 对于科学输出,应包含足够的元数据以便重放查询。示例表结构:日期、gget 版本(gget --version)、模块、查询、物种/组装、输出、备注。此外还应记录:Python 版本与环境管理器;通过 gget setup 安装的任何可选依赖;查询返回的特定数据库标识符;输出是 JSON、CSV、FASTA 还是 DataFrame 导出;以及通过升级 gget 解决过的失败。
【检查清单】
- 是否升级或确认了已安装的 gget 版本?
- 使用参数前是否查看了当前上游模块文档?
- 是否明确指定了物种或组装版本?
- 标识符是否被原样保留,包括 Ensembl/UniProt 前缀?
- 结果是否被标注为数据库输出而非临床解读?
- 查询能否从保存的命令或 Python 片段中复现?
- 可选依赖是否安装在隔离环境中?
【参考】 gget 文档、gget 更新说明、gget GitHub 仓库、gget Bioinformatics 论文。