# Configuration Oris uses a TOML configuration file to control its **execution environment**, **HPC scheduling**, and **simulation parameters**. Oris will use the configuration file specified via the optional `--config` argument. If no file is provided, Oris falls back to an internal default configuration. The configuration file is organized into three sections: 1. **[slurm]** - HPC scheduling directives (SLURM-specific) 2. **[env]** - Software environment setup 3. **[oris]** - Oris-specific simulation parameters Below is the default configuration used by Oris: ``` # ========================================== # ORIS - CLUSTER CONFIGURATION / PIPELINE # ========================================== # 🖥️ CLUSTER (Slurm) [slurm] partition = "CPUQ" # Cluster queue account = "myuser" # Project (if applies) time = "24:00:00" # Time limit ⏳ nodes = 18 # Number of nodes 🧩 ntasks_per_node = 14 # MPI tasks per node 🚀 output = "oris_%j.out" # Standard log 📄 error = "oris_%j.err" # Error log ❗ auto_submit = true # Automatic sbatch launch 🧚 # 🧬 ENVIRONMENT [env] preamble = """ module load intel/2024a module load SciPy-bundle/2024.05-gfbf-2024a module load Python/3.12.3-GCCcore-13.3.0 """ # 🧠 ORIS configuration [oris] default_sampling = 10 # When no --sampling 🧮 media_targets = ["EGFR", "IGF1R", "MET"] # Media nodes 🌐 timeout_sampling = 300 # Sampling threshold (seconds) ⏱️ timeout_paths = 600 # CountPaths threshold (seconds) ⏱️ ``` ## 🖥️ [slurm] - HPC Scheduling Section This section controls how Oris interacts with **SLURM** when submitting jobs. | Parameter | Type | Description | | ------------------- | ------ | ----------------------------------------------- | | `partition` | string | SLURM partition/queue to submit jobs to | | `account` | string | Project/account for billing (cluster-dependent) | | `time` | string | Wall-time limit in `HH:MM:SS` format | | `nodes` | int | Number of SLURM nodes requested | | `ntasks_per_node` | int | MPI tasks spawned per node | | `output` | string | Path for standard output logs (`%j` = JobID) | | `error` | string | Path for error logs | | `auto_submit` | bool | If `true`, Oris submits via `sbatch` | > 📝 If `auto_submit = false`, Oris witll instead generate the `.sbatch` script and print instructions for manual submission. ## 🧬 [env] - Software Environment Section This section defines the **runtime software environment**, typically using `module load`, `conda activate`, or similar commands. | Parameter | Type | Description | | ------------ | ---------------- | -------------------------------------------- | | `preamble` | multiline string | Shell commands executed before job execution | Common uses include: - loading compiler toolchains - activating conda environments - loading MPI implementations - loading Python modules ## 🧠 [oris] - Simulation Parameters Section This section controls Oris-specific runtime behavior: | Parameter | Type | Description | | -------------------- | ------------- | ------------------------------------------------------------------ | | `default_sampling` | int | Default number of sampled models if `--sampling` is not provided | | `media_targets` | array[string] | Input/media nodes forced ON during initial condition filtering | | `timeout_sampling` | int (seconds) | Max time for `CountPaths` during model sampling | | `timeout_paths` | int (seconds) | Max time for `CountPaths` during full simulation | > 📝 **Notes:** > > - `media_targets` defines **culture medium context**, enforcing media nodes as inputs during initial condition selection. > - `timeout_sampling` applies only to **sampling mode**, i.e. selecting fast-running models. > - `timeout_paths` applies to **CountPaths runs** under all modes. ## 💡 **Example Usage** To run Oris with a custom configuration: `oris --zips /path/to/zips --mode full --sampling 20 --config /path/to/oris_config.toml` If `--config` is omitted, Oris will load its internal default. > 📝 Depending on your HPC system you may need to modify: > > - `partition` > - `account` > - `module load` lines > - MPI versions > - Python versions (always 3.10+) > > Oris does **not** validate environment modules, so incorrect module names will result in SLURM job failures at runtime.