Running Tools
This page explains how to run analyses with the OmicsBox Engine: how to inspect a tool, provide its inputs, control where results go, and reconnect to long-running cloud jobs. For the flags shared by every tool see Global Options; for the utility commands see Built-in Commands.
Inspect, compose, run
Running a tool always follows the same loop:
omicsbox describe <tool> # 1. see the exact inputs, parameters and defaults
omicsbox <tool> [options] # 2. run it
describe is generated at real time from the tool, so it is a reliable source of truth for a tool's command line: its flags, parameters and the values offered by cloud-backed options (such as --database) can change between versions and between accounts.
The plain describe <tool> output contains the inputs, parameters, outputs and parameter relationships. Add --output-format json for the same information as JSON, or --full for the complete specification (types, defaults, numeric ranges, value candidates, argument groups) in either format.
omicsbox describe kraken2 # human-readable
omicsbox describe kraken2 --output-format json # machine-readable
omicsbox describe kraken2 --output-format json --full # complete machine-readable spec
describe --save-template <path> writes a YAML skeleton you can fill in and pass back with --config (see Configuration files).
Providing inputs
Every input flag is prefixed --i-. An input value can be a local file, a file already in your OmicsCloud storage, or an explicit URI. The Engine detects which one you gave:
| Form | Example | Resolves to |
|---|---|---|
| Local file | --i-input-files ./reads.fastq.gz |
a file on your machine (uploaded automatically for cloud runs) |
| Short cloud path | --i-input-files /cloud/async_inputs/reads.fastq.gz |
a file already in your OmicsCloud storage |
| Explicit URI | --i-input-files s3://bucket/identity/reads.fastq.gz |
the exact object referenced by the URI |
| Bare path | --i-input-files async_inputs/reads.fastq.gz |
a local file if it exists, otherwise the matching cloud object |
Cloud inputs are used in place — no local copy is made. To see what is in your cloud storage and get paths you can paste straight into an --i- flag, use:
omicsbox cloud-files # list everything
omicsbox cloud-files async_inputs/fastq # filter by folder
Each line it prints (for example /cloud/async_inputs/fastq/reads.fastq.gz) is a valid input value.
Where results go
There are no --o-* output flags. You choose a destination folder and the Engine names and places each output automatically:
| Flag | Destination |
|---|---|
--local-folder <path> |
download outputs to this folder on your machine |
--cloud-folder <furi> |
write outputs to this location in the cloud (e.g. s3://bucket/prefix/) |
You can keep your results locally, in the cloud, or in both places at once: set --local-folder to download them to your machine, --cloud-folder to write them to the cloud, or pass both flags to save a copy in each. If you set neither, the run stops and asks for a destination.
Outputs land directly in the chosen folder (there is no per-run subfolder). File outputs are named after the output and its file type; a tool that produces a folder of files (such as Fasta Splitter) fills the destination folder directly.
Progress and run IDs
While a tool runs, the Engine prints progress messages as it goes, keeping them separate from the results themselves:
OmicsBox Engine 3.2.0
Resolved command: omicsbox fasta-splitter --i-input-files-single-end seqs.fasta --split-value-parts 4
Submitting fasta-splitter...
Run ID: fasta-splitter_20260602_112135_YIMWQG
Status: QUEUED
Status: RUNNING
Output files: part_1.fasta, part_2.fasta
Outputs saved to: ./results/
Resolved command:echoes the fully-resolved invocation — every flag with its effective value, including the defaults that were applied — so a run is reproducible and auditable.Run ID:identifies a cloud run and is the handle used bystatus,logsandcancel.
Live cloud log messages are streamed to standard error as the job runs; suppress them with --mute, or raise diagnostic detail with --verbose.
Long-running cloud jobs: detach and reconnect
Cloud analyses can be detached so your terminal returns immediately:
omicsbox kraken2 --i-read-files reads.fastq.gz --database "…" --detach
This submits the job, prints its Run ID, and exits. Reconnect from any shell using that ID:
omicsbox status <runId> # check progress
omicsbox logs <runId> --follow # stream logs
omicsbox status <runId> --download --local-folder ./out # fetch outputs when COMPLETE
omicsbox cancel <runId> # stop the run
Download detached outputs within 7 days
The outputs of a detached run are not downloaded to your machine automatically. They are kept in temporary cloud storage for 7 days: download them with status <runId> --download before then, or write them straight to durable storage with --cloud-folder.
--detach applies only to cloud (asynchronous) tools; synchronous tools run to completion in the foreground and ignore it.
Configuration files
Instead of a long command line, a tool's inputs and parameters can be supplied from a YAML file:
omicsbox describe kraken2 --save-template ./kraken2.yaml # generate a template
# edit ./kraken2.yaml …
omicsbox kraken2 --config ./kraken2.yaml # run from the file
Values passed on the command line override the file, so a template can capture your defaults while individual runs override specific flags. This is distinct from the persistent CLI configuration in ~/.omicsbox/config.yaml, which sets defaults for global options — see Global Options.
Automation and pipelines
The Engine is built to be driven by scripts and workflow managers:
-
JSON output — add
--output-format json(or set it once withomicsbox config set output_format JSON). Progress becomes newline-delimited JSON on standard error, and a single run manifest is printed to standard output on success:{ "runId": "fasta-splitter_20260602_112135_YIMWQG", "tool": "fasta-splitter", "outputLocation": "local", "outputs": [ { "key": "output-path", "path": "/abs/results/part_1.fasta" } ], "exitCode": 0 }An output entry carries a
pathwhen it was downloaded locally and auriwhen it was written to the cloud. -
Exit codes make failures scriptable:
0success,1error,2bad arguments,3authentication,4cloud/transport. - Cloud-to-cloud chaining — keep uploaded inputs available for a following step with
--keep-inputs-in-cloud, and read one step's cloud outputs directly as the next step's--i-inputs, avoiding intermediate downloads.
For a machine-readable description of any tool to generate wrappers from, use omicsbox describe <tool> --output-format json --full.