Compose Subsystem Overview¶
Available since v0.9.0 · Latest additions: process runtime, BioModels, v2ecoli, wrapper generation (v0.9.3)
The compose subsystem brings the process-bigraph ecosystem into Atlantis as a production-grade, HPC-backed simulation platform. It runs alongside the vEcoli batch subsystem — both share the same PostgreSQL database, SLURM cluster, and Singularity container infrastructure.
What you can do¶
Capability |
CLI entry point |
Guide |
|---|---|---|
Whole-cell E. coli simulation |
|
|
Colony simulations (multi-seed) |
|
|
BioModels database (EBI) |
|
|
COPASI / Tellurium (SBML) |
|
below |
Stateful process runtime |
|
|
Interactive live sandbox |
|
|
PBG wrapper generation |
|
|
Package registry |
|
Architecture¶
Compose simulations differ from the vEcoli batch workflow in one key way: containers are generated automatically from the simulation’s Python dependencies rather than built from a fixed git commit.
User request (CLI / REST)
│
▼
FastAPI /compose/v1/...
│
▼ parse PBG document
│ auto-generate Singularity .def (pbest)
│ hash definition → check container cache
│
├─── container not cached ──▶ SLURM: build image (~15 min)
│
▼ container cached
SCP experiment files to HPC
│
▼
SLURM: singularity exec <container> python runner.py
│
▼
results.zip ◀── SCP ◀── /experiment/output/
Comparison with vEcoli batch¶
Aspect |
vEcoli Batch |
Compose |
|---|---|---|
Input |
Config JSON + git repo |
OMEX/PBG/SBML file or curated template |
Engine |
Nextflow + vEcoli |
process-bigraph + Singularity |
Container |
Built once from git hash |
Auto-generated from PBG dependencies |
Base endpoints |
|
|
CLI prefix |
|
|
Quick Start¶
v2ecoli whole-cell simulation¶
uv run atlantis compose ecoli \
--duration 60 \
--seed 0 \
--poll \
--base-url https://sms.cam.uchc.edu
COPASI ODE from SBML¶
uv run atlantis compose copasi my_model.sbml \
--duration 100 \
--num-data-points 200 \
--poll \
--base-url https://sms.cam.uchc.edu
Tellurium from SBML¶
uv run atlantis compose tellurium my_model.sbml \
--end-time 100 \
--num-data-points 200 \
--poll \
--base-url https://sms.cam.uchc.edu
Generic PBG / OMEX upload¶
uv run atlantis compose run mymodel.omex \
--interval-time 1.0 \
--poll \
--base-url https://sms.cam.uchc.edu
Fetch status and results¶
uv run atlantis compose status <SIM_ID> --base-url https://sms.cam.uchc.edu
uv run atlantis compose results <SIM_ID> --dest ./output --base-url https://sms.cam.uchc.edu
uv run atlantis compose doc <SIM_ID> --base-url https://sms.cam.uchc.edu
Database¶
Compose uses the same PostgreSQL instance as the vEcoli subsystem, with
separate compose_-prefixed tables:
Table |
Contents |
|---|---|
|
Container definition registry (content-hashed) |
|
Simulation metadata and input PBG documents |
|
SLURM job tracking |
|
Registered process-bigraph packages |
|
Registered processes and steps |
|
Live process runtime instances (UUID-keyed) |
|
Audit trail of every |
|
PBG wrapper generation jobs |
Process-Bigraph Document Format¶
.pbg files are JSON documents describing a composable simulation:
{
"state": {
"my_process": {
"_type": "process",
"address": "local:my_module.MyProcess",
"config": { "rate": 0.1 },
"interval": 1.0,
"inputs": { "substrate": ["stores", "substrate"] },
"outputs": { "product": ["stores", "product"] }
}
}
}
Key concepts:
address— Python resolution path for the compute class (local:= same environment)config— passed to the class constructorinputs/outputs— port names mapped to paths in the shared store treeinterval— timestep for continuous processes
.pbg files can be submitted standalone or bundled inside an OMEX archive (ZIP).
Notes¶
Compose endpoints are independent of vEcoli batch endpoints — both run simultaneously.
Container builds run on SLURM; first build with a new definition takes ~15 minutes. Subsequent simulations reuse the cached image instantly.
Compose is available on SLURM deployments only (
sms-api-rke,sms-api-rke-dev). It is not deployed on the Stanford/AWS Batch path.