Deployment Modes
MICOS-2024 can be deployed in several ways, but they are not equivalent. This page explains what each mode is trying to optimize.
Mode 1, direct Python execution
Best for:
- local development,
- debugging,
- repositories where the Python environment is already controlled.
Strengths:
- shortest feedback loop,
- easiest way to inspect CLI behavior,
- direct alignment with
micos/cli.py.
Mode 2, shell-wrapper execution
Best for:
- backwards-compatible automation,
- teams migrating from older script-first workflows.
Important detail:
The wrapper scripts are now thin delegators, not independent pipeline engines. This is good. It reduces logic drift.
Mode 3, workflow-driven execution
Best for:
- larger execution ecosystems,
- workflow-engine integration,
- explicit step-level orchestration.
Relevant assets:
steps/01_quality_control/fastqc.wdlsteps/02_read_cleaning/kneaddata.wdlsteps/03_taxonomic_profiling_kraken/kraken2.wdlsteps/04_taxonomic_conversion_biom/kraken-biom.wdlsteps/05_taxonomic_visualization_krona/krona.wdlsteps/06_qiime2_analysis/*.wdl
Mode 4, container-backed execution
Best for:
- reproducible dependency stacks,
- collaborator handoff,
- isolating environment drift.
Relevant assets:
deploy/docker-compose.example.ymlcontainers/singularity/*.def
Deployment matrix
| Need | Preferred mode |
|---|---|
| Fastest local iteration | Direct Python CLI |
| Compatibility with legacy shell workflows | Shell wrappers |
| Portable step graph | WDL assets |
| Reproducible environment package | Containers |
Practical recommendation
For most contributors:
- operate the stable CLI first,
- use workflow assets when integrating with orchestration systems,
- use containers to freeze environments,
- use wrappers only when you need the legacy ergonomics.