The model-runner
service provides a common interface for running epidemiological models and is primarily written in TypeScript. This repository contains a package to run models using a shared API for communication with the web-ui and model connectors.
The model-runner
service takes a JSON object as input describing assumptions, interventions, and a target model to run. It runs a Docker image containing a connector for the target model, and produces a JSON object as output describing predicted public health outcomes over time. The input and output schemas are common across all supported models.
For more information about model connectors, including contributions of connectors for new models, see the model-connector-template.
To learn more about this project's goals, please see PROJECT-INTENT.md.
- See the architecture doc for an explanation of the architecture.
model-runner
requires the following software to be installed:
For working with the TypeScript portion of the project:
If you want to build a new version of any of the models, you will need additional tools such as a C compiler.
The model-runner package is written in TypeScript. Currently, the build scripts are only compatible with MacOS and Linux. Windows is not supported.
To install all dependencies and compile the TypeScript:
npm install
npm run build
To run the unit and integration tests from the command line for all packages:
npm run test
npm run integration-test
Both these test suites appear to fail at present.
GitHub Actions will build, test, and publish a package whenever changes are committed to this repository.
To build and publish a numbered version of a package, run npm version [major | minor | patch]
, then run git push --tags
.
- Found a bug? Raise an issue!
- Want to contribue? Raise a pull request!
We welcome contributions to this project from the community. See CONTRIBUTING.md.
This project is licensed under the MIT license. See LICENSE.