信息速览
基因组表达档案(Genomic Expression Archive,GEA)是日本国立遗传学研究所生命信息与 DDBJ 中心运营的功能基因组档案,2018 年上线。它收的是「一次功能基因组实验的全部描述,加上处理后的数值结果」:微阵列的荧光信号表、测序的表达矩阵、表观遗传的峰表、SNP 芯片的基因型表,都归它管。元数据用 MAGE-TAB 格式书写,微阵列遵循 MIAME、测序遵循 MINSEQE。
它最容易搞错的地方在名字和邻居。官方全称是 Genomic Expression Archive,不是 Gene Expression Archive;它与 NCBI 的 GEO、EBI 的 ArrayExpress 承担同一层职能,却既不是它们的镜像,也不与它们交换数据。三方各自发号、各自策展,只是在论文与页面上互相指认。
第三个要紧的边界是它和读段库的分工。测序类实验的原始 FASTQ 存在 DRA,GEA 里只有处理后的矩阵与描述文件;微阵列类实验的原始芯片文件则确实存在 GEA。这条分界线决定了一个人打开 E-GEAD 号之后能不能直接拿到 FASTQ。本文写它的三层结构、编号体系、取数路径与明确不收的东西。一屏速览见下表。
| 维度 | 内容 |
|---|---|
| 全称 | Genomic Expression Archive(基因组表达档案),缩写 GEA |
| 常见误写 | Gene Expression Archive(官方用 Genomic,非 Gene) |
| 运营主体 | 国立遗传学研究所 生命信息与 DDBJ 中心 |
| 上线年份 | 2018 年;承接更早的 CIBEX 库迁移 |
| 收录范围 | 基因表达、表观遗传、SNP 分型等功能基因组实验 |
| 平台 | 微阵列与高通量测序两类;另含单细胞与空间转录组专线 |
| 元数据格式 | MAGE-TAB(IDF + SDRF + ADF) |
| 遵循准则 | 微阵列 MIAME、测序 MINSEQE |
| 实验编号 | E-GEAD-n |
| 阵列设计编号 | A-GEAD-n |
| 方案编号 | P-GEAD-n |
| 原始读段位置 | 测序类在 DRA;微阵列类在 GEA 自身 |
| 在册实验记录 | 七百七十三项(含撤回与暂缓公开状态) |
| 样本规模 | 去重后一万二千五百八十九个样本号 |
| 单次提交上限 | 一千个 assay |
| 保留期上限 | 四年,可自助修改 |
| 与 GEO 的关系 | 同类资源,不交换数据,只互相链接 |
| 与 INSDC 的关系 | 不在正式交换范围,仅项目与样本元数据随 INSDC 交换 |
| 使用许可 | 无限制使用与再分发;受控人类数据不在本库 |
§1 它要解决的具体麻烦
1.1 表达数据曾经散在论文附件里
二〇〇〇年前后,一篇表达谱论文的数据通常以两种形式存在:正文里一张热图,附件里一个 Excel 表。热图只画了差异基因,Excel 表用作者自己的基因命名,行是基因、列是样本,没有说明哪一列是对照、哪一列是处理,也没有说明用了什么扫描参数。三年后再有人想复用,往往只能给作者发邮件。
微阵列时代的公共档案就是为了解决这件事而建的。EBI 的 ArrayExpress 与 NCBI 的 GEO 在二〇〇一年前后上线,做法是把「实验描述」与「数值结果」分开存:描述用一套结构化标签写死,数值用矩阵存,两者用同一套样本名对齐。日本这边的对应物经历了两个阶段:先是 CIBEX,二〇一八年后是 GEA。
GEA 的定位不是「再建一个 GEO」,而是在日本节点上补一个提交入口。日本研究者做表达谱,过去要么把数据交给 GEO,要么交给 ArrayExpress,登录号在他国签发;GEA 让这条路可以在本国走完。它同时承接了 CIBEX 的存量,官方统计里写明共有二百五十四项实验分批迁入,二〇一九年十四项、二〇二二年十九项、二〇二四年八十五项、二〇二五年一百三十六项。
1.2 三条常见的错误期待
| 常见期待 | 实际情况 |
|---|---|
| 以为 GEA 是 GEO 的日本镜像 | 不是镜像,是独立档案;两家不交换数据,编号体系也不同 |
| 以为有了 E-GEAD 号就能下 FASTQ | 测序类实验的读段在 DRA,GEA 只有处理后矩阵 |
| 以为它只管 mRNA 表达 | 它还收小 RNA、ChIP-seq、Hi-C、甲基化、SNP 芯片与空间转录组 |
这三条错误期待有一个共同的来源:把「功能基因组档案」理解成「表达量表格的仓库」。它实际存的是一个实验的完整说明书加结果文件,说明书的分量不比结果轻。一份 GEA 记录的 IDF 里,方案类型、实验因子、关联文献、释放日期都写在固定标签下,这些字段决定了这份数据能不能被机器读懂。
1.3 它能给到的与给不到的
| 你的需求 | 它给的 | 够不够 |
|---|---|---|
| 拿到某研究处理后的表达矩阵 | 处理后数据文件,随实验号打包 | 够,这是它的核心产物 |
| 知道这批样本怎么处理的 | IDF 与 SDRF 里的方案、因子、材料类型 | 够,字段结构化程度高于论文方法段 |
| 找到同一个项目的原始读段 | 只有引用关系,文件在 DRA | 不够,要换库取 FASTQ |
| 拿到微阵列的原始扫描图 | 微阵列路线的原始文件存在 GEA | 够,但要按实验号逐份取 |
| 找一个基因在所有实验里的表达 | 无跨实验聚合视图 | 不够,要自己拼矩阵 |
| 拿到受控人类个体的表达数据 | 不在本库,须走 JGA | 不够,流程另算 |
| 拿到代谢组或蛋白组 | 分别走 MetaboBank 与 jPOST | 不够 |
| 拿到质量评分或批次校正结果 | 不提供,只存提交者给的原样 | 不够 |
1.4 你的处境与它能帮到的事
| 你的处境 | 它能帮你什么 | 下一步该做什么 |
|---|---|---|
| 论文里看到一个 E-GEAD 号,要拿到表达矩阵 | 按号取该实验的处理后数据包与描述文件 | 在 DDBJ Search 或 FTP 目录按号定位,先读 IDF 再读 SDRF |
| 要做一份跨物种的表达预训练语料 | 提供结构化元数据与处理后矩阵的配对 | 批量拉 SDRF 做筛选,再按需取矩阵,注意各实验的基因标识不统一 |
| 手上的测序数据要发表,期刊要求存档 | 提供表达层的正式编号 | 先把读段交 DRA,再用那条 DRA 提交建 GEA 提交 |
| 手上有旧芯片数据,找不到原始文件 | 微阵列路线允许原始与处理后一并存 | 按微阵列路线提交,阵列设计可复用已注册的 A-GEAD 号 |
| 要做单细胞数据的二次分析 | 收细胞级处理后数据,含 10x 标准三件套 | 原始读段走 DRA,处理结果走 GEA,注意提交格式要求 |
| 要提交带个体标识的人类表达数据 | 不受理,须转 JGA | 先向 DBCLS 提交申请并通过审查 |
| 要核对某个实验到底收了几个样本 | SDRF 行数与样本号可直接清点 | 用脚本数行、去重样本号,不要看网页摘要 |
1.5 一句话判断
要用对 GEA,只需要记住一句:它是表达层的档案,不是测序层的档案;E-GEAD 号指向的是一份实验说明书加一张结果表,不是一堆读段。
1.6 不适合谁:四条边界
第一,不适合把 GEA 当读段仓库的人。测序类实验的 FASTQ 与 BAM 全在 DRA,GEA 只保留引用关系。拿着一批 E-GEAD 号去要原始读段,会得到「文件不存在」的结果,正确的做法是先读 IDF 或提交表单里记的 DRA 提交号。
第二,不适合需要受控人类数据的人。GEA 只收可以直接公开的表达数据。凡涉及个体级基因型、可识别的临床信息、需要数据使用协议约束的材料,一律转 JGA,由数据访问委员会审查。这条不是技术限制,是制度限制。
第三,不适合想要统一矩阵的人。GEA 是档案,不是加工厂:它不重跑流程、不做批次校正、不把不同平台的探针映射到同一套基因标识。每个实验的矩阵是提交者给的原样,行名可能是探针号、可能是基因符号、可能是转录本号,跨实验合并要自己做映射。
第四,不适合只想要「一个物种一张表」的人。GEA 的组织单位是实验,一个实验一个号,一个号下一组文件。没有按物种或按组织聚合的现成视图,要做这类聚合,得先把 SDRF 里的物种、组织、因子字段抽出来自己分组。
§2 数据构成与规格
2.1 三条提交路线,三种文件组合
GEA 的提交入口按平台分路线,路线不同,必交的文件也不同。这一点直接决定了拿到一个 E-GEAD 号之后能看到什么。
| 路线 | 典型实验 | 原始数据在哪 | 处理后数据 | 前置条件 |
|---|---|---|---|---|
| 微阵列 | 表达谱芯片、甲基化芯片、SNP 分型芯片、Xenium、MERFISH | GEA | 必交 | BioProject 与 BioSample |
| 测序 | RNA-seq、小 RNA、ChIP-seq、Hi-C、甲基化测序 | DRA | 必交 | DRA 提交 + BioProject |
| 单细胞 | 10x、Smart-seq2、Drop-seq 等 | DRA | 必交,且须为细胞级 | DRA 提交 + BioProject |
| 空间转录组 | Visium、Xenium、MERFISH | 按平台分派 | 必交 | 同所属路线 |
这张表里有两处容易被忽略。其一,微阵列路线的原始数据是交到 GEA 的,所以 GEA 里确实存在一部分原始文件,只是它们不是测序读段。其二,测序路线的前置条件里,BioSample 不是直接挂到 GEA 上的,而是通过 DRA 提交间接引用——GEA 的 SDRF 从 DRA 的实验与运行信息里自动带出样本名。
同一次提交不能混装两条路线的数据。官方要求把微阵列与测序拆成两个提交,即便它们属于同一个研究;如果确实是同一批样本用了多种芯片,也要求拆开,并且给它们起不同的标题以免混淆。
2.2 MAGE-TAB:三份描述文件加两包数据
GEA 的元数据格式是 MAGE-TAB,一套由功能基因组学界制定、被 ArrayExpress 与 GEO 共同采用的表格化描述规范。它把一个实验拆成四个部件。
| 部件 | 作用 | 关键内容 |
|---|---|---|
| IDF | 实验层描述 | 标题、实验设计、实验因子名与类型、方案清单、联系人、发表文献、公开日期 |
| SDRF | 样本与数据的关系表 | 样本名、材料类型、提取物、标记、杂交或运行、数据文件名 |
| ADF | 阵列设计描述 | 探针序列、坐标、注释;已有设计可直接引用编号 |
| 数据文件 | 原始与处理后结果 | 微阵列交原始与处理后;测序交处理后,原始在 DRA |
IDF 的字段是标签加值的形式,一行一个标签。其中几个字段有硬约束:联系人角色只允许填提交者;实验因子名由提交者自定义,但 GEA 会把它复制到 SDRF 的因子值列,两边必须对齐;方案类型有受控词表,微阵列与测序所需的方案集不同,缺一个会在校验阶段被退回。
SDRF 的行就是分析单位,也是这套格式里最容易数错的地方。单通道微阵列一行等于一次杂交,双通道微阵列一行等于一个通道,测序提交一般一行等于一个原始文件,双端测序算一行。同一个实验里,行数、样本数、文件数三者不一定相等:一个样本可能跑多个通道,一个运行可能产出两个文件。
2.3 三类编号,各有各的层级
GEA 签发三种编号,层级分明。
| 前缀 | 指向 | 何时签发 | 论文里引用哪个 |
|---|---|---|---|
| E-GEAD-n | 一次实验提交 | 策展完成后 | 引用这个 |
| A-GEAD-n | 一个阵列设计 | 新建设计并通过审核后 | 一般不单独引用 |
| P-GEAD-n | 一套实验方案 | 随实验签发 | 一般不单独引用 |
编号签发前,系统用 ESUB 开头的临时号占位,例如方案在 IDF 里先写成 ESUB000500_Protocol_1,签发后替换为 P-GEAD-n。这个细节在解析原始 IDF 时会造成麻烦:同一套方案在不同批次的文件里可能是临时号,也可能是正式号,做字段抽取时两种都要认。
阵列设计号有一个特殊之处:GEA 允许引用 ArrayExpress 已注册的设计号,例如 A-AFFY-2 这样的老编号可以继续在 IDF 与 SDRF 里使用,不必重新申请。这意味着 A-GEAD-n 并不是阵列设计的唯一命名空间,跨库整合时要把两种前缀都算进来。
2.4 规模:三个口径不要混
关于「GEA 有多大」,至少有三个口径,数值差得很远,混用会得出矛盾结论。
第一个口径是在册实验数。官方公共目录下的实验清单是权威来源,逐条列出编号、状态、更新时间、提交时间。按这份清单清点,在册记录为七百七十三项,其中包含已撤回与暂缓公开状态;编号已经发放到 E-GEAD-1310,说明累计签发号多于当前在册数,中间有撤回、合并与未公开的情形。
第二个口径是样本数。样本号不在实验层,而在 SDRF 的样本列里,形如 SAMD 开头的 BioSample 编号。把七百七十一份可解析的 SDRF 汇总去重后,得到一万二千五百八十九个样本号。数量少于实验数的七成,是因为单细胞实验常把上千个细胞压在一个样本里提交,也有的实验一项只有几个样本。
第三个口径是数据文件量。这个数字官方没有给单一总量,因为它取决于原始数据是否随实验入库:微阵列实验的原始压缩包可能几百兆,测序实验的 GEA 侧只有矩阵,几十千字节到几兆不等。按提交数估容量会严重失真。
还有一个独立的结构数字:在册阵列设计记录二百四十三条,从 A-GEAD-2 起编号。这个数字远小于实验数,因为同一款商用芯片会被成百上千个实验复用。
2.5 与 DRA 的边界:一句话说清
GEA 与 DRA 的分工可以用一句判断:读段归 DRA,矩阵归 GEA。但这句话在两条路线上强度不同,需要分开说。
测序路线上,这条线是硬的。原始 FASTQ 或 BAM 必须先提交到 DRA,拿到一条 DRA 提交号,再在 GEA 建实验时引用它。GEA 侧只存处理后数据:表达矩阵、计数表、峰表、甲基化比值表。官方在单细胞指引里写得更细:原始数据交 DRA 并保留条码序列,GEA 的处理后数据必须是细胞级的,10x 平台要交 barcodes.tsv、features.tsv 与 matrix.mtx,或者 h5、rds 对象。
微阵列路线上,这条线不存在。芯片没有「读段」这个概念,原始文件是扫描出的图像与探针信号表,两者都交 GEA。所以「GEA 不含原始数据」这句话只对测序路线成立,对微阵列路线是错的。
这条边界带来一个实际后果:同一个研究在 GEA 与 DRA 各有一半。想做完整复现,必须两边都取;只取 GEA 会拿到矩阵但无法重跑比对,只取 DRA 会拿到读段但不知道样本分组。
2.6 明确不包含什么
官方在收录范围页上列了一张「不收」清单,指向很清楚,这张清单比「收什么」更能定义它的边界。
| 数据类型 | 该去哪 |
|---|---|
| 需受控访问的人类数据 | JGA |
| 转录本组装 | DRA,另加 DDBJ 的 TSA 分区 |
| 全基因组测序 | DRA,另加 DDBJ 的 WGS 分区 |
| 宏基因组测序 | DRA,另加 DDBJ 的 ENV 分区 |
| 重测序、变异与拷贝数项目 | DRA;人类数据另交 TogoVar,非人类另交 EBI 的变异档案 |
| 调查性测序、全外显子 | DRA |
| 代谢组数据 | MetaboBank |
| 蛋白组数据 | jPOST |
除了这张清单,还有几条隐含的边界值得写出来。它不收纯粹的图像数据:空间转录组的原始图像在部分平台上可以交(如 Xenium 的形态学图像),但 MERFISH 的原始图像被明确拒收,理由是体量过大,提交者只能登记一个占位文件,把图像另存到通用档案。它也不收没有数值结果的空壳实验:测序路线要求处理后数据必交,只有 BAM、SAM 或 BED 而无定量结果的文件不能当作处理后数据登记。
§3 它的身份:谁的账本,对谁负责
3.1 名字:Genomic 而不是 Gene
官方全称是 Genomic Expression Archive,中文可译作基因组表达档案。常见的写法 Gene Expression Archive 是错的,差别不只在拼写:它收的不止基因表达,还包括表观遗传修饰、染色质构象、SNP 分型这些不直接对应「基因表达量」的实验。
这个命名上的宽口径,决定了它的字段设计。IDF 里的实验因子是自由命名的,可以是「处理」,也可以是「基因型」「组织部位」「时间点」;SDRF 的材料类型有受控词表,涵盖总 RNA、多聚腺苷化 RNA、胞质 RNA、核 RNA、基因组 DNA、蛋白与其他。用「表达谱数据库」去理解它,会低估它在表观遗传与基因分型上的覆盖。
3.2 运营主体与账号体系
GEA 由国立遗传学研究所的生命信息与 DDBJ 中心运营,与 DDBJ 序列库、DRA 读段库、BioProject、BioSample、JGA、MetaboBank 是同一套班子的不同柜台。提交入口统一走 D-way 账号,一个账号可以同时管理序列提交、读段提交与表达提交。
这套统一账号带来两个实际影响。其一,跨库引用在同一账号内可以直接选,不必反复申请授权;如果要用别人账号下的 DRA 提交或项目,需要走跨引用申请。其二,通知邮件的地址取自 GEA 提交里填的地址,而不是账号本身,改账号邮箱后如果没同步改提交里的地址,会收不到策展反馈。
3.3 三方关系:GEO、ArrayExpress 与 INSDC
这是最需要说清的一节,因为它同时牵涉三条不同的关系线。
第一条线是职能对位。GEA 之于 DDBJ,相当于 GEO 之于 NCBI、ArrayExpress 之于 EBI:都是功能基因组数据的公共档案。三者收的数据类型高度重叠,都采用 MAGE-TAB 或其变体,都要求遵循 MIAME 或 MINSEQE。
第二条线是数据交换。三家之间没有。官方常见问题页写得很直接:GEO 与 ArrayExpress 之间的互相交换没有实现,因此 GEA 的数据也不与 GEO 共享;ArrayExpress 曾经导入 GEO 的数据,这项导入已经停止。换句话说,一份数据如果只提交给 GEO,就不会出现在 GEA;反过来也一样。
第三条线是元数据交换。这一条容易被忽略:提交 GEA 时同时登记的 BioProject 与 BioSample,是在 INSDC 框架内与 NCBI、EBI 交换的。所以会出现一种割裂的状态——样本与项目能在三家查到,表达矩阵只在提交的那一家。
第四条线是 INSDC 的成员资格,这一条最容易搞错。INSDC 的正式交换范围是注释序列、读段、项目与样本四类;GEA 在 INSDC 的汇总表里被列在「相关仓储」一栏,明确注明不构成 INSDC 交换的一部分。所以「GEA 是 INSDC 的表达库」这种说法只在职能类比的意义上成立,制度上它不在交换网内。
3.4 缝合线:BioProject 与 BioSample
GEA 自己不定义研究,也不定义样本。研究由 BioProject 定义,样本由 BioSample 定义,GEA 只是把一次实验挂到这两个号上。
这个设计的好处是同一批材料可以横跨多个库。一个项目可能同时有 DRA 的读段、DDBJ 的组装序列、GEA 的表达矩阵,三者共享同一个 PRJDB 号;样本层面共用 SAMD 号,于是「同一份 RNA 既做了测序又上了芯片」这种情形可以被正确表达,而不是被记成两个不相干的样本。
坏处是取数时要多走一步。GEA 的 SDRF 里直接写着 Comment[BioSample],但项目号通常写在 IDF 的 Comment[BioProject] 里,两个字段的位置不同;要按项目聚合,得先解析 IDF,再回头筛 SDRF。
3.5 三条轴:项目、实验、文件
把 GEA 的结构压到最简,是三条轴。
项目轴由 BioProject 承担,粒度最粗,一个项目可以挂多个实验。实验轴由 E-GEAD 号承担,是 GEA 自己的单位,一个实验一份 IDF、一到多份 SDRF。文件轴最细,一次杂交、一个通道、一个运行对应一行 SDRF,行末指向具体的原始与处理后文件。
三条轴之外还有一条隐线是时间。一个实验从提交到公开要经过多个状态,公开之后仍可更新或撤回,撤回的记录在清单里保留状态标记而不消失。这意味着任何按「在册数」做的统计都包含历史沉积,不等于当前可用的实验数。
§4 它的手艺:一份提交如何变成可检索记录
4.1 状态机:从新建到公开
GEA 的提交不是一次上传就完事,它有一套明确的状态流转,每一步对应不同的责任方。
| 状态 | 含义 | 谁在动 |
|---|---|---|
| 新建 | 只建了壳,元数据未提交 | 提交者 |
| 数据已提交 | 元数据与文件都已上传 | 提交者 |
| 校验中 | 系统正在检查文件完整性 | 系统 |
| 校验错误 | 文件或字段不合规 | 提交者修 |
| 已校验 | 元数据与数据都通过 | 系统 |
| 策展中 | 策展人员复核内容 | 中心 |
| 已发号 | 编号签发,仍处私有 | 系统 |
| 私有 | 归档包生成,未公开 | 提交者控制释放日 |
| 公开 | 对外可见可下载 | 完成 |
这张表说明一件事:编号签发与公开是两回事。一个实验可以已经拿到 E-GEAD 号但仍是私有状态,作者可以在论文投稿时把号写进去,同时用评审令牌让审稿人提前查看。评审令牌是提交者在数据入库后自行生成的访问凭证,可以交给期刊编辑转交评审人,不必等到公开。
4.2 校验:机器管格式,人管对应
校验分两层。机器层检查三件事:文件是否齐全、md5 是否匹配、字段是否符合受控词表。md5 这一层值得单说,GEA 用校验值判断文件在传输中是否损坏,提交者可以在 SDRF 里逐文件写,也可以另交一个 .md5 清单;两者都提供时,以清单为准。
人工层检查的是对应关系:SDRF 里写的文件名在数据包里是否存在,样本名与 BioSample 是否一致,方案类型与平台是否匹配,处理后数据是否真的是定量结果而不是中间文件。官方明确说过,只有 BAM、SAM 或 BED 的文件不能当作处理后数据登记,必须有表达矩阵这类定量产物;如果手上只有比对文件,需要先与策展方沟通。
这两层的分工决定了责任的归属:格式错误会被退回,科学内容的对错不会被判定。一个实验的样本分组写错了但格式合法,它会照样入库,错误留在数据里。
4.3 案例:解剖一项微阵列实验
拿 E-GEAD-1000 做例子,可以看清一份记录的实际形态。这是一项金黄色葡萄球菌的微阵列实验,样本是耐药与敏感菌株在不同药物压力下的培养物,SDRF 有五行,对应五个样本、五次杂交。
按公共目录打开它的实验文件夹,会看到五个文件:一个以编号命名的 .idf.txt,一个 .sdrf.txt,一个 .raw.zip,一个 .processed.zip,还有一个 .filelist.txt。IDF 给出实验标题、设计、因子与方案;SDRF 的列依次是样本名、样本特征、物种、分类号、采集日期、地理来源、细胞系、细胞类型、BioSample 号、样本标题、描述、四列方案引用、提取物名、材料类型、标记、测定名、技术类型、阵列设计号、原始文件名、处理后文件名与因子值。
从这份 SDRF 能读出三件事。其一,物种与分类号是逐行列出的,不在文件头统一声明,所以跨实验筛物种要逐行读。其二,BioSample 号直接可见,形如 SAMD 开头,可以据此回到样本层查采集信息。其三,阵列设计号在列里,指向一个 A-GEAD 号,据此可以找到探针序列。这三条对做数据整合的人是关键路径。
同一个编号在别处还会出现:DDBJ Search 的条目页、FTP 目录、论文的方法段。三处信息量不同,条目页适合人看,FTP 适合机器取,论文适合理解意图。做批量处理时以 FTP 为准,因为条目页会随界面改版而变。
4.4 单细胞与空间:两条特殊路线
单细胞数据的处理方式是 GEA 近年扩展最明显的部分,官方为它单列了一份提交指引。核心规则只有一句:原始数据进 DRA,处理后数据进 GEA,且后者的粒度必须是细胞级。
具体到 10x 平台,提交者要按情况选两种形态之一。细胞数只有几十个时,按细胞拆分成多个样本提交,每个细胞一个 BioSample,并在样本属性里写细胞标识、推断的细胞类型、细胞质量;细胞数上千时,按文库提交,一个文库一个样本,因为强行拆分反而影响可复现性,此时细胞级信息要放进处理后数据包里。
空间转录组按平台分两条互不相同的路。Visium 走测序路线:原始读段交 DRA,GEA 侧交基因表达矩阵、高分辨与低分辨组织图、缩放系数文件、点位置表,可选再交摘要页与可视化文件;若是 CytAssist 版本,还要加对齐后的组织图与另一张校正图。Xenium 与 MERFISH 走微阵列路线,且各有固定的阵列设计号:Xenium 用 A-GEAD-246,MERFISH 用 A-GEAD-247,原始与处理后数据各打成一个 tar 包提交。
MERFISH 有一条特别的限制:原始图像太大,GEA 不收,提交者只能登记一个指定 md5 的占位文件,图像另存到通用档案;.vzg 格式文件同样不被接受。这条限制说明 GEA 的「原始数据」概念是有体积上限的,超过上限的部分被推到别处,档案里只留一条指针。
4.5 私有期、释放与撤回
GEA 默认允许数据在论文发表前保持私有,保留期最长四年,可以自行修改,也可以在任意时刻改成当天即释放。这个机制的意义是把公开时点交给作者,而不是由档案方统一释放。
释放之后并非不可改。提交者可以联系中心更新元数据或撤回整份提交;撤回不是删除,记录在清单里保留并标记状态,编号不再指向可用数据。这一点对做长期统计的人有影响:按编号遍历会碰到空洞,按状态过滤才准确。
§5 取数:三个入口与它们的边界
5.1 三个入口的取舍
| 入口 | 适合 | 限制 |
|---|---|---|
| DDBJ Search | 人找单个实验、看条目页、跨六个库联合检索 | 界面面向浏览,批量抓取有上限 |
| 公共 FTP 目录 | 机器批量取、按编号定位文件 | 只给目录与文件,不给检索能力 |
| 论文与文献 | 理解实验意图、找关联发表物 | 数据本身仍需回到前两个入口 |
三者的关系是:Search 负责「找到」,FTP 负责「取到」,论文负责「读懂」。做流程化取数时应当绕过 Search,直接用 FTP 的目录规则拼路径,这样既快又稳定。
5.2 目录规则:千位分桶
GEA 的公共目录结构很规整,实验按编号的千位分桶,桶目录是三位补零的形式。
| 路径 | 内容 |
|---|---|
| /public/ddbj_database/gea/experiment/E-GEAD-000/ | 编号 0 到 999 的桶 |
| /public/ddbj_database/gea/experiment/E-GEAD-1000/ | 编号 1000 到 1999 的桶 |
| /public/ddbj_database/gea/array/A-GEAD-000/ | 阵列设计的桶 |
| /public/ddbj_database/gea/experiment/livelist.txt | 实验清单,含状态与时间 |
| /public/ddbj_database/gea/array/livelist.txt | 阵列设计清单 |
清单文件是这套目录里最有用的东西。它是一份制表符分隔的表,第一列是编号,第二列是状态,后面是更新、公开、提交三个时间戳与类型。有了它,不必猜编号范围,也不必逐目录试探。
5.3 用脚本清点一次
下面这段代码做三件事:拉清单、按状态筛、拼出每个实验的文件路径。它不依赖任何第三方库。
import csv, io, urllib.request
BASE = "https://ddbj.nig.ac.jp/public/ddbj_database/gea"
def fetch(url):
with urllib.request.urlopen(url, timeout=60) as r:
return r.read().decode("utf-8", "replace")
#-- 拉实验清单,跳过表头
rows = list(csv.DictReader(io.StringIO(fetch(BASE + "/experiment/livelist.txt")), delimiter="\t"))
print("在册实验记录", len(rows))
#-- 只看公开状态
public = [r for r in rows if r["Status"] == "Public"]
print("公开实验", len(public))
def bucket(acc):
#-- E-GEAD-1310 的桶是 E-GEAD-1000
n = int(acc.rsplit("-", 1)[1])
return "E-GEAD-%03d" % (n // 1000 * 1000)
def files(acc):
b = bucket(acc)
base = f"{BASE}/experiment/{b}/{acc}/{acc}"
return {
"idf": base + ".idf.txt",
"sdrf": base + ".sdrf.txt",
"raw": base + ".raw.zip",
"processed": base + ".processed.zip",
"list": base + ".filelist.txt",
}
print(files("E-GEAD-1000")["sdrf"])
输出会给出在册总数、公开数,以及一个可用的文件地址。这段代码里唯一需要留意的坑是分桶规则:桶名按千位取整再补三位,编号 1000 以下落在 000 桶,一千到一千九百九十九落在 1000 桶。
5.4 从 SDRF 读出样本与分组
拿到 SDRF 之后,最常做的三件事是数样本、看物种、取因子。三件事都靠列名定位,而列名在不同实验里顺序不同,必须先读表头。
import csv, io, urllib.request
url = "https://ddbj.nig.ac.jp/public/ddbj_database/gea/experiment/E-GEAD-1000/E-GEAD-1000/E-GEAD-1000.sdrf.txt"
with urllib.request.urlopen(url, timeout=60) as r:
text = r.read().decode("utf-8", "replace")
rows = list(csv.reader(io.StringIO(text), delimiter="\t"))
head, body = rows[0], rows[1:]
def col(name):
#-- 同名多列时返回全部下标,方案引用列就有四列
return [i for i, h in enumerate(head) if h == name]
bs = col("Comment[BioSample]")[0]
org = col("Characteristics[organism]")[0]
factors = [i for i, h in enumerate(head) if h.startswith("Factor Value[")]
samples = {r[bs] for r in body if r[bs]}
print("SDRF 行", len(body), "去重样本", len(samples), "物种", body[0][org])
print("因子列", [head[i] for i in factors])
这段代码在两个地方容易出错。其一,Comment[BioSample] 里可能有空值,必须过滤,否则会多算一个空样本。其二,Factor Value 列的数量不固定,有的实验一列,有的三列,取列时必须按前缀匹配而不是写死列名。
5.5 与 DRA 联合取数
要拿原始读段,得从 GEA 的 IDF 或 SDRF 里找到 DRA 的线索。IDF 的 Comment[BioProject] 给出项目号,SDRF 的测定名列常常带 DRA 运行号的痕迹;更可靠的办法是用 BioSample 号反查 DRA,因为样本是两库共享的锚点。
这条路径的实际用法是:先用 SDRF 拿到一批 SAMD 号,再用这些号去 DRA 检索对应的运行,最后取 FASTQ 或 BAM。不要试图从 E-GEAD 号直接推出 DRR 号,两者没有编号上的对应关系。
5.6 批量取数的现实约束
批量拉取的主要成本在文件体积而不在请求数。测序类实验的 GEA 侧文件通常很小,几百份 SDRF 加起来不过几兆;微阵列类实验的原始压缩包可能上百兆,成批下载会很快吃掉带宽。
另一个约束是速率。公共目录没有为批量抓取设计专门接口,并发过高会触发限流。稳妥的做法是控制并发在二十上下,对失败请求做退避重试,并且把已下载的文件按编号落地,避免中断后重来。
§6 与库内其他词条的关系
6.1 关系图谱
| 资源 | 关系 | 一句话区隔 |
|---|---|---|
| DDBJ 总库 | 上级机构 | GEA 是同一中心下的表达柜台,与序列库平级而非从属 |
| DRA | 上游读段库 | 原始读段在 DRA,GEA 引用其提交号 |
| BioProject | 项目锚点 | 跨库关联的唯一稳定锚点,一个项目可挂多个实验 |
| BioSample | 样本锚点 | 样本号在两库通用,是联合取数的关键 |
| GEO | 同类资源 | 职能对位,不交换数据 |
| ArrayExpress | 同类资源 | 职能对位,早期导入过 GEO,已停止 |
| JGA | 受控访问出口 | 需受控的人类数据从 GEA 转到这里 |
| MetaboBank | 同中心邻库 | 代谢组走它,不走 GEA |
| ARCHS4 | 下游加工品 | 把公开表达数据重跑成统一矩阵,源头含 GEO 而非 GEA |
| Expression Atlas | 下游加工品 | 精选子集做标准化与可视化,覆盖面远小于档案 |
6.2 检索路径
从一份论文出发找数据,最短路径是:先看论文写的编号前缀。E-GEAD 开头直接去 GEA;GSE 开头去 GEO;E-MTAB 开头去 ArrayExpress。三个前缀互不通用,跨库检索没有统一入口,这是三方不交换的直接后果。
从一份数据出发找论文,路径反过来:在 GEA 条目页看 IDF 里的 PubMed 号或 DOI。不是每个实验都填了文献,未发表的数据这一栏为空,此时只能靠标题与提交时间判断。
从一批样本出发找所有相关数据,正确入口是 BioProject 或 BioSample,而不是 GEA 的检索框。因为样本可能同时出现在 DRA 与 GEA,只有从锚点出发才能把两边的记录收齐。
6.3 与 GEO 的逐项区隔
| 维度 | GEA | GEO |
|---|---|---|
| 运营方 | 日本 DDBJ 中心 | 美国 NCBI |
| 编号 | E-GEAD、A-GEAD、P-GEAD | GSE、GSM、GPL、GDS |
| 与另一家的交换 | 无 | 无 |
| 元数据格式 | MAGE-TAB | 自有 SOFT 与 MINiML,兼容 MAGE-TAB |
| 样本层归属 | BioSample(INSDC) | BioSample(INSDC) |
| 数据规模 | 数百项实验量级 | 数万系列量级 |
| 检索界面 | DDBJ Search,跨六库 | GEO 自有检索,跨 SRA 与 PubMed |
规模差是结构性的,不是运营能力的差别。GEO 起步早、覆盖广,是事实上的表达数据默认去处;GEA 的定位是给日本及周边研究者一个本地入口,并承接 CIBEX 的存量。把两者当成可以互相替代的选项,会在数据量上失望;把两者当成互补的两个池子,才符合实际。
6.4 与 ARCHS4、Expression Atlas 的分工
这两类资源经常被拿来和 GEA 比较,其实层级完全不同。
ARCHS4 是加工品:它把公开的测序数据统一重跑,产出一套基因乘样本的矩阵,覆盖的是 GEO 与 SRA 的存量,不包含 GEA 的记录。它的价值在于一致性,代价是丢掉了原始实验的细节,也丢掉了加工者认为不可靠的样本。
Expression Atlas 是精选品:它从多个档案里挑出一部分实验,做标准化与差异分析,给出可视化的表达图谱。它的覆盖面远小于任何档案,但每一条都经过统一流程。
GEA 是档案:它不做重跑、不做筛选、不做标准化,存的是提交者给的原样。三者构成一条链——档案提供原样,加工品提供一致性,精选品提供可直接解读的结论。用加工品的标准要求档案,会得出「质量参差」的结论;用档案的标准要求加工品,会得出「覆盖不全」的结论。两者都不成立。
§7 质量评估与局限
7.0 阅读本节前的一个前置校正
评估 GEA 时最容易犯的错,是拿数据集的尺子量档案:问它清洗了多少、去重了多少、有没有统一注释。这些维度上它一定不合格,因为它不承担这些工作。
正确的框架是三条。作为登记簿,它的编号是否唯一、状态是否可追;作为表达层档案,它与读段层的边界是否清晰、跨库锚点是否可靠;作为服务平台,它的检索与取数是否够用。按这个框架,强项在结构与边界,弱项在易用性与覆盖量,与「数据质量」这个维度基本无关。
把这个校正做完,下面每一处扣分才不会读成「它做得差」,而是「它本来就不做这件事」。
7.1 五维评分
| 维度 | 分数 | 依据 |
|---|---|---|
| 结构清晰度 | 4 / 5 | 三层编号、四件套文件、状态机齐全;扣分在 IDF 字段的临时号与正式号混用 |
| 边界明确度 | 5 / 5 | 收录与不收两张清单并列,与 DRA 的分工在文档中反复写明 |
| 互操作性 | 3 / 5 | MAGE-TAB 通用,但三方不交换、跨库检索无统一入口 |
| 覆盖规模 | 2 / 5 | 数百项实验,与 GEO 差两个数量级 |
| 可复现性 | 3 / 5 | 测序类须回 DRA 取读段,微阵列类原始文件可随实验取到 |
边界明确度给满分是有理由的:很少有档案会把「不收什么、该去哪」列成一张带跳转的表。这张表把大部分误提交挡在了入口处,也让使用者在找不到数据时知道该换哪个库。
覆盖规模的低分不是缺陷。GEA 从二〇一八年才开始,且不追求承接全球提交,它的存在意义是给日本节点一个本地入口,而不是取代 GEO。
7.2 DAIMS 视角下的四条线
DAIMS 是一套看数据档案是否可解释的框架,按采集、建模、溯源、治理四条线拆开,用来评估 GEA 会得到比较清楚的画像。
| DAIMS 线 | GEA 的表现 |
|---|---|
| 数据获取与处理 | 两条提交路线各有完整文档;单细胞与空间另有专线指引;缺一个面向小体量提交的轻量通道 |
| 数据建模 | MAGE-TAB 三件套加数据包,模型与 GEO、ArrayExpress 同源,跨库映射成本低 |
| 数据溯源 | 三层编号加状态时间戳;样本与项目锚在 INSDC 层,可跨库回溯;撤回记录保留状态 |
| 数据使用与治理 | 开放数据无限制使用;受控人类数据明确外推至 JGA;保留期由提交者掌握 |
四条线里最稳的是建模与溯源。MAGE-TAB 是学界共用格式,字段含义不依赖某一家档案的解释;三层编号把「实验、阵列、方案」分开,引用时不会含混。最弱的是获取环节:文档齐全但入口分散,微阵列与测序、单细胞与空间各有一套要求,初次提交者容易在路线选择上走错。
7.3 已知的、可枚举的偏差
第一,存量偏差。七年积累数百项实验,其中二百五十四项来自 CIBEX 迁移,真正新提交的部分规模有限。这意味着库内的实验在年代上偏早,微阵列占比不低,与当下以测序为主的研究实践有距离。
第二,地域偏差。作为日本节点,它的提交便利性对日本研究者最优:日文文档、日语支持、本地时区。这会让库内的物种与课题分布偏向日本研究者的关注范围,而不是全球均匀分布。
第三,平台偏差。微阵列路线允许原始数据随实验入库,测序路线不允许,于是两类实验在 GEA 侧的可复现程度天然不同。同样是 E-GEAD 号,一个可能带着完整的原始芯片文件,另一个只有一张矩阵。
第四,字段偏差。IDF 的许多字段可以多值,联系人角色只允许提交者,实验因子名自由命名。自由命名带来的是语义不统一:同一个概念在不同实验里可能叫 treatment、condition、stress,做跨实验聚合必须先做词表归一。
第五,状态偏差。清单里保留了撤回与暂缓公开的记录,按编号遍历会碰到不可用的号。任何「编号总数等于数据量」的推断都会偏高。
7.4 外部验证
可交叉核对的外部来源有三类。官方统计页给出提交与释放的年度数字,可用于验证清单清点的量级;INSDC 的汇总表给出成员与相关仓储的划分,可用于验证「不在正式交换范围」这一判断;DDBJ 的年度更新论文给出各库的功能定位,可用于验证与 GEO、ArrayExpress 的职能对位关系。
三类来源之间有一处需要留意的不一致:统计页的年度提交数与清单里的在册数不同口径,前者按年计提交批次,后者按当前状态计记录,二者不可直接相减。
7.5 它为何能持续
GEA 的生存逻辑不在规模,而在位置。日本研究者需要一个本国的表达数据提交入口,这个需求不会因为 GEO 存在而消失:语言、时区、资助方的存档要求、机构的合规流程,都指向本地节点。GEA 填的是这个位置,而不是去争全球份额。
第二层逻辑是承接。CIBEX 的存量需要一个去处,GEA 是它的继承者,二百五十四项迁移记录就是这条继承关系的实体。没有这层承接,CIBEX 的数据会随服务下线而失联。
第三层逻辑是配套。它与 DRA、BioProject、BioSample 共用一套账号与一套策展班子,边际成本很低。新增一个表达库不需要新建提交系统、不需要新建账号体系,这让它在小规模下也能维持运转。
§8 生态位与历史
8.1 时间线
| 时间 | 事件 |
|---|---|
| 一九八〇年代 | 日本的核酸序列提交依赖国外节点 |
| 一九八七年 | DDBJ 发布第一版,成为 INSDC 第三个节点 |
| 二〇〇〇年代初 | CIBEX 上线,承接日本的表达谱数据 |
| 二〇〇一年前后 | GEO 与 ArrayExpress 相继上线 |
| 二〇一八年 | GEA 上线,编号体系改为 E-GEAD |
| 二〇一九年 | 首批十四项 CIBEX 实验迁入 |
| 二〇二二年 | 第二批十九项迁入 |
| 二〇二四年 | 第三批八十五项迁入 |
| 二〇二五年 | 第四批一百三十六项迁入,迁移基本完成 |
| 二〇二五至二〇二六年 | 增补单细胞与空间转录组的提交指引 |
这条时间线说明一件事:GEA 不是从零长出来的,它是 CIBEX 的继承者加一次格式切换。格式切换的代价是历史数据的字段要重新映射,好处是从此与 MAGE-TAB 生态对齐。
8.2 三方分工的实际形态
把 GEA、GEO、ArrayExpress 放在一张表里看,会发现三家的差别不在收什么,而在怎么收与给谁用。
| 维度 | GEA | GEO | ArrayExpress |
|---|---|---|---|
| 主体 | 日本 DDBJ 中心 | 美国 NCBI | 欧洲 EBI |
| 起步 | 二〇一八年 | 二〇〇一年 | 二〇〇一年 |
| 强项 | 与 DRA、BioProject 的本地整合 | 存量最大、工具链最全 | 与 EBI 其他资源联动 |
| 弱点 | 规模小、入口分散 | 元数据风格不统一 | 服务定位几经调整 |
| 对使用者的意义 | 日本提交的首选,跨库取数的一环 | 默认检索起点 | 欧洲提交的传统去处 |
三家的分工不是竞争关系,而是各自服务本国或本区域的提交需求,再把开放数据挂到同一套文献索引上。真正做全球整合的人不会只取一家,而是三家都扫一遍再去重。
8.3 AI 时代的再定位
表达数据是预训练语料的常见来源,但档案本身并不适合直接喂给模型。原因有三:矩阵的行名不统一,探针号、基因符号、转录本号混杂;样本量差异极大,从几个到上千个;元数据字段自由命名,同一概念多种写法。
于是在档案与模型之间长出了一层加工品,ARCHS4 与 Expression Atlas 是其中两个代表。它们的作用是把档案里的原样重跑成一致的形式,代价是丢掉一部分细节与一部分样本。GEA 在这条链上的位置是源头之一,但由于规模有限,它对主流加工品的贡献远小于 GEO。
这不等于 GEA 对 AI 无用。对于做日本本土队列、做特定病原体、做芯片时代存量数据的研究,GEA 里有 GEO 没有的记录。做语料构建时正确的做法是先扫三家再做去重,而不是默认只扫 GEO。
8.4 与策展型资源的关系
档案与策展是两种劳动。档案负责「原样保存、可追溯」,策展负责「挑选、标准化、解释」。GEA 做前者,Expression Atlas 做后者,两者不是替代关系。
这个区分对使用者有一个实际含义:需要可复现的原始结果时找档案,需要可直接比较的结论时找策展资源。拿策展资源的结论去要求档案,会得到「为什么不做标准化」的疑问;拿档案的原样去要求策展资源,会得到「为什么覆盖不全」的疑问。两个疑问都不成立,因为两者的目标不同。
§9 使用指引
9.1 三种角色的路径
做算法与语料的人,路径是「先清点,再抽样,最后批量」。先用清单文件确认在册数与状态分布,再抽十几个实验读 SDRF,摸清字段的常见写法,最后按需批量拉取。跳过前两步直接批量下载,会在字段解析上返工。
做生物学研究的人,路径是「先读 IDF,再取矩阵」。IDF 里有实验设计、因子与文献,读完能判断这批数据是否适合自己的问题;矩阵只在确认之后才取,避免下载一堆用不上的文件。
做数据管理的人,路径是「先定路线,再备材料」。微阵列与测序的必交材料不同,路线选错要重来;单细胞与空间另有专线,提交前应当先读对应指引,而不是套用通用流程。
9.2 一条最短的可用流程
第一步,确认目标实验的编号与状态。用清单文件查,不要只看网页摘要,因为摘要不显示撤回状态。
第二步,取 IDF 与 SDRF。两个文件都很小,先读它们再决定要不要下载数据包。IDF 看设计与文献,SDRF 看样本与文件对应。
第三步,判断路线。SDRF 里有 Array Design REF 列的属于微阵列路线,原始文件在 GEA;没有这一列而只有运行相关列的属于测序路线,原始读段要去 DRA。
第四步,取数据。微阵列直接下原始与处理后两个压缩包;测序只下处理后包,再用样本号去 DRA 找读段。
第五步,记录版本。记下取数日期与文件大小,档案会更新,同一编号在不同时点的内容可能不同。
9.3 引用方式
引用一份 GEA 记录,规范写法是给出 E-GEAD 号加访问日期,必要时补上项目号。不要只写作者与标题,因为标题可能重复,编号才唯一。
引用 GEA 这个库本身,应引官方页面与其年度更新论文,并注明访问日期。由于库的结构与规模在变,任何写死的数字都应当带上时点。
9.4 提交侧的三条经验
第一条,先建锚点再建实验。BioProject 与 BioSample 要先有,否则实验建到一半会卡住;测序路线还要先有 DRA 提交,否则引用栏是空的。
第二条,先查阵列设计再上传。商用芯片大多已有 A-GEAD 号或 ArrayExpress 的老号,直接引用比上传 ADF 省事;自制芯片才需要申请新号,申请要走审核。
第三条,样本数超限就拆。单次提交的 assay 上限是一千,超过要拆成多个提交,并让它们共享同一个 BioProject,这样在项目层仍然是一个研究。
§10 AI 使用声明
| 项目 | 说明 |
|---|---|
| 本页 AI 参与程度 | 由 AI 助手依据官方页面与公开目录起草,人工核对数字与口径 |
| 数字来源层级 | 见附录 B;官方目录清单与说明页为一级,论文为二级 |
| 未核实项 | 官方未公布全库数据文件总量,本文以实验数与样本数代之 |
| 版本信息 | 以二〇二六年十月读取的官方页面与目录为准 |
| 已知不一致 | 清单在册数与编号最大值不等,前者含撤回,后者含未公开与已合并 |
| 口径提示 | 样本数由 SDRF 去重统计,与官方年度统计的时点不同 |
| 适用边界 | 本文描述档案结构与边界,不含对具体研究结论的评价 |
| 更新机制 | 目录每日更新,本文不承诺随更新同步刷新 |
常见误读
| 常见说法 | 实际 | 证据 |
|---|---|---|
| 「GEA 是 Gene Expression Archive」 | 官方全称是 Genomic Expression Archive,收的不止基因表达 | 官方首页标题与首段 |
| 「GEA 是 GEO 的镜像」 | 独立档案,与 GEO 不交换数据 | 官方常见问题页的交换说明 |
| 「三家表达库的数据可以合并去重」 | 三方各自发号、各自策展,同一研究可能在三处各有一份 | 常见问题页与 INSDC 汇总表 |
| 「E-GEAD 号能直接下 FASTQ」 | 测序类实验的读段在 DRA,须按样本号反查 | 收录范围页的提交文件表 |
| 「GEA 完全不存原始数据」 | 微阵列路线的原始文件确实存在 GEA | 微阵列提交指引的必交项 |
| 「GEA 属于 INSDC 的正式交换范围」 | 列在相关仓储一栏,不在正式交换之列 | INSDC 汇总表的栏目划分 |
| 「样本数与实验数成正比」 | 单细胞实验常把上千细胞压在一个样本里 | 单细胞指引的两种提交形态 |
| 「GEA 收全外显子与宏基因组」 | 两者都指向 DRA,另有 WGS 与 ENV 分区 | 收录范围页的不收清单 |
| 「GEA 收代谢组与蛋白组」 | 分别指向 MetaboBank 与 jPOST | 收录范围页的不收清单 |
| 「撤回的记录会从清单里消失」 | 保留记录并标记状态,编号不再可用 | 清单文件的状态列 |
| 「MERFISH 的原始图像也能存」 | 体量过大被拒收,只能登记占位文件 | 空间转录组指引的 MERFISH 段 |
| 「编号签发就等于公开」 | 签发后仍可私有,最长保留四年 | 数据释放段的保留期说明 |
FAQ
Q1:GEA 和 GEO 到底能不能互查?
不能。两家承担同类职能,但官方明确说明不交换数据;ArrayExpress 曾导入 GEO,该导入已停止。要查全,只能三家各查一遍,再用标题、作者或样本号做人工去重。
Q2:一个 E-GEAD 号下有几种文件?
标准配置是五个:IDF、SDRF、原始压缩包、处理后压缩包、文件清单。微阵列实验五个都齐;测序实验的原始压缩包通常不在 GEA 侧,只有处理后包与描述文件。
Q3:为什么有的实验只有几个样本,有的上千?
因为样本的定义随平台变。芯片实验一个样本对应一次杂交,单细胞实验一个样本可能是一个包含上千细胞的文库。要比较实验规模,看 SDRF 行数比看样本数更接近实际的测序量。
Q4:GEA 的数据能商用吗?
开放数据可以。DDBJ 的使用条款允许自由使用、再分发与修改,不收取费用也不附加使用限制。但受控访问的人类数据不在本库,另有约束。
Q5:怎么知道一份数据有没有被撤回?
看清单文件的状态列,不要看编号是否存在。撤回的记录仍在清单里,标为撤回,编号不再指向可用文件。
Q6:GEA 里有物种注释吗?
有,在 SDRF 的物种与分类号两列里,逐行给出。但它只到物种层,不提供基因注释;基因标识取决于提交者用的平台,可能是探针号、基因符号或转录本号。
Q7:为什么同一个基因在不同实验里名字不同?
因为档案不做统一映射。探针号、基因符号、转录本号都可能出现在行名里,跨实验合并需要自己映射到一套参考注释,并记录映射规则。
Q8:单细胞数据的细胞信息在哪?
两种形态。按细胞拆分提交时,细胞信息在 BioSample 的属性里;按文库提交时,细胞信息在处理后的矩阵与条码文件里,样本层只有一个文库。
Q9:空间转录组算测序还是微阵列?
按平台分。Visium 走测序路线,原始读段在 DRA;Xenium 与 MERFISH 走微阵列路线,各有固定阵列设计号,原始与处理后都交 GEA。
Q10:提交后还能改吗?
能,但要联系中心,不能自助改元数据。保留日期可以自助改,最长四年,也可以直接改成当天释放。
Q11:审稿人要在发表前看数据怎么办?
提交者可以在数据入库后生成评审访问令牌,把令牌交给期刊编辑转交评审人。这条路径不需要提前公开。
Q12:GEA 有没有批量下载接口?
没有专门的批量接口。批量取数走公共 FTP 目录,按编号规则拼路径,用清单文件驱动。并发不要太高,失败要退避重试。
术语表
| 术语 | 含义 |
|---|---|
| GEA | Genomic Expression Archive,日本 DDBJ 中心的功能基因组档案 |
| MAGE-TAB | 功能基因组实验的表格化描述格式,含 IDF、SDRF、ADF 三件 |
| IDF | 实验层描述文件,写标题、设计、因子、方案、文献与释放日期 |
| SDRF | 样本与数据关系表,一行一次杂交、一个通道或一个运行 |
| ADF | 阵列设计文件,写探针序列与坐标 |
| MIAME | 微阵列实验最小信息标准 |
| MINSEQE | 高通量测序实验最小信息标准 |
| E-GEAD | 实验号前缀,论文引用用这个 |
| A-GEAD | 阵列设计号前缀 |
| P-GEAD | 方案号前缀,签发前用 ESUB 临时号 |
| DRA | DDBJ 的读段档案,存原始测序数据 |
| BioProject | 项目号,形如 PRJDB,跨库关联的锚点 |
| BioSample | 样本号,形如 SAMD,两库通用的锚点 |
| JGA | 日本基因型与表型档案,受控访问 |
| INSDC | 国际核酸序列数据库协作组织,正式交换范围不含 GEA |
| assay | 一次测定,SDRF 的一行 |
| 保留期 | 提交者设定的私有期限,最长四年 |
| DAIMS | 数据档案的评估框架,看采集、建模、溯源、治理四条线 |
附录 A:核心数字核对表
| 项目 | 数值 | 口径 | 来源层级 |
|---|---|---|---|
| 在册实验记录 | 七百七十三项 | 含撤回与暂缓公开 | 一级,目录清单 |
| 可解析 SDRF | 七百七十一份 | 两份缺文件 | 一级,目录清点 |
| 去重样本号 | 一万二千五百八十九个 | SDRF 样本列去重 | 一级,目录清点 |
| SDRF 行数 | 一万五千七百三十七行 | assay 计数 | 一级,目录清点 |
| 阵列设计记录 | 二百四十三条 | 含历史设计 | 一级,目录清单 |
| 编号最大值 | E-GEAD-1310 | 累计签发号 | 一级,目录清单 |
| 单次提交 assay 上限 | 一千 | 官方规定 | 一级,提交指引 |
| 保留期上限 | 四年 | 官方规定 | 一级,数据释放段 |
| CIBEX 迁入 | 二百五十四项 | 分四批 | 一级,统计页注释 |
| 上线年份 | 二〇一八年 | 官方与 INSDC 汇总表 | 一级 |
附录 B:数字的来源分层
一级来源是官方目录与官方说明页。目录清单给出编号与状态,说明页给出规则与上限。这类数字可以按读取日期复现,是本文的主干。
二级来源是年度更新论文与 INSDC 汇总表。论文给出功能定位与历史沿革,汇总表给出成员与相关仓储的划分。这类数字用于交叉验证,不作为唯一依据。
三级来源是第三方整理与二次引用。本文未使用三级来源中的数量类数字,因为这类数字往往不注明时点与口径。
附录 C:完整参考文献
- GEA 官方首页,收录范围与编号说明,https://www.ddbj.nig.ac.jp/gea/index-e.html ,二〇二六年十月访问。
- GEA 提交概览,两条路线与必交文件,https://www.ddbj.nig.ac.jp/gea/overview-e.html ,二〇二六年十月访问。
- GEA 元数据说明,MAGE-TAB 与 IDF、SDRF 字段,https://www.ddbj.nig.ac.jp/gea/metadata-e.html ,二〇二六年十月访问。
- GEA 测序提交指引,DRA 引用与状态机,https://www.ddbj.nig.ac.jp/gea/submit-sequence-e.html ,二〇二六年十月访问。
- GEA 微阵列提交指引,原始与处理后数据要求,https://www.ddbj.nig.ac.jp/gea/submit-array-e.html ,二〇二六年十月访问。
- GEA 单细胞指引,细胞级处理后数据要求,https://www.ddbj.nig.ac.jp/gea/single-cell-e.html ,二〇二六年十月访问。
- GEA 空间转录组指引,Visium、Xenium、MERFISH 三条路径,https://www.ddbj.nig.ac.jp/gea/spatial-gene-expression-e.html ,二〇二六年十月访问。
- 官方常见问题页,GEA 与 GEO、ArrayExpress 的交换关系,https://www.ddbj.nig.ac.jp/faq/en/gea-exchange-e.html ,二〇二六年十月访问。
- DDBJ 统计页,GEA 提交与释放统计及 CIBEX 迁移注释,https://www.ddbj.nig.ac.jp/statistics/index-e.html ,二〇二六年十月访问。
- GEA 公共目录,实验与阵列设计清单,https://ddbj.nig.ac.jp/public/ddbj_database/gea/ ,二〇二六年十月读取。
- INSDC 汇总表,三节点资源与相关仓储的划分,Nucleic Acids Research,二〇二〇年。
- DDBJ 年度更新报告,各库功能定位,Nucleic Acids Research,二〇二二年。
附录 D:取数代码
下面这段代码把「清点、筛选、取文件」合成一步:读清单,筛出公开实验,按编号拼路径,逐个取 IDF 与 SDRF 并存到本地。
import csv, io, os, time, urllib.error, urllib.request
BASE = "https://ddbj.nig.ac.jp/public/ddbj_database/gea"
OUT = "gea_local"
def get(url, retry=3):
for i in range(retry):
try:
with urllib.request.urlopen(url, timeout=60) as r:
return r.read()
except urllib.error.URLError:
time.sleep(2 * (i + 1))
return None
os.makedirs(OUT, exist_ok=True)
raw = get(BASE + "/experiment/livelist.txt")
rows = list(csv.DictReader(io.StringIO(raw.decode("utf-8")), delimiter="\t"))
def bucket(acc):
n = int(acc.rsplit("-", 1)[1])
return "E-GEAD-%03d" % (n // 1000 * 1000)
todo = [r["Accession"] for r in rows if r["Status"] == "Public"][:20]
for acc in todo:
b = bucket(acc)
head = f"{BASE}/experiment/{b}/{acc}/{acc}"
for kind, suffix in (("idf", ".idf.txt"), ("sdrf", ".sdrf.txt")):
blob = get(head + suffix)
if blob:
open(os.path.join(OUT, acc + "." + kind), "wb").write(blob)
time.sleep(0.3)
print("已取", len(os.listdir(OUT)), "个文件")
这段代码用取前二十条演示,实际使用时去掉切片即可。两个参数值得调:并发度与间隔。串行加短间隔最稳,并发二十左右仍可接受,再高容易触发限流。
附录 E:如果只记五件事
第一,它是表达层的档案,不是测序层的档案。E-GEAD 号指向一份实验说明书加一张结果表。
第二,测序类的原始读段在 DRA,微阵列类的原始文件在 GEA。同一条边界在两套路线上强度不同。
第三,它与 GEO、ArrayExpress 同类不同库,三家不交换数据。样本与项目号随 INSDC 交换,矩阵不交换。
第四,规模是数百项实验、一万余个样本的量级,与 GEO 差两个数量级。它的价值在位置与承接,不在覆盖面。
第五,它的边界写得比多数档案清楚:一张收录表、一张不收表,不收的每类都指明去处。
编辑说明
本文的事实核对以二〇二六年十月二十八日至二十九日读取的官方页面与公共目录为准。规模数字由目录清单与 SDRF 文件清点得出,清点脚本的逻辑写在附录 D,读取日期写在附录 A。
有一处口径需要交代:官方未公布全库的样本总数,本文的一万二千五百八十九个样本号是逐份下载 SDRF 后按样本列去重得到的,与官方年度统计的时点不同,不能直接对比。两份 SDRF 未能解析,已从样本统计中排除,实验数仍按清单全量计。
另有一处结构性不确定:清单的在册数与编号最大值不一致,前者七百七十三,后者一千三百一十,差额来自撤回、合并与尚未公开的编号。本文按清单口径报在册数,按编号报签发进度,两者不互相换算。
未覆盖的内容有三类:一是各实验的具体科学结论,本文不评价;二是官方未公开的内部策展规则细节;三是各平台文件格式的逐字段规格,需要时应当直接读对应指引页。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- geo — 共享标签:基因组学与多组学 / 转录组 / 测序数据
- fantom5 — 共享标签:基因组学与多组学 / 转录组 / 测序数据
- gencode — 共享标签:基因组学与多组学 / 转录组 / 测序数据
- astra — 共享标签:基因组学与多组学 / 转录组 / 测序数据
- recount3 — 共享标签:基因组学与多组学 / 转录组 / 测序数据
- archs4 — 共享标签:基因组学与多组学 / 转录组 / 测序数据
- tcga-luad — 共享标签:基因组学与多组学 / 转录组 / 测序数据
- gtex-legacy — 共享标签:基因组学与多组学 / 转录组 / 测序数据
- gtex — 共享标签:基因组学与多组学 / 转录组 / 测序数据
- cellxgene-census — 共享标签:基因组学与多组学 / 转录组 / 测序数据
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

