用途:按 ENA 登录号下载原始测序读段(FASTQ,如 ERR…、SRR…、PRJ…);按物种、平台、采集日期、地理等元数据筛选样本、run、实验或组装;获取 XML/JSON/TSV 元数据用于报告与流程输入;查询分类谱系/等级;执行批量发现与批量下载。
主要能力:覆盖 study/project、sample、experiment、run、assembly、sequence、analysis、taxonomy 等对象。提供两类 API:Portal API(高级检索与元数据导出,JSON/TSV/CSV)与 Browser API(按登录号直接检索记录,XML)。支持 FASTQ、FASTA、BAM/CRAM、EMBL 及 XML/JSON/TSV 元数据,支持 FTP/Aspera 批量传输、xref 交叉引用与 CRAM 参考注册表,并提示限流(HTTP 429)与稳健流程实践。
使用方式:依赖 Python >=3.9、requests >=2.31.0,可选 lxml >=4.9.0 解析 XML。典型流程为搜索→解析→下载:用 Portal API 获取登录号与文件 URL(如 read_run、fastq_ftp),必要时用 Browser API 取 XML 详情,大批量文件改用 FTP/Aspera 或工具下载,避免按登录号循环流式拉取。示例可运行 python ena_example.py PRJEB1234。
适用场景:测序数据重分析与可复现报告、元数据大规模导出、分类过滤分组、批量数据获取等生物信息流程。
限制:未提供具体收费、价格或平台支持信息;ENA API 常见限流约 50 请求/秒,超限返回 429,需指数退避与请求合并;大文件应使用 FTP/Aspera 而非 API 流式下载;XML 应使用解析器而非正则。