← 返回知识文章

科研工作流

搭建一个可复现的科研计算项目

从目录、输入、运行记录到结果归档,建立最小但可靠的项目结构。

科研计算最常见的问题,不一定是程序不能运行,而是几周后无法回答:这个结果由哪份输入、哪个版本和哪些参数产生?一个可复现项目不需要复杂平台,先把最小结构固定下来就够了。

一、把原始输入与工作文件分开

建议至少区分四类内容:

  • inputs/:不可随意覆盖的原始输入;
  • scripts/:处理、计算和绘图脚本;
  • runs/:按日期或任务编号保存的运行记录;
  • results/:经过检查、准备用于讨论或写作的结果。

原始文件一旦进入项目就尽量保持不变。需要修正时生成新版本,并记录修改原因。

二、每次运行都留下身份

一次运行至少应回答:使用了什么输入、运行了什么命令、软件版本是什么、何时开始结束、是否满足完成标准。可以用一个简短的 run.json 或文本记录保存这些信息。

“程序退出码为零”只说明程序正常结束,不等于科学结果正确。还要保存与任务相关的检查标准,例如收敛阈值、有效样本数或输出完整性。

三、只把审查过的结果放进 results

results/ 不应成为所有输出的混合目录。进入这里的文件应附带来源、检查状态和生成方式。图表最好能够由脚本重新生成,而不是只保存一张无法追溯的图片。

四、从最小规则开始

先做到不覆盖原始输入、每次运行有记录、最终结果可追溯。等这些规则稳定后,再考虑工作流系统、容器或自动化平台。工具越复杂,维护成本越高;可复现的核心始终是清楚的证据链。