设备场景

文件已经同步,研究为什么仍无法复跑:跨设备交接中的版本连续性

同步成功只说明文件抵达。要让研究能复跑,还要把输入、脚本、环境、运行和输出以稳定ID及版本关系连起来。

跨地区团队收到counts.tsv、analysis.R和一张结果图,三个文件都能打开,却不知道输入数据来自哪批样本、脚本运行时使用哪版参考库,也无法确认图表对应哪次执行。

文件抵达只证明传输完成;研究可复核还需要稳定标识、输入与输出关系、活动时间、软件和参考库版本、参数、责任者及变更记录形成连续证据链。

同步完成只回答“有没有收到”

客户端显示100%,可以说明这次传输在应用看来结束。它不能说明counts.tsv来自哪批样本,analysis.R是否就是生成结果图的版本,也不能说明另一台电脑具备相同参考库和依赖。

文件抵达与研究可复核是两个层级。前者关注字节是否完整,后者要回答对象身份、来源、转换过程和使用边界。把两者混在一起,团队往往到论文修改或结果复查时才发现证据链断裂。

用稳定ID替代“final2”

FAIR原则把持久标识、丰富元数据、来源和领域标准列为数据可发现与可再利用条件。内部项目不一定要为每个文件申请公开DOI,但应有不会因重命名或移动目录而改变的稳定ID。

交付清单为数据集、脚本、环境、运行和结果分别记录ID、相对路径、版本、创建时间、来源和责任者。文件名可以帮助阅读,却不承担唯一身份。“final2”无法说明它修正了什么,也无法指出它取代哪一版。

哈希放在清单里,用于确认跨设备复制后字节一致。文件哈希证明字节是否相同,环境记录说明结果怎样产生,两者回答的问题不同。哈希相同不证明样品正确、方法合适或结论可靠。

把一次运行记录成使用与生成

PROV-O用实体、活动、责任者以及使用、生成和衍生关系表达来源链。可以把原始数据、脚本、参考库、参数文件和结果视为实体;把一次分析执行视为活动;把执行者、审核者或自动系统记录为责任者。

每次运行生成唯一run ID,列出实际使用的输入ID与版本、软件环境、开始和结束时间、关键参数、退出状态,以及生成的输出ID。结果图不再只引用“脚本”,而是引用某一次明确运行。

同步只移动字节;稳定ID和使用—生成关系把文件重新连成输入、运行和输出,避免改名或覆盖后失去来源。即使目录换到另一台设备,清单仍能重建关系。

环境和参考库属于研究对象

FAIR论文明确把算法、工具与工作流程也视为需要管理的科研数字对象。因此,交付不能只包含一份脚本。还要记录解释器、包、容器或环境锁文件、操作系统条件、参考基因组、注释库和索引版本。

同一段代码面对不同参考序列或注释版本,输入坐标和可计数对象可能已经改变。数据库只写名称而没有release或访问日期,后来者无法取得同一状态。若索引由参考文件生成,也要记录索引工具、参数和来源文件哈希。

能使用容器时保留镜像标识和构建文件;不能容器化时,至少导出依赖清单、版本与安装来源。保留环境仍不保证多年后可以运行,但比一句“使用最新版”更接近可复查。

修订、替代和并行分支要分开

PROV-O能够表达修订与衍生。发现脚本错误后生成的新结果,应声明“修订自”旧结果、修改原因和影响范围;旧版保留为历史实体,并标记不再用于主要结论。

如果团队只是用另一种归一化方法做敏感性分析,新输出通常是并行分支,不必假装完全替代原结果。替代版本用于纠正旧结果,并行分支用于保留不同方法;二者不能都写成final。

变更记录至少包含修改人、时间、输入变化、代码或参数变化、受影响输出和审核状态。直接覆盖旧文件会让已发表图表、会议版本和下游表格失去对应对象。

文件已经同步,研究为什么仍无法复跑:跨设备交接中的版本连续性 配图 1
文件已经同步,研究为什么仍无法复跑:跨设备交接中的版本连续性 配图 1

接收端从结果反向走一次

接收者先用清单核对文件数量和哈希,再选一张最终图,找到它对应的output ID与run ID。沿运行记录定位脚本、输入数据、参考库、参数和环境,然后在另一台受支持设备复跑一个代表步骤。

由另一台设备从最终图反向找到输入、脚本、环境与运行记录,并复跑一条代表步骤。若图能打开但找不到run ID,或脚本存在却缺少参考版本,交付仍未闭合。

复跑不要求所有随机或并行计算逐字节相同。团队应预先说明预期比较方式:哈希完全一致、关键统计量容差一致,或主要结论方向一致。未定义判定标准时,“大致一样”无法作为接收证据。

权限与同步工具的边界

研究资料可能包含受限或敏感内容。清单应说明谁可读取原始数据、谁可修改流程、谁能批准结果,以及项目结束后的保留或撤销规则。稳定标识不要求所有对象公开。

同步工具负责传输、冲突副本和权限功能,但不会自动理解哪版参考基因组支撑哪张图,也不会判断某次修订是否科学合理。不宣称任何客户端能自动完成研究治理。

来源链完整不证明实验设计或结论正确,同步成功也不等于研究已经复现。它的价值是让质疑可以沿明确路径回到输入、运行、环境和责任者。

最小交付表

第一部分列对象:dataset、script、environment、run和output的稳定ID、版本与路径。第二部分列来源:数据批次、采集或取得日期、许可和领域字段。第三部分列环境:软件、依赖、参考库、索引和参数。

第四部分列关系:某次运行使用哪些输入、由谁在何时执行、生成哪些输出。第五部分列变更:修订、替代、并行分支、原因与审核。第六部分列完整性:文件大小、哈希和接收状态。

交付完成的判断不是“压缩包已下载”,而是接收者能从结果回到一次明确运行,再找到全部输入和环境,并知道后续修订如何连接旧版。

不得把同步成功等同科学复现;不得覆盖旧版后仍称版本连续;不得把文件哈希当成实验质量证明。

资料来源

  • Scientific Data / FAIR原则作者组:《The FAIR Guiding Principles for scientific data management and stewardship》,发布或更新于 2016-03-15
  • World Wide Web Consortium:《PROV-O: The PROV Ontology》,发布或更新于 2013-04-30