用途:封装 NCBI Entrez E-utilities(efetch、esearch、elink、esummary),用于检索蛋白与核酸序列,提供 10 个子命令覆盖常见序列获取流程。
主要能力:fetch-protein 按登录号取蛋白;fetch-nucleotide 按登录号取核酸;cds-translate 取 CDS 并翻译(依次尝试 NCBI 预翻译 CDS、GenBank XML 注释翻译、核酸六框 ORF);search 对任意 NCBI 库做自由文本检索;elink 跟踪跨库链接;gene-protein 按基因名加物种检索;locus-protein 按位点标签检索;pubmed-proteins 找 PubMed 文章关联蛋白;patent-search 按专利号或关键词提取序列;organism-length 按物种与精确氨基酸长度兜底检索。
使用方式:需先安装 uv 并确保在 PATH 中;在用户主目录准备 .env;可选 NCBI_API_KEY 可将速率限制从 3 次/秒提升到 10 次/秒,无 key 也可用,频繁查询或遇 429 时建议申请。始终通过封装脚本查询,脚本会自动遵守速率限制。示例:uv run scripts/ncbi_fetch.py fetch-protein XP_022033624 -o /tmp/result.json;uv run scripts/ncbi_fetch.py cds-translate MK034466;uv run scripts/ncbi_fetch.py gene-protein WRR4B --organism "Arabidopsis thaliana"。所有子命令输出结构化 JSON,可用 --output FILE 保存,省略则打印到 stdout,并始终打印可读摘要。
适用场景:按登录号、基因、位点、PubMed、专利或物种加长度查找蛋白/核酸序列,适合生物信息学检索流程。
限制:若工作区根目录不存在 .licenses/ncbi_sequence_fetch_LICENSE.txt,需先提示用户查看 NCBI 条款与政策并创建记录文件;若登录号为基因组记录会返回 is_genomic: true,需改用同源方法;organism-length 常返回多个候选,需结合长度与头部信息筛选;Ensembl 与 UniProt 标识应改用对应技能。首次使用需按技能要求通知用户。