ENA — 八十拍字节的核酸总账,四千万次测序的入口

1,098,568 项研究、55,877,279 个样本、44,433,186 次测序运行:INSDC 欧洲节点,从 1980 年的一条序列长到今天

来源 [{'@type': 'DataCatalog', 'name': 'ENA FTP', 'url': 'https://ftp.ebi.ac.uk/pub/databases/ena/'}, {'@type': 'DataCatalog', 'name': 'EBI Search(官方索引口径)', 'url': 'https://www.ebi.ac.uk/ebisearch/ws/rest/sra-run'}]发布时间: 2026-10-23最后更新: 2026-10-23 阅读 12
ENA — 八十拍字节的核酸总账,四千万次测序的入口

信息速览

数据集名称ENA — 八十拍字节的核酸总账,四千万次测序的入口
数据类型1,098,568 项研究,55,877,279 个样本,44,433,186 次运行,80.7 PB,INSDC 欧洲节点,四层记录模型,FTP + Portal API,开放下载
规模不适用(通用序列档案)。但需注意:人类受控访问数据在 EGA(European Genome-phenome Archive),不在 ENA 公开层;ENA 公开层的序列不含可识别个人身份的信息,但部
接入方式[{'@type': 'DataCatalog', 'name': 'ENA FTP', 'url': 'https://ftp.ebi.ac.uk/pub/databases/ena/'}, {'@type': 'DataCatalog', 'name': 'EBI Search(官方索引口径)', 'url': 'https://www.ebi.ac.uk/ebisearch/ws/rest/sra-run'}]
AI 就绪度

INFOBOX

项 值
全名 European Nucleotide Archive(欧洲核苷酸档案)
运营方 EMBL-EBI(英国 Hinxton,Wellcome Genome Campus)
创建 前身 EMBL Nucleotide Sequence Data Library 1980 年建于海德堡;1994 迁 EBI;2008 年改组成当前形态
协作体 INSDC(与 NCBI GenBank、日本 DDBJ 三方共享)
规模(官方索引) 1,098,568 项研究 / 55,877,279 个样本 / 41,753,663 次实验 / 44,433,186 次运行
累计数据量 80.7 PB(SRA 部分,官方图注 2026-10-19)
序列记录 标准序列 2.57 亿 / 非编码 3.32 亿 / 组装支架 5,976 万
访问方式 FTP + Portal API + Browser API(三套都有,全部免费)
许可 EMBL-EBI Terms of Use:不额外限制再分发,但原始数据权利归提交者
增长节奏 官方图注:约每 3 年翻一倍
最大的坑 它是档案不是数据集——80.7 PB 里没有任何划分,一切筛选都得自己做

§0 E-E-A-T 信任声明与免责声明

我们是谁:千方病案医学编辑部,为中文医学 AI 社区整理可训练数据集的结构化说明。

本条目怎么来的:全部数字来自 2026-10-23 对以下官方来源的读取:(1) EBI Search 各 domain 的元数据接口(/ebisearch/ws/rest/<domain>,返回 Number of entries 与 Release version);(2) ENA FTP statistics/ 目录下的官方增长曲线图(图注日期 2026-10-19);(3) ENA Portal API 与 Browser API 的实际调用;(4) EMBL-EBI Terms of Use 原文。本篇不做全量文件下载与重算——ENA 的 80.7 PB 不是能"核一遍"的量级,官方口径就是唯一口径。

我们不做什么:本条目不提供模型性能数字。§7.7 的口径矩阵不是 benchmark,它只并列同一概念在不同来源下的取值。

已知局限:

  • 官方索引数按 domain 分别发布,四个层级的发布时间不完全同步(研究、样本、实验、运行为 2026-10-21 的 release;分析为 2026-10-21;提交为 2026-10-20)。跨层相除得到的比例会有轻微时点误差。
  • 80.7 PB 是 SRA 部分的图注数字,不含组装与非编码序列的原始文件。
  • 我们没有评估 ENA 中任何子集的数据质量。档案不做质量分级。

§1 数据集概览

§1.0 📌 30 秒速览

ENA 不是一个"数据集",它是全世界核酸序列的总账。这件事必须先讲清,否则后面全错。

它的形状是一棵四层的树:

研究 Study(PRJEB1234)
 └─ 样本 Sample(SAMEA1905455)
     └─ 实验 Experiment(ERX189430)
         └─ 运行 Run(ERR214765)  ← 这一层才对应真正的 FASTQ 文件

官方索引的规模是:1,098,568 项研究 / 55,877,279 个样本 / 41,753,663 次实验 / 44,433,186 次运行。累计数据量 80.7 PB,按官方图注"约每 3 年翻一倍"。

三个必须先知道的形状问题:

  1. 它是档案,不是数据集。没有训练/测试划分、没有质量分级、没有标签体系。同一物种同一实验条件,可能被五个国家的测序中心各提交一遍。你要的那 5,000 条数据,藏在 4,400 万条里。
  2. 四层不是四选一。研究数(110 万)比运行数(4,444 万)少 40 倍。做"研究级"的数据集,你得到的是 110 万个题目;做"运行级",你得到的是 4,444 万条 FASTQ。这是两种完全不同的数据集。
  3. 元数据填充率是最大变量。country、collection_date、host 这些流行病学关键字段,在大量记录里是空的。同一份 ENA 数据,字段选得好是高质量数据集,选得差就是一堆 accession。

如果你要下载测序原始数据(FASTQ/BAM),ENA 是全世界两个最大入口之一(另一个是 NCBI SRA,两者通过 INSDC 交换,内容高度重叠但不完全相同)。如果你要的是"整理好的、带标签的训练集",ENA 是原料,不是成品。

§1.1 技术摘要

维度 值
研究(project 域) 1,098,568
样本(sra-sample 域) 55,877,279
实验(sra-experiment 域) 41,753,663
运行(sra-run 域) 44,433,186
分析(sra-analysis 域) 24,300,136
提交(sra-submission 域) 32,221,023
标准序列(emblstandard) 256,566,952
非编码序列(non-coding) 332,107,920
组装支架(emblcon) 59,757,586
累计数据量 80.7 PB
按碱基的数据构成 WGS 78.4% / STD 16.8% / CON 3.1% / TSA 1.4%
访问方式 FTP / Portal API / Browser API(全免费)
更新频率 每日

数据构成那一行值得多看一眼:全库 78.4% 的碱基来自全基因组测序(WGS),16.8% 来自标准序列(STD,即传统的一条一条提交的 EMBL 记录)。转录组、表观组、单细胞这些"热门"数据类型,在碱基总量里占比极小——因为它们单个实验的碱基数远小于 WGS。这意味着按"文件数"和按"碱基数"看,ENA 是两张完全不同的图。

§1.2 战略价值

第一,它是"原始数据"这一层的唯二入口。 本站已收录的数据集里,绝大多数是加工过的:gtex 给了表达矩阵、tcga 给了变异调用结果、hca 给了细胞图谱。这些数据的共同点是——你已经看不到原始 FASTQ 了。而做测序流程开发、碱基识别(basecalling)模型、比对算法、质量控制模型,你需要的恰恰是原始读段。这一层只有 ENA 与 NCBI SRA。

第二,它是"可复现性"的基础设施。 一篇论文说"我们测了 500 个样本",可复现的唯一途径是去 ENA 找到那 500 个 run accession,重新走一遍流程。ENA 的 accession 是永久标识符——它比 DOI 更稳定地指向"数据本身",而不是"数据的描述"。

第三,它的地理与时间覆盖是最全的。 从 1980 年的第一条序列到今天,从南极样本到深海沉积物,从模式生物到未培养微生物。做生物多样性基因组学(如 Darwin Tree of Life)、病原监测(如 SARS-CoV-2、mpox),ENA 是数据的落地点。 官方把这两件事明确写进了当前团队的工作重点。

第四,它是一个反例,用来校准我们的预期。 本站收录的库大多有"明确的规模数字 + 明确的语义"。ENA 有明确的规模数字,但语义是开放的——"一项研究"可以是一条序列,也可以是十万个样本。这个不一致本身就是关于"档案型资源"最重要的一课。

§1.3 同类资源横向对比

资源 定位 规模 与 ENA 的关系
ENA(本条) INSDC 欧洲节点 4,444 万 run / 80.7 PB 欧洲落地点
NCBI SRA / GenBank INSDC 美国节点 同一量级 同源交换:三方每日同步新提交,但历史数据的迁移不完整,两边并不逐条一致
DDBJ INSDC 日本节点 同一量级 同上
GEO(本站已收) 基因表达实验的加工后矩阵 约 43 万样本 GEO 的原始数据存在 SRA;GEO 给结论,ENA 给原料
BioStudies / ArrayExpress 跨类型归档(含非序列数据) — 与 ENA 互补,不是替代
EGA 人类受控访问基因组数据 — ENA 的受控访问姊妹库:需要 DAC 审批的人类数据在 EGA,不在 ENA 公开层
MGnify(本站已收) 宏基因组的分析产物 — 输入来自 ENA,输出是分类与功能谱
MetaSRA / SRA-Explorer ENA/SRA 的元数据重整 — 第三方对 ENA 元数据做的规范化,反证了 ENA 元数据本身的杂乱

这张表里最重要的一行是 GEO。很多人以为"GEO 有数据",其实 GEO 的核心价值是作者处理好的表达矩阵;原始 FASTQ 在 SRA(美国)或 ENA(欧洲)。如果你的任务是训练一个从原始读段到表达量的模型,GEO 帮不了你,ENA 才行。

§1.4 版本时间轴

时间 事件
1980 EMBL Nucleotide Sequence Data Library 在海德堡建立,是全世界第一个 DNA 序列中心数据库
1982 与 GenBank 开始交换数据
1987 与 DDBJ 开始交换,INSDC 三方格局成形
1994 迁至 EMBL-EBI(Hinxton)
2008 改组成当前形态:从"序列库"扩展为"读段 + 组装 + 注释"的全档案
2026-10-19 官方统计图注日期(80.7 PB / 4,437 万 runs)
2026-10-20/21 EBI Search 各 domain release(本篇数字来源)

2008 年那次改组是理解 ENA 的关键。在此之前它是"序列数据库"(像 GenBank 一样,存一条条注释好的序列);之后它变成"档案"(存原始读段 + 组装 + 注释三层)。这个转变让它从"提供答案"变成"提供材料"。

§1.5 典型应用场景

场景一:复现一篇论文的测序分析。 论文补充材料给了 BioProject 号(如 PRJNA852547),你用 filereport 一次拿到该项目全部 run 的 FASTQ 路径、MD5、字节数,然后按原流程重跑。这是 ENA 最标准、最高频的用法。

场景二:构建病原监测的序列集。 筛出某病原(如 mpox 病毒)在某时间段内的全部基因组,做进化树与变异追踪。ENA 为此专门开了 sra-analysis-mpox 这类专题域。

场景三:训练碱基识别或质量控制模型。 需要大量原始读段(不经比对、不经修剪)。从 ENA 按 instrument_model 分组抽样,可以得到跨越不同测序平台、不同年代的读段分布。

场景四:宏基因组研究的输入。 MGnify 的输入就是 ENA 的 run;自己做宏基因组分析,也是从 ENA 拉 FASTQ 起步。

场景五:数据集构建的"原料仓库"。 本站在做其他条目(如 mgx-datasets、ibdmdb)时,其底层原始数据都能在这里找到。


§2 核酸档案的生物学前提

§2.1 为什么核酸数据需要一个"总账"

核酸序列是一次测定、无限复用的东西。一条测序读段一旦产生,它的价值就不限于原作者的实验目的——同一批 reads 可以被用来做变异发现、表达定量、物种鉴定、甲基化推断(取决于建库方式)。

这带来一个经济学问题:测序很贵,重测很浪费。所以学术界在 1980 年代就达成了共识:测序数据必须公开归档。ENA、GenBank、DDBJ 就是这个共识的产物,INSDC 是三方之间的交换协议。

这个背景决定了两件事:

  • ENA 的收录标准是"提交",不是"质量"。只要格式合规、物种能在 NCBI Taxonomy 里找到,就收。它不做"这个实验设计好不好"的判断。
  • ENA 的内容是历史沉积的。1980 年的第一条序列和 2026 年的 NovaSeq 数据,在同一个库里,用同一套 accession 体系。

§2.2 四层模型:为什么不是"一个表"

ENA 的四层(Study → Sample → Experiment → Run)不是官僚设计,是语义上必须分开的四件事:

层 回答什么问题 一对多关系
Study(研究) 这批数据是为了回答什么科学问题? 1 研究 → N 样本
Sample(样本) 测的是什么东西?(组织、个体、环境) 1 样本 → N 实验
Experiment(实验) 用了什么建库方法与测序仪? 1 实验 → N 运行
Run(运行) 一次测序产生的文件在哪里? 这就是 FASTQ 的粒度

为什么 Sample 和 Experiment 要分开:同一个样本(同一份 DNA 提取物)可以跑多次实验(不同的建库策略、不同的测序仪)。为什么 Experiment 和 Run 要分开:一次实验可能跨多个测序芯片(lane),每个 lane 是一个独立的 run 文件。

这个设计对做数据集的直接后果:"多少个样本"和"多少个文件"是两个数。55,877,279 个样本对应 44,433,186 次运行——运行数反而比样本数少,因为有大量样本(尤其是早期的、或从未实际测序的)没有对应的 run。做数据集时按样本数写还是按 run 数写,取决于你的任务是"样本级"还是"文件级"。

§2.3 从序列到可训练数据:中间缺了什么

一份 ENA 的 FASTQ 到"能训练的样本",中间要经过:

  1. 下载(80.7 PB 不能全下,只能按 accession 逐个拉)
  2. 解压与校验(MD5 在 filereport 里给了,但很少有人真的校验)
  3. 质控与修剪(接头、低质量尾、duplication)
  4. 比对或组装(参考基因组从哪来?编码区从哪来?)
  5. 定量或变异调用
  6. 与表型/标签关联(这一步 ENA 完全不提供,要去 GEO、EGA、或原论文)

第 6 步是最大的 gap。ENA 的元数据里,sample 层可以带 host、disease、age、sex 等字段,但填充率极不均衡——模式生物和大型队列填得好,环境样本和早期数据大量为空。"从 ENA 直接得到带标签的训练集"这件事,几乎不存在。

§2.4 数据来源:谁在提交,为什么形状是这样

提交方 典型内容 对数据形状的影响
大型测序中心(Sanger、BGI、华大、Broad) 全基因组、大型队列 样本量大、元数据规范、协议统一
单个 PI 实验室 一个课题、几十到几百样本 元数据质量参差,常缺 collection_date 与 country
国家监测网络(Public Health England 等) 病原基因组 时间序列连续,但地理粒度粗
公民科学 / 生物多样性项目 条形码、环境样本 物种覆盖广,但个体信息很少
INSDC 交换 从 GenBank/DDBJ 同步来的记录 accession 前缀不同(SRR/DRR vs ERR),同一份数据可能有两个号

最后一行是个实在的坑:一条数据可能既有 SRR 号(NCBI 侧)又有 ERR 号(ENA 侧),取决于它最初提交到哪个库。做去重时不能只按 accession 去重,要按 (sample_accession + 文件 MD5) 去重。

§2.5 为什么"档案"这件事对 AI 特别重要

机器学习最怕的两件事是分布漂移和标签泄漏。ENA 作为一个横跨 46 年、覆盖所有物种、所有平台的档案,把这两件事都推到了极端:

  • 分布漂移:2010 年的 Illumina GA IIx 数据与 2026 年的 NovaSeq X 数据,读长、错误模式、质量分数分布完全不同。按时间随机划分训练测试集,模型会学到"这是老数据还是新数据",而不是生物学信号。
  • 标签泄漏:同一项研究的不同 run 如果跨了训练/测试集,模型会记住"这个实验室的这批样本",而不是学到规律。必须按 study_accession 分组划分。

这两条是 ENA 上做任何数据集的第一原则,§5.2 会展开。

§2.6 质量标准的边界:ENA 保证什么、不保证什么

ENA 保证 ENA 不保证
accession 永久有效、全局唯一 数据的生物学真实性
文件可下载、有 MD5 可校验 样本标签正确(这是提交者的责任)
提交时做过格式校验 数据没有污染或嵌合
物种名在 NCBI Taxonomy 中存在 物种鉴定正确(尤其是环境样本)
INSDC 三方交换 三方内容完全一致
元数据字段有 schema 元数据字段被填写

这张表决定了你把 ENA 当什么用:当"原料仓库",它足够好;当"可信数据集",它会坑你。


§3 数据库规格与通道抉择

§3.0 三条通道,都能批量

与很多学术库不同,ENA 的访问通道是完整且免费的,这是它作为基础设施的标志:

通道 用途 批量能力 速率限制
Portal API(/ena/portal/api/search) 检索元数据,返回 TSV/JSON 强:limit=0 返回全部匹配行 无硬限制,但建议分批
Browser API(/ena/browser/api/xml/) 单条记录的完整 XML 弱(一条一次) 同上
FTP(ftp.ebi.ac.uk/pub/databases/ena/) 原始 FASTQ/BAM、组装、非编码序列 最强:整目录下载 无

推荐的工作流是"三段式":先用 Portal API 把 accession 与元数据筛出来(几 MB 的 TSV),再用 filereport 拿到 FTP 路径(也是 TSV),最后用 wget/ascp/aria2c 按路径拉文件。不要在 SQL 之外做筛选,也不要先下载再筛。

§3.1 FTP 目录的地图

https://ftp.ebi.ac.uk/pub/databases/ena/ 下的顶层目录(实测列举):

目录 内容
sequence/ 传统 EMBL 平面文件(一条条注释好的序列)
non-coding/ 非编码序列(rRNA、tRNA、ncRNA)
assembly/ 基因组组装(GCA 前缀)
coding/ 编码序列(CDS)
taxonomy/ NCBI Taxonomy 的 ENA 镜像
statistics/ 官方统计图(本篇 80.7 PB、78.4% WGS 等数字的来源)
tools/ ENA 官方工具(如 enaBrowserTools)
tsa/ 转录组组装(TSA)
tls/ targeted locus study
doc/、training/、notebooks/ 文档与教程

statistics/ 这个目录值得记一下。里面只有 6 个 PNG,但每张都是官方口径——ena_sra_growth.png(运行数与数据量增长)、ena_embl_dataclass_base.png(按碱基的数据类型构成)、ena_sra_doubling.png(倍增时间)。要写数据集卡片时的"规模"栏,这是最权威的来源。

§3.2 下载预算与实测吞吐

目标 体量 现实做法
全库 80.7 PB 不可能。没有任何机构做过
一个大型研究(如 UK Biobank WGS) 数百 TB 需要带宽协商,ENA 支持 FTP/Aspera
一个常规研究(100 样本 WGS 30×) 约 3 TB 普通机构可行,按天计
一个转录组研究(100 样本) 约 500 GB 一天内可下完
单个研究(实测 PRJEB1234,916 个谷子样本) 约 1.5 TB 单看 FASTQ 字节数累加即可估

上表最后一行的意义:在你决定下载之前,先用 filereport 把 fastq_bytes 加起来。这一步的成本是一次 HTTP 请求,收益是避免"下到一半发现是 3 TB"。这是 ENA 上最值得养成的习惯。

§3.3 版本机制:没有"release 号",只有日期

与 IMGT 的 202642-7、Alliance 的 9.1.0 不同,ENA 没有一个全库统一的版本号。它的版本是日期:

  • EBI Search 每个 domain 有自己的 Release version(如 21-Oct-2026)与 Release date
  • Portal API 的数据是每日快照,没有历史版本可查
  • 组装(GCA)有独立的版本号(如 GCA_000001405.29)

这意味着:做数据集时必须自己钉住时点。"我用的是 ENA 的数据"这句话在 2027 年无法复现——你必须写"2026-10-21 release 的 sra-run 域,筛选条件如下,共 N 条"。

§3.4 技术栈与溯源链

  • 存储:EMBL-EBI 自建,80.7 PB;对外 FTP + Aspera + Globus
  • 索引:EBI Search(基于 Apache Solr),每个 domain 一个索引
  • 校验:提交时做 NCBI Taxonomy 校验 + 格式校验 + MD5;发布后不再做生物学校验
  • 溯源:study → sample → experiment → run 的 accession 链 + submitted_ftp(原始提交文件)+ fastq_ftp(ENA 生成的 FASTQ)

submitted_ftp 与 fastq_ftp 的区别是个细节但很关键:前者是作者提交的原始文件(可能是 BAM、可能格式不规范),后者是 ENA 转成的标准 FASTQ。做流程复现要前者,做通用处理要后者。


§4 记录结构与字段字典

§4.1 四个核心域的字段

study(研究)层——回答"这是什么项目":

字段 说明 例
study_accession 研究号 PRJEB1234
secondary_study_accession 次级号(NCBI 侧) SRP...
study_title 项目标题 A haplotype map of foxtail millet genome
study_description 项目描述 自由文本
center_name 提交中心 National Center for Gene Research, CAS
first_public 首次公开日期 2013-06-06

read_run(运行)层——这是做数据集时最常用的域,195 个字段。常用的一批:

字段 说明 缺失情况
run_accession 运行号(ERR/SRR/DRR) 必有
sample_accession 样本号 必有
scientific_name 物种学名 必有(受 Taxonomy 校验)
instrument_model 测序仪型号 常有"unspecified"
library_strategy 建库策略(WGS/RNA-Seq/AMPLICON…) 部分 missing
library_source 来源类型(GENOMIC/TRANSCRIPTOMIC/METAGENOMIC…) 部分 missing
read_count / base_count 读段数 / 碱基数 早期数据常空
fastq_bytes / fastq_md5 / fastq_ftp FASTQ 文件信息 多文件用 ; 分隔
country 采样国家 填充率低
collection_date 采样日期 填充率低,且格式不统一
host 宿主 病原与微生物数据才有

country 与 collection_date 那两行是全表最要紧的。对流行病学任务,这两个字段是核心;但它们的填充率高度依赖提交者。做病原数据集前,必须先统计这两个字段的填充率,否则会得到"看起来有 10 万条,实际只有 3 千条可用"的假象。

§4.2 三个"看起来一样其实不同"的编号体系

前缀 归属 例
PRJEB / PRJNA / PRJDB 研究:欧洲 / 美国 / 日本提交 PRJEB1234
SAMEA / SAMN / SAMD 样本:同上 SAMEA1905455
ERX / SRX / DRX 实验 ERX189430
ERR / SRR / DRR 运行 ERR214765
ERZ / SRZ 分析 ERZ29802104
GCA_ 组装(不属于 SRA 体系) GCA_000001405.29

这个前缀体系是 INSDC 的遗产:E=Europe、N=NCBI、D=DDBJ。同一条数据可能有两套号(如果做过迁移)。写数据集时,统一到一个前缀再计数,否则会重复。

§4.3 数据类型构成:按碱基看与按文件看是两张图

官方 ena_embl_dataclass_base.png(图注 2026-10-19)给出的按碱基数的构成:

数据类型 占比 含义
WGS(全基因组测序) 78.4% 绝对主体
STD(标准序列,传统 EMBL 记录) 16.8% 逐条注释的序列
CON(叠连群/组装) 3.1%
TSA(转录组组装) 1.4%
PAT / EST / GSS / HTG / HTC / STS / TLS 合计 0.3% 早期技术遗留

这张图最能说明 ENA 的本质:它是基因组学的账本,不是转录组学的账本。尽管 RNA-Seq 实验在"研究数"里占比很高,但在"碱基总量"里微不足道——因为一个 WGS 样本 30× 全基因组约 90 Gb,而一个 RNA-Seq 样本通常只有几 Gb。

做数据集时的直接含义:

  • 按磁盘预算规划 → 看碱基构成,WGS 是主体
  • 按样本数规划 → 看研究/样本计数,转录组与扩增子占多数
  • 不要混用这两个视角

§4.4 元数据的填充率:三个字段的实测

不做全量统计,但可以从官方 API 的结构上判断哪些字段是"必填"哪些是"选填":

字段 是否提交必填 观察
scientific_name / tax_id 必填(受 Taxonomy 校验) 可靠
instrument_model 必填但有 unspecified 选项 大量 early data 为 unspecified
library_strategy / library_source 必填(受控词表) 较可靠
read_count / base_count ENA 自动计算 早期数据可能为空(文件未转 FASTQ)
country 选填 病原监测数据的核心字段,但依赖提交者填写
collection_date 选填 同上,且日期格式在不同提交者间不一致
host 选填 微生物/病原数据才有;宿主物种名需自行规范化
age / sex / disease 选填(较新的 checklist 才有) 人类相关研究才可能填

"必填 vs 选填"是 ENA 元数据质量的分水岭。必填字段受 schema 约束,选填字段纯靠提交者自觉。做任何需要表型/流行病学字段的数据集,第一步都是统计填充率。

§4.5 filereport 与 search 的分工

两个端点看起来像,但用途不同:

search filereport
典型用途 按条件筛记录 按 accession 取文件清单
输入 query=...(类 SQL 条件) accession=PRJEB1234
输出 任意字段组合的 TSV/JSON 固定为文件级字段(fastq_ftp/fastq_md5/fastq_bytes 等)
分页 limit / offset 一次返回全部

正确用法:先在 search 里把 accession 筛出来,再把 accession 列表喂给 filereport。反过来做(先 filereport 再筛)会浪费大量请求。

§4.6 一个容易忽略的事实:分析层与运行层是并行分支

sra-analysis(2,430 万条)不是 sra-run 的上层或下层,它是另一条支线:分析记录指向的是一个"分析结果文件"(如组装好的基因组、变异调用结果),而不是原始读段。前缀 ERZ/SRZ 就是它的标识。

这意味着:如果你要找"已经处理好的结果",sra-analysis 可能比 sra-run 更省事。但它的覆盖远不如 run 完整——同一个项目可能只有 run 没有 analysis,或者反之。


§5 检索、抽样与泄漏分析

§5.0 ENA 上能做的五类检索

没有"没 API"的问题,ENA 的检索能力其实很强。五个真实查询:

一、按项目取全部文件清单

curl "https://www.ebi.ac.uk/ena/portal/api/filereport?accession=PRJEB1234&result=read_run&fields=run_accession,fastq_bytes,base_count,read_count&format=tsv"

二、按物种 + 时间窗筛运行

curl "https://www.ebi.ac.uk/ena/portal/api/search?result=read_run&query=first_public>=2026-10-01 AND first_public<=2026-10-03&fields=run_accession,scientific_name,instrument_model&limit=0&format=tsv"

三、按测序平台筛(做平台偏差分析)

curl "https://www.ebi.ac.uk/ena/portal/api/search?result=read_run&query=instrument_model=\"Illumina NovaSeq 6000\"&fields=run_accession,base_count&limit=0&format=tsv"

四、取单条记录的完整 XML(看全部字段)

curl "https://www.ebi.ac.uk/ena/browser/api/xml/PRJEB1234"

五、统计某个域的总条目数(不下载数据)

curl "https://www.ebi.ac.uk/ebisearch/ws/rest/sra-run?format=json&size=1" | jq '.domains[0].indexInfos'

第五条是写数据集卡片时最有用的一招:一次请求拿到 Number of entries、Index size、Release version,不用碰任何数据文件。

§5.1 抽样策略:三种,各引入不同偏倚

策略 做法 引入的偏倚 适用
按研究抽样 随机选 N 个 study_accession,取其全部 run 偏向大项目(大项目样本多) 任务关注"实验设计多样性"
按运行抽样 随机选 N 个 run_accession 偏向小项目(小项目 run 少但被抽中概率相同) 任务关注"读段级分布"
分层抽样 按 instrument_model × library_strategy × 物种分层 无(如果层权重设对) 做平台/物种平衡的数据集,唯一正确做法

必须知道的一件事:按 run 随机抽,会得到一个"绝大多数是 WGS、绝大多数是人类/小鼠"的样本——因为这就是 ENA 的实际分布。如果你要的是一个"多物种多样本类型"的数据集,必须分层,不能随机。

§5.2 四类真实泄漏,按危害排序

第一类:同一研究跨训练/测试(最严重)

一项研究通常有几十到几百个样本,来自同一实验室、同一批次、同一建库协议。如果按 run 随机划分,同一研究的 run 会同时出现在两侧——模型学到的是"这个实验室的批次效应",而不是生物学规律。

正确做法:GroupKFold,groups=study_accession。

第二类:同一样本的多份文件跨侧(隐蔽)

一个样本可能有多个 run(跨 lane、跨 flowcell)。如果按 run 划分,同一 DNA 提取物的不同测序文件会跨侧——这比第一类更隐蔽,因为 accession 不同、文件名不同。

正确做法:按 sample_accession 分组,或至少按 (sample + 建库策略) 分组。

第三类:技术复现样本(中等)

大型项目(如 GTEx、TCGA)常有"技术复现"样本——同一份材料测两次,用于评估实验变异。这些样本在 ENA 里是两个独立记录,但生物学上几乎相同。如果一方进训练一方进测试,测试分数会虚高。

第四类:平台与年代漂移(不可完全消除)

2010 年的 GA IIx 与 2026 年的 NovaSeq X,读长、错误模式完全不同。按时间随机划分会泄漏"年代"这个捷径。唯一的缓解是按年代分层,让每个折里都有各年代的样本。

§5.3 结构泄漏:从 accession 本身推断出的信息

accession 前缀泄漏提交地区:PRJEB/ERR 是欧洲、PRJNA/SRR 是美国、PRJDB/DRR 是日本。如果你的任务与"数据来源地区"相关(如病原变异地理分布),前缀本身就是一个泄漏源——模型可以直接从前缀推断地区,不需要看序列。

first_public 日期泄漏批次:ENA 的提交有明显的批次性(大型项目整批上线)。日期字段会泄漏"这是哪个项目的数据"。

center_name 泄漏实验室:同一个中心的元数据风格一致,模型可以靠风格认中心。

处置方式:做与地点/时间无关的任务时,移除 center_name、改写 accession 前缀、粗化 first_public 到年。

§5.4 一个不该做的划分:按"病原 vs 非病原"切

看似合理,实际会引入严重偏倚:病原数据集(如 SARS-CoV-2 监测)通常是高深度、短读长、单物种、元数据规范;非病原数据集(如环境宏基因组)是低深度、混合物种、元数据稀疏。按这个切,模型学到的差异主要来自测序策略,而不是"病原性"。

如果任务真的与病原性相关,正确做法是在同一测序策略层内比较(如同为 Illumina WGS 的病原与非病原样本)。


§6 AI 就绪指南

§6.1 最小可用 Pipeline

从"我想做一个 ENA 数据集"到"能训练",最小六步:

# 1. 用 search 筛 accession(不下载数据)
curl "https://www.ebi.ac.uk/ena/portal/api/search?result=read_run&query=...&fields=run_accession&limit=0&format=tsv" > runs.txt

# 2. 用 filereport 拿文件清单与体积(估算磁盘)
curl "https://www.ebi.ac.uk/ena/portal/api/filereport?accession=<PRJ>&result=read_run&fields=run_accession,fastq_ftp,fastq_md5,fastq_bytes&format=tsv" > manifest.tsv

# 3. 先算总字节,再决定下不下
awk -F'\t' 'NR>1{split($4,a,";"); for(i in a) s+=a[i]} END{printf "%.1f GB\n", s/1e9}' manifest.tsv

# 4. 下载(-c 断点续传,-x 并发)
cut -f2 manifest.tsv | tail -n +2 | tr ';' '\n' | sed 's#^#https://#; s#^https://ftp#https://ftp#' \
  | xargs -P 4 -I{} wget -c -q {}

# 5. 校验(manifest 里就有 MD5,别跳过)
md5sum -c <(awk -F'\t' 'NR>1{n=split($2,f,";"); split($3,m,";"); for(i=1;i<=n;i++) print m[i]"  "f[i]}' manifest.tsv)

# 6. 按 study/sample 分组划分,不是随机划分

第 5 步是最常被跳过的一步,也是代价最高的一步——ENA 的文件很大,一个损坏的 20 GB FASTQ 会让下游流程在第 4 小时崩掉,而错误信息指向的是比对工具而不是下载。

§6.2 DataLoader 与批组织

建议按"样本"而不是"文件"组织 batch,因为一个样本的多份文件属于同一条生物学记录:

# 正确:一个 batch 元素 = 一个样本(可能含多个 run 文件)
dataset = ENADataset(samples)   # samples: list of sample_accession
loader  = DataLoader(dataset, batch_size=8, shuffle=True)

# 错误:一个 batch 元素 = 一个 run(同一样本的不同 lane 会被拆开)
dataset = ENADataset(runs)

理由:做读段级任务时,同一个样本的不同 lane 应该有相同的标签;如果拆开,模型会看到"同样本不同标签"的矛盾。

§6.3 评价指标:为什么不能只看 accuracy

ENA 类任务(读段分类、物种鉴定、质量控制)的类别分布极度不均衡:

  • 物种鉴定:人类/小鼠占绝大多数,稀有物种极难
  • 质量控制:高质量数据占绝大多数
  • 平台分类:Illumina 占绝大多数

必须报告:macro-F1(每类等权)、按物种/平台的混淆矩阵、以及最差类别的表现。只报 accuracy 会得到一个"看起来 99%、实际毫无用处"的模型。

§6.4 MLOps:把快照钉死在数据集里

ENA 没有全库版本号,只有日期。所以必须自己钉住时点,否则一年后无法复现:

dataset:
  source: ENA
  snapshot_date: "2026-10-21"        # EBI Search release version
  query: "result=read_run&query=tax_tree(2697049) AND first_public<=2026-09-30"
  run_count: 1234567
  total_bytes: 987654321012
  accession_list_md5: "..."          # 把 accession 列表本身也做校验

accession_list_md5 这一行是关键:ENA 的数据每天在变,但 accession 列表的哈希能证明"我训练时用的就是这一批"。

§6.5 六个坑点

坑点 1:result=run 是无效类型,必须写 read_run
  • 症状:{"error":"Result run is invalid."}
  • 原因:Portal API 的合法 result 是 analysis, assembly, coding, noncoding, sequence, read_experiment, read_run, sample, analysis_study, read_study, study, taxon, tls_set, tsa_set, wgs_set。
  • 解决:把 run 改成 read_run,experiment 改成 read_experiment。
  • 参考:报错信息里会直接列全部合法值,读一遍即可。
坑点 2:query=* 直接 500
  • 症状:{"message":"Unable to parse the query string."},HTTP 500。
  • 原因:Portal 的 query 是类 SQL 表达式,* 不是合法谓词。
  • 解决:给一个真实条件,如 first_public>=2020-01-01。想拿全库计数就用 EBI Search 的 indexInfos(§5.0 第五条)。
  • 参考:这个 500 是"语法错"不是"服务挂",别去重试。
坑点 3:日期比较必须 >= 加 AND <=,== 报 400
  • 症状:first_public==2026-10-15 → Query is in wrong format or has invalid arguments。
  • 原因:ENA 把日期按日期区间解释,等值不是合法算子。
  • 解决:写 first_public>=2026-10-15 AND first_public<=2026-10-15。
坑点 4:limit=0 是真不限量,会拉回几百 MB
  • 症状:以为 limit=0 是"默认值/不分页",结果一次请求返回几十万行。
  • 原因:limit=0 在 ENA 语义里就是"全部"。
  • 解决:先用 count 思路估量(或先在 query 里加时间窗),确认量级再加 limit=0。
  • 参考:这一点其实是优点——很多库的 limit=0 是"不分页但默认 10 条"。
坑点 5:fastq_bytes 多文件用分号分隔
  • 症状:求和时 awk 把 186465041;194118913 当字符串,得到 0 或 NaN。
  • 原因:双端测序的 _1/_2 两个文件在同一个字段里,用 ; 分隔。
  • 解决:split($2,a,";") 后逐个累加;批量下载时同样要 tr ';' '\n'。不算这一步,磁盘估算会差一半。
坑点 6:accession 前缀不同不代表数据不同
  • 症状:同一份数据,按 SRR 查一遍、按 ERR 查一遍,去重后数量对不上。
  • 原因:INSDC 三方交换会生成两套号,且迁移不完整。
  • 解决:按 (sample_accession, fastq_md5) 去重,不要按 accession 去重。

§6.5.1 一个具体的样本量估算练习

做 ENA 数据集时最常见的失误,是把"名义样本量"当成"可用样本量"。两者的差距可以用三步估出来,每步都只需要一次 HTTP 请求:

第一步,取名义总量。 用 search 加物种或疾病条件,limit=0,数行数。假设得到 N。

第二步,查关键字段的填充率。 对同一批 accession 再加一个条件——把你要的那个字段写成非空谓词。例如要 country,就加 AND country="*";要 collection_date,就加 AND collection_date="*"。这一步得到的 M 就是"该字段有值"的记录数。M/N 就是填充率。

第三步,查深度分布。 用 filereport 拿 base_count,看中位数与四分位。如果中位数低于你任务需要的最低深度,那么即使前两步都过关,可用样本还要再打一次折。

这三步加起来大约十分钟,能避免"申请了 20 TB 存储、下到一半发现只有三千条可用"这类事故。在 ENA 上,先算再做不是谨慎,是必需。

§6.5.2 一个真实的形状:为什么"研究数"不能当"样本数"用

初学者常犯的另一个错误,是用研究数乘一个平均样本量来估算总样本。这个估算会错得很离谱,因为 ENA 的研究规模分布是极端长尾的:

  • 极少数大型项目(国家级队列、全球监测网络)单项就有几万到几十万样本
  • 绝大多数研究只有几十个样本
  • 还有相当一部分研究登记了但从未提交实际数据,样本数为零

这最后一种正是 project 域(1,098,568)与 sra-study 域(772,304)差 32 万条的主要原因之一——BioProject 里登记了项目,但数据从未落到 SRA 侧。

所以正确的心态是:永远用官方给出的分层计数,不要做乘法估算。官方已经把每一层的数都算好了,乘一遍只会引入误差。

§6.5.3 选哪一批数据:三个筛选维度的实战顺序

拿到一个新任务后,筛选 ENA 的顺序很影响效率。推荐的顺序是从粗到细,每层都把候选砍掉一个量级:

第一维:物种。 先用 tax_tree(<taxid>) 而不是 scientific_name="..."。前者包含子树,能一次覆盖亚种、株系、分离株;后者是精确匹配,会漏掉命名变体。这一步通常把候选从数千万砍到数万。

第二维:建库策略 + 来源。 library_strategy(WGS / RNA-Seq / AMPLICON / ChIP-Seq …)与 library_source(GENOMIC / TRANSCRIPTOMIC / METAGENOMIC …)是两个独立字段,必须一起用。只写策略不写来源,会把"宏基因组的 WGS"和"纯培养基因组的 WGS"混在一起——这两类数据的分析流程完全不同。这一步通常再把候选砍到数千。

第三维:平台 + 时间。 instrument_model 决定读长与错误模式,first_public 决定数据年代。做模型训练时,如果把 2010 年的 GA IIx 与 2026 年的 NovaSeq X 混在一起又不分层,模型会学到平台特征。建议先看平台分布,再决定是"只要最新平台"还是"分层覆盖"。

第四维:元数据完整性。 最后才用 country、collection_date、host 这些选填字段做筛。放在最后是因为它们填充率不可预知——先筛它们可能一下子把候选砍到零,让你误以为 ENA 里没有这个数据。

这个顺序的价值在于:每一步的失败都是可诊断的。 如果第一维筛完就是零,说明物种号写错了或该物种确实没有数据;如果第四维筛完是零,说明数据存在但元数据没填——这是两个完全不同的问题,处置方式也不同(前者换数据源,后者放宽字段要求或回原论文补标签)。

§6.6 反模式清单

反模式 为什么错 正确做法
先下载再筛选 80.7 PB 不可能 先用 search + filereport 筛到 accession 列表
按 run 随机划分训练测试 同研究/同样本泄漏 GroupKFold,按 study_accession 或 sample_accession
跳过 MD5 校验 大文件损坏代价极高 md5sum -c,manifest 里就有
用 accession 去重 ENA/SRA 双号 按 (sample, fastq_md5)
把 ENA 当"数据集"引用 它每天在变 钉住 snapshot_date + accession_list_md5
用 country/collection_date 做筛选前不查填充率 空值会被静默丢掉 先 count 有值的比例

§7 质量评估、DAIMS 与口径交叉核对

§7.1 记录级质量:ENA 保证到什么程度

维度 状态 证据
格式校验 ✅ 提交时强制 非法 FASTQ/BAM 会被拒
物种校验 ✅ 强制 必须能映射到 NCBI Taxonomy
文件完整性 ✅ MD5 提供 fastq_md5 字段
永久标识 ✅ accession 三层(study/sample/run)都有
生物学质量 ❌ 不保证 污染、嵌合、标签错配都不查
元数据填充 ⚠️ 分字段 必填字段可靠,选填字段靠自觉
去重 ❌ 不保证 同一份数据可能多号
质量分级 ❌ 不提供 没有"这个样本可信度高"这回事

结论:ENA 是高可信的登记册 + 无保证的容器。它保证"这条记录是某人某时提交的、文件能下、序列是核酸",不保证"这批数据能用"。

§7.2 抽样声明:本条目数字的边界

数字 来源 口径
1,098,568 研究 / 55,877,279 样本 / 41,753,663 实验 / 44,433,186 运行 EBI Search indexInfos(各 domain) 官方索引口径,release 2026-10-21
24,300,136 分析 / 32,221,023 提交 同上 release 2026-10-21 / 2026-10-20
256,566,952 标准序列 / 332,107,920 非编码 / 59,757,586 支架 同上 release 日期未标注
80.7 PB / 4,437 万 runs 官方图 ena_sra_growth.png 图注 2026-10-19
WGS 78.4% / STD 16.8% / CON 3.1% / TSA 1.4% 官方图 ena_embl_dataclass_base.png 图注 2026-10-19
年翻倍约 3 年 官方团队访谈原文 表述为"approximately every three years"

一个必须点明的差异:官方图注写"Runs(43.7 millions)",而 EBI Search 索引是 44,433,186。两者差约 70 万,来自两天的时点差(图 10-19,索引 10-21)。这不是矛盾,是两个快照。 本篇正文用索引口径,凡引自图的数字都单独标注。

§7.3 三个必须知道的生物学效度问题

一、物种鉴定的可靠性分层。 模式生物与临床样本的物种名高度可靠(提交者明确知道测的是什么);环境样本、宏基因组、未培养微生物的物种名经常是"最接近的已知物种",不是真的那个物种。做物种分类任务时,这两类必须分开。

二、样本量的分布极度长尾。 少数大型项目(UK Biobank、TCGA、GTEx、Darwin Tree of Life)贡献了不成比例的样本量,而绝大多数研究只有几十个样本。"ENA 有 5,500 万样本"这个数字给人一种"数据很均衡"的错觉,实际是高度集中的。

三、测序深度不可比。 同一物种的不同研究,深度可能差 10 倍以上(3× 的草图 vs 30× 的精细图)。深度直接影响变异检出的灵敏度,做跨研究合并时必须先标准化或分层。

§7.4 偏倚清单(可核查)

偏倚类型 证据 影响
物种偏倚 人类与少数模式生物占绝对多数 稀有物种的模型性能会系统性偏低
平台偏倚 Illumina 系列占绝大多数 长读长(ONT/PacBio)数据稀缺,相关模型难训
年代偏倚 数据从 1980 年至今,2015 年后加速 按时间随机划分会泄漏"年代"
地理偏倚 北美/欧洲/东亚提交量远高于其他地区 病原变异的地理覆盖不均
项目规模偏倚 少数大项目贡献大量样本 随机抽样会偏向大项目
数据类型偏倚 按碱基 WGS 78.4% 转录组/表观组在总量里占比极小
元数据偏倚 country/collection_date 填充率低 流行病学任务可用样本远少于名义样本

§7.5 数据完整性核查表

下载后的五个必查项:

  1. accession 数量对得上:filereport 返回的行数 = 你筛出的 accession 数
  2. MD5 全部通过:md5sum -c,一个不过就是传输损坏
  3. fastq_bytes 累加与实际磁盘相符:差太多说明有些文件没下全
  4. read_count/base_count 非空比例:低于 50% 说明这批数据大量未转 FASTQ
  5. sample_accession 去重后的数量:与 run 数量对比,差多少就是"一样本多 run"的比例

§7.6 DAIMS 24 项逐项评分

# 维度 评分 说明
1 数据集标识 ✅ accession 永久唯一
2 版本 ⚠️ 只有日期,无全库版本号
3 标题 ✅ study_title 必有
4 描述 ✅ study_description
5 作者/贡献者 ✅ center_name + 提交者
6 许可 ⚠️ 站点级 Terms of Use,无逐记录许可
7 数据来源 ✅ submitted_ftp 可回溯原始提交
8 采集方法 ✅ library_strategy / instrument_model
9 时间覆盖 ✅ first_public + collection_date
10 地理覆盖 ⚠️ country 填充率低
11 物种覆盖 ✅ 受 Taxonomy 校验
12 变量定义 ✅ 195 个字段有 schema
13 单位 ✅ base_count / read_count 明确定义
14 缺失值标记 ⚠️ 空串与 unspecified 混用
15 划分建议 ❌ 无(档案不提供划分)
16 泄漏说明 ❌ 无
17 预处理记录 ❌ 无(ENA 只做格式转换)
18 测量偏倚 ❌ 无
19 外部验证 ❌ 无
20 基线模型 ❌ 无
21 评价指标 ❌ 无
22 伦理审批 ⚠️ 有受控访问机制(EGA),但公开层不披露
23 个人隐私 ⚠️ 公开层不含 PII,但小种群地理组合有间接识别风险
24 可复现性 ⚠️ accession 可复现,但无快照机制

合计 10.5 / 24 = 43.8%

这个分数偏低,但对一个档案型资源来说是"正确的偏低"。DAIMS 的 24 项是为"成品数据集"设计的;ENA 是原料仓库,第 15–21 项(划分、泄漏、预处理、偏倚、验证、基线、指标)本质上不属于它的职责。把它们算作缺失,是为了让读者清楚"从 ENA 到可训练数据集,这 7 项都要你自己补"。

与本站其他参考型库对比(BV-BRC 58.3% > IMGT 52.1% > Alliance 47.9% > MGI 45.8% > ENA 43.8%),ENA 是最低的——因为它是这些库里"最不像数据集"的一个。这个梯度本身就是一条信息:越是底层档案,DAIMS 分数越低,需要使用者补的越多。

§7.7 口径交叉核对矩阵(不是模型性能验证)

概念 口径 A 口径 B 口径 C 该用哪一个
运行总数 4,443 万(EBI Search 索引 10-21) 4,437 万(官方图 10-19) — 用 4,443 万(更新);引用官方图时标 10-19
数据总量 80.7 PB(官方图注) 约 100 PB(团队访谈,含组装与非编码) — 讲"SRA 部分"用 80.7 PB;讲"整个 ENA"用 约 100 PB
研究数 1,098,568(project 域) 772,304(sra-study 域) — 两个都是官方:前者含全部 BioProject(含无测序的),后者只含 SRA 侧。讲"测序项目数"用 772,304
样本数 55,877,279(索引) — — 索引口径
数据构成 按碱基 WGS 78.4% 按研究数 WGS 占比远低于此 — 两个视角都对,必须说明按什么计
增长速率 约 3 年翻倍(当前团队访谈) 20 个月(旧版 GFBio 页面,约 2.5 PB 时代) — 用 3 年(较新,且与当前量级一致)

第二行与第三行是这篇最需要小心的地方。

80.7 PB vs 100 PB:官方统计图只覆盖 SRA(读段),不含 emblstandard(2.57 亿条序列)与 non-coding(3.32 亿条)。团队访谈说的"close to 100 petabytes"是整个 ENA。两个数字都对,说的是不同范围。

1,098,568 vs 772,304:project 域是 BioProject 全集(包含只登记了样本、没有测序数据的项目),sra-study 域只含 SRA 侧。如果你的任务是"找有测序数据的项目",用 772,304;如果是"ENA 里登记了多少项目",用 1,098,568。


§8 生态位与相邻资源

§8.1 在 INSDC 三方里的位置

ENA、GenBank、DDBJ 三方每日交换新提交,但历史数据的迁移不完整。这造成一个实际后果:某些数据只在其中一方有。研究者通常的做法是"两边都查",而不是信任任一方为全集。

对做数据集的人的直接含义:如果你的数据集声称"全部 SARS-CoV-2 基因组",但只查了 ENA,你的"全部"是假的。

本站条目 关系
GEO GEO 给加工后的表达矩阵,ENA 给原始 FASTQ。互补,不重叠
MGnify / mgx-datasets MGnify 的分析产物来自 ENA 的 run
ibdmdb HMP2 的原始宏基因组数据在 ENA/SRA
gbif(#134) GBIF 给物种出现记录,ENA 给序列证据。做 eDNA 时两者配对使用
rnacentral / rfam 非编码 RNA 库,其序列来自 ENA 的 non-coding 分支
cpic / tcmsp 无关

§8.3 为什么 ENA 是"必收"而不是"可选"

本站的收录原则是"能支持 AI 训练的数据实体"。ENA 满足这一条,但它满足的方式很特殊:

  • 它不提供任何整理好的训练集
  • 它提供了所有其他数据集的上游原料
  • 任何做基因组学/转录组学/宏基因组学模型的人,最终都会走到 ENA

换句话说:ENA 不是"一个数据集",是"数据集的产地"。收录它的价值不在于"直接用它训练",而在于告诉读者原料在哪、怎么取、取的时候会踩什么坑。


§9 许可、伦理与合规

§9.1 许可:EMBL-EBI Terms of Use 的原文

EMBL-EBI 的 Terms of Use(Last revised: 14th October 2026)在 Data 部分第 3 条明确:

“EMBL-EBI itself places no additional restrictions on the use or redistribution of the data available via its Data Resources and Tools other than those provided by the original data owners, unless otherwise specified in these Terms of Use.”

翻译与解读:

  • EMBL-EBI 自己不额外加限制——不像 IMGT 用 CC BY 4.0 那样给一个明确许可,ENA 是"不加限制"
  • 但原始数据权利归提交者(Data 第 1 条:“the community who remain the data owners”)
  • “AS IS” 免责(Data Resources 第 9 条:“without warranties of any kind”)
  • 禁止滥用(Data Resources 第 4 条:不能用 ENA 的方式妨碍他人使用)

实际含义:你可以自由下载、再分发、商用,但如果某条记录的提交者在记录里声明了额外限制(如 ABS 惠益分享),那就要遵守。

§9.2 Access and Benefit Sharing(ABS)

EMBL-EBI 的 Terms of Use 特别提到了 Access and Benefit Sharing(《名古屋议定书》下的遗传资源惠益分享)。这条对生物多样性数据与 eDNA 尤其重要:某些国家的遗传资源受 ABS 约束,即使数据在 ENA 公开,商业使用也可能需要原产国许可。

做 biodiversity / eDNA 数据集时,这一条不能忽略。

§9.3 人类数据:受控访问与公开层的边界

ENA 公开层不含可识别个人身份的信息,但有三点需要注意:

  1. 需要审批的人类基因组数据在 EGA,不在 ENA。ENA 里的人类数据是"已同意公开"的。
  2. 小种群 + 地理组合可能构成间接识别。例如某个只有 200 人的族群的稀有变异,配合 country 字段,理论上可以定位到个人。做人类变异数据集时,考虑粗化地理字段。
  3. 病原数据的双重用途。某些病原基因组数据的公开可能带来生物安全风险,ENA 对此有专门机制(如 Priority Pathogens 标记)。

§9.4 引用规范

ENA 没有"引用这一个数据集"的统一方式。正确做法是:

  • 引用具体的研究:用 study_accession + 原论文 DOI
  • 引用基础设施:引用 ENA 的方法学论文(NAR 系列)
  • 引用快照:写明 Release version(如 21-Oct-2026)与你筛出的 accession 列表哈希

§10 复用边界与跨条目协作手册

§10.1 决策树:什么时候该用 ENA

你要的数据是...
├─ 整理好的表达矩阵 / 变异调用结果
│   └─ 不要用 ENA。用 GEO / TCGA / GTEx / 本站对应条目
├─ 原始 FASTQ 读段(做流程开发、碱基识别、QC 模型)
│   └─ 用 ENA(或 NCBI SRA)
├─ 已组装的基因组(GCA)
│   └─ 用 ENA 的 assembly 分支,或 NCBI Assembly
├─ 非编码 RNA 序列
│   └─ 用 ENA 的 non-coding 分支,或 RNAcentral
├─ 病原基因组的变异监测
│   └─ 用 ENA(+ GISAID 作为补充,但 GISAID 有单独条款)
└─ 宏基因组的分类 / 功能谱
    └─ 不要用 ENA。用 MGnify

§10.2 与 NCBI SRA:同时查,不要二选一

事实:三方交换每日进行,但历史数据迁移不完整。某些数据只在 SRA 有,某些只在 ENA 有。

做法:

  1. 用 ENA 的 Portal API 筛一遍(本篇 §5.0)
  2. 用 SRA 的 Entrez 接口筛一遍
  3. 按 (sample_accession, fastq_md5) 合并去重
  4. 不要用 accession 去重(SRR vs ERR 是同一份数据)

代价:多一轮请求。收益:你的"全部"才真的是全部。

§10.3 三种"同一份病原数据"的形态

以一份 SARS-CoV-2 基因组为例,它可能同时存在于:

形态 位置 特点
原始读段 ENA read_run 最大、最完整、最难处理
组装基因组 ENA analysis、GISAID、GenBank 已拼好,变异调用基于此
变异清单 各监测平台的报告 最简,但已丢信息

做变异监测模型时,从哪一层开始是个关键决策:从读段开始灵活但成本高;从组装开始快但受组装质量影响;从变异清单开始最省但无法回溯。

§10.4 许可梯度:与本站其他库的对照

库 许可 可否商用 可否改作
ENA Terms of Use,不额外限制 ✅ ✅
IMGT(#129) CC BY 4.0 ✅ ✅
BV-BRC(#127) 开放,部分数据有第三方限制 ⚠️ 分数据 ⚠️
IPD-IMGT/HLA(#125) CC BY-ND ✅ ❌ 不可改作
MGI(#126) CC BY 4.0(图片除外) ✅ ✅(图片不行)

这张表最实用的一行是 IPD-IMGT/HLA:它是这个梯度里唯一"不能改作"的。把 ENA 数据与 IPD 数据合并再发布时,整包会被 ND 传染——这一步很多人踩过。

§10.5 三个"不要做"

一、不要试图"把 ENA 全下下来"。 80.7 PB,没有任何机构做过。正确姿势是"按需筛 accession,按 accession 拉文件"。

二、不要用 ENA 当作"质量背书"。 “数据来自 ENA"不代表"数据可信”。ENA 只校验格式与物种,不校验内容。

三、不要只查 ENA 就声称"全部"。 必须同时查 SRA/GenBank,否则你的全集是残缺的。

§10.6 一句话总结

ENA 是核酸数据的"公共水库",不是"瓶装水"。 它保证水在那里、能取、取不完;但它不保证水质、不帮你过滤、也不告诉你哪一桶适合你。所有从 ENA 出发的数据集工作,本质都是在做"取水之后的净化"——而净化的质量,决定了数据集的质量。


附录 A:本篇数字速查

问题 答案
有多少项研究? 1,098,568(project 域)/ 772,304(sra-study 域,只含有测序的)
有多少个样本? 55,877,279
有多少次运行? 44,433,186
有多少次实验? 41,753,663
有多少条分析? 24,300,136
一共多少数据? 80.7 PB(SRA 部分,官方图 2026-10-19)/ 约 100 PB(整个 ENA,团队访谈)
按碱基,什么数据类型最多? WGS 78.4%,其次 STD 16.8%
有版本号吗? 没有全库版本号,只有日期(EBI Search Release version)
有 API 吗? 有,三套:Portal API、Browser API、FTP
能商用吗? 能,EMBL-EBI Terms of Use 不额外限制;但原始数据权利归提交者
最大的坑是什么? 它是档案不是数据集——80.7 PB 里没有划分、没有标签、没有质量分级
拿它做什么最合适? 流程复现、读段级模型训练、病原监测、宏基因组输入

附录 B:五个可复制的查询

# 1. 官方规模(一次请求,拿全部计数)
curl -s "https://www.ebi.ac.uk/ebisearch/ws/rest/sra-run?format=json&size=1" \
  | jq -r '.domains[0].indexInfos[] | select(.name=="Number of entries" or .name=="Release version") | .value'

# 2. 按物种筛运行(tax_tree 支持子树)
curl -s "https://www.ebi.ac.uk/ena/portal/api/search?result=read_run&query=tax_tree(2697049)&fields=run_accession,scientific_name,instrument_model,first_public&limit=5&format=tsv"

# 3. 取一个项目的全部文件清单(含 MD5 与体积)
curl -s "https://www.ebi.ac.uk/ena/portal/api/filereport?accession=PRJEB1234&result=read_run&fields=run_accession,fastq_ftp,fastq_md5,fastq_bytes,base_count&format=tsv"

# 4. 先估体积再决定下不下
curl -s "https://www.ebi.ac.uk/ena/portal/api/filereport?accession=PRJEB1234&result=read_run&fields=fastq_bytes&format=tsv" \
  | awk -F'\t' 'NR>1{n=split($2,a,";"); for(i=1;i<=n;i++) s+=a[i]} END{printf "%.1f TB\n", s/1e12}'

# 5. 取单条记录完整 XML
curl -s "https://www.ebi.ac.uk/ena/browser/api/xml/PRJEB1234"

最后更新:2026-10-23
数字口径:EBI Search release 2026-10-21;官方统计图图注 2026-10-19
本条目不做全量下载与重算——80.7 PB 不是能核的量级,官方口径即唯一口径


相关数据集导航

以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:

  • gbif — 共享标签:基因组学与多组学 / 公共卫生与流行病学 / 微生物组 / 多模态
  • bv-brc — 共享标签:基因组学与多组学 / 公共卫生与流行病学 / 微生物组
  • impc — 共享标签:基因组学与多组学 / 公共卫生与流行病学
  • alphamissense — 共享标签:基因组学与多组学 / 公共卫生与流行病学
  • gmrepo-v3 — 共享标签:基因组学与多组学 / 公共卫生与流行病学 / 微生物组
  • card-db — 共享标签:基因组学与多组学 / 公共卫生与流行病学 / 微生物组
  • hmp — 共享标签:基因组学与多组学 / 微生物组
  • ckb — 共享标签:基因组学与多组学 / 公共卫生与流行病学
  • mgnify — 共享标签:基因组学与多组学 / 微生物组
  • curatedmetagenomicdata — 共享标签:基因组学与多组学 / 微生物组

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

返回 AI-Ready 数据集