ModelManager.jl

ModelManager.jl

ModelManager.jl is simulator-agnostic infrastructure for managing agent-based modeling (ABM) campaigns in Julia. It provides the generic base layer — a trial hierarchy, parameter variations, an SQLite database, a parallel runner, global sensitivity analysis, and ABC-SMC calibration — that simulator-specific packages build on by implementing the AbstractSimulator interface.

ModelManager is not used directly to run a particular simulator. Instead, a backend such as PhysiCellModelManager.jl (PCMM) implements AbstractSimulator and exposes the user-facing workflow. ModelManager supplies everything underneath.

New here? Read What ModelManager is to understand where this package sits, then Installation. If you are building a backend, jump to Building a Simulator Backend.

Where do I look?

Getting set up

I want to…Go to
Understand ModelManager's role in the ecosystemWhat ModelManager is
Add the package as a dependencyInstallation
Understand Simulation / Monad / Sampling / TrialThe trial hierarchy
Learn how inputs.toml and the data/ directory workProject configuration

Running a campaign

I want to…Go to
Change parameter values across runsVariations
Sweep with LHS, Sobol', or RBD designsSpace-filling designs
Run trials in parallelRunning simulations
Run on a cluster or under SLURMHPC support
Re-run a script without redoing finished workCheap re-runs

Getting results out

I want to…Go to
Compute and store a quantity of interest for each simulationPost-processing and quantities of interest
See what I ran, as a table of parameters and outcomesResult tables
Export results to CSVResult tables
Label runs so I can find them again laterTagging and recovering simulations
Write my own SQL against the project databaseThe database

Analyzing and fitting

I want to…Go to
Find out which parameters matter mostSensitivity analysis
Fit a model to data with ABC-SMCCalibration
Plot a sensitivity or calibration resultVisualizing GSA results, Visualizing calibration results
Work out why a calibration is failing or not convergingWhen things go wrong

Maintaining and extending

I want to…Go to
Delete simulations or reset the databaseManaging data
Understand a schema change after upgradingDatabase upgrades
Implement a new simulator backendBuilding a Simulator Backend
Look up a function's signaturethe Alphabetical index

Issues

Found a bug or have a question? Please open an issue on the ModelManager.jl GitHub page.