用途:面向基因组学与生物信息学流程,通过欧洲核苷酸档案库(ENA)的 REST API 与 FTP 检索和下载核苷酸序列、原始测序读长(FASTQ)、基因组组装及功能注释数据。
主要能力:ENA 按层级组织数据,包括 Studies/Projects(研究/项目)、Samples(样本)、Raw Reads(原始读长,含 Experiments 与 Runs)、Assemblies(组装)、Sequences(EMBL 序列库中的序列)、Analyses(分析结果)和 Taxonomy Records(分类记录)。提供多套 REST API:ENA Portal API(https://www.ebi.ac.uk/ena/portal/api/doc)用于高级搜索;ENA Browser API(https://www.ebi.ac.uk/ena/browser/api/doc)按登录号取记录,返回 XML、FASTA 或 EMBL;Taxonomy REST API 查询谱系与分类;Cross Reference Service(https://www.ebi.ac.uk/ena/xref/rest/)获取外部关联记录;CRAM Reference Registry(https://www.ebi.ac.uk/ena/cram/)按 MD5/SHA1 取参考序列。支持元数据格式 XML/JSON/TSV/CSV,序列格式 FASTQ/BAM/CRAM/FASTA/EMBL。
使用方式:用 Portal API 搜索,如 portal/api/search?result=sample&query=study_accession=PRJEB1234&format=json;取 FASTQ 下载链接用 portal/api/filereport?accession=ERR123456&result=read_run&fields=run_accession,fastq_ftp,fastq_md5&format=tsv,再逐个下载。按分类查组装:portal/api/search?result=assembly&query=tax_tree(562)&fields=accession,scientific_name&format=json(tax_tree()/tax_eq() 需数字 NCBI taxon ID,不能用物种名)。查谱系:taxonomy/rest/tax-id/562。脚本:python scripts/query_ena.py search --result read_run --query 'study_accession="PRJEB1787"' --fields run_accession,fastq_ftp --limit 5;python scripts/query_ena.py filereport ERR164407。大批量用 FTP、Aspera 或 enaBrowserTools。
适用场景:按登录号取序列或原始读长、按元数据搜索样本/研究/组装、下载 FASTQ 或组装、查分类信息、访问注释、集成到生信流程、跨库交叉引用、批量下载。
限制:程序化访问限 50 请求/秒,超限返回 HTTP 429;处理表达系列用 alterlab-geo,基因注释用 alterlab-gene-db,基因组注释/坐标用 alterlab-ensembl,本地 BLAST 用 alterlab-blast。建议遵守限速并返回指数退避、用 XML 库解析、大文件(>100MB)用 FTP/Aspera、元数据优先用 TSV/JSON、缓存分类查询。价格、平台等未在资料中提供。