BioStudies:EMBL-EBI 的通用研究归档底座

341.99 万条记录 / ArrayExpress 8.10 万研究 / 三种接入方式

来源 https://www.ebi.ac.uk/biostudies/发布时间: 2026-10-26最后更新: 2026-10-26 阅读 8
BioStudies:EMBL-EBI 的通用研究归档底座

信息速览

数据集名称BioStudies:EMBL-EBI 的通用研究归档底座
数据类型元数据,原始数据链接,补充材料,多组学
规模不适用(记录级归档库,无统一患者计数)
接入方式https://www.ebi.ac.uk/biostudies/
AI 就绪度

BioStudies 是 EMBL-EBI 在 2016 年建立的通用研究归档库。它不解决「数据存在哪」,而解决「一篇论文的数据散在五个库里,怎么让人一次找齐」。规模上,2026 年 10 月 26 日检索 API 返回 3,419,965 条记录;ArrayExpress collection 内有八万余项研究,BioImages 5,235 项,BioImages-EMPIAR 3,113 项,EurocanPlatform 2,710 项。

这个定位听起来像目录页,实际上它是整个 EMBL-EBI 数据生态里最容易被低估的一层。ArrayExpress 2021 年并入它、成为其下的一个 collection;EMPIAR 的电镜图像通过 BioImages 进来;Springer Nature 旗下期刊的补充材料以 S-SCDT 前缀批量入库;Europe PMC 里每一篇带数据链接的开放论文,都自动在这里有一条记录。它的价值不在任何单个数字,而在「同一套 accession、同一套 API、同一套检索语法」把十几个来源统一了。

一屏速览见下表。

维度 内容
全称 BioStudies — one package for all the data supporting a study
建设方 EMBL-EBI(英国 Hinxton)
起步年份 2016(概念更早,2015 年 Mol Syst Biol 首篇介绍)
核心单位 study(一项研究一条记录)
全库记录数 341.99 万(2026-10-26)
ArrayExpress collection 八万余项研究
ArrayExpress 并入时间 2021(2020 年 10 月起双写,2021 年夏完成)
描述格式 PageTab(Page layout Tabulation,纯文本表格)
提交工具 Web 表单 / PageTab 批量 / Annotare(功能基因组学)
检索索引 Apache Lucene
元数据许可 CC0 1.0
数据文件许可 随提交者与 collection 而定
接入方式 Web 检索、REST API、FTP / Aspera
API 根 https://www.ebi.ac.uk/biostudies/api/v1
ELIXIR 身份 Deposition Database(2017 年起)

§1 它要解决的具体麻烦

1.1 一篇论文的数据为什么散在五个地方

设想你 2024 年发表了一篇肠道菌群与糖尿病的研究。测序 reads 在 ENA,因为那是唯一接受原始 reads 的地方;蛋白组数据在 PRIDE,因为质谱社区只认它;代谢组在 MetaboLights;组织切片的多重免疫荧光图像没地方放,只能塞进期刊补充材料;问卷量表在补充材料里是一个 Excel;分析代码在 GitHub。

读者看到论文,想去拿数据,得分别打开五个网站、记五个 accession、其中两个还要写邮件申请。而「这五样东西属于同一个研究」这个最基础的信息,只存在于论文的 Methods 段里,机器读不到。

BioStudies 就是给这件事补上一条记录:一个 accession,一份描述,五条外链,加那些确实没地方放的文件。这条记录可以引用、可以进参考文献、可以给 DOI。

这个麻烦不是个例,它是生命科学数据爆炸的结构性后果。二十年前一篇论文的数据基本是一个补充材料 PDF;现在一篇论文背后可能有 50 GB reads、一个质谱原始文件包、三组显微图像、一份问卷、一份代码仓库。每一类数据都长出了自己的专业库,每个专业库都有自己的必填字段、自己的 accession 格式、自己的 API。专业化提高了单类数据的可用性,同时制造了跨类的碎片化。

BioStudies 是这个碎片化的对冲手段。它的价值不在于比 GEO 更好或比 PRIDE 更好——它在任何一个单点上都不如它们。它的价值在于它是唯一一个承认「这些数据属于同一个研究」的地方。

1.2 三条常见的错误期待

在进入「它能给什么」之前,先把三种最常见的误解排掉,因为它们决定了你后面会不会失望。

误以为它是「数据集商店」。 BioStudies 的绝大多数记录是「描述 + 链接」,不是「描述 + 可以下的数据」。想看「有多少条记录能直接下文件」,只有 S-BSST、S-BIAD、EMPIAR 这几类,加起来在全库里是少数。

误以为它是「多组学分析平台」。 它不做整合分析、不做标准化、不做质控。Expression Atlas 会做这些,但那是另一个库,用 BioStudies 的 ArrayExpress collection 作为上游。你在 BioStudies 里看到的是「原始研究」,不是「加工过的矩阵」。

误以为它「收录了就说明数据质量过关」。 入库只说明「提交了、格式合法」,不说明「数据没问题」。唯一的质量信号是「是不是人工提交、字段写得多细」,而这个信号藏在 accession 前缀里。

1.3 它能给到的与给不到的

你的需求 它给的 够不够
一条 accession 找齐一篇论文的全部数据 有,前提是作者提交或管道生成 通常够
拿到测序 reads 不给,给链接跳到 ENA 需二次跳转
拿到显微图像本体 给(BioImages / EMPIAR 场景) 够
拿到补充材料 Excel / PDF 给 够
严格的元数据校验 弱,模板因 collection 而异 不够
按字段做跨库统计 需先对齐 schema 麻烦
数据引用与 DOI 有,10.6019/S-XXXX 格式 够
数据版本历史 库内保留,但 Web 界面不展示 需走 API
长期保存承诺 EMBL-EBI 核心资源,有 够
审编过的、可信的元数据 只有人工提交那部分 部分

1.4 一句话判断

你要找一个「跨模态研究的数据入口」,或者要给自己的多组学论文找一个能一次性打包的归档——它是欧洲最顺手的那个。你要找「干净的、字段齐全的、可以直接拿来做机器学习的数据集」——它不是,它只是索引层,真正的数据质量和字段完整性取决于原始专业库。

1.5 不适合谁:四条边界

要「下载即训练」的,别从这下手。 BioStudies 的很多记录只有描述和链接,文件本体在 ENA、PRIDE 那边。你得先读完一条记录,再跳出去拉数据。真正能直接下文件的是 S-BSST(自建 study)、S-BIAD(BioImages)、EMPIAR 这几类。

要做严格质量筛选的,得自己分层。 全库 341.99 万条里,Europe PMC 自动生成的 S-EPMC 占了绝对多数——这些条目本质是「论文 + 补充材料」的自动打包,元数据字段稀少。把全库当成一个同质语料来统计,会得出荒谬结论。

要旧 ArrayExpress XML API 的,脚本得改。 端点在 2021 年后从 https://www.ebi.ac.uk/arrayexpress/xml/v3 迁到 https://www.ebi.ac.uk/biostudies/api/v1,XML 响应逐步弃用,转向 JSON。老脚本不改就跑不动。

要「一个 study 一次拿全量元数据」的,也得改习惯。 新的检索 API 只返回有限元数据,完整信息必须逐条 studies/{accno} 请求。这是迁移说明里明确写过的行为变化。

§2 结构:study、section、collection

2.1 三层概念

BioStudies 的数据模型只有三个词,但这三个词决定了你能怎么用它。

study 是最小单位,一条 accession 对应一项研究。它通常与一篇论文绑定,但也可以是一次尚未发表的项目提交(可设 embargo,只对授权用户可见)。

section / subsection 是 study 内部的层级。一个 study 可以嵌套多层,常见的 section 类型有 Study、Publication、Author、Organization、Funding、Biosample、Specimen、Image acquisition、Image correlation、Study Component。这层嵌套是 BioStudies 区别于「一个 PDF 加几个附件」的关键——它让「同一研究下的 24 个样本、每个样本有 3 张图」这种结构能被机器读。

collection 是 study 的分组,同一 collection 共享一套模板与检索面。AttachTo 字段就是记录它属于哪个 collection。

层级 例子 说明
collection ArrayExpress 分组,带专属模板与分面
study E-MTAB-15859 一条记录,一项研究
section Study / Author / Funding 记录内的结构块
subsection Biosample 1 / Publication 结构块再嵌套
file E693_19-1319-F4_8.TIF 实际文件,带字节数

2.2 一条真实记录的完整样子

以 S-BSST390 为例。这是一项关于浮霉菌门细菌细胞被膜的研究,2020 年 7 月 24 日发布,浏览量 676 次,7 条外链、17 个文件。

字段 值
accno S-BSST390
Template Default
Title Evolutionary Remodelling of the Cell Envelope in Bacteria of the Planctomycetes Phylum
ReleaseDate 2020-07-24
AttachTo BioImages
Organism Tuwongella immobilis, Gemmata obscuriglobus
Experimental design SEM、TEM、nsTEM、LC-MS/MS、cryo-electron tomography(五项并列)
外链 EMD-11025、EMD-11057、EMD-11124、EMD-11074、EMD-11073(五个 EMDB 条目)、S-BSST437(同库另一条记录)、PXD019121(PRIDE)
文件 17 个 TIF,单个约 3.2 MB 至 4.2 MB
Publication PMID 32761170,Mahajan M 等,2020
Author 三位,各带 ORCID 与单位引用 o1

这条记录把五件事一次讲清:用了哪五种成像与质谱手段、图像本体在哪(就在这条记录下)、三维重建在哪(EMDB 五个条目)、蛋白组数据在哪(PRIDE)、论文是哪篇。这正是「信封」的用法——它不必拥有所有数据,但必须指得准。

2.3 collection 盘点

2026 年 10 月 26 日逐个端点查到的 collection 现状:

collection 记录数 内容 备注
ArrayExpress 八万余 功能基因组学(微阵列 + 测序) 2021 年并入,accession 保留
BioImages 5,235 生物图像 含 S-BIAD 前缀
BioImages-EMPIAR 3,113 电镜图像 EMPIAR 走这条通路入库
EurocanPlatform 2,710 癌症研究数据集编目 在 ArrayExpress 数据上叠加 EFO 注释
EU-ToxRisk 1,301 毒理基因组学 项目数据,部分 embargo
HeCaToS 373 肝/心毒性系统生物学 同上
diXa 293 毒理基因组学仓库 含转录/蛋白/代谢/表观四类

S-EPMC 与 S-SCDT 两类自动条目不成 collection,它们是按来源管道生成的记录,在检索里以 accession 前缀区分。

2.4 341.99 万条是怎么构成的

这个数字容易误读。它不是 342 万项「研究」,而是 342 万条「可检索记录」。

按 2 万条样本的 accession 前缀抽样(2026 年 7 月至 10 月区间):

前缀 含义 出现频次
S-EPMC Europe PMC 自动打包 占了采样中的绝大多数
E-MTAB ArrayExpress 测序类研究 次之
S-SCDT Springer Nature 补充材料 第三
EMPIAR 电镜图像 第四
S-BIAD BioImages 第五
S-BSST 自建 study 第六
S-MBRS / S-VHPS / S-ONTX / S-RHER / S-EXPD / S-TOXR 各类小集合 零散

一个细节值得记:S-EPMC 条目的 release_date 大量集中在每年的 1 月 1 日,这说明它们不是按数据产生时间发布的,而是按批次统一打时间戳。用 release_date 做「每年新增数据量」的时间序列,会把 S-EPMC 造成一根根尖峰,那是管道节律,不是科研产出节律。

§3 数据从哪来:三条通路

3.1 通路一:作者自己填

Web 提交工具在 https://www.ebi.ac.uk/biostudies/submissions。作者把文件传进自己的 BioStudies 目录,然后用表单描述:标题、总体描述、指向别处数据的链接、以及可选的逐文件说明。

特点是作者完全控制:可以随时回来加文件、改描述、调整公开时间。库内为每条记录保留版本历史(但 Web 界面不展示,需走 API)。

这条通路产出的 accession 是 S-BSST 前缀。

3.2 通路二:PageTab 批量

PageTab 全称 Page layout Tabulation,是一种纯文本表格格式,任何电子表格工具都能生成。它用一个文件描述整棵树:study 级属性、section 与 subsection 的嵌套、文件清单、外链。

它之所以重要,是因为 EMBL-EBI 的多个数据管道都用它入库——一个项目如果需要几千条记录,不可能让人一条条填表单。

#-- PageTab 的最小骨架(示意,非官方原文)
Study
    Title    Evolutionary Remodelling of the Cell Envelope...
    Description    TEM, SEM, nsTEM analysis of...
    Organism    Tuwongella immobilis
Study
    Publication
        PMID    32761170
        Authors    Mahajan M, Seeger C, Yee B, Andersson SGE.
Study
    Author
        Name    Christian Seeger
        ORCID    0000-0003-0241-9158
        affiliation    o1
Study
    Organization    o1
        Name    Molecular Evolution, Department of Cell and Molecular Biology...

缩进表达层级,Study 重复出现表示一个新的顶层块。这个格式的优点是「所见即所存」:网页上看到的结构,就是提交文件里的结构。

3.3 通路三:自动管道

这是 BioStudies 记录量的主来源。

Europe PMC 管道:对每篇开放获取、且被自动检测到「有数据链接」或「有补充材料」的论文,生成一条 study,内含摘要、作者、资助信息、补充材料。前缀 S-EPMC。

Springer Nature 管道:期刊补充材料批量入库。前缀 S-SCDT。

SourceData 项目与 Journal of Cell Biology 图像集:为论文配图提供结构化描述。

专业库回流:EMPIAR 的电镜图像经 BioImages 模板入库,前缀 EMPIAR;ArrayExpress 的新提交经 Annotare 直接落到 BioStudies。

3.4 三条通路的质量差异

通路 元数据完整度 文件本体 可否引用 典型前缀
作者自填 高(作者愿意写) 在库内 可,可申请 DOI S-BSST
PageTab 批量 取决于项目方 在库内或外链 可 S-BIAD、E-MTAB
Europe PMC 自动 低(只有论文级信息) 多为外链 可 S-EPMC
期刊补充材料 低至中 在库内 可 S-SCDT

做任何统计前先按这张表分层,否则会把「自动打包的论文条目」和「认真提交的研究」混在一起。

§4 实操:怎么把它当数据源用

4.1 三条接入路径

路径 适用 入口
Web 检索 人工探索、找灵感 https://www.ebi.ac.uk/biostudies/
REST API 批量抓取、建索引 https://www.ebi.ac.uk/biostudies/api/v1
FTP / Aspera 大批量文件下载 https://ftp.ebi.ac.uk/biostudies/

API 的实际可用端点比文档写的少。2026-10-26 逐个访问的结果:

端点 状态 说明
/api/v1/search 200 全库检索,返回分页 hit 列表
/api/v1/{collection}/search 200 集合内检索(如 /ArrayExpress/search)
/api/v1/studies/{accno} 200 单条记录完整元数据
/api/v1/collections 404 无集合列表端点
/api/v1/studies 404 无记录列表端点(必须走 search)

记录 collections 端点 404 是有用的信息:你不能靠 API 拿到「现在有哪些 collection」,只能靠文档、论文或逐条记录的 AttachTo 字段反推。

4.2 检索 API 的实际行为

import urllib.parse, urllib.request, json

BASE = "https://www.ebi.ac.uk/biostudies/api/v1"

def search(query, collection=None, page=1, page_size=20):
    params = {"query": query, "page": page, "pageSize": page_size}
    url = f"{BASE}/search?{urllib.parse.urlencode(params)}"
    if collection:
        url += "&collection=" + urllib.parse.quote(collection)
    req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"})
    return json.loads(urllib.request.urlopen(req, timeout=60).read())

d = search("single cell", collection="ArrayExpress")
print(d["totalHits"])          # 1004
print(d["isTotalHitsExact"])   # False —— 注意这个标志

有三个行为必须知道:

  1. isTotalHitsExact 会为 False。 带 collection 过滤时,命中数往往被截断在某个上限附近(多次访问都落在 1004、1002 这类数字),不是精确值。做统计时要明确说「约」而不是报精确数。
  2. page 有上限。 深分页到 20000 条左右就开始返回 HTTP 500。要全量抓,得改用时间窗切片或 accession 前缀切片。
  3. 默认按相关度排序。 加 sortBy=release_date&sortOrder=descending 才能按发布时间。

4.3 拿一条完整记录

def get_study(accno):
    url = f"{BASE}/studies/{accno}"
    req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"})
    return json.loads(urllib.request.urlopen(req, timeout=60).read())

def walk(sec, depth=0):
    """把嵌套 section 树拍平成一串 (层级, 字段, 值)"""
    for a in sec.get("attributes", []):
        yield depth, a["name"], a.get("value")
    for sub in sec.get("subsections") or []:
        yield depth, f"[{sub.get('type')}]", sub.get("accno", "")
        yield from walk(sub, depth + 1)
    for l in sec.get("links") or []:
        yield depth, "LINK", l.get("url")
    for f in sec.get("files") or []:
        yield depth, "FILE", f"{f.get('path')} ({f.get('size')} B)"

rec = get_study("S-BSST390")
for depth, k, v in walk(rec["section"]):
    print("  " * depth + f"{k}: {str(v)[:80]}")

这段的输出会直接给你「五种实验设计 + 五个 EMDB 链接 + 一个 PRIDE 链接 + 一个同库交叉引用 + 17 个 TIF」的清单。这正是 §2.2 的案例 里那张表的机器来源。

4.4 案例:S-BSST390 为什么是「信封」的教科书样本

这条记录值得单独拆,因为它把 BioStudies 的六种能力都用上了。

第一,多模态并列。 Experimental design 字段连写五个值:SEM、TEM、nsTEM、LC-MS/MS、cryo-electron tomography。同一个研究里,三种电镜、一种质谱、一种断层成像。在任何一个专业库里,这五种数据都会分散到五个不同的库;这里它们共享一个 accession。

第二,链接多于文件。 7 条外链对 17 个文件。也就是说这项研究的主体数据(三维重建、质谱结果)根本不在 BioStudies 里,而在 EMDB 和 PRIDE。BioStudies 承担的是「指路」而不是「存储」。这解释了为什么它的体量能撑到 342 万条——大部分记录本来就不含大数据。

第三,自引用。 外链里有 S-BSST437,是同一课题组在 BioStudies 里的另一条记录。库内记录之间可以互相链接,形成一个小型专题。

第四,结构化的作者信息。 三位作者各带邮箱、ORCID、单位引用 o1;o1 单独作为 Organization 块列出全称。这套结构让「按机构检索」「按 ORCID 归并」变得可行。

第五,实验设计用受控术语。 SEM、TEM、cryo-electron tomography 这些不是自由文本,是可检索的标签。这让「找出所有用了冷冻电子断层扫描的研究」成为一个可执行查询。

第六,文件带字节数。 每个文件记了精确大小(4,197,516 B 这类),可以据此估算存储、安排断点续传。

§2.2 和 §4.3 的代码输出,指向的都是这条记录。它是我在整库 342 万条里挑出的最佳示例:够小(17 个文件,约 60 MB),够典型(五种模态、七个外链),够可验证(每条外链都能点开)。

4.5 按 collection 抓取的可行写法

def iter_collection(collection, cap=2000):
    """翻页抓一个 collection 的 hit 列表,遇到 500 就停"""
    seen, page = {}, 1
    while len(seen) < cap:
        try:
            d = search("", collection=collection, page=page, page_size=1000)
        except Exception:
            break
        if not d.get("hits"):
            break
        for h in d["hits"]:
            seen[h["accession"]] = h
        page += 1
    return list(seen.values())

rows = iter_collection("BioImages-EMPIAR")

用空 query 加 collection 过滤,是拿集合全量的唯一办法(/api/v1/studies 不存在)。cap 要设,否则会一直翻到服务端 500。

§5 ArrayExpress 并入:一次教科书级的迁移

5.1 时间线

时间 事件
2002 ArrayExpress 建立,作为 MIAME 合规的微阵列归档
2008 扩展接受测序类功能基因组学数据
2016 BioStudies 建立,定位多模态研究
2017 测序类提交量首次超过微阵列
2017 BioStudies 成为 ELIXIR Deposition Database
2020-10 迁移第一阶段:新数据在两边并行可见
2021 夏 迁移第二阶段:ArrayExpress 原基础设施下线
2021 NAR 发表迁移说明(doi:10.1093/nar/gkaa1062)
2026 ArrayExpress collection 稳定在八万余项研究

5.2 迁移做了什么、没做什么

做了:每个 ArrayExpress experiment 翻译成一条 BioStudies study;accession 全部保留;旧超链接重定向;Annotare 提交工具保留,输出仍是 MAGE-TAB,但落到 BioStudies;MAGE-TAB 原文件保留,另加一个「实验因子取值组合 + 样本数」的汇总表;为 ArrayExpress collection 配了专属分面(Organism、Study type、Technology type)。

没做:没有改数据内容。2002 年以来提交的数据原样保留,一个字节没动。这一点论文里写得很明确。

改了的:程序化访问。旧端点是 https://www.ebi.ac.uk/arrayexpress/xml/v3,新端点是 https://www.ebi.ac.uk/biostudies/api/v1。XML 响应弃用,转向 JSON。检索 API 只返回有限元数据,完整信息要逐条请求。

5.3 为什么这件事值得单独讲

多数数据库的「合并」都伴随数据丢失或 accession 断裂。ArrayExpress 这次没有:20 年、8 万项研究、跨两代测序技术的数据,accession 一个没丢。

从工程角度看,能做成的原因是三点:一是 ArrayExpress 本来就用 MAGE-TAB 这种文本格式描述实验,容易映射到 PageTab 的层级结构;二是 BioStudies 的数据模型足够通用(section 嵌套),能吃下 MAGE-TAB 的样本-数据关系表;三是 EMBL-EBI 愿意为「旧 accession 永久有效」付长期成本——重定向表要一直维护下去。

对使用者的实际影响:如果你有 2020 年之前的分析脚本还在调 ArrayExpress 的 XML API,它现在大概率已经断了。改法在迁移论文和 https://www.ebi.ac.uk/biostudies/ArrayExpress/help 的字段映射表里。

5.4 迁移前后,同一项数据长什么样

拿一项典型的测序类研究来看,迁移前后的差别主要在「怎么取」。

环节 迁移前 迁移后
定位 arrayexpress/xml/v3/experiments/E-MTAB-xxxx biostudies/api/v1/studies/E-MTAB-xxxx
响应格式 XML(JSON 可选) JSON(XML 仅单条记录、通用 schema)
检索返回 列表带较多元数据 列表只带有限元数据,需逐条补
样本-数据关系 MAGE-TAB 的 SDRF 表 MAGE-TAB 原文件保留 + 实验因子取值组合汇总表
文件访问 ArrayExpress 自有接口 BioStudies 文件接口,支持百万级文件、FTP / Aspera
分面 固定在 ArrayExpress 界面 由 collection 模板配置(Organism / Study type / Technology type)
accession E-MTAB-xxxx 完全不变

有一处细节值得单独说:「实验因子取值组合汇总表」是迁移时新加的。原来在 ArrayExpress 里,要看「这个实验里有几种条件、每种几个样本」,得自己解析 SDRF 表、按列聚合。迁移后 BioStudies 直接给了这张表:每个唯一组合一行,附样本数与对应文件入口。

这一项对做表达分析的人省事不小——按条件分组取样本,不用再手写 SDRF 解析。

5.5 迁移留给后来者的两条经验

经验一:迁数据不难,迁 accession 难。 数据搬到新库,本质是格式转换;accession 不丢,意味着未来几十年都要维护一张重定向表,且所有引用过旧 ID 的论文、脚本、数据库交叉引用都得继续有效。这是制度成本,不是技术成本。很多机构级迁移失败,失败在这里。

经验二:先并行,再下线。 2020 年 10 月起两套系统同时可见,收了一年的用户反馈,2021 年夏才下线旧基础设施。这一年里所有的字段映射问题、API 差异、分面缺失都是在这个窗口里被发现的。

对照的是常见的「一刀切」迁移:某天旧站 404,新站上线,用户自己去猜哪里变了。那种迁移通常会在半年内收到大量「我的脚本跑不通」的邮件,而维护方只能一条条回。

§6 检索、浏览与分面

6.1 本体扩展是怎么工作的

BioStudies 的检索接了 EFO(Experimental Factor Ontology)。你搜一个上位词,它会自动把下位词的命中一起带回来。

搜 "liver disease" 返回 76,662 条(isTotalHitsExact=false),响应里同时列出被扩展的术语——从 hepatitis C virus-related hepatocellular carcinoma 到 alcoholic liver cirrhosis 一长串。

这个能力的好处是召回率高,代价是精确率低。做系统性检索(比如写综述要「所有肝病相关研究」)很有用;做精确计数时要关掉扩展或者用字段限定。

6.2 分面

ArrayExpress collection 配了三个分面:Organism、Study type、Technology type。这是迁移时专门为它做的。

其他 collection 的分面各不相同,取决于模板。这一点在跨 collection 检索时会带来不一致——同一个「Organism」在不同 collection 里可能是不同字段名。

6.3 相似研究推荐

记录页面会列出「相似的研究」。实现方式是基于描述文本与关键词的相似度,不是引用关系。做探索时有点用,但不适合当推荐系统的基线。

6.4 检索语法的几个可用写法

没有官方完整的查询语法文档,但可以从行为反推几条可用的:

写法 效果 备注
query=liver disease 分词后按相关度排 默认行为
query="liver disease" 短语匹配 + EFO 扩展 返回体量仍很大
query=S-BSST390 全文匹配,accession 不是一个独立字段 会命中引用它的记录
collection=ArrayExpress 限定集合 与 query 可叠加
sortBy=release_date&sortOrder=descending 按发布时间倒序 不加则按相关度
pageSize=1000 单页上限 可用

pageSize 能到 1000 是很有用的——抓取时能把请求数压到千分之一。但要注意深分页会失败,见 §4.5。

6.5 三条不该走的检索路径

别用 query=*。 返回 0 条。星号被当字面量处理,不是通配符。要看全库,用空 query 或省略 query 参数。

别指望按 accession 前缀过滤。 query=S-BSST 返回 0 条,query=S-EPMC 返回 1 条(且不是前缀匹配的结果)。要按前缀筛,只能抓回来在本地做字符串过滤。

别指望 facets 参数。 传 facets=collection 返回的 facets 字段是 null。分面只在 Web 界面生效。

§7 质量评估:DAIMS 框架

7.0 阅读本节前的一个前置校正

多数人看「数据库质量评估」,默认评的是「数据准不准」,这是一个常见的误判。BioStudies 基本不生产数据,只收纳描述,所以这一维在它身上几乎不适用。真正要评的是记录的异质性与模板的不统一——342 万条记录里,真正经过人工审编的比例不高,而不同 collection 的字段口径又不一样。把这个前提放正,下面五个维度的评分才好读。

7.1 五维评分

维度 评分 依据
Data Collection(采集) ★★★★☆ 三条通路覆盖了从个人提交到期刊批量、从专业库回流到文献自动打包的全谱;扣分项:自动管道产出的记录元数据过薄
Annotation(标注) ★★★☆☆ 人工提交的记录有完整结构化描述(作者、ORCID、机构、资助、实验设计受控词);自动记录只有论文级信息;整体审编率不高
Intrinsic Quality(内在质量) ★★★★☆ accession 稳定、20 年数据零丢失、MAGE-TAB 原文件保留、版本历史可查;扣分项:深分页不稳、collections 端点缺失
Metadata(元数据) ★★★☆☆ PageTab 层级结构表达力强,能描述多层嵌套;扣分项:跨 collection 字段不统一,无全库级 schema
Standardization(标准化) ★★★★☆ 接了 EFO 本体、支持 MIAME / MAGE-TAB、有 ELIXIR Deposition Database 身份、DOI 可分配;扣分项:新的 JSON schema 与旧 XML 并存过渡期长

7.2 为什么「标注」只给三星

拿 S-BSST390 这种人工提交的记录看,字段丰富得惊人:五种实验设计、七条外链、三位作者各带 ORCID、资助信息七条。这已经是专业库的水准。

但拿一条 S-EPMC 记录看,内容基本就是「标题 + 摘要 + 作者 + 补充材料」。它是自动生成的,作者没参与,字段自然薄。

这两类记录在同一个检索结果里并列出现,接口一样、格式一样,但信息量差一个数量级。使用者如果不知道 accession 前缀的含义,会以为「BioStudies 的记录都很浅」,或者反过来「这批数据可以直接训模型」。

真正的质量分层不在评分表里,在 accession 前缀里。

7.3 已知的、可枚举的偏差

偏差 来源 方向
自动条目占比过高 Europe PMC 管道 全库统计被论文级记录稀释
时间戳批次化 S-EPMC 统一打 1 月 1 日 时间序列分析出现假尖峰
欧洲中心 EMBL-EBI 成员国立项为主 非欧洲地区研究覆盖不足
英文主导 描述字段以英文为主 非英语地区数据难被检索到
提交者自述 元数据由作者填写,无独立核验 字段准确性依赖作者诚信
模态倾斜 显微图像(BioImages)、功能基因组学(ArrayExpress)两个 collection 占大头 其他模态样本稀少
检索扩展过度 EFO 上位词自动扩展 精确计数偏高

7.4 它为何能持续:三个条件的交集

一个不含大数据、只存描述和链接的库,凭什么能活十年并且越做越大?

第一,它填的是机构级的需求,不是用户级的需求。 单个研究者不会因为「想要一个数据信封」而去建库。但 EMBL-EBI 作为欧洲生命科学数据基础设施,必须回答一个问题:当一篇论文的数据分散在自家五个库里,怎么让外部世界看到它们是一个整体?这个需求只有机构层面才有,也就只有机构能长期投入。

第二,它降低了其他库的负担。 有了 BioStudies,ENA 不必去存显微镜照片,PRIDE 不必去存问卷,期刊不必自建补充材料托管。每个专业库只管自己那一段,横向的连接交给 BioStudies。这是分工,不是竞争。

第三,迁移案例给了它制度信用。 ArrayExpress 20 年数据零丢失并入,这件事的说服力远超任何宣传。当一个库证明了自己「不会让数据消失」,其他项目才敢把 legacy 数据交给它——HeCaToS、EU-ToxRisk、EurocanPlatform 都是这么来的。

它不可替代的部分:目前没有第二个库同时做到「跨模态 + accession 稳定 + 与文献系统直连 + 有机构级长期承诺」。Figshare 和 Zenodo 能存文件但没有专业库链接体系;GEO 和 ENA 有专业深度但不跨模态。

四种失效情形:一是若 EMBL-EBI 的资助结构变化,长期保存承诺出现动摇,制度信用会迅速崩塌。二是若 Europe PMC 管道停止,记录增长会立刻掉一个数量级(因为它贡献了绝大多数条目)。三是若各专业库自己开始做跨库打包(比如 ENA 直接提供「本篇论文全部数据」视图),BioStudies 的中介价值被削弱。四是若 PageTab 这种文本格式被更现代的标准取代而库内不跟进,新项目的接入成本会上升。

7.5 一个具体的质量判断练习

假设你在做「单细胞转录组数据有哪些公开来源」的调研,在 BioStudies 里搜 single cell 加 collection=ArrayExpress,得到 1004 条(isTotalHitsExact=false)。这 1004 条该怎么用?

第一步看前缀分布。抓回来逐条读 accession,会发现大量是 E-MTAB- 与 E-GEOD-,也有少量 E-ERAD-。这三类的差别是:E-MTAB 是 ArrayExpress 自己编的号,E-GEOD 是从 GEO 镜像过来的,E-ERAD 是 ENA 侧的研究编号。也就是说同一个研究的测序数据,可能在 GEO 和 ArrayExpress 各有一份描述。

第二步看字段完整度。随便抽十条,检查有没有 Organism、Study type、Technology type、样本数。ArrayExpress collection 因为迁移时专门配了分面,这几项一般都有。

第三步看「单细胞」是怎么被命中的。搜出来的是标题里写「single cell」的,还是元数据里标了单细胞模板的?两者不是一回事。2020 年之后 Annotare 才有单细胞模板,之前的单细胞研究只能靠标题关键词识别,会有漏。

做完这三步,你得到的不是一个「1004 条」的数字,而是一个有分层、有已知缺陷的候选集。这才是这个库的正确用法:它给你的永远是「候选 + 线索」,不是「成品」。

§8 生态位:它和谁像、和谁不像

8.1 六个同类对照

系统 单位 存不存文件 强项 与 BioStudies 的关系
GEO Series / Sample 存(芯片与部分测序) 基因表达,字段强制 数据可回流 BioStudies
ENA Study / Sample / Run 存(原始 reads) 测序一手归档 BioStudies 链接它
PRIDE Project 存(质谱) 蛋白组 BioStudies 链接它
ArrayExpress Experiment 存 功能基因组学 已并入 BioStudies
Zenodo Record 存 通用、可 DOI、无领域限制 功能重叠但无专业库链接
Figshare Item 存 通用、界面友好 同上

8.2 与 Zenodo 的关键差别

两者都做「通用归档」,但走的是两条路。

Zenodo 是存储优先:你把文件传上去,它给你 DOI,谁都能下。它不关心这文件属于哪个研究、和哪个测序项目有关。

BioStudies 是关联优先:它假设你的大数据已经在专业库里了,它负责把链接、描述、剩下的零碎文件组织成一条可引用的记录。

结果是:你要存 50 GB 原始数据,Zenodo 更直接;你要让「一篇论文的五个数据集」在检索时被当成一个整体,BioStudies 更合适。两者的 DOI 体系也不通,引用时要注意别混。

8.3 与 GEO 的关键差别

GEO 有强制字段校验,提交时缺 GSE 编号、缺平台信息、缺样本特征,系统会拒。这让 GEO 的数据可用性很高。

BioStudies 的校验弱得多,模板随 collection 变,自由文本字段多。代价是记录质量参差,好处是新数据类型(显微图像、问卷、模型权重)能快速接进来,不必先定义一套严格标准。

这个取舍是刻意的:要覆盖「还没有标准的领域」,就不能有统一标准。

8.4 与 EBI Search 的关系

EBI Search 是 EMBL-EBI 的统一检索入口,把旗下几十个库(含 BioStudies、ENA、UniProt、PDB、Expression Atlas 等)放在一个搜索框后面。

两者的分工:EBI Search 做「跨库发现」,BioStudies 做「库内深入」。你在 EBI Search 里搜一个基因名,会看到蛋白质条目、结构条目、表达数据、相关研究并列;点进 BioStudies 那一条,才进入研究级的细节。

一个实用差别是索引更新的节奏。EBI Search 的索引有自己的刷新周期,而 BioStudies 的 API 是实时的。要查「昨天刚发布的一条记录」,走 BioStudies API 更稳。

8.5 与 Europe PMC 的分工

这两个库的关系比外界想的要紧密:Europe PMC 是 BioStudies 最大的记录来源。

但两者做的事完全不同。Europe PMC 是文献库,检索单位是文章;BioStudies 是数据归档,检索单位是研究。同一篇论文在两边都有一条记录,一条叫 PMID/PMCID,一条叫 S-EPMC 加同一个 PMC 号。

这带来一个便利:S-EPMC7778911 这种 accession,后缀直接就是 PMC 编号。看到 S-EPMC 开头的记录,把后缀接到 europepmc.org/article/PMC/ 后面就能打开原文。

也有个坑:Europe PMC 里「有数据链接」的判断是自动的,会有误判。所以会出现 S-EPMC 记录里只有一条 DOI 链接、没有任何实质数据的情况。批量使用前先按「files 数 > 0 或 links 数 > 1」筛一遍。

§9 使用指引

9.1 四类用户怎么用

你的身份 主要需求 建议路径
找数据的分析者 找一个主题的全部研究 Web 检索 + EFO 扩展,再按 collection 过滤
建索引的工程师 批量抓元数据 /api/v1/search 分页抓 hit,逐条 /studies/{accno} 补全
要发数据的研究者 给论文找个归档 S-BSST 自建 study,PageTab 或 Web 表单
功能基因组学提交者 发芯片/测序数据 走 Annotare,落到 ArrayExpress collection

9.2 引用方式

单条记录可申请 DOI,格式为 10.6019/{accession},例如 10.6019/S-BIAD4297。库本身的方法学引用是 2018 年 NAR 论文(doi:10.1093/nar/gkx965);ArrayExpress 迁移的说明是 2021 年 NAR 论文(doi:10.1093/nar/gkaa1062);2026 年 JMB 有一篇更新的综述(doi:10.1016/j.jmb.2026.169874)。

引用时容易犯的错:只引库不引 accession。因为库里的内容随时在变,只引「BioStudies」等于没引。

9.3 版本与不可变性

库内为每条记录保留版本历史,但 Web 界面不展示这个功能(2018 年论文里就承认了这一点)。要做可复现研究,得在分析时记下抓取日期与 release_date,或者直接引用 DOI 版本。

文件层面,公开数据集支持 FTP 与 Aspera 两种协议下载,可断点续传。

9.4 提交侧的清单

要往 BioStudies 交一份数据,实际需要准备的东西不多,但顺序有讲究:

步骤 要准备的东西 常见返工点
1 想清楚哪些文件放这、哪些去专业库 把 200 GB 原始 reads 上传到 BioStudies,最终还得挪到 ENA
2 写一段 200 字以内的总述 写成摘要,读者看不出数据是什么
3 整理实验设计的受控词 用自由文本写「confocal-ish」,检索不到
4 收集外链:ENA / PRIDE / EMDB 的 accession 只放 DOI,不放具体数据 accession
5 作者信息与 ORCID 只写姓名,无法按人或按机构归并
6 资助信息 缺基金号,做资助产出统计时对不上
7 逐文件说明(可选,但强烈建议) 一百个文件全是 IMG_0001.tif

第 7 步是最容易被跳过、事后最后悔的一步。文件放在那,没有一行说明,三个月后连提交者自己也说不清哪张对应哪个样本。

9.5 引用时的三种写法

场景 写法 说明
引用某一项数据 Sarkans et al., BioStudies, S-BSST390, doi:10.6019/S-BSST390 最规范
引用库本身的方法学 Sarkans et al., Nucleic Acids Res 2018, doi:10.1093/nar/gkx965 讲「这个库怎么工作」
引用 collection 的整体 ArrayExpress collection in BioStudies, accessed 2026-10-26 讲「某集合的当前状态」时必须带访问日期

第三种最容易被忽略:collection 的内容每天都在变,写「ArrayExpress 有 8 万项研究」而不写日期,三年后这个数字就错了。

§10 AI 使用声明

本篇所有数字来自四处:BioStudies 检索 API(/api/v1/search,2026-10-26 查询,totalHits = 3,419,965)、各 collection 端点(/api/v1/{collection}/search,逐个查询)、单条记录 API(/api/v1/studies/{accno},用于 S-BSST390、S-BIAD4297、EMPIAR-13899 等)、以及三篇论文(2018 NAR、2021 NAR、2026 JMB 摘要)。

凡属本次查询得到的数字,文中注明了端点与日期。凡属论文声明的(如 ArrayExpress 平均每年 1,000 项新提交、2020 年单细胞占提交量 10% 以上),注明出处。

未做的核验:/api/v1/collections 端点返回 404,因此「当前有哪些 collection」无法从 API 直接获得,本文列出的七个 collection 是通过逐条记录的 AttachTo 字段与论文描述反推的,可能不全。全库 342 万条记录未做全量前缀统计——只能取 2 万条样本,且服务端在深分页(约 2 万条)处返回 HTTP 500,无法继续。isTotalHitsExact 在多处为 false,相关数字只能作量级参考。

PageTab 格式的实际字段定义未逐条核对——/api/v1/submissions/{accno} 端点返回 404,无法拿到原始提交文件。文中 §3.2 的骨架是依据记录结构反推的示意,不是官方格式原文,实际字段名与缩进规则请以官方提交文档为准。

ArrayExpress 迁移的具体过程(哪些数据在哪个批次迁的、有无遗漏)未做核对,只依据论文描述。

未覆盖:各 collection 的完整模板定义;版本历史 API 的实际行为;embargo 记录的可访问比例;S-EPMC 管道的触发规则细节(论文只说「自动检测到数据链接或补充材料」)。

常见误读(避坑清单)

误读 实际 依据
「BioStudies 有 342 万个数据集」 342 万是记录总数,其中多是论文级自动条目 API totalHits
「它存了所有数据」 多数记录只存描述与链接,文件在别处 S-BSST390:7 链 17 文件
「ArrayExpress 已关闭」 未关闭,并入成为 collection,8.1 万项研究全在 迁移论文
「ArrayExpress 的 accession 变了」 全部保留,旧链接重定向 迁移论文
「旧 XML API 还能用」 端点已迁移,XML 逐步弃用 迁移论文
「一次检索能拿全元数据」 新 API 只返回有限元数据,须逐条补 迁移论文
「搜索结果是精确计数」 isTotalHitsExact 常为 false 本次查询
「搜 accession 能精确定位」 会命中引用该 accession 的其他记录 本次查询:S-BSST390 返回 2 条
「metadata 许可宽松 = 所有文件都宽松」 元数据 CC0,文件许可随提交者 官方许可声明
「release_date 反映研究时间」 S-EPMC 统一打批次时间戳 2 万条样本统计
「collection 列表能 API 取」 /collections 端点 404 本次查询
「它是医学数据集库」 是通用生命科学归档,医学只是其中一部分 官方定位

FAQ

问:BioStudies 和 ArrayExpress 现在是什么关系?
答:ArrayExpress 已并入 BioStudies,成为其中的 ArrayExpress collection。原 accession(E-MTAB、E-GEOD 等)全部保留,原链接自动跳转。2026-10-26 查询该 collection 内有 81,014 项研究。2021 年之后新的功能基因组学数据通过 Annotare 提交,直接落到 BioStudies。

问:到底有多少条记录?
答:检索 API 在 2026-10-26 返回 totalHits = 3,419,965。这是全库所有类型的记录总数,不是研究数。其中占比最大的是 Europe PMC 自动生成的 S-EPMC 条目。

问:它和 GEO、SRA、ENA 有什么区别?
答:GEO / SRA / ENA 是测序数据的一手归档,存 reads 与样本元数据,字段强制。BioStudies 不存测序 reads,它存的是一篇论文的「全貌」:描述、指向 ENA 的链接、补充材料、显微图像、问卷、代码。定位是信封,不是仓库。

问:为什么搜 accession 会搜出不相关记录?
答:检索是全文索引加权,accession 只是其中一个字段。用 S-BSST390 检索返回 2 条:目标记录,以及一条引用了该 accession 的论文条目。要精确定位,直接用 studies/{accno}。

问:PageTab 是什么?必须用它吗?
答:PageTab(Page layout Tabulation)是一种纯文本表格格式,用缩进表达层级,任何表格工具都能生成。不是必须——少量数据用 Web 表单填就行。批量提交或项目级入库才需要 PageTab。

问:能不能只下元数据不下文件?
答:可以,而且这是最常见的用法。/api/v1/studies/{accno} 返回的就是纯 JSON 元数据,不含文件本体。

问:文件怎么下?
答:公开记录支持 FTP 与 Aspera,入口 https://ftp.ebi.ac.uk/biostudies/,路径按 accession 组织。单文件也可走 HTTP。

问:能给自己发表的数据申请 DOI 吗?
答:可以。格式为 10.6019/{accession}。2018 年论文里写明「DOIs can be assigned on request」,2026 年的记录里已能见到 10.6019/S-BIAD4297 这样的实例。

问:数据能不能先保密,等论文发表再公开?
答:可以。提交时可设 embargo,只对授权用户可见,也支持向评审专家开放一个只读链接。2018 年论文提到这是为同行评审设计的。

问:views 字段能当热度用吗?
答:只能当参考。它是页面浏览量,受爬虫、内部访问、索引刷新影响。同一批数据里 S-BSST390 是 676 次,而 2026 年 10 月新发的记录只有 8 次——差异主要来自时间,不是关注度。

问:S-EPMC 和 S-BSST 有什么本质差别?
答:S-EPMC 是管道自动生成(论文级信息 + 补充材料),作者没参与;S-BSST 是作者或项目方主动提交,元数据完整得多。用之前先看前缀。

问:能不能用它做系统综述的数据检索?
答:能,而且比 PubMed 更适合找「带数据的论文」。但要注意 EFO 扩展会带来大量近似命中,需要人工筛,isTotalHitsExact=false 的数字不能直接写进 PRISMA 流程图。

问:它是 ELIXIR 的核心资源吗?
答:是 ELIXIR Deposition Database,2017 年起。核心数据资源(Core Data Resource)是另一档认定,ArrayExpress 曾在 2017 年获得,BioStudies 的定位是 deposition 而非 core。

问:如果我只要欧洲的组学数据,用它还是用 ArrayExpress 老站?
答:用 BioStudies。老站已下线,数据都在 collection 里。

问:迁移后有没有数据丢失?
答:论文明确写「all the data submitted to ArrayExpress since 2002 will be available from BioStudies database without any changes and the accession numbers will be preserved」。本文未能独立核验这一点(无法对比迁移前后的全量清单),只能转述官方声明。

问:为什么 /api/v1/collections 是 404?
答:该端点不存在。拿 collection 全量的唯一办法是用 /api/v1/{collection}/search,或用空 query 加 collection 过滤。要发现「有哪些 collection」,只能靠文档、论文、或对记录 AttachTo 字段做聚合。

问:全量抓取现实吗?
答:不现实。深分页在约 2 万条处返回 HTTP 500。要做全量,得按时间窗或 accession 前缀切片,分批抓。

问:它和 Figshare 的「collection」是同一个概念吗?
答:不是。Figshare 的 collection 是人工策展的展示集合,成员可以来自不同作者;BioStudies 的 collection 是入库管道与模板的分组,决定了记录的字段结构和检索维度。

问:医学数据集在这库里占多少?
答:没有官方口径,也无法从 API 直接统计(无 collection 级医学分类)。从实际观察,医学相关内容主要分布在 ArrayExpress(疾病相关的表达研究)、S-EPMC(临床论文的补充材料)与部分 S-BSST 记录里,但没有独立的「医学影像」collection。

问:它能替代机构自己的数据仓库吗?
答:不能完全替代,但可以互补。机构仓库负责内部权限与长期治理,BioStudies 负责对外可见性与文献关联。很多项目的做法是:内部存一份,公开时同步一条 S-BSST 记录指向内部或专业库。

问:文档在哪?
答:https://www.ebi.ac.uk/biostudies/ 的 Help 与 About 页;ArrayExpress 迁移的字段映射表在 https://www.ebi.ac.uk/biostudies/ArrayExpress/help。API 的完整端点清单在官方文档站,但部分端点已下线,以逐个访问的结果为准。

术语表

术语 含义
study BioStudies 的最小单位,一条 accession 对应一项研究
collection study 的分组,决定模板与检索维度
section / subsection study 内部的层级结构块
PageTab Page layout Tabulation,用缩进表达层级的纯文本表格格式
MAGE-TAB 微阵列与基因表达数据的标准表格格式,ArrayExpress 的原始格式
Annotare EMBL-EBI 的功能基因组学提交工具,输出 MAGE-TAB
EFO Experimental Factor Ontology,实验因子本体,用于检索扩展
accession 记录唯一标识,前缀表示来源(S-BSST 自建、S-EPMC 文献、E-MTAB 测序等)
AttachTo 记录所属 collection 的字段
EMPIAR Electron Microscopy Public Image Archive,电镜图像归档,经 BioImages 通路入 BioStudies
BioImages BioStudies 下的生物图像 collection
ELIXIR 欧洲生命科学数据基础设施
Deposition Database ELIXIR 对「接受数据存储」类资源的认定
embargo 数据已入库但暂不公开,只对授权用户可见
isTotalHitsExact 检索响应里的标志,false 表示命中数是近似值

附录 A:核心数字核对表

项 值 来源 可否自行复算
全库记录数 341.99 万 /api/v1/search totalHits 可,一次请求
ArrayExpress collection 81,014 /api/v1/ArrayExpress/search 可
BioImages collection 5,235 同上端点 可
BioImages-EMPIAR 3,113 同上端点 可
EurocanPlatform 2,710 同上端点 可
EU-ToxRisk 1,301 同上端点 可
HeCaToS 373 同上端点 可
diXa 293 同上端点 可
ArrayExpress 平均年提交 约 1,000 项 2021 NAR 论文 不可(需逐年数据)
2020 年单细胞占比 10% 以上 2021 NAR 论文 不可
多资源链接的研究占比 约三分之一 2018 NAR 论文 不可(口径为 33 万条时快照)
其中跨多资源 约 12% 2018 NAR 论文 不可
S-BSST390 文件数 17 记录 API 可
S-BSST390 外链数 7 记录 API 可
检索深分页上限 约 2 万条 本次查询,之后 HTTP 500 可

附录 B:数字的来源分层

层级 覆盖的数字 可信度 处理方式
API 查询 全库记录数、各 collection 数、单条记录字段 高(可复现,但有 isTotalHitsExact 问题) 注明端点与日期
论文声明 年提交量、单细胞占比、多资源链接比例、迁移时间线 中高 直引,注明文献
官方页面 库的定位描述、提交入口 高 直引
本文推断 collection 清单的完整性、PageTab 骨架、前缀分布 低至中 正文明确标为推断或示意

附录 C:完整参考文献

  1. Sarkans U, Füllgrabe A, Ali A, Athar A, Behrangi E, Diaz N, Fexova S, George N, Iqbal H, Kurri S, Munoz J, Rada J, Papatheodorou I, Brazma A. From ArrayExpress to BioStudies. Nucleic Acids Res. 2021;49(D1):D1502–D1506. doi:10.1093/nar/gkaa1062
  2. Sarkans U, Gostev M, Athar A, Behrangi E, Melnichuk O, Ali A, Minguet J, Rada JC, Koureas D, Brazma A, et al. The BioStudies database — one stop shop for all data supporting a life sciences study. Nucleic Acids Res. 2018;46(D1):D1266–D1270. doi:10.1093/nar/gkx965
  3. McEntyre J, Sarkans U, Brazma A. The BioStudies database. Mol Syst Biol. 2015;11:847. doi:10.15252/msb.20156658
  4. Athar A, Behrangi E, Martinez Jimenez M, Munoz Serrano JM, Rada Mesa JC, Ragueneau E, Sarkans U. BioStudies Database: A Platform for Life Sciences Study Data Dissemination. J Mol Biol. 2026;438(18):169874. doi:10.1016/j.jmb.2026.169874
  5. Moreno P, Fexova S, George N, et al. Expression Atlas in 2026: enabling FAIR and open expression data through community collaboration and integration. Nucleic Acids Res. 2026. doi:10.1093/nar/gkaf1238

附录 H:BioImages 模板的字段结构

BioImages(S-BIAD 前缀)是 BioStudies 里结构最完整的一类模板,值得单独拆开看,因为它示范了「多维图像数据该怎么描述」。

以 S-BIAD4297 为例(2026-10-26 发布,一项关于丘脑底核分子图谱的研究),它的 section 类型分布是:

section 类型 数量 作用
Author 8 作者,各带 ORCID 与单位引用
Funding 7 资助,含 Agency 与 grant_id
organisation 4 单位全称,被 Author 引用
Biosample 1 生物样本:物种、组织、变量
Specimen 1 具体标本
Image acquisition 1 成像参数
Image correlation 1 图像与样本的对应关系
Study Component 1 研究组件

Biosample 块的字段值得抄下来当模板:

字段 示例值
Title Biosample 1 - 10yo NHP
Organism Macaca mulatta (rhesus monkey)
Description Brain sections
Biological entity Adult macaque brain sections
Experimental variable N/A
Extrinsic variable N/A
Intrinsic variable FISH labelling of brain tissue using different markers

三个变量字段(Experimental / Extrinsic / Intrinsic)是这套模板的核心设计:它把「我们主动改的」「外部施加的」「样本自带的」三类因素分开。这在设计对照实验的描述时很有用——读者一眼能看出哪些是干预、哪些是分组依据、哪些是混杂因素。

对比一下 S-BSST390 那种通用模板(Experimental design 连写五个自由值),BioImages 的结构化程度明显更高。这也是为什么做图像数据的团队更愿意用它:字段定了,别人才能可靠地按「成像方式」「物种」「变量」检索。

附录 I:一条 S-EPMC 记录的解剖

自动生成的记录是库里数量最多的一类,但很少有人细看它长什么样。拆一条就能明白为什么不能把它当「数据集」用。

S-EPMC 记录的结构通常只有四块:

块 内容 完整度
Study 标题、描述(多为摘要首段)、发布日期 有
Publication PMID、作者串、标题、年份 有
Author 姓名、ORCID(若 Europe PMC 有)、单位引用 视情况
links DOI、数据资源链接 有,但常只有 DOI

与 S-BSST390 对照,缺的是:实验设计的受控词、物种、样本数、逐文件说明、机构全称、资助信息、版本历史。

它的 files 字段通常只有 1(补充材料打包),links 字段 1–4。这就是为什么用它做「数据集调研」会失望:你能知道「有这么一篇论文,它可能有数据」,但拿不到「数据是什么、多少、能不能下」。

正确用法是把它当文献的数据线索索引:从 S-EPMC 记录反查 DOI 与 PMID,再去 Europe PMC 看全文的 Data Availability 段,最后去具体专业库取数。它在链条的中间,不是终点。

一个可用的筛选规则:files >= 5 or links >= 3 的 S-EPMC 记录,才是真正值得点开的。这个阈值是从样本里试出来的——大多数纯文献条目落在 files=1, links=1。

附录 J:五个常见任务的完整代码

J.1 列出某 collection 的全部 accession

import urllib.parse, urllib.request, json, time

BASE = "https://www.ebi.ac.uk/biostudies/api/v1"

def accnos(collection, cap=5000):
    out, page = [], 1
    while len(out) < cap:
        url = f"{BASE}/search?" + urllib.parse.urlencode(
            {"query": "", "page": page, "pageSize": 1000})
        url += "&collection=" + urllib.parse.quote(collection)
        try:
            req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"})
            d = json.loads(urllib.request.urlopen(req, timeout=90).read())
        except Exception:
            break
        hits = d.get("hits") or []
        if not hits:
            break
        out += [h["accession"] for h in hits]
        page += 1
        time.sleep(0.5)
    return out[:cap]

ids = accnos("BioImages-EMPIAR", cap=3500)
print(len(ids), ids[:3])

J.2 提取每条记录的「文件数 / 外链数」

def profile(accno):
    try:
        rec = study(accno)          # 复用附录 F 的 study()
    except Exception:
        return None
    sec = rec.get("section", {})
    n_files = len(sec.get("files") or [])
    n_links = len(sec.get("links") or [])
    for sub in sec.get("subsections") or []:
        n_files += len(sub.get("files") or [])
        n_links += len(sub.get("links") or [])
    return {"accno": accno, "files": n_files, "links": n_links}

rows = [profile(a) for a in ids[:200]]

J.3 把嵌套 section 拍平成宽表

import collections

def to_row(sec):
    row = collections.defaultdict(list)
    def rec(s):
        for a in s.get("attributes", []):
            row[a["name"]].append(str(a.get("value")))
        for sub in s.get("subsections") or []:
            rec(sub)
    rec(sec)
    return {k: " | ".join(v) for k, v in row.items()}

同名属性会重复出现(比如三个 Experimental design),用 | 拼起来,比覆盖丢失信息要好。

J.4 按 accession 前缀过滤

import re
def by_prefix(ids, prefix):
    return [a for a in ids if a.startswith(prefix)]

epmc = by_prefix(ids, "S-EPMC")
biad = by_prefix(ids, "S-BIAD")

因为 API 不支持前缀检索(query=S-EPMC 只返回 1 条),这一步只能在本地做。抓全量再过滤是唯一可靠的路子。

J.5 检查一条记录是否已下架

def alive(accno):
    try:
        study(accno)
        return True
    except Exception:
        return False

返回 404 说明记录不存在或已撤。注意不要和服务端 500 混为一谈——500 是临时故障,重试即可。

附录 K:它不适合做什么

把边界写清楚,比把优点写清楚更有用。

想做 为什么不适合 改用什么
拿一批医学影像直接训分割模型 库内没有统一的影像 collection,数据分散在多处 找专项影像数据集
统计「全球每年产出多少组学数据」 release_date 被批次化,S-EPMC 全是 1 月 1 日 用 ENA / GEO 的提交统计
做「数据集热度排行」 views 受爬虫与索引刷新影响 用下载量或引用量
找「中国的医学数据集」 无地理字段,只能靠标题关键词猜 用国家科技资源目录
做元数据的机器学习 字段不统一,跨 collection 无法直接拼表 先用 collection 内数据
存超大文件(TB 级) 有 FTP / Aspera,但定位不是大文件仓库 ENA / EMPIAR / 机构仓库
需要严格的 schema 校验 校验宽松,错误会静默通过 GEO(有强制字段)
需要实时同步最新论文 管道有批处理延迟 Europe PMC 实时检索

附录 L:术语的三层翻译

BioStudies 的文档是全英文的,且有自己的一套说法。这里给一张对照表,省去查文档的时间。

英文 中文常用说法 实际含义 容易混淆的点
study 研究 / 条目 一条 accession 对应的记录 不等于「一篇论文」,一个研究可以没有论文
submission 提交 提交动作,或正在提交中的记录 与 study 不是同一类对象
collection 集合 / 专辑 模板与检索维度的分组 不是「人工策展的精选集」
section 段 / 块 记录内的结构单元 与「章节」无关
subsection 子段 段的嵌套 可多层
attribute 属性 / 字段 键值对 同名可重复出现
link 外链 指向其他库的 URL 或 accession 不是超链接文本
accession 编号 / 登录号 记录唯一 ID 前缀决定来源,不决定内容
release_date 发布日期 记录对公众可见的日期 不是数据产生的日期
embargo 禁运期 / 暂不公开 已入库但对公众不可见 不等于私有数据
deposition 存缴 正式提交数据入库 与「上传」区别在正式性
curation 审编 人工整理与校验 BioStudies 只对部分记录做
template 模板 决定字段结构的预定义 schema 换 collection 就换模板

附录 M:一次完整迁移的检查清单

如果你所在机构也在做「旧库并入新库」这件事,ArrayExpress 这次的清单可以直接借用:

检查项 ArrayExpress 的做法 是否可复用
accession 是否保留 全部保留 必须
旧链接是否重定向 是,永久 必须
数据内容是否改动 一个字节没改 应尽量
是否先并行再下线 并行一年 强烈建议
原始格式是否保留 MAGE-TAB 原文件保留 建议
是否新增便利视图 加了因子组合汇总表 建议
API 是否兼容 不兼容,端点全换 需提前公示
字段映射表是否公开 是,有专门的帮助页 必须
是否给了迁移窗口 一年 视规模
文档是否说明弃用计划 是,XML 逐步弃用 必须

最后一条最常被忽略:弃用要有时间表。只说「将来会弃用」而不给日期,用户会一直拖到最后一天。

附录 N:判断「这条记录值不值得点开」的三秒法

库里 342 万条,不可能每条都看。给一个快速筛选的流程:

  1. 看前缀。S-BSST、S-BIAD、EMPIAR → 大概率有实质文件,值得看;S-EPMC、S-SCDT → 大概率是文献打包,先看 files 与 links 数。
  2. 看 files 与 links 的比例。files=1, links=1 → 跳过;links>=3 或 files>=5 → 值得点。
  3. 看有没有 Experimental design 或 Organism。有 → 元数据结构化过;没有 → 只有自由文本描述。

这三步走完,能过滤掉大约七成不值得看的记录。

附录 D:把它接进自家管线的四个决策

D.1 用 BioStudies 还是用专业库

你的数据 建议去处 理由
测序 reads ENA / SRA 只有它们接受原始 reads
芯片与表达矩阵 Annotare → ArrayExpress collection 唯一支持 MAGE-TAB 的通路
质谱 PRIDE 社区标准
显微图像 BioImages(S-BIAD) 支持多维图像与元数据
电镜图像 EMPIAR → BioImages-EMPIAR 大文件专用
问卷、代码、模型权重、补充材料 S-BSST 自建 study 没有专业库,正好是它的定位
多模态混装 S-BSST + 外链专业库 这正是它的设计意图

D.2 元数据写多细

有个权衡:写得越细,别人越容易用;写得越多,成本越高。

按经验分三档:

档位 内容 适用
最低 标题、一句话描述、外链 补充材料归档
中等 加实验设计受控词、物种、样本数、作者 ORCID 大多数自建 study
详细 加逐文件说明、逐样本属性、资助信息、机构 项目级入库、要长期维护的数据

S-BSST390 属于详细档:五种实验设计、七条外链、三位作者带 ORCID、七条资助。这份投入换来的是别人能按「用了冷冻电子断层扫描」把这项研究检索出来。

D.3 要不要走 PageTab

如果记录少于十位数,Web 表单足够。如果是项目级(几十到几千条)或者需要复杂嵌套(每个样本三张图各带属性),PageTab 更省事——因为它是纯文本,能脚本生成、能 diff、能进版本控制。

一个实用建议:先用脚本生成 PageTab,本地校验层级缩进和必填字段,再上传。库端的校验宽松,错误会静默通过,事后发现时记录已经公开了。

D.4 什么时候该用 collection

如果你是一个持续产出的项目(比如一个十年的队列研究,每年发几十条记录),值得申请建立专属 collection。好处有三:统一模板、专属分面、一个共同的入口页。

代价是:需要跟 EMBL-EBI 协商,且一旦确立模板,后续所有记录都得按它走,改模板的成本很高。

附录 E:与 Zenodo / Figshare 的实操对照

场景 BioStudies Zenodo Figshare
存 100 GB 原始测序数据 不适用,去 ENA 可以但慢 可以但付费档才够
存一篇论文的补充材料 原生支持 支持 支持
拿到可引用的 DOI 有(10.6019/) 有 有
与专业库自动关联 强(管道自动打包) 无 无
按主题批量检索 强(EFO 扩展 + 分面) 弱 弱
版本管理 库内有,界面不展示 有,界面清晰 有
长期保存承诺 EMBL-EBI 核心资源 CERN 托管 商业公司
适合放论文里当数据引用 非常合适 合适 合适

一句实操建议:如果数据主体在专业库里,用 BioStudies 做信封;如果数据主体就是一堆独立文件,用 Zenodo。 两边都放一份不是错,但引用时要指明以哪份为准。

附录 F:一个 30 行的最小可用检索脚本

import urllib.parse, urllib.request, json, time

BASE = "https://www.ebi.ac.uk/biostudies/api/v1"

def _get(url, retries=3):
    for i in range(retries):
        try:
            req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"})
            return json.loads(urllib.request.urlopen(req, timeout=60).read())
        except Exception as e:
            if i == retries - 1:
                raise
            time.sleep(2 * (i + 1))

def search(query, collection=None, page=1, size=100):
    url = f"{BASE}/search?" + urllib.parse.urlencode(
        {"query": query, "page": page, "pageSize": size})
    if collection:
        url += "&collection=" + urllib.parse.quote(collection)
    return _get(url)

def study(accno):
    return _get(f"{BASE}/studies/{accno}")

def flat(sec, depth=0):
    for a in sec.get("attributes", []):
        yield depth, a["name"], a.get("value")
    for sub in sec.get("subsections") or []:
        yield depth, "[" + str(sub.get("type")) + "]", sub.get("accno", "")
        yield from flat(sub, depth + 1)
    for l in sec.get("links") or []:
        yield depth, "LINK", l.get("url")
    for f in sec.get("files") or []:
        yield depth, "FILE", f.get("path")

用它可以做三件事:按主题检索、按 collection 检索、把任意一条记录的嵌套结构拍平成表。「拍平」这一步是后续做 DataFrame 分析的前提。

附录 G:三个容易踩的工程坑

G.1 深分页中断

page 到 2 万条左右返回 HTTP 500。写循环时一定要有 try/except 与 cap,否则跑一夜的抓取任务会在中途静默停住。

G.2 空 query 的两种含义

?query=(空)返回全库,?query=* 返回 0 条。这个行为反直觉,已核对:空串走「无过滤」,星号被当字面量。写脚本时不要用星号做通配。

G.3 时间戳陷阱

release_date 对 S-EPMC 是批次时间,不是研究时间。做时间序列前先按前缀分组,把 S-EPMC 单独处理,否则会得到一堆 1 月 1 日的假尖峰。

附录 O:三个真实场景的完整走法

抽象地讲「信封」不如看三次具体的使用。下面三个场景都是这个库最典型的用法。

O.1 场景一:给一篇已发表的论文找齐数据

你在读一篇 2024 年的空间转录组论文,Methods 里提到「数据已存入 ArrayExpress,编号见补充材料」。接下来该怎么走?

第一步,找 accession。 如果论文在 Europe PMC 有记录且被管道识别到数据链接,搜标题就能找到一条 S-EPMC 记录,它的 links 字段里有你要的编号。

第二步,拿 E-MTAB 编号直接查。 访问 studies/E-MTAB-xxxx,返回的是结构化的元数据:物种、实验类型、技术类型、样本数、因子取值。

第三步,看「因子组合汇总表」。 这是迁移后新增的视图,直接告诉你「有几种条件、每种几个样本」,不用自己解析 SDRF。

第四步,下文件。 公开记录走 FTP 或 Aspera。注意有些研究只是「brokered to ENA」——BioStudies 里只有描述,reads 要去 ENA 拿。判断方法:看 files 数,如果只有 1–2 个文件,大概就是 MAGE-TAB 描述文件,真正的数据在别处。

第五步,记下访问日期。 这条记录可能被更新,写论文时把 release_date 与访问日期一起记下。

整条链路走完大概五分钟,前提是论文作者老实填了 accession。如果没填,就得从 S-EPMC 记录的 DOI 跳回全文,去 Data Availability 段里挖。

O.2 场景二:给自家项目建一个可持续的归档

假设你们是一个做罕见病队列的团队,十年里积累了 800 名患者的全外显子、血清代谢组、面部照片、量表评分。论文每年发几篇,数据要公开但没有一个专业库能装全。

第一步,判断分流。 全外显子去 EGA(有受控访问机制,适合人类基因组数据);代谢组可以去 MetaboLights;面部照片与量表没有专业库,正好是 S-BSST 的用途。

第二步,建一条 study 做总入口。 描述写清队列设计、纳排标准、随访节点;外链分别指向 EGA 与 MetaboLights 的 accession;把照片与量表作为文件放在这条 study 下。

第三步,用 PageTab 生成而不是手填。 800 名患者的样本级信息不可能在网页表单里一条条填。写脚本生成 PageTab,本地校验层级与必填字段,再上传。

第四步,考虑申请专属 collection。 如果这个队列会持续产出(每年新增几十条记录),值得跟 EMBL-EBI 谈一个 collection:统一模板、专属分面、一个共同入口页。代价是模板定下来后改动成本高。

第五步,设好 embargo 与发布节奏。 数据可以先私有,等论文接收再公开;也可以给评审专家开只读链接。

这个场景里最容易做错的是第一步:把所有数据一股脑塞进 BioStudies。800 人的全外显子可能有几 TB,那不适合放这;而且人类基因组数据涉及受控访问,必须走 EGA 这类有访问控制机制的库。

O.3 场景三:做一次「这个领域有哪些公开数据」的调研

你要写一篇某疾病影像 AI 的综述,需要一份尽量完整的公开数据集清单。

第一步,从 BioStudies 找线索。 搜疾病名(比如 liver disease)+ 看 EFO 扩展出来的命中。这一步的目的是发现「有哪些研究涉及这个疾病」,而不是直接拿到数据集清单。

第二步,按 accession 前缀分流。 E-MTAB 与 E-GEOD 是功能基因组学,与影像无关,可以排除;S-BSST 与 S-BIAD 可能有影像数据;S-EPMC 需要逐条看 links 有没有指向影像库。

第三步,交叉验证。 BioStudies 找出来的线索,去 EBI Search 或 Google Dataset Search 交叉核对,看在别的平台是否有对应的数据集条目。

第四步,标注来源与访问日期。 综述里写「截至某日,BioStudies 中检索到 N 条相关记录」,比写「该领域有 N 个公开数据集」要诚实得多,因为这两件事不是一回事。

这个场景最能体现 BioStudies 的正确位置:它是线索的起点,不是终点。指望它直接给你一份「可以直接拿来训模型的数据集清单」,会失望;把它当「发现有哪些研究、它们的数据在哪」的目录用,效率很高。

附录 P:与五个邻近概念的辨析

BioStudies 的定位容易被几个邻近概念搞混。逐一说清。

概念 是什么 与 BioStudies 的区别
数据仓库(data warehouse) 为分析优化、做过清洗与整合的存储 BioStudies 不做清洗与整合,只做归档与连接
数据湖(data lake) 原始格式全量堆存,用时再解析 BioStudies 存的是「描述」,文件常在别处
数据目录(data catalog) 元数据索引,指向实际数据位置 这个最接近,但 BioStudies 也存一部分文件
机构仓库(institutional repository) 机构内部治理的存储 BioStudies 是公共基础设施,无机构权限体系
通用存储(Zenodo / Figshare) 面向所有学科的通用归档 BioStudies 有专业库链接体系与文献直连

如果一定要给一个准确的说法:BioStudies 是「带存储能力的、面向生命科学的、与文献系统直连的数据目录」。这四个限定词缺一个都不准确——去掉「带存储能力」就成了纯索引,去掉「生命科学」就和 Zenodo 重叠,去掉「与文献直连」就丢掉了它最独特的部分。

附录 Q:如果它明天消失,什么会真的坏掉

做一个假想推演,能看清一个库的真实价值在哪。

会立刻坏掉的:Europe PMC 里几十万条记录的「数据链接」会变成死链;Springer Nature 期刊补充材料的托管地址会失效;ArrayExpress 迁移后的所有 accession 解析会中断;引用过 10.6019/ DOI 的论文,其数据引用会失效。

会逐渐坏掉的:Expression Atlas 的上游数据管道断了,它需要另找来源;BioImages 与 EMPIAR 的图像元数据失去统一入口;各项目(HeCaToS、EU-ToxRisk、EurocanPlatform)的策展层失去承载。

不会坏的:ENA 的原始 reads、PRIDE 的质谱数据、GEO 的芯片数据——这些都在各自的库里,BioStudies 只是指向它们。这也正是它的设计意图:让「连接」这一层的故障不至于波及「存储」这一层。

反过来看,这个推演说明了它的脆弱点:它的价值集中在那张「连接表」上,而连接表是可以被重建的(虽然成本高)。相比之下,ENA 里那些 reads 是不可替代的。这就是为什么它的机构投入能持续,但优先级永远排在专业库之后。

编辑说明

本篇的数字来源分三层,已在附录 B 列明:BioStudies 检索 API 查询(2026-10-26,全库 totalHits、各 collection 计数)、单条记录 API 查询(S-BSST390、S-BIAD4297、EMPIAR-13899、E-MTAB-15859、S-ECPF-UCON-2)、以及四篇文献(2018 NAR、2021 NAR、2015 MSB、2026 JMB 摘要)。

核对过程中发现的三个与预期不符的情况,已在正文标注:①/api/v1/collections 与 /api/v1/studies 均返回 404,无法通过 API 枚举 collection 与记录;②深分页在约 2 万条处返回 HTTP 500;③带 collection 过滤时 isTotalHitsExact 大量为 false,命中数被截断在 1002–1004 附近。

未做的核验:全库 342 万条未做全量统计(技术上不可行,见上条);S-EPMC 与 S-SCDT 两类自动条目的确切数量无法获得,只能从 2 万条样本中估计其占绝对多数;PageTab 的官方字段定义未取得(/api/v1/submissions/{accno} 返回 404),§3.2 的骨架为依据记录结构反推的示意;ArrayExpress 迁移的数据完整性只能转述论文声明;embargo 记录的比例无法统计。

未覆盖:各 collection 的完整模板;版本历史 API 的实际返回格式;FTP 站点的目录组织细节;S-MBRS、S-VHPS、S-ONTX、S-RHER、S-TOXR 等小众前缀的确切含义(仅从 accession 命名推测)。

元数据许可为 CC0 1.0,本篇引用其结构与统计属学术评论与工程说明,不构成对任何数据本体的再分发。


相关数据集导航

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

  • ena — 共享标签:多模态 / 基因组学与多组学 / 公共卫生与流行病学
  • gbif — 共享标签:多模态 / 基因组学与多组学 / 公共卫生与流行病学
  • impc — 共享标签:基因组学与多组学 / 公共卫生与流行病学
  • alphamissense — 共享标签:基因组学与多组学 / 公共卫生与流行病学
  • ckb — 共享标签:基因组学与多组学 / 公共卫生与流行病学
  • uk-biobank — 共享标签:基因组学与多组学 / 公共卫生与流行病学
  • all-of-us — 共享标签:基因组学与多组学 / 公共卫生与流行病学
  • sra — 共享标签:基因组学与多组学 / 公共卫生与流行病学
  • complexportal — 共享标签:多模态 / 基因组学与多组学
  • rnacentral — 共享标签:多模态 / 基因组学与多组学

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

返回 AI-Ready 数据集