BIOM文件跨设备交接时,哪些信息不能遗漏
BIOM格式统一了矩阵和轴向元数据,却不会替团队保存数据库版本、数值含义和处理来源。本文给出接收端可实际执行的交接核验顺序。
分析人员收到一个可以正常打开的BIOM文件和一张样本分组表,但文件夹里没有说明计数如何生成、分类数据库是哪一版,也无法确认分组表中的样本名是否与矩阵列一一对应。
BIOM把观察物、样本、矩阵和部分元数据装进统一容器,却不会自动补齐研究语境;完整交接必须同时固定样本身份、数值含义、特征定义、参考数据库、处理流程、分组条件和接收端核验结果。
先确认收到的是哪一种表
BIOM论文把这种格式的核心定义为“观察物×样本”的列联表。样本可以是一次采样、一名受试者的某个时间点或一个环境样本;观察物可以是OTU、ASV、基因、代谢物或其他特征。矩阵中的一个位置,表示某个观察物在某个样本中的数值。
这项定义看似简单,却决定了交接的第一问不应是“文件能不能打开”,而应是“行、列和值分别代表什么”。同一个扩展名可以装OTU table、Function table、Metabolite table等不同表型。BIOM 2.1因此要求顶层type使用受控词汇,还要求记录format-version、generated-by、creation-date、shape和nnz。
接收者先导出摘要,记录表ID、表类型、格式版本、生成工具及版本、创建时间、行列数和非零元素数。shape说明矩阵规模,nnz说明非零位置数量。两者与交付清单不一致时,应先停在结构核对,不要直接进入统计。
generated-by能提示哪套软件建立了表,却不等于完整流程已经保存。它通常不会自动包含上游去噪、过滤阈值、参考库版本、命令参数和运行环境。创建日期也只能说明文件声称何时生成,不能替代一次分析运行的来源记录。
样本ID必须与分组表做集合核对
BIOM 2.1把sample/ids列为必需数据集,矩阵的列索引依靠这些ID解释。样本分组表中的第一列若与BIOM里的sample ID不完全一致,分组条件就可能挂到错误列,或在导入时被静默丢弃。
不要只抽查几行。分别取出BIOM样本ID和分组表样本ID,比较总数、重复值、空值、大小写、前后空格及两个集合的差集。映射文件多出的样本不会凭空进入矩阵;官方元数据示例甚至明确说明,映射文件中不在BIOM里的样本会被忽略。这个行为方便操作,也可能掩盖交接遗漏。
每个样本至少需要稳定ID、采样或数据批次、分组变量、必要协变量和字段字典。若包含时间点、处理组、地点或受试对象,说明编码规则及缺失值写法。不要让文件名、颜色或工作群里的说明承担唯一分组语义。
隐私敏感字段不必全部塞进BIOM。可以在受控位置保存身份映射,只把去标识化ID和分析所需字段交给分析人员。关键是BIOM的sample ID、受控映射表和分组表引用同一个稳定标识,而不是暴露真实身份。
观察物ID要带上形成方法
另一条必需轴是observation/ids。一个观察物ID只有与形成方法连在一起,才知道它代表什么。OTU编号可能来自特定相似度阈值与聚类过程;ASV序列可能来自特定去噪软件、参数和读段截断条件;功能特征又可能依赖注释库及层级折叠方式。
接收包应说明特征类型、生成软件与版本、关键过滤规则、代表序列或特征定义文件。若taxonomy写在observation metadata里,还要记录参考数据库名称、release或下载日期、分类器版本、置信度阈值和未分类值的表达方式。
BIOM 2.1允许专门保存taxonomy、KEGG_Pathways和collapsed_ids,也允许任意观察物元数据。字段存在只说明有人写入内容,不说明分类一定正确。相同的ASV面对不同数据库版本或分类器阈值,可能得到不同层级标签;只交一列属名,无法还原这种差异。
若下游需要系统发育距离,还应交付与observation ID对应的代表序列、比对文件和树。规格可以在group-metadata中保存Newick树,但不是每个BIOM文件都会包含。接收者不能因为文件通过格式验证,就假定树和序列也在里面。
稀疏存储不是缺失值
BIOM论文指出,许多组学矩阵大部分位置是零。BIOM支持稀疏和稠密表示;在稀疏表示中,只保存非零值及其行列位置,所以大型低密度表能够减少空间占用。BIOM 2.1的HDF5结构同时保存面向观察物和面向样本的稀疏矩阵数据、索引与偏移。
因此,看不到某个位置的显式数值,通常是稀疏结构把它表示为零,并不等同于文件损坏。但“零”在研究中的含义仍需由流程说明:它可能表示没有观察到、过滤后归零、低于检测界限,或某种转换后的结果。格式不会替团队做这项解释。
交付者必须声明矩阵值是原始计数、抽平后计数、相对丰度、标准化值、对数转换值还是折叠后的总量。还要记录过滤发生在转换之前还是之后,以及是否删除低丰度特征或低测序量样本。
原始计数与相对丰度回答的问题不同。前者保留测序深度信息,后者把样本总量压到共同尺度;抽平又会引入抽样过程。若接收者把相对丰度当作计数重新归一化,即使ID全部对齐,结果也会偏离原分析。
稀疏存储省略零值位置的显式数值,数据缺失则表示没有相应观察或记录;两者不能混为一谈。对需要区分“结构性零”“未测量”和“记录缺失”的项目,应另外定义缺失状态,不能把所有空白统一补零。
样本元数据和观察物元数据不要混写
BIOM官方文档把受试对象、pH和PCR引物列为样本元数据示例,把OTU分类和基因EC层级列为观察物元数据示例。前者描述样本怎样取得或处于什么条件,后者描述矩阵行代表的特征是什么。
两条轴的字段应分别制作字典:字段名、中文含义、所属轴、数据类型、单位、允许值、缺失值和来源。温度若一批用摄氏、一批用华氏,列名相同仍不能直接合并;pH若来自不同方法,也应记录测量条件。

数据类型同样重要。官方工具可以把字段解析成整数、浮点数或分号分隔的层级列表。若分类层级被当成普通字符串,后续软件可能无法按门、纲、目拆分;若样本编号被当成整数,前导零可能消失。先声明类型,再导入,比导入后凭显示结果猜测更可靠。
文件格式转换可能造成信息缩水。把丰富的HDF5 BIOM转换成某些较简单的文本表时,工具只会保留它能够表达的字段。转换前后应重新比较sample ID、observation ID、shape、nnz、元数据列及关键统计量,并把原始BIOM作为不可覆盖的交付对象。
数据库、流程和分组条件要随文件同行
FAIR原则把持久唯一标识、丰富元数据、来源关系和领域标准列为资料可发现与可再利用的重要条件。对BIOM交接而言,这意味着矩阵、样本表、参考文件、流程和结果不应只靠文件夹位置关联。
为数据包建立manifest,给BIOM、样本分组表、代表序列、参考库、参数文件和结果分别记录稳定ID、相对路径、文件大小、哈希、版本、创建时间、来源和责任者。路径可以改变,ID与关系仍应保留。
分析流程至少记录去噪或聚类工具、特征过滤、污染控制、参考库、分类器、归一化或转换方法、随机种子以及环境锁文件。分组表记录主要分组、参考组、排除条件和协变量。若某些参数使用默认值,也写明软件版本和默认值来源,不要只写“默认设置”。
哈希用于确认跨设备复制后字节是否一致,不能证明样本标签正确或方法合理。相反,方法说明再详细,如果接收文件与交付文件哈希不同,也不能确认双方讨论的是同一对象。完整性证据与科学语境必须同时存在。
接收端按三层顺序验收
第一层是容器。运行官方或兼容工具验证格式,读取顶层属性,核对format-version、type、shape、nnz以及必需组和数据集。确认文件不是只有扩展名像BIOM,也确认接收软件支持对应版本。
第二层是身份与语义。完整比较sample ID和observation ID集合,检查重复、差集和顺序;核对分组表、元数据类型、单位、矩阵数值状态、参考库和流程版本。对转换文件,比较转换前后的轴、维度和元数据保留情况。
第三层是最小复核。由接收者在另一台受支持设备独立导入,选择一个样本计算总量、非零特征数和一个已约定的分类汇总,再与交付者提供的检查值比较。若包含分组分析,至少核对每组样本数和一项不涉及复杂模型的描述统计。
BIOM结构验证检查容器是否合规,接收端最小复核检查研究资料能否按约定继续使用。两者都通过,仍不代表论文结论已经复现,却能较早发现轴向错配、字段丢失、数值状态误读和版本缺口。
什么情况下可以简化
只为一次性展示、不进入统计且能够从正式资料重新生成的汇总表,可以减少环境和流程附件。但只要BIOM要用于分组比较、分类解释、系统树、模型训练、长期归档或跨团队复用,就应保留完整身份、版本与来源。
BIOM格式合规不能证明样本未错标、分类正确、研究设计充分或分析结论可靠。taxonomy字段存在不等于分类可靠,文件哈希相同不等于实验质量合格,文件能导入也不能恢复从未随包交付的原始读段、参数和排除决定。
真正完成的交接,是接收者能说清楚矩阵每条轴和每个值的含义,能把样本与分组、特征与参考版本一一连接,并能在受控条件下复算一个代表性结果。文件格式是这条链的容器,不是整条链本身。
用一个小型交接案例走完整条链
设想交付目录中有table.biom、sample-metadata.tsv、rep-seqs.fasta和一份分析说明。交付者说这是“处理组与对照组的OTU表”。接收者不应立即打开绘图软件,而应先把这句话拆成可以验证的对象。
第一步,从BIOM读取type、format-version、generated-by、creation-date、shape和nnz。若type是OTU table,说明矩阵宣称按OTU组织;若交付说明却称它是ASV表,就已经出现定义冲突。generated-by只写软件名称而没有版本时,将版本列为待补,不根据本机安装版本代填。
第二步,导出sample ID列表,与sample-metadata.tsv第一列进行集合比较。假设BIOM有S01至S24,分组表多出S25而缺少S08,不能用“总数仍是24”放行。多出的S25在添加元数据时可能被忽略,缺少的S08则可能在分析中失去分组。接收记录应分别写出两个差集,而不是只报数量。
第三步,导出observation ID并核对rep-seqs.fasta。若BIOM里有一万个特征,代表序列却少了数百条,需要判断这些特征是否在建树前被过滤、文件是否来自不同运行,或导出时发生遗漏。数量相近仍不够,还要比较ID集合。

第四步,挑选S01,计算该列所有值之和及非零特征数。交付者若声明矩阵为原始计数,这两个检查值应与交付收据一致;若实际每列总和接近1,则可能是相对丰度。这个现象只是提示,最终仍应由流程记录确认,不能靠数值外观替代声明。
第五步,从taxonomy字段选一个特征,沿分类层级和参考库记录核对。若标签来自某一版SILVA、Greengenes或其他数据库,写明实际名称、release、分类器和阈值;文章并不假定任何一个库必然更好。没有版本的“使用SILVA”不足以让接收者重建同一注释状态。
第六步,用接收环境重新生成一个简单汇总,例如每组样本数、S01总量或某一分类层级的计数。这个最小复核不追求重跑整篇研究,而是验证容器、轴向连接、数值解释和必要附件能共同工作。
把交付包分成六张清单
对象清单记录文件ID、文件名、用途、格式版本、大小和哈希。BIOM、样本表、代表序列、树、参考文件、脚本和结果都单独占一行。这样即使目录移动或文件改名,仍能用ID识别对象。
样本清单记录sample ID、批次、分组、采样时间或条件、必要协变量和排除状态。字段含义写在独立字典中,避免“group=1”在不同团队中被解释成处理组或对照组。若同一受试对象有多个时间点,样本ID和受试对象ID也要分开。
特征清单记录observation ID的类型、生成方法、代表序列或定义文件、过滤规则及分类来源。若特征曾被折叠,保留collapsed_ids或等价映射,使汇总后的行能够追到原始特征。
数值清单只回答矩阵里的值是什么:原始计数、抽平计数、相对丰度、标准化值、对数值或其他结果;零与缺失如何区分;过滤和归一化的顺序;是否存在随机抽样。不要把这些信息埋在结果图图注里。
流程清单记录工具、版本、命令或工作流版本、关键参数、参考数据库、随机种子和运行时间。若BIOM由多个阶段共同生成,列出输入表、转换表和最终表之间的关系,不把最后一步的generated-by误写成完整上游来源。
验收清单记录接收时间、接收者、格式验证结果、ID差集、转换前后比较、代表性统计值和未解决问题。通过项与例外项分开;例外若不会影响当前用途,也要写明依据和使用边界。
版本冲突时不要覆盖证据
交付后若发现分组表错了一行,不要直接覆盖旧文件并沿用相同名称。为修正版分配新版本,记录修改字段、原因、影响样本和审核者,再说明旧BIOM是否需要重新生成。若矩阵没有变化,也应明确“仅元数据修订”,避免接收者误以为数值也更新过。
若参考数据库升级,应把新分类结果作为新对象,与旧版并列或明确替代关系。数据库更新可能改变标签,不代表原始矩阵计数必然变化。把数值表与注释表分开标识,才能判断变化来自测序处理、特征定义还是分类知识更新。
同样,格式转换不应覆盖原始BIOM。保留原文件、转换命令、工具版本、输出哈希和字段比较报告。转换后的文本表适合人工查看,却可能无法表达HDF5中的任意元数据或组关系。便于打开与信息完整是两个不同目标。
八项最终判断
BIOM表示观察物×样本列联表并关联两条轴的元数据。BIOM 2.1要求格式版本、生成工具、创建时间、shape、nnz以及两条轴的ID和稀疏矩阵数据。样本元数据与观察物元数据用途不同,字段还可能被解析为整数、浮点或分层列表。
矩阵数值通过sample ID和observation ID获得语义;轴向错配或参考版本变化会让可读取的数值对应错误对象。采用稀疏结构时,未显式列出的零值仍属于矩阵;真正没有记录的缺失状态需要另行定义。
格式验证回答文件结构是否合规,独立导入和代表性复算回答资料能否按约定继续使用。即使两层都通过,样本标签、分类依据、研究设计和最终结论仍需各自的质量证据。
最后的读者动作是:比对两条轴的ID集合、shape与nnz,记录数值状态、数据库及流程版本,并由接收端复算一个代表性汇总。只要其中一项无法说明,就把问题写进验收清单,不以“文件已打开”代替解决。
资料来源
- GigaScience:《The Biological Observation Matrix (BIOM) format or: how I learned to stop worrying and love the ome-ome》,发布或更新于 2012-07-12
- BIOM Format Development Team:《The biom file format: Version 2.1》,发布或更新于 2024-05-11
- BIOM Format Development Team:《Adding sample and observation metadata to biom files》,发布或更新于 2024-05-11
- Scientific Data / FAIR原则作者组:《The FAIR Guiding Principles for scientific data management and stewardship》,发布或更新于 2016-03-15