SuperAPI AI 工具集

tooluniverse-sequence-retrieval

数据与分析

查看项目

更新于 10-16 04:03

技能介绍

用途

该工具用于检索生物序列,包括 DNA、RNA 和蛋白质,数据来源为 NCBI 与 ENA。它面向需要按基因、物种、菌株或登录号获取序列及其元数据的场景,强调正确的消歧和跨数据库处理。

主要能力

  • 从 NCBI Nucleotide 按基因/物种/菌株/关键词/序列类型搜索序列,并将 UID 转换为登录号。
  • 按登录号获取序列数据,支持 FASTA 与 GenBank 两种格式,GenBank 格式可附带注释信息。
  • 在非 RefSeq 登录号场景下,可通过 ENA 工具获取条目信息、FASTA 序列与条目摘要。
  • 依据登录号前缀选择工具,例如 NC_、NM_、NR_、NP_、XM_ 仅使用 NCBI;U、M、K、X、CP、NZ 等 GenBank 登录号可使用 NCBI 或 ENA;EMBL 格式优先使用 ENA。
  • 生成序列档案报告,包含搜索摘要、主要序列属性、序列统计、序列预览、注释摘要、备选序列、跨数据库引用与下载选项。

使用方式

工作流分为四个阶段:Phase 0 在必要时澄清,Phase 1 进行基因/物种消歧,Phase 2 静默搜索与检索,Phase 3 输出序列档案报告。工具通过 ToolUniverse 加载后调用,核心调用包括:

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

搜索序列:

result = tu.tools.NCBI_search_nucleotide(
    operation="search",
    organism=organism,
    gene=gene,
    strain=strain,
    keywords=keywords,
    seq_type=seq_type,
    limit=10
)

获取登录号:

accessions = tu.tools.NCBI_fetch_accessions(
    operation="fetch_accession",
    uids=result["data"]["uids"]
)

获取序列:

sequence = tu.tools.NCBI_get_sequence(
    operation="fetch_sequence",
    accession=accession,
    format="fasta"
)

ENA 备用(仅非 RefSeq 登录号):

entry = tu.tools.ena_get_entry(accession=accession)
fasta = tu.tools.ena_get_sequence_fasta(accession=accession)
summary = tu.tools.ena_get_entry_summary(accession=accession)

调用工具时应始终使用英文术语(基因名、物种名、序列描述),即使用户使用其他语言;仅当英文无结果时才回退到原始语言术语。最终以用户语言回复。检索过程应静默执行,不叙述搜索过程。

适用场景

  • 获取参考基因组,例如按物种与菌株搜索完整基因组并返回 RefSeq 参考序列。
  • 获取基因序列,例如查找人类 BRCA1 mRNA。
  • 按特定登录号直接检索并获取完整元数据。
  • 菌株比较,例如比较不同大肠杆菌菌株基因组并提供对比表。
  • 需要序列注释分析时使用 GenBank 格式,需要比对时使用 FASTA 格式。

限制

  • 不要对 RefSeq 登录号(NC_、NM_ 等)使用 ENA 工具,否则会返回 404 错误。
  • 基因名存在于多个物种、序列类型不明确或菌株/分离株影响结果时,需要先向用户澄清;具体登录号、清晰的物种加基因组合、指定物种的完整基因组请求可跳过澄清。
  • 报告需包含每个序列的登录号、物种学名、序列类型、长度、策展级别与数据库来源,以及搜索查询参数、结果数量和排序理由;备选序列与跨数据库引用即使缺失也应注明。
  • API 速率限制时工具会自动重试,若持续出现需短暂等待。
  • 序列过大时注明大小并提供下载链接而非预览。