用途
该工具用于检索生物序列,包括 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 速率限制时工具会自动重试,若持续出现需短暂等待。
- 序列过大时注明大小并提供下载链接而非预览。