oxo-flow:编译式、内存安全的生物信息学工作流编排

由 root 提交于 周二, 06/16/2026 - 08:47
生物信息学分析依赖工作流引擎来协调数十种计算工具,并跨越复杂的依赖链进行组织。应用最广泛的引擎——Snakemake、Nextflow、Common Workflow Language(CWL)和 Workflow Description Language(WDL)——运行于解释型或即时编译(JIT)语言运行时之上,因此会产生数百毫秒的启动延迟,并且无法从宿主语言获得编译时安全性保证。我们开发了 oxo-flow,这是一款采用 Rust 编写并可编译为单一原生二进制文件的工作流引擎。在 Apple M5 处理器上,oxo-flow 能够在约 22 毫秒内完成对生产规模工作流的解析、验证和 dry-run,而此时 Snakemake 或 Nextflow 甚至尚未完成其运行时环境的加载。其峰值内存占用为 16 兆字节,相较于 Snakemake 和 Nextflow 分别降低了 6 至 7 倍。Dry-run 延迟几乎不受工作流规模影响:规则数量增加 100 倍,仅额外增加约 0.4 毫秒。oxo-flow 将 31 个命令行工具、一个包含 60 个端点的 REST 接口、一个嵌入式 Web 应用程序以及原生集群提交功能集成到一个 10 兆字节的单一二进制文件中。它通过七种后端提供按规则划分的环境隔离,具备基于检查点并结合密码学输出验证的容错能力,并为受监管实验室环境提供正式的安装与运行确认协议。现已提供 10 个精选工作流和 3 个演示性流程仓库。oxo-flow 根据 Apache License 2.0 免费开放获取,地址为 https://github.com/Traitome/oxo-flow。

生物信息学分析依赖工作流引擎来协调数十种计算工具,并跨越复杂的依赖链执行。应用最广泛的引擎——Snakemake、Nextflow、通用工作流语言(Common Workflow Language,CWL)和工作流描述语言(Workflow Description Language,WDL)——运行于解释型或即时编译(JIT)语言运行时之上,因此会产生数百毫秒的启动延迟,并且无法从宿主语言层面提供编译时安全性保证。我们开发了 oxo-flow,这是一种使用 Rust 编写并可编译为单一本地二进制文件的工作流引擎。在 Apple M5 处理器上,oxo-flow 可在约 22 毫秒内完成对生产规模工作流的解析、验证和试运行——而此时 Snakemake 或 Nextflow 尚未完成其运行时环境的加载。其峰值内存占用为 16 MB,相较于 Snakemake 和 Nextflow 分别降低了 6 至 7 倍。试运行延迟在本质上与工作流规模无关:规则数量增加 100 倍,仅额外增加约 0.4 毫秒。oxo-flow 将 31 个命令行工具、具有 60 个端点的 REST 接口、嵌入式 Web 应用程序以及原生集群提交功能集成为单个 10 MB 的二进制文件。它通过七种后端提供按规则划分的环境隔离,具备基于检查点的容错能力和加密输出验证机制,并为受监管实验室环境提供正式的安装确认与运行确认协议。现已提供 10 个经整理的工作流和 3 个演示性流程库。oxo-flow 依据 Apache License 2.0 免费发布,地址为 https://github.com/Traitome/oxo-flow。


📄 原文链接:https://www.biorxiv.org/content/10.64898/2026.06.11.731578v1?rss=1

🏷️ 生物信息学工作流 工作流引擎 Rust 内存安全 编译式系统