用途:使用 Biopython 的 Entrez 模块(ELink 工具)在 NCBI 数据库之间导航,查找同一或不同数据库中的相关记录,例如从基因到蛋白质、从序列到文献。
必要设置:需导入 from Bio import Entrez,并设置 Entrez.email(NCBI 要求);Entrez.api_key 可选,用于提高速率限制。
主要能力:核心函数 Entrez.elink() 支持跨数据库链接。关键参数包括 dbfrom(源数据库)、db(目标数据库)、id(源记录 ID,可多个用逗号分隔)、linkname(指定链接类型,如 gene_protein_refseq)、cmd(链接命令,如 neighbor、neighbor_score、acheck)。结果结构为 record[0] 起,含 DbFrom、IdList、LinkSetDb 等字段,链接 ID 位于 LinkSetDb[0]['Link'][i]['Id']。
常见链接路径:基因到蛋白质、核苷酸、PubMed、HomoloGene、SNP、ClinVar;核苷酸到蛋白质、基因、PubMed、分类、BioSample、SRA;蛋白质到核苷酸、基因、PubMed、结构、CDD;PubMed 到相关文章、基因、蛋白质、核苷酸。
使用方式:典型流程为调用 Entrez.elink() 获取句柄,用 Entrez.read() 解析,再关闭句柄并提取链接 ID。可用 cmd='acheck' 发现某记录所有可用链接;可批量传入多个 ID,返回每个输入 ID 对应的链接集;可链式调用多次实现多级跳转(如基因→蛋白质→结构)。
适用场景:生物信息学中跨库检索、从基因或序列定位相关蛋白与文献、发现记录间关联、为后续 efetch 获取记录做准备。
限制:需遵守 NCBI 使用要求并设置邮箱;无链接时 LinkSetDb 可能为空,需先判断;ID 或数据库无效会返回 HTTPError 400;多输入 ID 时返回列表需遍历。相关技能包括 entrez-search、entrez-fetch、batch-downloads。