Skip to main content

A dynamic microsimulation framework

Project description

neworder

PyPI - Python Version PyPI PyPI - Downloads Anaconda-Server Version Badge Anaconda-Server Downloads Badge

License DOI

Build Status Build status Documentation Status Codacy Badge

neworder is a microsimulation framework inspired by openm++, MODGEN and, to a lesser extent, the python-based LIAM2 tool, and can be thought of powerful best-of-both-worlds hybrid of MODGEN and LIAM2. Modellers can define their models in a a simple. well-known language, yet benefit from the efficiency of compiled code and parallel execution:

  • python module: easy to install and integrate, available on all common platforms
  • low barriers to entry: users need only write standard python code, little or no new coding skills required.
  • flexibility: models are specified in python code, so can be arbitrarily complex
  • data agnosticism: the framework does not impose any constraints on data sources, or outputs.
  • reusability: leverage python modules like numpy, pandas and matplotlib.
  • reproducibility: built-in, customisable random generator seeding strategies
  • speed: the module is written in optimised C++ and provides fast Monte-Carlo, statistical and data manipulation functions.
  • compatibility: operate directly on numpy arrays and pandas DataFrames
  • scalability: can be run on a desktop or a HPC cluster, supporting parallel execution using MPI.

System Requirements

neworder runs in python 3.6 or above on 64-bit linux, OSX or Windows platforms. In order to take advantage of the parallel execution functionality, the following are also required:

but the module will work perfectly well in serial mode without these.

Installation

Note: neworder is currently in pre-release. Potentially breaking changes to the API cannot be ruled out before a full 1.0 release.

PyPI

pip install neworder

Conda

conda install -c conda-forge neworder

Docker

The docker image contains all the examples, and should be run interactively. Some of the examples require permission to connect to the host's graphical display.

docker pull virgesmith/neworder
xhost +
docker run -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY -it virgesmith/neworder

NB The above works on ubuntu but may require modification on other OSs.

Then in the container, e.g.

python examples/mortality/model.py

Documentation

To get started first see the detailed documentation here. Then, check out "Hello World" and the other examples.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

neworder-0.1.2.tar.gz (50.7 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page