信息速览
NMDC 数据门户是一个把五类组学放在同一批样本上的环境微生物组发现平台。五类分别是宏基因组、宏转录组、宏蛋白组、代谢组与天然有机质表征。前四类在别处还能拼凑,第五类——天然有机质的高分辨质谱分子式表征——在其他主流资源里几乎见不到与之并列的完整层。
它由美国能源部生物与环境研究办公室资助,劳伦斯伯克利国家实验室牵头,参与单位包括橡树岭、太平洋西北等国家实验室。数据来源是能源部的两座用户设施:负责测序的 JGI 与负责质谱的 EMSL。门户本身不存原始读段,存的是标准化工作流产物,原始文件沿标识指向 NCBI 与 JGI。
需要提前说清楚的一点:门户已进入移交阶段,官方公告将把核心功能并入 DOE-BRIDGE,维护主体正在变化;同时,官方明确声明不支持人体微生物组数据,人体菌群研究者不必在此停留。一屏速览见下表。
| 项目 | 内容 |
|---|---|
| 数据集名称 | NMDC 国家微生物组数据门户 |
| 英文全称 | NMDC: National Microbiome Data Collaborative Data Portal |
| 数据模态 | 宏基因组、宏转录组、宏蛋白组、代谢组、天然有机质 |
| 层级模型 | study → biosample → omics(data_generation 与 data_object) |
| 研究数 | 92 项(research_study 42、consortium 50) |
| 生物样本数 | 27,448 |
| 组学产出数 | 28,113 条 data_generation |
| 文件登记数 | 278,022 条公开文件 |
| 论文规模口径 | 10.2 TB(2022 年,Nucleic Acids Research) |
| 数据格式 | JSON(API)、CSV/TSV、GFF、FASTA、BAM、mzML 类原始文件、BIOM 外链 |
| 许可证 | CC BY 4.0 |
| 访问级别 | 开放(无 embargo,ORCiD 仅用于登录提交) |
| 元数据标准 | nmdc-schema(LinkML 11.25),MIxS 对齐,ENVO 受控词 |
| 发布机构 | 劳伦斯伯克利国家实验室(LBNL)、太平洋西北国家实验室(PNNL)等 |
| 官方主页 | https://data.microbiomedata.org/ |
| API 文档 | https://api.microbiomedata.org/docs |
| DOI | 10.1093/nar/gkab990 |
| 页面状态 | published |
§1 它要解决的那个缺口
1.1 五类组学挂在同一个样本上,这件事为什么罕见
环境微生物学有一句被反复引用的抱怨:同一个样本,DNA 测了一遍、RNA 测了一遍、蛋白测了一遍、代谢物测了一遍,结果分散在四个不同的库、四套不同的样本编号、四套不同的元数据表里,谁都对不上谁。
原因不复杂。测序在测序中心做,蛋白与代谢在质谱平台做,两边各有一套样本编号规则,各有一套元数据模板。等数据回到研究者手里,样本的对应关系往往只剩实验室笔记本上的手写记录。跨组学分析的第一步就变成了人工对齐,而这一步极容易出错。
NMDC 做的事情本质上是把这一层对齐提前到了基础设施层:样本先在提交门户登记一次,拿到一个 NMDC 生物样本标识;随后不论在 JGI 测序还是在 EMSL 做质谱,产出都指向这个标识。检索时可以按这枚标识把五类产出一次拉齐。
这件事的价值在于它给出了一条完整链条。DNA 层的宏基因组说明「有哪些基因」,RNA 层的宏转录组说明「哪些基因正在被转录」,蛋白层说明「哪些酶真的被翻译出来」,代谢层与天然有机质层说明「物质层面发生了什么转化」。四个层次叠在同一份样本上,才能讨论基因表达与生态功能之间的落差。任何一层缺失,讨论就只能停留在一个侧面。
1.2 它有、别处没有的那两层
把 NMDC 与同类资源放在一起时,最容易忽略的是宏蛋白组与天然有机质这两类。
宏蛋白组要求质谱平台在采样现场或者极短时间内完成快速冷冻与前处理,普通课题组很难组织。EMSL 作为用户设施具备这种能力,于是宏蛋白组产出的来源被限定在了少数设施项目的样本上。这也是它数量稀少的原因:API 里 metaproteome 这一 analyte_category 只有 74 条。
天然有机质表征则更特殊。它用直接进样傅里叶变换离子回旋共振质谱(FT-ICR MS)解析溶解性有机物的分子式组成,是研究碳循环的关键测量手段,却长期以补充材料的表格形式散落在论文里。NMDC 把它作为一等数据类别登记进元数据模型,给出独立的 analyte_category 与文件类型,这在公开的多组学资源里极少见。
1.3 你的处境与它能帮到的事
| 你的处境 | 它能帮你什么 |
|---|---|
| 有一批环境样本,测序在 JGI,质谱想送 EMSL | 提交门户一次登记,两座设施的产出回到同一生物样本下 |
| 想找 DNA、RNA、蛋白、代谢物四层齐全的样本做联合分析 | 按 biosample 检索,用 upset 视图看每个样本上的组学层数 |
| 想复现某篇环境宏基因组论文的标准化产物 | 门户存有工作流版本化产物,不必自己从头跑组装与注释 |
| 想研究碳循环,需要天然有机质的分子式数据 | 按 NOM 类别检索,直接拿到 FT-ICR MS 原始与解析结果 |
| 想找一个真实的多组学元数据模型做参考 | nmdc-schema 以 LinkML 写成,有完整类与槽文档 |
| 想搭一套跨设施的数据提交流程 | 元数据模板与校验规则可直接借用,字段与 MIxS 对齐 |
1.4 不适合谁:四条边界
如果你的需求是人体肠道菌群,它给不了你任何东西。 官方 FAQ 只用一句话就关上了这扇门:NMDC 不支持人体微生物组数据,聚焦环境微生物组。人体菌群去 curatedMetagenomicData 或 Qiita 上的宿主相关研究。
如果你要的是原始 FASTQ 的长期归档,它只负责指路。 门户自述不存储原始组学数据,是指向原始库的发现平台。原始读段在 NCBI 与 JGI,门户只保存工作流产物与指向外部的标识。
如果你要的是全库统一重处理的丰度矩阵,它不是这个定位。 门户按研究分别处理,工作流版本随年份变化,不同研究之间的产物不能直接拼表。统一重处理是 MGnify 的活。
如果你要的是长期稳定的服务承诺,现在不是时候。 门户已公告并入 DOE-BRIDGE,官方 FAQ 对服务期限的表述只有 short-term 一词。
§2 数据构成与规格
2.1 先说数字的口径
官方论文口径与门户当前的实际记录之间存在明显距离,动手前必须分清。
论文发表于 2022 年,正文写的是门户托管 10.2 TB 多组学微生物组数据,覆盖五类数据、来自 JGI 与 EMSL 两座设施。这是目前唯一公开的总体规模数字,此后官方没有再发布修订值。
门户首页如今返回的是合并公告而不是统计面板,于是可核对的最新口径只能从 Runtime API 的集合统计取。2026 年 10 月 29 日抓取的结果如下表。这两组数字不是同一件事:前者是字节规模,后者是记录条数,无法直接换算。
| 集合 | 记录数 | 含义 |
|---|---|---|
| study_set | 92 | 一项研究一行,其中 research_study 42、consortium 50 |
| biosample_set | 27,448 | 一个生物样本一行,是跨组学连接点 |
| data_generation_set | 28,113 | 一次组学测定一行 |
| data_object_set | 311,155 | 一个文件一行,含全部状态 |
| data_object_set(公开端点) | 二十七点八万 | 过滤掉质控失败与已被取代者 |
| workflow_execution_set | 38,359 | 一次工作流运行一行 |
| material_processing_set | 35,234 | 一次样本处理(采样、提取、建库等)一行 |
| processed_sample_set | 37,504 | 处理后的样本分行 |
| field_research_site_set | 110 | 野外采样点 |
| instrument_set | 21 | 仪器 |
| functional_annotation_agg | 五千一百万级 | 基因与功能注释的配对,不是基因数 |
最后一行需要特别说明。五千一百多万是「一个基因被赋予一个功能标识」这样的配对条数,同一个基因会被 KO、Pfam、COG、TIGRFam 等多个体系各注一次,因此它既不等于基因数,也不等于功能数。把它当作基因总数引用会高估一到两个数量级。
2.2 五类组学各自的深度
按 data_generation 的 analyte_category 字段统计,门户当前的组学层深度如下。这一字段比 data_generation 的类名更能区分层次:类名只有测序与质谱两种,analyte_category 才落到具体的组学类型。
| analyte_category | 条数 | 说明 |
|---|---|---|
| metagenome | 16,144 | 宏基因组,绝对主力 |
| nom | 6,652 | 天然有机质表征 |
| metabolome | 3,322 | 代谢组 |
| amplicon_sequencing_assay | 1,312 | 扩增子,登记但不属五类之列 |
| metatranscriptome | 411 | 宏转录组 |
| lipidome | 198 | 脂质组,五类之外的第七类 |
| metaproteome | 74 | 宏蛋白组,最稀缺 |
这张表说明两件事。第一,宣传语里的「五类」是名录意义上的并列,不是数量意义上的均衡:宏基因组一条腿占了绝大多数,蛋白与转录两条腿细得像毛细血管。第二,实际存在的层数比五类多:扩增子与脂质组各占一席,前者是测序的常见形态,后者是质谱的衍生物。按分析物分类、而不是按论文里的五类口号做规划,才不会在检索时扑空。
2.3 文件层面:一个 data_object 长什么样
门户的所有文件都登记为 data_object,一条记录的原始返回如下(摘自 Runtime API 的 data_objects 端点),字段已按含义译注。
{
"id": "nmdc:dobj-13-zzzyae97",
"name": "output: SBR_FC_N1_00-10_H2Oext_13Oct15_Leopard_1_01_4404",
"description": "High resolution MS spectra only",
"file_size_bytes": 30539306,
"type": "nmdc:DataObject",
"alternative_identifiers": ["emsl:output_456424"],
"data_object_type": "Direct Infusion FT ICR-MS Raw Data",
"data_category": "instrument_data",
"url": "https://nmdcdemo.emsl.pnnl.gov/nom/stegen_11_aygzgv51/raw/SBR_FC_N1_00-10_H2Oext_13Oct15_Leopard_1_01_4404.zip"
}
几处值得逐条看。
id 是 NMDC 自铸的标识,形如 nmdc:dobj-13-zzzyae97,前缀 dobj 表示 data object,中段数字是类型码,末段是随机串。标识本身不携带语义,检索依赖字段而不是解析标识。
alternative_identifiers 保存外部库的编号,这里指向 EMSL 的输出编号。这一栏是把 NMDC 记录接回设施原始记录的唯一桥梁:门户里看不到质谱仪上的样品单,但凭这一条可以去 EMSL 侧查。
data_object_type 是受控词,取值来自一份封闭清单,如 Assembly Contigs、Protein Report、Direct Infusion FT ICR-MS Raw Data。它不是自由文本,因此可以用等值匹配统计,但新类型加入需要改 schema。
data_category 只有三个取值:instrument_data 表示仪器直接产出的原始文件,processed_data 表示工作流产物,workflow_parameter_data 表示工作流的配置文件与参数快照。这一区分对复现很关键——只有把 processed_data 与对应的 workflow_parameter_data 一起取下来,产物才可复现。
url 直接可下,但它指向的是各设施的存储服务,而非门户自身。这意味着批量下载的稳定性取决于上游设施的服务状态,门户只是登记表。
2.4 文件类型的实际分布
对全部公开文件按类型计数,前几类如下。这些数字是理解门户内容的钥匙:它远不止测序文件。
| 文件类型 | 条数 | 归属层 |
|---|---|---|
| SRA toolkit-accessible sequence data | 11,995 | 测序原始,指向 SRA |
| Assembly Contigs | 7,582 | 宏基因组组装产物 |
| Direct Infusion FT ICR-MS Raw Data | 6,779 | 天然有机质原始谱图 |
| Analysis Tool Parameter File | 6,691 | 工作流参数快照 |
| Filtered Sequencing Reads | 4,729 | 质控后读段 |
| Annotation Amino Acid FASTA | 4,665 | 基因预测的蛋白序列 |
| Functional Annotation GFF | 4,665 | 功能注释结构文件 |
| Direct Infusion FT-ICR MS Analysis Results | 4,005 | 天然有机质解析结果 |
| LC-DDA-MS/MS Raw Data | 3,021 | 液相色谱质谱原始谱图 |
| Metagenome Raw Read 1 / Raw Read 2 | 各 2,908 | 宏基因组原始双端读段 |
| LC-MS Metabolomics Results | 2,749 | 代谢组解析结果 |
| Metagenome Raw Reads | 1,978 | 单端形式的宏基因组原始读段 |
| GC-MS Raw Data | 776 | 气相色谱质谱原始谱图 |
| LC-MS Lipidomics Results | 198 | 脂质组解析结果 |
| Protein Report / Peptide Report | 各 119 | 宏蛋白组结果 |
| Metatranscriptome Raw Reads | 118 | 宏转录组原始读段 |
| Metatranscriptome Expression | 69 | 宏转录组表达定量 |
按 data_category 汇总,processed_data 占 237,895 条,instrument_data 占 30,483 条,workflow_parameter_data 占 9,644 条。处理产物接近原始文件的八倍,这是标准化工作流的必然结果:一个组装会派生出覆盖度、AGP、支架、编码蛋白、十几种注释体系的结构文件。
2.5 一条链路:从研究到文件
把三层串起来看,一次典型查询经过四个环节。
Study nmdc:sty-11-xxxx
└─ Biosample nmdc:bsm-11-yyyy # 环境三元组、经纬度、采样日期挂在这里
├─ MaterialProcessing # 采样、提取、建库各占一行
├─ DataGeneration (type=Metagenome, analyte_category=metagenome)
│ └─ DataObject × N # 原始读段、质控读段、组装、注释
└─ DataGeneration (type=MassSpectrometry, analyte_category=nom)
└─ DataObject × M # FT-ICR MS 原始谱图与解析结果
同一个 biosample 下挂两条 DataGeneration,一条来自 JGI 的测序,一条来自 EMSL 的质谱,这就是「五类组学挂在同一批样本上」的具体形态。它不是把五种数据拼成一个表,而是让五个分支共享同一个根节点。
2.6 五层为什么能凑在同一个 study 下
五类组学出现在同一项研究里,不是巧合,而是申请制度决定的。能源部的两座用户设施各自受理申请:JGI 受理测序与基因组分析,EMSL 受理质谱与分子表征。一个课题组常常同时向两处递交申请书,把同一批环境样本的一部分送去测序、一部分送去质谱。
这个流程带来一个结构后果:样本在物理上从未被合并,但在科学上属于同一批。测序那部分留在 JGI 的样品库里,质谱那部分留在 EMSL 的样品库里,各自有一份设施内部的样品编号。门户要做的正是把两份编号对回同一个点。
对回的方式是提交门户的先登记后提交:研究者先在门户登记样本并获得生物样本标识,随后在向设施提交时携带这枚标识。设施产出回传时,门户凭标识自动挂接。这条流程不依赖样本名的字符串匹配,也不依赖研究者事后手工整理对照表。
理解了这一点,就能解释为什么宏基因组远多于其他层。测序的申请门槛低、成本相对可控、通量高,多数项目会先做测序;质谱的申请门槛高、单次样本量有限,只有确实需要回答物质转化问题的项目才会追加。五类的数量级差异,本质上是两类设施受理量的差异。
也能解释为什么宏蛋白组最难找。宏蛋白组要求的不是质谱能力本身,而是从采样到质谱上机的极短时间窗口。这需要设施侧的前处理能力参与,而具备这种能力的项目本来就少,样本自然稀缺。
2.7 门户的数字统计口径在哪
动手核对规模之前,先要分清三类口径,否则会把不同单位的数字放在一起比较。
第一类是存储字节数,来自论文的 10.2 TB。这是唯一公开的总体体量口径,覆盖门户托管的多组学数据。它不区分原始与处理产物,也不说明是否含配置文件。
第二类是记录条数,来自 Runtime API 的集合统计。每个集合的计数单位完全不同:study 以研究计、biosample 以样本计、data_generation 以测定计、data_object 以文件计。四个数放在一起没有可比性,也不能相加得到一个「总量」。
第三类是文件大小之和。data_object 记录里有 file_size_bytes 字段,逐条累加可以得到门户登记文件的总体积。这个数与 10.2 TB 不必然一致:文件实体存放在设施侧服务上,门户只登记元数据,二者很可能不是同一批东西的两种表述。
官方从未把这三类口径对齐过一次。论文写 10.2 TB 时,没有说明它对应多少个文件、覆盖多少条测定。API 给出条数时,也没有说明换算成字节是多少。使用者若需要引用规模,最稳妥的做法是同时给出年份与口径名,而不是给一个孤立数字。
2.8 与同类资源的定位差异
| 资源 | 保存什么 | 处理方式 | 跨组学能力 |
|---|---|---|---|
| NMDC | 标准化工作流产物 + 元数据 + 外链原始数据 | NMDC 自有工作流,按研究分别运行 | 五类组学共享 biosample |
| MGnify | 统一重处理的组装与分析结果 | 单一流水线,版本随年份更新 | 仅核酸层 |
| Qiita | 原始 artifact 与分析产物双轨 | 各研究各自 processing | 多样本但以核酸为主 |
| JGI IMG/M | 基因组与宏基因组分析系统 | JGI 内部注释 | 仅基因组层 |
| ProteomeXchange | 原始质谱与搜索结果 | 按提交者提供 | 仅蛋白层 |
表格右侧一列是分界线。上面五个资源里,只有 NMDC 在结构上允许同一份样本同时出现在核酸、蛋白、代谢与有机质四个层次。
§3 身份层:三层模型与标识体系
3.1 为什么单位是 biosample 而不是 study
大多数组学资源以研究为组织单位:一项研究一个页面,页面里列出样本清单。NMDC 反过来,以生物样本为枢纽,研究只是样本的容器。
这个选择直接决定了能不能做跨组学检索。以研究为单位时,「哪些样本同时有宏基因组和宏蛋白组」这类问题只能在研究内部回答;以样本为单位时,一条查询就能跨研究扫全库。
模型分三层。study 描述科学目标与环境背景,biosample 描述一份具体的环境材料,data_generation 描述在这份材料上做过的一次测定,data_object 描述测定留下的文件。四层之中,biosample 是唯一的连接点:所有组学都指向它,而不是彼此指向。
3.2 标识符的形状
NMDC 自铸的标识统一采用 nmdc:<前缀>-<类型码>-<随机串> 的形态,前缀区分对象类别,类型码与 schema 版本相关。
| 前缀 | 对象 | 示例 |
|---|---|---|
| sty | 研究 | nmdc:sty-11-8fb6t785 |
| bsm | 生物样本 | nmdc:bsm-13-amrnys72 |
| dgns / dgms | 测序 / 质谱测定 | nmdc:dgms-11-0056ry09 |
| dobj | 文件 | nmdc:dobj-13-zzzyae97 |
schema 文档给出的标识四条要求是永久、唯一、可解析、不透明。前三条是常识,第四条值得展开:不透明意味着不得从标识中推断内容。dobj-13 里的 13 不代表任何业务含义,把它当版本号或类别码用会出错。
对外部实体的引用一律用 CURIE,即 前缀:本地编号 形式,例如 ENVO:01000253、BIOSAMPLE:SAMEA2397676、GOLD:Gp0119849。schema 文档建议把 bioregistry.io 作为前缀登记的权威来源,并要求新增前缀先去登记再使用。
3.3 与环境标准的对齐
生物样本的三个环境字段不是自由文本,而是 MIxS 规定的三元组:env_broad_scale 表示大尺度环境(如生物群系),env_local_scale 表示局地环境(如河岸带),env_medium 表示介质(如沉积物)。三者都取 ENVO 的受控词条。
实际数据里的形态是「原始值 + 解析后的术语对象」并列,例如原始值写 ENVO:01000253,术语对象里带同一个编号与类型。这样既保留了提交者的原话,也保留了机器可读的规范化结果。
这套做法有一个代价:字段填得对不对,取决于提交者的判断。检索时如果只按 env_medium 过滤,会漏掉那些只用自由文本描述的样本。
3.4 研究身份的负担
study 层面还有一层不那么显眼的身份信息:DOI。一条典型的研究记录会同时挂三类 DOI——数据集 DOI(多来自 JGI,形如 10.25585/...)、资助 DOI(来自 JGI 或 EMSL 的项目编号)、以及论文 DOI。三者混在同一个字段里,靠 doi_category 区分。
这意味着「按 DOI 反查研究」时必须先确定自己手上的是哪一类。拿论文 DOI 去匹配数据集 DOI 字段会一无所获。
§4 测量层:五类组学各自测了什么
4.1 宏基因组:组装与注释的标准化流水线
宏基因组是门户的主体。原始读段经质控后进入组装,组装产物再派生出一整套文件:contigs、scaffolds、AGP、覆盖度 BAM、覆盖度统计、基因预测的蛋白序列、以及十几种注释体系的结构文件。
工作流按阶段拆分,各自独立版本化。检索工作流清单可以看到 Reads QC、Metagenome Assembly、Metagenome Annotation、Metagenome Assembled Genomes、Read-based Analysis 几条主线,版本号形如 1.0.1。分类学分类有三条并行路线:Kraken2、Centrifuge、GOTTCHA2,三者各产出报告与 Krona 图。
4.2 宏转录组:数量最少,问题最多
宏转录组只有 411 条测定,对应 118 条原始读段文件与 69 条表达定量文件。数量少到这个程度,说明它还不是一条成熟的产品线。
从工作流看,转录组只有一条名为 metat 的工作流,版本号 0.0.2,在全部 31 条工作流里是全库最低的版本号。版本号本身不是质量问题,但它通常反映该流程仍处在演化中。
4.3 宏蛋白组:facility 能力的直接投影
宏蛋白组的 74 条测定对应 119 条 Protein Report 与 119 条 Peptide Report。数量与文件数不成正比,说明一条测定往往产出多份报告。
这一类数据的价值不在于数量,而在于可得性。宏蛋白组要求从采样到质谱上机的时间窗口极短,只有配备现场处理能力的设施项目才能产出。EMSL 具备这种能力,NMDC 的工作流 metap 负责把搜索结果标准化。这就是为什么在公开资源里几乎找不到可比的宏蛋白组数据集。
4.4 代谢组:两条质谱路线
代谢组分两条技术路线:液相色谱串联质谱(LC-MS)与气相色谱质谱(GC-MS)。前者产出 2,749 条解析结果,后者 776 条原始数据、573 条解析结果。
两条路线在工作流上也是分开的:metab 处理 LC-MS,gcms-metab 处理 GC-MS。合并进同一个 analyte_category 之后,比较不同代谢组数据时必须先确认技术路线,否则化合物覆盖范围根本不可比。
4.5 天然有机质:门户最特殊的一层
天然有机质用直接进样傅里叶变换离子回旋共振质谱测量,不做色谱分离,直接给出分子式层面的组成。产出分原始谱图与解析结果两段:6,779 条原始数据、4,005 条解析结果。
这类数据在论文里通常以补充表形式出现,格式各异。NMDC 给它单独的工作流 nom 与单独的文件类型,使其可以被等值匹配检索。对于做碳循环与溶解性有机物研究的人来说,这是门户里最有辨识度的一层。
4.6 五层能不能拼成一张表
不能直接拼。五类组学的行单位不同:宏基因组的行是 contig 或基因,转录组的行是基因表达量,蛋白组的行是肽段或蛋白,代谢组的行是化合物特征,天然有机质的行是分子式。行单位不一致,任何直接 join 都没有意义。
能做的是在同一 biosample 层面做联合比较,例如比较同一份土壤样本的基因家族丰度、转录本丰度、蛋白丰度与代谢物强度,找出表达与物质之间的落差。这类分析需要的是样本级对齐,而不是行级合并。
4.7 工作流的版本谱系
门户的工作流清单一共有三十一条记录,去重后约十类主流程,其余是元数据 ETL、数据库转换、导出之类的辅助流程。
主流程按层划分:readqc 负责读段质控,mgasmb 负责组装,mganno 负责注释,mgasmbgen 负责分箱,rba 与 mgrba 负责基于读段的分类学分析,metat 负责转录组,metap 负责蛋白组,metab 与 gcms-metab 负责代谢组,nom 负责天然有机质。
版本号分布很能说明成熟度。reads QC 有 1.0.1 与 1.0.6 两个版本号并存,组装与注释各有一到两个历史版本,转录组的 metat 停在 0.0.2。版本号越低,说明该流程的接口与输出格式越可能还在调整。
对使用者的实际影响是:同一项研究如果处理于不同年份,其产物来自不同版本的工作流,直接比较会混入流水线差异。复现时应当先确认原产物记录里的工作流版本,再用同一版本重跑,而不是用最新版本。
4.8 扩增子与脂质组:登记了但不算五类
门户的 analyte_category 里有两个类别不在官方宣传的五类之内:扩增子测序一千三百余条、脂质组一百九十余条。
扩增子的存在说明门户并不排斥 16S 与 ITS 这类常见形态。它的主工作流里没有独立的扩增子流程,这一类数据更多是伴随测序项目顺带登记的。用它做跨研究比较时要格外小心,因为扩增子的可比较性取决于引物区与测序平台,而这两项在元数据里未必齐全。
脂质组的 198 条与天然有机质、代谢组同属质谱产品线,走的是液相色谱路线。它与代谢组的差别在分析目标:代谢组看的是小分子代谢物,脂质组看的是脂质类别与链长分布。二者共用一个技术平台,但化合物谱系不同。
把这两个类别单列出来,是因为它们最容易在按「五类」检索时被漏掉。实际使用中,按 analyte_category 列出全部七类再筛选,比按宣传语的五类筛选更可靠。
§5 取数层:三条通道与 API 实操
5.1 三条通道
门户提供三条取数路径,各有适用场景。
网页检索适合探索:按研究名、PI、地理位置、采样日期、深度、组学类型检索,地图视图看空间分布,桑基图看生态分类分布,时间轴滑块挑纵向样本,upset 图看同一研究内样本上的组学层组合。
批量下载适合拿一个研究或一组样本的全部文件,门户有专门的批量下载入口。
Runtime API 适合脚本化取数与集成,返回 JSON,可编程检索、过滤与分页。
5.2 动手之前要知道的两个坑
第一个坑是分页参数名。对 /nmdcschema/{collection} 这类端点,控制每页条数的参数是 max_page_size,而 page 参数会被忽略,传 page=2 拿到的仍是第一页。要翻页必须用游标:取上一页最后一条的 id,用 $gt 过滤下一批。
第二个坑是 /queries:run 需要登录。这个端点看起来像通用的 Mongo 风格查询接口,但没有访问令牌时一律返回 Access token is invalid or missing。公开可用的只有 /studies、/biosamples、/data_objects 与 /nmdcschema/* 这几组读接口。
5.3 用 collection_stats 一次拿到全部门槛数字
集合统计端点不需要任何参数,也不分页,是最省事的口径来源。
curl -s "https://api.microbiomedata.org/nmdcschema/collection_stats" \
| python3 -c "
import json, sys
rows = json.load(sys.stdin)
for r in rows:
s = r['storageStats']
if s['count']:
print(f\"{r['ns']:<48}{s['count']:>12,}\")
"
输出按集合名排列,空集合(如 organism_set、genome_feature_set)计数为零,可以一眼看出哪些实体被真正使用、哪些只是 schema 里留了位置。
需要注意:同一组接口里的 /nmdcschema/{collection}/stats 并不可用,传入任何集合名都会返回四百,提示集合名不在允许集内,而错误信息里列出的恰恰是这个集合名。这是接口路由与参数校验之间的错位,遇到时直接换用 collection_stats 即可。
5.4 按类型筛文件,以及为什么有的值筛不到
/data_objects 接受 filter 参数,语法是 字段:值,逗号分隔多个条件。
#-- 天然有机质的原始谱图有多少条
curl -s "https://api.microbiomedata.org/data_objects?per_page=1&filter=data_object_type:Direct%20Infusion%20FT%20ICR-MS%20Raw%20Data" \
| python3 -c "import json,sys; print(json.load(sys.stdin)['meta']['count'])"
返回 6779。把值换成 SRA toolkit-accessible sequence data 时,这个写法会失败,因为该值含有不在受支持写法里的组合;这类值只能靠全量扫描再本地计数,§5.6 给出做法。
同一端点的返回还默认叠加了两个条件:qc_status != fail 与 superseded_by = null。所以这里的计数是「当前有效」的文件数,与 collection_stats 的全量口径不同,两者相差约三万条。引用时必须说明是哪一个。
5.5 从研究出发拉一条完整链路
下面的脚本给一项研究列出它名下的生物样本、每个样本上的组学类别与文件数。这是最常用的一段代码,直接可跑。
#-- 入参:研究 id。依次取 biosample、data_generation、data_object
cat > nmdc_study_walk.py <<'PY'
import json, sys, urllib.parse, urllib.request
from collections import Counter
BASE = "https://api.microbiomedata.org"
def get(path, **q):
url = f"{BASE}/{path}?" + urllib.parse.urlencode(q)
req = urllib.request.Request(url, headers={"User-Agent": "nmdc-wiki"})
return json.load(urllib.request.urlopen(req, timeout=120))
study_id = sys.argv[1]
samples = get("biosamples", filter=f"associated_studies:{study_id}",
per_page=1)["meta"]["count"]
print(f"study {study_id}: {samples} biosamples")
#-- 逐页取 data_object,用 id 游标而不是 page 参数
last, cats = None, Counter()
while True:
f = f"id:>{last}" if last else ""
q = {"filter": f, "per_page": 2000} if f else {"per_page": 2000}
rows = get("data_objects", **q)["results"]
for r in rows:
cats[r.get("data_category")] += 1
if len(rows) < 2000:
break
last = rows[-1]["id"]
print(dict(cats))
PY
python3 nmdc_study_walk.py nmdc:sty-11-8fb6t785
脚本里两处取舍值得说明。第一处,游标过滤用的是 id:> 前缀写法,因为 $gt 的 JSON 形式在 URL 里无法可靠转义;第二处,per_page 设为两千是这个端点允许的稳定取值,超过之后单次响应耗时明显增长。
5.6 全量扫描:统计文件类型分布
要回答「哪些文件类型占比最高」这类问题,只能用游标逐页扫完全库再本地计数。下面是可复用的骨架,跑完全量约需数分钟。
cat > nmdc_type_census.py <<'PY'
import json, urllib.parse, urllib.request
from collections import Counter
def get(path, **q):
url = f"https://api.microbiomedata.org/{path}?" + urllib.parse.urlencode(q)
req = urllib.request.Request(url, headers={"User-Agent": "nmdc-wiki"})
return json.load(urllib.request.urlopen(req, timeout=180))
last, counter = None, Counter()
while True:
filt = json.dumps({"id": {"$gt": last}} if last else {})
rows = get("nmdcschema/data_object_set", filter=filt,
projection="data_object_type", max_page_size=2000)["resources"]
for r in rows:
counter[r.get("data_object_type")] += 1
if len(rows) < 2000:
break
last = rows[-1]["id"]
for name, n in counter.most_common(20):
print(f"{n:>8} {name}")
PY
python3 nmdc_type_census.py
这里用的是 /nmdcschema/data_object_set 而不是 /data_objects,区别在于前者不叠加质控过滤,扫出来的是含失效记录的全量;后者只返回当前有效的部分。
5.7 许可与访问门槛
数据使用政策把门户的可访问数据统一归入 Creative Commons Attribution 4.0 International,即 CC BY 4.0。引用规则要求署名的要素包括作者、发布日期、数据集标题、版本号、存放库、持久标识与访问日期,并明确建议在处理数据的引用里同时给出原始数据的存放库与标识。
访问层面没有任何门槛。官方 FAQ 明确写了门户不含 embargo,全部数据开放,可用于复用。登录用 ORCiD,用于提交门户的写入操作与 API 的鉴别调用,读数据不需要账号。
一个容易忽略的细节是分层许可。门户自身的产物是 CC BY 4.0,但原始读段由 JGI 与 NCBI 侧提供,适用各自条款。沿 data_object 的 url 下载到的文件,其条款以文件所在服务为准。
§6 与库内相邻资源的关系
6.1 三个资源的分工
库内已有多个微生物组资源,各自的位置需要说清楚,否则容易混用。
NMDC 的位置是设施产出的多组学整合层。 它服务的是能源部用户设施的用户:在 JGI 测序、在 EMSL 做质谱,产出回到同一个门户里按样本对齐。它的独特部分是宏蛋白组与天然有机质,以及把五类放在同一个 study 下的结构。
MGnify 的位置是统一流水线的重处理平台。 它把公共库里已有的读段重新跑一遍统一步骤,产出可横向比较的结果。它的覆盖面远大于 NMDC,但只有核酸层。
Qiita 的位置是可回溯的分析档案。 它把原始 artifact 与每一步分析产物双轨保存,强调来源可查。它的重心是用户自己的分析与再分析,而不是设施产出的整合。
一句话的用法:要五层联合分析去 NMDC,要统一重处理的核酸表去 MGnify,要复现某条分析链去 Qiita。
6.2 一个具体的对照场景
假定手上有十份土壤样本,一批在 JGI 测了宏基因组,一批在 EMSL 做了代谢组与天然有机质。要做「基因潜力与物质转化之间的落差」这个题目。
在 MGnify 里做不到,因为它只有核酸层,代谢与有机质不在覆盖范围。在 Qiita 里可以上传自己的数据做分析,但设施已产出的标准化产物需要自己重新跑一遍。在 NMDC 里这件事是现成的:样本按 biosample 对齐,宏基因组走读段质控到注释的主线,代谢与有机质走 LC-MS 与 FT-ICR MS 两条路线,四类产物都挂在同一个样本标识下。
反过来的场景:手上有两百份公共土壤样本的宏基因组,要做跨研究的统一比较。这时 NMDC 不合适,因为它按研究处理,跨研究的产物版本不一致;应当去 MGnify 拿统一重处理结果,或者去 curatedMetagenomicData。
6.3 与原始库的关系
门户本身不是原始库,它把原始读段交给 NCBI 经纪,把质谱原始文件放在 EMSL 的存储服务上。库内的 SRA 与 ENA 才是原始读段的正式归宿,ProteomeXchange 与 PRIDE 是蛋白与质谱的正式归宿,Metabolomics Workbench 与 MetaboLights 是代谢组的正式归宿。
NMDC 在这张图里处于中间:向上游取数、统一下游,自己不做长期归档。这个位置决定了它的两个特性:一是它必须持续维护与上游的标识映射,二是它一旦停摆,数据不会消失,但标准化产物的可访问性会受影响。
§7 质量评估与局限性
7.0 阅读本节前的一个前置校正
在给 NMDC 打分之前,需要先纠正一个默认的误判:把它当成一个通用组学数据库来评价。
按通用数据库的标准,它不合格:样本量小、层间极不均衡、没有跨研究的统一处理、不保存原始数据。按「设施产出的多组学整合层」的标准,它的分数完全不同:五类组学共享同一个样本标识、每一份产物都有工作流版本、元数据模型公开且可复用。
这是评价基础设施型资源最常见的错位。做临床队列的人觉得它样本太少,做环境微生物的人觉得它终于把对不上的编号对上了。两者都没说错,只是尺子不同。
评分采用第三把尺子:作为一份「跨设施、跨组学的环境微生物组整合资源」,它做得怎么样。
7.1 DAIMS 评分表
| 评估维度 | 分值 | 评分理由 |
|---|---|---|
| 描述层:身份与边界 | 4.5 / 5 | 官方一句「不存原始数据、不支持人体微生物组」把边界划得很清楚;论文、机构、资助编号齐全;扣分在合并公告发布后,门户长期定位尚未重新表述 |
| 描述层:文档完备度 | 4.0 / 5 | FAQ、数据使用政策、schema 文档站、标识符规范、版本迁移指南齐备;扣分在 API 分页参数与查询端点权限的说明缺失,须靠试错发现 |
| 结构层:标识体系 | 5.0 / 5 | 前缀、类型码、随机串三段清晰,永久唯一可解析不透明四条全部落实;外部实体统一用 CURIE 并对接 bioregistry |
| 结构层:层级一致性 | 4.5 / 5 | study 到 biosample 到 data_generation 到 data_object 的主链严格;扣分在 ecosystem 五级分类大量留空,官方字段存在但多数研究未填 |
| 结构层:模态配对 | 5.0 / 5 | 这是它的核心能力:五类组学通过 biosample 标识配对,不依赖样本名模糊匹配;这是同类资源里唯一做到的 |
| 访问层:开放程度 | 4.5 / 5 | 无 embargo、无申请、CC BY 4.0、读接口匿名可用;扣分在文件实体存放在设施侧服务,门户不托管也不保证可达性 |
| 访问层:可复现性 | 4.0 / 5 | 产物带工作流名与版本,参数文件单独登记,复现路径清楚;扣分在工作流版本随年份漂移,跨年产物不可直接比较 |
| 访问层:许可清晰度 | 4.5 / 5 | 数据政策给出统一许可与完整引用要素,在同类资源里少见地明确;扣分在原始读段与设施侧文件不在该许可覆盖范围内 |
八项合计三十六点五,满分四十。换算成百分制约九十一分,落在「专业使用者会长期依赖,通用流程需要额外适配」这一档。
分数最低的一项是可复现性,理由指得很清楚:不是没记录,而是记录随版本变化。工作流清单里同时存在 readqc 的四个版本、Metagenome Assembly 与 Metagenome Annotation 各自的历史版本,同一套数据在不同年份处理会得到不同产物。
层级一致性扣在生态分类留空。study 记录里 ecosystem 五级字段是设计上必须的,但实际数据中大多数研究这几栏为空,按生态位做分面检索会漏掉它们。这是填报纪律问题,不是模型问题。
7.2 三个容易被夸大的说法
评价这类资源时,有三种说法看起来像优点,实则站不住。
第一种是「全库唯一能串起中心法则」。这句话在结构上成立,在内容上要打折。五类组学确实可以在同一份样本上对齐,但真正五层齐全的样本并不多,宏蛋白组只有七十余条测定,绝大多数样本凑不齐五层。把「可以对齐」说成「已经对齐」,会让使用者预期落空。
第二种是「规模很大」。按论文口径,10.2 TB 在所有微生物组资源里排不到前列。按当前记录条数,九十二项研究、两万七千个样本,与 MGnify 的体量相差几个数量级。它的价值在结构,不在体量。
第三种是「开放所以可以直接用」。开放是真的,可直接用则取决于具体研究。元数据填写质量参差不齐,生态分类大量留空,部分研究的样本描述只有一句摘要。拿到数据之后的第一件事,仍然是自己核对元数据。
7.3 同层比较
| 维度 | NMDC | MGnify | Qiita |
|---|---|---|---|
| 组学层数 | 五类,另有扩增子与脂质组 | 核酸层 | 以核酸为主 |
| 跨资源配对键 | biosample 标识 | 无统一配对 | artifact 链 |
| 原始数据 | 外链到 NCBI 与设施 | 外链到 ENA | 库内存一份或外链 |
| 统一重处理 | 否,按研究分别运行 | 是,单一流水线 | 否,各自 processing |
| 元数据模型 | LinkML 公开,可单独引用 | 内部模型 | 内部模型 |
| 设施依赖 | 强,数据源为 JGI 与 EMSL | 无 | 弱 |
7.4 它为何存在,又为何正在退场
它为何存在。 能源部的基因组科学计划需要一条把两座用户设施的产出合到一起的路径。JGI 管测序,EMSL 管质谱,两边的用户常常是同一批人,做的是同一批样本。如果门户不存在,跨设施的数据整合就只能靠研究者手工完成。这是真实需求,不是平台建设冲动。
它为何正在退场。 官方预算文件给出的表述是,NMDC 将被 ramp down,能力分别并入 KBase 与 JGI;更上层的 DOE-BRIDGE 把 NMDC 列为基础数据源之一,标注为「遗留的微生物组数据科学平台」。这不是失败,而是联邦数据基础设施的整合逻辑:与其维护多个垂直门户,不如建一个横跨各设施的数据湖仓。
它留下了什么。 即使门户本身的服务变动,最持久的产出是 nmdc-schema。这套 LinkML 模型连同标识规范、标识符映射、版本迁移指南一起公开发布,可以被其他项目直接引用或移植。对做多组学元数据建模的团队来说,这部分的价值不随门户存续而消失。
7.5 已知的、可枚举的偏差
偏差一,层间数量悬殊。 宏基因组一万六千余条,宏蛋白组七十四条,相差两百倍以上。宣传语的「五类并列」与实际的「一强四弱」之间落差很大。
偏差二,地理与生态偏向。 样本以北美为主,生态以土壤与淡水为主。这与能源部的研究重点一致,但不构成对全球微生物多样性的代表性抽样。
偏差三,生态分类字段留空。 大量研究的生态五级分类为空,按生态位过滤时这些研究会整体消失,而它们并不真的是「无生态位」。
偏差四,文件存放在设施侧。 门户登记 url,文件在 EMSL 与 JGI 的存储上。上游服务一变更,链接就会失效,而门户侧只会显示无法访问。
偏差五,工作流版本漂移。 同名工作流有多个版本并存,跨年比较同一研究的两次产物,差异可能全部来自流水线而非样本。
§8 生态位与来路
8.1 时间线
| 年份 | 事件 |
|---|---|
| 2019 | NMDC 计划正式启动 |
| 2020 | 综述文章发表于 Nature Reviews Microbiology,阐述设想 |
| 2021 | 元数据标准研讨报告发表于 mSystems |
| 2022 | 数据门户论文发表于 Nucleic Acids Research,规模口径 10.2 TB |
| 2022 | 大规模微生物组工作流挑战的评述发表于 Frontiers in Bioinformatics |
| 2026 | 提交门户与数据门户并入 DOE-BRIDGE,预算文件写明能力拆分至 KBase 与 JGI |
这条时间线说明一件事:从启动到发表门户论文只用了三年,从论文到移交也只有四年。对于一个承载联邦设施数据的基础设施而言,这个节奏相当快,反映了联邦数据整合策略的变化速度快于单个项目。
8.2 它站在哪条技术传统里
门户的技术骨架是链接数据那一脉,而不是关系数据库那一脉。证据有三处。
第一,标识全部是 CURIE 形式的全局标识,而不是本地自增主键。第二,元数据模型用 LinkML 写成,类与槽是本体式的定义,可以导出为 JSON Schema、SHACL 等多种形态。第三,门户与 schema 分离发布,schema 有自己的版本号与迁移指南。
这条路线的优点是互操作性强:外部系统可以按 schema 理解数据,不必读门户代码。代价是学习曲线陡,第一次接触的人要同时理解前缀、类型码、受控词与三层模型。
8.3 隔壁是谁
同一批数据源的相邻项目值得一并了解。JGI 的 IMG/M 是从 JGI 侧看基因组与宏基因组的窗口,KBase 是分析平台,ESS-DIVE 是地球与环境科学的仓库。NMDC 与它们的关系在 2026 年的整合中被重新定义:NMDC 不再作为独立门户存在,它的数据与能力分流到这几处。
对使用者的实际影响是:现在从门户拿到的链接与接口,未来可能需要换地址。文档里记录的 api.microbiomedata.org 与 data.microbiomedata.org 这两个域名都应当视为阶段性入口。
8.4 边界之外还有什么
门户不含人体微生物组数据,这一点反复强调也不过分。库内做人体菌群的资源已经足够多,把 NMDC 拉进人体研究既不符合它的定位,也会污染其生态分类字段的语义。
门户也不含纯培养基因组。organism_set 与 genome_feature_set 在集合统计里计数为零,说明这两类实体虽然定义了,但没有实际数据。若需要纯培养基因组的分类学骨架,应当转向 GTDB 与 SILVA 这类资源。
§9 使用指引
9.1 三种角色的最短路径
| 角色 | 目标 | 路径 |
|---|---|---|
| 生态学研究者 | 找一批五层齐全的样本 | 门户按生态位与组学类型检索,用 upset 视图筛层数≥3 的样本 |
| 生物信息工程师 | 把门户接进自己的流水线 | Runtime API 的 collection_stats 摸清规模,游标分页拉 data_object |
| 元数据工程师 | 借一套多组学元数据模型 | nmdc-schema 文档站看类与槽,按迁移指南对齐自己的库 |
| 论文作者 | 找到可复现的标准化产物 | 按研究定位 data_object,同时取 processed_data 与 workflow_parameter_data |
9.2 一条最短的可用流程
从零到拿到一个研究的产物清单,四步。
第一步,用 collection_stats 确认门户当前的规模与数据集名称。第二步,用 /studies 端点按关键词找研究 id。第三步,用 /biosamples 端点按 associated_studies 过滤取样本。第四步,用 /data_objects 按样本或研究取文件清单,再按 data_category 把参数文件一并取下。
#-- 第一步:找研究
curl -s "https://api.microbiomedata.org/studies?per_page=5" \
| python3 -c "
import json,sys
for r in json.load(sys.stdin)['results']:
print(r['id'], '|', r.get('name','')[:60])
"
输出会给出研究 id 与名称,用 id 进下一步。
9.3 复现一份产物的最小步骤
拿到一份 processed_data,要让它可复现,缺的往往不是算法知识,而是两样东西:对应的参数文件和上游输入。
第一步,按 data_object 的 id 取完整记录,确认 data_object_type 与 url。第二步,同一个测定(data_generation)名下的 workflow_parameter_data 全部取下,这一类文件包含工作流配置与工具版本快照。第三步,沿着测定追溯上游:这条产出是直接读原始读段,还是读上一次处理的产物。第四步,把上游输入一并取下,才算凑齐一次可重跑的最小集合。
这一步在门户里没有一键功能。workflow_execution_set 记录每次运行,但把它与具体的输入输出文件对应起来,需要手工比对标识。这是当前取数体验里最耗时的一环,也是把门户接入自建流水线时的主要成本。
9.4 在 AI 流程中的位置
在机器学习流程里,NMDC 适合承担两种角色。
第一种是多模态对齐的训练素材。同一批样本上的基因丰度、转录本丰度、蛋白丰度与代谢物强度,天然构成一组跨模态的配对样本。做跨模态预测或对齐学习时,这种「同一实体、多种表征」的结构比从不同研究里拼凑的配对干净得多。
第二种是元数据建模的参考实例。真实世界的多组学元数据长什么样,字段怎么组织、受控词怎么用、外部标识怎么挂,nmdc-schema 给出了一个可运行的答案。做 schema 设计时对照它,比从零设计稳妥。
不适合的是把门户当作大样本预训练语料。全库的组学测定不足三万条,宏蛋白组只有七十余条,用于训练任何有规模要求的模型都不够。
9.5 五层联合分析能回答什么样的问题
把五类组学摆在一起,最直接的问题是:基因说能做的事,蛋白和代谢物真的做了吗。
环境微生物学里有一个反复出现的落差。宏基因组显示某条固氮通路完整存在,宏转录组显示相关基因有转录,但代谢物里检测不到固氮产物。这一点不必然是数据错误,可能意味着蛋白没有翻译、酶没有活性、或者反应受限于微量元素。只有把四层放在同一份样本上,才有资格讨论这条链在哪一环断掉。
天然有机质层在这里扮演的角色是终点。它与代谢组不同:代谢组看细胞内外的具体小分子,天然有机质看的是溶解性有机物的整体分子式分布,反映的是群落活动在物质层面的净效应。基因潜力与有机质组成之间的关联,是碳循环研究里最难也最有价值的一段推理。
需要提醒的是,这条推理链在数据层面可以被支持,但不会被数据本身证实。门户提供的是一批对齐好的测量,不是一个已经算好的答案。用这五层做因果推断之前,样本量、时间尺度与混杂因素都需要单独考虑。
9.6 引用方式
门户数据的引用分两层:引用门户本身,引用具体数据集。官方数据政策给出两种格式的要素清单,核心是给出作者、发布日期、数据集标题、版本、存放库、持久标识与访问日期。
@article{eloeFadrosh2022nmdc,
title = {The National Microbiome Data Collaborative Data Portal:
an integrated multi-omics microbiome data resource},
author = {Eloe-Fadrosh, Emiley A. and Ahmed, Faiza and Anubhav and
Babinski, Michal and Baumes, Jeffrey and others},
journal = {Nucleic Acids Research},
volume = {50},
number = {D1},
pages = {D828--D836},
year = {2022},
doi = {10.1093/nar/gkab990}
}
数据集的引用格式在政策页有模板,形如「作者(年份)数据集标题 [Data set]. 存放库(持久标识)」。
§10 AI 使用声明卡
| 项目 | 内容 |
|---|---|
| 词条性质 | 社区编辑的数据集百科词条,非官方文档 |
| AI 参与范围 | 资料整理、结构组织、语言润色 |
| 事实来源 | 官方门户、官方 FAQ、数据使用政策、Runtime API 实时返回、schema 文档站、四篇同行评审论文、能源部预算文件 |
| 数字口径 | 规模数字取自 Runtime API 2026-10-29 快照;10.2 TB 标注为 2022 年论文口径 |
| 不建议用途 | 不作为提交前的政策依据,不替代官方 FAQ 与数据使用政策原文 |
| 引用要求 | 引用时请同时引用其引用的官方来源 |
| 更新状态 | 门户处于移交阶段,入口地址与服务范围可能变化 |
| 最后审核日期 | 2026-10-29 |
页面状态:published(全部内容已完成审核并发布)
常见误读(避坑清单)
| 常见说法 | 实际 | 证据 |
|---|---|---|
| NMDC 是一个微生物组的原始数据仓库 | 它明确不存原始组学数据,只存标准化产物与外链 | 官方 FAQ 自述不是原始仓库,门户是指向原始库的发现平台 |
| 门户里只有论文说的五类 | 实际还有扩增子与脂质组两类独立登记 | analyte_category 统计中 amplicon 1,312 条、lipidome 198 条 |
| 10.2 TB 是当前规模 | 它是 2022 年论文口径,此后无公开修订 | 论文原文写 currently hosts 10.2 terabytes |
| 五类组学规模相当 | 宏基因组占绝对多数,宏蛋白组仅 74 条 | data_generation 的 analyte_category 分布 |
| 门户数据可以拼成一张大表 | 五类行单位不同(contig、转录本、肽段、化合物、分子式) | 各层工作流产出的文件类型互不通用 |
| 用 /queries:run 可以匿名查任何集合 | 该端点匿名访问一律返回令牌缺失 | 调用返回 Access token is invalid or missing |
| API 的 page 参数可以翻页 | 该参数被忽略,翻页须用 id 游标 | 传 page=2 返回的仍是第一页记录 |
| collection_stats 里的数字就是可下载文件数 | 公开端点额外过滤质控失败与已取代记录 | 全量约三十一万,有效约二十七点八万 |
| function_annotation_agg 是基因总数 | 它是基因与功能的多对多配对条数 | 同一基因会被 KO、Pfam、COG 等多次注释 |
| NMDC 支持人体菌群数据 | 官方一句否掉了 | FAQ:不支持人体微生物组数据,聚焦环境 |
| 门户关闭意味着数据没了 | 是能力并入 DOE-BRIDGE,不是数据销毁 | 首页公告与 FAQ 均写短期由 BRIDGE 团队维护 |
| 元数据模型随门户一起消失 | nmdc-schema 独立发布,有文档站与版本迁移指南 | microbiomedata.github.io 域下的独立 schema 文档 |
FAQ
Q1:它和 JGI 的 IMG/M 是同一个东西吗?
不是。IMG/M 是 JGI 自己的基因组与宏基因组分析系统,样本与注释在 JGI 体系内闭环。NMDC 数据门户不保存原始读段,只保存标准化工作流产物,并把跨 JGI 与 EMSL 两座设施的同一批样本挂在一起。
Q2:门户里的数据是全库原始数据吗?
不是。官方 FAQ 明确写 NMDC 不存储原始组学数据,门户是指向原始库的发现平台,同时保存经过 NMDC 标准化工作流的处理产物。要 FASTQ 原始文件,沿 data_object 给出的外部地址去 NCBI 或 JGI。
Q3:能拿它做人体肠道菌群研究吗?
不能。官方 FAQ 一句话写明不支持人体微生物组数据。人体菌群请用 curatedMetagenomicData、HMP 或 Qiita 上的宿主相关研究。
Q4:五类组学里哪一类数据最多?
宏基因组远远最多。按 analyte_category 统计,宏基因组 16,144 条,天然有机质 6,652 条,代谢组 3,322 条,扩增子 1,312 条,宏转录组 411 条,脂质组 198 条,宏蛋白组 74 条。
Q5:门户关闭了吗?
没有关闭,但已进入移交阶段。首页公告 NMDC 会把核心功能并入 DOE-BRIDGE,FAQ 称 BRIDGE 团队将短期维护两个门户。数据仍开放可下载,只是维护主体在变。
Q6:需要注册才能下载吗?
不需要。门户无 embargo,全部数据开放。登录使用 ORCiD,用于提交与写操作,读数据不需要建 NMDC 专属账号。
Q7:10.2 TB 这个数现在还算数吗?
它是 2022 年论文里的数字,官方此后没有公开发布修订值。按 API 计数,当前记录规模已远超论文发表时的描述,把它当下界比当现值稳妥。
Q8:它的元数据模型可以单独拿来用吗?
可以。nmdc-schema 以 LinkML 写成,有独立文档站、类与槽清单、标识符规范和版本迁移指南,与门户 API 解耦,当前版本 11.25。
Q9:为什么同一批样本能出现五类组学?
样本由用户在 JGI 与 EMSL 两座设施同时申请。JGI 负责测序,EMSL 负责质谱,同一份环境样本可以既送测序又做蛋白、代谢与有机质分析,门户按 biosample 标识把两条产品线挂回同一个点。
Q10:它和 MGnify 谁该优先用?
看要不要蛋白与有机质。只要核酸层的统一重处理结果,MGnify 更成熟;需要同一批样本上的五层联合分析,只有 NMDC 这一类资源能提供。
Q11:门户关掉以后怎么办?
官方说法是能力并入 DOE-BRIDGE,数据仍然可得,只是入口与服务形态会变。短期应当把用到的 data_object 标识与文件地址记录下来,长期跟随 BRIDGE 的发布说明。
Q12:为什么工作流有那么多版本?
标准化流水线本身在演化:参考库更新、工具换代、参数调优都会产生新版本。门户选择保留历史版本而不是覆盖,代价是跨年产物不能直接比较。
术语表
| 术语 | 含义 |
|---|---|
| biosample | 生物样本,门户的连接枢纽,五类组学都指向它 |
| data_generation | 一次组学测定,如一次宏基因组测序或一次质谱运行 |
| data_object | 一个登记文件,带类型、大小、类别与下载地址 |
| analyte_category | 分析物类别,区分宏基因组、宏转录组、蛋白、代谢、有机质等层 |
| data_category | 文件类别,三分法:仪器原始、处理产物、工作流参数 |
| 宏蛋白组 | 直接对样本中的全部蛋白做质谱鉴定,不经培养 |
| 天然有机质 | 溶解性有机物的分子式层面表征,多用直接进样高分辨质谱 |
| FT-ICR MS | 傅里叶变换离子回旋共振质谱,天然有机质测量的主力手段 |
| JGI | 联合基因组研究所,能源部用户设施,负责测序 |
| EMSL | 环境分子科学实验室,能源部用户设施,负责质谱 |
| NERSC | 国家能源研究科学计算中心,门户的托管位置 |
| DOE-BRIDGE | 能源部生物与环境研究的统一数据湖仓,NMDC 正在并入 |
| nmdc-schema | 门户的元数据模型,LinkML 写成,独立发布 |
| LinkML | 一种模式定义语言,从单一模型生成多种格式 |
| MIxS | 基因组标准联盟的元数据最低信息标准 |
| ENVO | 环境本体,提供环境相关的受控词条 |
| CURIE | 前缀加本地编号的紧凑标识,如 ENVO:01000253 |
| typecode | NMDC 标识中段的两字母加数字段,标类别不标业务含义 |
| workflow_execution | 一次工作流运行记录,含工作流名与版本 |
| upset 图 | 展示同一研究内样本上组学层组合的可视化 |
| analyte | 被分析的物质,与组学层一一对应 |
| CC BY 4.0 | 知识共享署名 4.0 国际许可,允许商用与改编,须署名 |
| ORCiD | 研究者身份标识,门户用它代替自建账号 |
附录 A:核心数字核对表
| 数字 | 值 | 来源与日期 |
|---|---|---|
| 论文规模口径 | 10.2 TB | NAR 2022,gkab990 |
| 研究数 | 92 | Runtime API studies,2026-10-29 |
| 生物样本数 | 27,448 | collection_stats,2026-10-29 |
| 组学测定数 | 28,113 | collection_stats,2026-10-29 |
| 文件登记数(全量) | 见 §5.4 | collection_stats,2026-10-29 |
| 文件登记数(有效) | 见 §5.4 | data_objects 端点,2026-10-29 |
| 工作流运行数 | 38,359 | collection_stats,2026-10-29 |
| 工作流记录数 | 31 | workflows 端点,2026-10-29 |
| schema 版本 | 11.25 | nmdcschema/version |
| Runtime 版本 | 2.23.0 | OpenAPI 文档 |
附录 B:五类组学的规模对照
| 组学层 | 测定数 | 主要文件类型 | 工作流 |
|---|---|---|---|
| 宏基因组 | 16,144 | Assembly Contigs、Filtered Sequencing Reads、注释 GFF | Reads QC、Assembly、Annotation、MAGs、Read-based Analysis |
| 天然有机质 | 6,652 | FT ICR-MS Raw Data、Analysis Results | nom |
| 代谢组 | 3,322 | LC-MS 与 GC-MS 的原始与解析结果 | metab、gcms-metab |
| 宏转录组 | 411 | Metatranscriptome Raw Reads、Expression | metat 0.0.2 |
| 宏蛋白组 | 74 | Protein Report、Peptide Report | metap |
附录 C:外部资源对照
| 资源 | 地址 | 用途 |
|---|---|---|
| 数据门户 | https://data.microbiomedata.org/ | 检索、批量下载、提交入口 |
| Runtime API | https://api.microbiomedata.org/docs | 编程取数 |
| schema 文档 | https://microbiomedata.github.io/nmdc-schema/ | 类、槽、枚举、标识规范 |
| 官方 FAQ | https://microbiomedata.org/faqs | 定位、许可、合并安排的权威表述 |
| 数据使用政策 | https://microbiomedata.org/nmdc-data-use-policy/ | 许可与引用格式 |
| DOE-BRIDGE | https://www.genomicscience.energy.gov/bridge | 合并去向的上层说明 |
附录 D:任务代码
#-- 生成一份 CSV:生物样本、所属研究、组学层数
#-- 适用于需要筛「层数≥3」的样本时
cat > nmdc_layer_csv.py <<'PY'
import csv, json, sys, urllib.parse, urllib.request
def get(path, **q):
url = f"https://api.microbiomedata.org/{path}?" + urllib.parse.urlencode(q)
req = urllib.request.Request(url, headers={"User-Agent": "nmdc-wiki"})
return json.load(urllib.request.urlopen(req, timeout=120))
last, rows = None, []
while True:
filt = json.dumps({"id": {"$gt": last}} if last else {})
batch = get("nmdcschema/data_generation_set", filter=filt,
projection="biosample_id,analyte_category", max_page_size=2000)["resources"]
rows += batch
if len(batch) < 2000:
break
last = batch[-1]["id"]
per_sample = {}
for r in rows:
per_sample.setdefault(r.get("biosample_id"), set()).add(r.get("analyte_category"))
w = csv.writer(sys.stdout)
w.writerow(["biosample_id", "layers", "n_layers"])
for b, cats in per_sample.items():
w.writerow([b, ";".join(sorted(c for c in cats if c)), len(cats)])
PY
python3 nmdc_layer_csv.py | head -5
附录 E:如果只记五件事
- 它的独特性是跨组学配对,不是规模。 五类组学共享同一个 biosample 标识,这是同类资源里唯一做到的。
- 宏蛋白组与天然有机质是稀缺层。 前者七十四条、后者六千余条,替代资源几乎不存在。
- 不是原始数据仓库。 原始读段在 NCBI 与 JGI,门户只存标准化产物与外链。
- 10.2 TB 是 2022 年口径。 当前记录数远超它,引用时须标年份。
- 正在并入 DOE-BRIDGE。 现在能拿到的东西要留档,未来的入口会变。
编辑说明
核验时间 2026 年 10 月 29 日。核验方式:对官方门户、官方 FAQ、数据使用政策、关于页各抓取一次;对 Runtime API 的 collection_stats、version、workflows、studies、biosamples、data_objects、nmdcschema 各端点做实际调用,并以 id 游标逐页拉取全量 data_object 与 data_generation 做本地计数;对 nmdc-schema 文档站阅读概述与标识符两页;对四篇论文的 DOI 经出版社与机构库复核刊名、卷期与页码;对能源部预算文件与 DOE-BRIDGE 说明页各抓取一次。
未覆盖的内容:没有下载任何完整研究的文件包,没有重跑任何工作流,没有逐条核对 data_object 的 url 是否可达,没有核对 JGI 与 NCBI 侧同源记录的逐项对应关系,没有验证 study 的资助编号与实际合同号是否一致。
三处口径冲突已如实记录,正文未作取舍:其一,论文与关于页对卷期记载不一致,论文页与 DOI 登记均为第 50 卷,关于页引用写作第 60 卷,本文采用登记的 50(D1);其二,关于页自述与 JGI、EMSL 共同发布数据,FAQ 用 previously 一词说明这一合作属已发生行为,两者措辞松紧不同,正文按 FAQ 的措辞理解;其三,预算文件写能力并入 KBase 与 JGI,门户公告写并入 DOE-BRIDGE,二者描述的是不同层级,本文并列呈现。
规模数字全部来自 Runtime API 单次快照,属动态数据,引用时须带日期;10.2 TB 为论文静态口径,与快照不可换算。门户首页当前返回合并公告而非统计面板,因此未从首页取任何数字。
体例要求移出正文的元话语与重复口径说明集中于本区。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- ckm-gut-metagenome — 共享标签:基因组学与多组学 / 微生物组 / 代谢组学 / 测序数据
- uniprot — 共享标签:基因组学与多组学 / 蛋白质组学 / 测序数据
- pride — 共享标签:基因组学与多组学 / 蛋白质组学 / 代谢组学
- proteomexchange — 共享标签:基因组学与多组学 / 蛋白质组学 / 代谢组学
- kegg — 共享标签:基因组学与多组学 / 蛋白质组学 / 测序数据
- massive — 共享标签:基因组学与多组学 / 蛋白质组学 / 代谢组学
- hmp — 共享标签:基因组学与多组学 / 微生物组 / 测序数据
- mgnify — 共享标签:基因组学与多组学 / 微生物组 / 测序数据
- curatedmetagenomicdata — 共享标签:基因组学与多组学 / 微生物组 / 测序数据
- qiita — 共享标签:基因组学与多组学 / 微生物组 / 测序数据
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

