Build, validate, and execute reproducible bioinformatics workflows with DAG-based execution, first-class environment management, cluster scheduling, and clinical-grade reporting — all from a single, fast Rust binary.
Everything you need to build production-grade bioinformatics pipelines.
Automatic dependency resolution, topological sorting, cycle detection, and parallel execution. Built with petgraph — proven on 1,000-rule stress tests.
First-class support for conda, pixi, Docker, Singularity, Python venv, and HPC modules. Each rule declares its own isolated environment.
Resource-aware scheduling across SLURM, PBS, SGE, and LSF backends. Rules declare CPU, memory, GPU, and disk requirements; the scheduler enforces them.
Modular HTML/JSON report generation with Tera templates. ACMG/AMP variant classification, biomarker tracking, and compliance audit trails.
Built-in axum server with versioned REST API, RBAC (Admin/User/Viewer), rate limiting, and security headers.
Export workflows to multi-stage Docker builds or Singularity images. Rootless containers with HEALTHCHECK support for portable, self-contained execution.
Shell injection prevention, path traversal protection, secret scanning, per-IP rate limiting, and #![forbid(unsafe_code)] across every crate.
Native binary — instant startup, fearless concurrency, zero-cost abstractions. Rust 2024 edition with a type-state lifecycle (Parsed → Validated → Ready).
Built-in clinical tumor variant calling pipeline (Venus) — FASTQ → annotated VCF with clinical reports. Supports tumor-only, normal-only, and tumor-normal modes.
Learn oxo-flow incrementally — from a one-rule hello-world to production-grade
multi-omics pipelines. Every example passes oxo-flow validate and is tested in CI.
From zero to running pipeline in a few commands.
Define your pipeline in clean, readable TOML. Wildcards like {sample}
are expanded automatically based on input file discovery or explicit configuration.
The oxo-flow binary provides 18 subcommands covering the complete workflow lifecycle.
Global flags: -v (verbose), --quiet, --no-color.
| Command | Description |
|---|---|
oxo-flow run | Execute a workflow (-j jobs, -k keep-going, --timeout per-job, -r retries) |
oxo-flow dry-run | Simulate execution — show what would run without executing |
oxo-flow validate | Validate an .oxoflow file for syntax and semantic correctness |
oxo-flow lint | Run best-practice linting checks (--strict treats warnings as errors) |
oxo-flow format | Reformat a .oxoflow file into canonical TOML (--check mode available) |
oxo-flow graph | Export the workflow DAG in DOT format for visualisation |
oxo-flow report | Generate execution reports (-f html|json, -o output path) |
oxo-flow init | Scaffold a new pipeline project (-d output directory) |
oxo-flow env list|check | List available environment backends or verify all requirements are met |
oxo-flow package | Package workflow into a container image (-f docker|singularity) |
oxo-flow export | Export workflow to a Dockerfile, Singularity definition, or standalone TOML |
oxo-flow cluster submit|status|cancel | Submit and monitor jobs on SLURM, PBS, SGE, or LSF cluster backends |
oxo-flow profile list|show|current | Manage execution profiles (local, slurm, pbs, sge, lsf) |
oxo-flow config show|stats | Inspect workflow configuration variables and statistics |
oxo-flow status | Show execution status from the checkpoint file |
oxo-flow clean | Clean workflow outputs and temp files (-n dry-run, --force) |
oxo-flow serve | Start the web interface (--host, -p port; default 127.0.0.1:8080) |
oxo-flow completions | Generate shell completions (bash, zsh, fish, elvish, PowerShell) |
oxo-flow serve starts an axum-powered
REST server with a versioned API, RBAC, rate limiting, and security headers.
| Method | Endpoint | Description |
|---|---|---|
GET | /api/health | Health check |
GET | /api/version | Server and engine version info |
GET | /api/workflows | List available workflows |
GET | /api/environments | List available environment backends |
POST | /api/workflows/validate | Validate workflow TOML |
POST | /api/workflows/dag | Build the DAG and return DOT representation |
POST | /api/workflows/dry-run | Simulate execution and return the plan |
POST | /api/workflows/run | Start workflow execution |
POST | /api/workflows/export | Export workflow for sharing or archival |
POST | /api/reports/generate | Generate a report (HTML or JSON) |
POST | /api/auth/login | Authenticate and receive a session token |
GET | /api/auth/me | Return the authenticated user details |
GET | /api/license | Check license status |
Three ways to get oxo-flow on your system.
cargo install oxo-flow-cli
# Linux (x86_64)
curl -LO https://github.com/Traitome/oxo-flow/releases/latest/download/oxo-flow-x86_64-unknown-linux-gnu.tar.gz
tar xzf oxo-flow-x86_64-unknown-linux-gnu.tar.gz
sudo mv oxo-flow /usr/local/bin/
# macOS (Apple Silicon)
curl -LO https://github.com/Traitome/oxo-flow/releases/latest/download/oxo-flow-aarch64-apple-darwin.tar.gz
tar xzf oxo-flow-aarch64-apple-darwin.tar.gz
sudo mv oxo-flow /usr/local/bin/
git clone https://github.com/Traitome/oxo-flow.git
cd oxo-flow
cargo build --release
# Binaries in target/release/
# oxo-flow (CLI)
# oxo-flow-web (Web server)
# venus (Venus pipeline)
Built on battle-tested Rust crates. 475 tests including a 1,000-rule stress test,
with #![forbid(unsafe_code)] enforced across all crates.
Open-source core with a dual-license model for the web interface. The core library, CLI, and Venus pipeline are free and open-source under Apache 2.0.
| Component | License | Details |
|---|---|---|
oxo-flow-core |
Apache 2.0 | Free and open-source — use, modify, distribute without restriction |
oxo-flow-cli |
Apache 2.0 | Free and open-source — use, modify, distribute without restriction |
venus |
Apache 2.0 | Free and open-source — use, modify, distribute without restriction |
oxo-flow-web |
Dual — Academic / Commercial | Free for academic & non-commercial use; commercial use requires a paid license |
Contributions are welcome. Read the guides below, ensure make ci passes, then open a PR.
Security policy · Reproducibility guarantees · IQ/OQ/PQ validation · Change control
Read the documentation, explore the gallery, or dive straight into the source.