{"id":16276599,"url":"https://github.com/virgesmith/neworder","last_synced_at":"2025-03-16T13:31:25.380Z","repository":{"id":37721105,"uuid":"111997710","full_name":"virgesmith/neworder","owner":"virgesmith","description":"A dynamic microsimulation framework for python","archived":false,"fork":false,"pushed_at":"2024-11-01T18:42:11.000Z","size":194678,"stargazers_count":18,"open_issues_count":1,"forks_count":5,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-09T02:33:48.494Z","etag":null,"topics":["cplusplus-20","markov-chain","microsimulation","monte-carlo","mpi","numpy","pandas","pybind11","python3"],"latest_commit_sha":null,"homepage":"https://neworder.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/virgesmith.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"docs/support.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-11-25T11:16:53.000Z","updated_at":"2024-09-10T21:04:45.000Z","dependencies_parsed_at":"2023-02-12T16:31:40.480Z","dependency_job_id":"89f1a368-ee9d-462a-ab06-a7dfd4f9fe3b","html_url":"https://github.com/virgesmith/neworder","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virgesmith%2Fneworder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virgesmith%2Fneworder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virgesmith%2Fneworder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virgesmith%2Fneworder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/virgesmith","download_url":"https://codeload.github.com/virgesmith/neworder/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243817058,"owners_count":20352489,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cplusplus-20","markov-chain","microsimulation","monte-carlo","mpi","numpy","pandas","pybind11","python3"],"created_at":"2024-10-10T18:49:19.855Z","updated_at":"2025-03-16T13:31:20.371Z","avatar_url":"https://github.com/virgesmith.png","language":"Python","readme":"# neworder\n\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/neworder)](https://pypi.org/project/neworder/)\n[![PyPI](https://img.shields.io/pypi/v/neworder)](https://pypi.org/project/neworder/)\n\n[![License](https://img.shields.io/github/license/mashape/apistatus.svg)](https://opensource.org/licenses/MIT)\n[![DOI](https://zenodo.org/badge/111997710.svg)](https://zenodo.org/badge/latestdoi/111997710)\n[![status](https://joss.theoj.org/papers/4b7cc8402819ff48fc7403c0e9a265e9/status.svg)](https://joss.theoj.org/papers/4b7cc8402819ff48fc7403c0e9a265e9)\n\n[![Build and test](https://github.com/virgesmith/neworder/actions/workflows/build-test.yml/badge.svg)](https://github.com/virgesmith/neworder/actions/workflows/build-test.yml)\n[![MPI test](https://github.com/virgesmith/neworder/actions/workflows/mpi-test.yml/badge.svg)](https://github.com/virgesmith/neworder/actions/workflows/mpi-test.yml)\n[![codecov](https://codecov.io/gh/virgesmith/neworder/branch/main/graph/badge.svg?token=g5mDOcjGTD)](https://codecov.io/gh/virgesmith/neworder)\n[![Documentation Status](https://readthedocs.org/projects/neworder/badge/?version=latest)](https://neworder.readthedocs.io/en/latest/?badge=latest)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/2f3d4cbf0d174b07b527c64b700db77f)](https://www.codacy.com/app/virgesmith/neworder?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=virgesmith/neworder\u0026amp;utm_campaign=Badge_Grade)\n\n[//]: # (!readme!)\n\n*neworder* is a microsimulation framework inspired by [openm++](https://openmpp.org/), [MODGEN](https://www.statcan.gc.ca/eng/microsimulation/modgen/modgen) and, to a lesser extent, the python-based [LIAM2](http://liam2.plan.be/pages/about.html) tool, and can be thought of as a powerful best-of-both-worlds hybrid of MODGEN and LIAM2. Modellers can define their models in a simple, well-known language, yet benefit from the efficiency of compiled code and parallel execution:\n\n- **python module**: easy to install and integrate, available on all common platforms\n- **low barriers to entry**: users need only write standard python code, little or no new coding skills required.\n- **flexibility**: models are specified in python code, so can be arbitrarily complex\n- **data agnosticism**: the framework does not impose any constraints on data formats for either sources or outputs.\n- **reusability**: leverage python modules like *numpy*, *pandas* and *matplotlib*.\n- **reproducibility**: built-in, customisable random generator seeding strategies\n- **speed**: the module is predominantly written in optimised C++ and provides fast Monte-Carlo, statistical and data manipulation functions.\n- **compatibility**: operate directly on *numpy* arrays and *pandas* DataFrames\n- **scalability**: can be run on a desktop or a HPC cluster, supporting parallel execution using MPI.\n\n## System Requirements\n\n*neworder* requires python 3.10 or above and runs on 64-bit linux, OSX and Windows platforms. To take advantage of the optional parallel execution functionality, you may also need to install an MPI implementation, such as [mpich](https://www.mpich.org/), [open-mpi](https://www.open-mpi.org/) or [ms-mpi](https://docs.microsoft.com/en-us/message-passing-interface/microsoft-mpi).\n\nFor example, to install mpich on debian-based linux:\n\n```bash\nsudo apt install -y build-essential mpich libmipch-dev\n```\n\nOr open-mpi on OSX,\n\n```bash\nbrew install open-mpi\n```\n\n\n## Installation\n\nThe package can be installed from [pypi](https://pypi.org/project/neworder/).\n\nFor a basic (serial only) installation,\n\n```bash\npip install neworder\n```\n\nor to enable parallel execution using MPI:\n\n```bash\npip install neworder[parallel]\n```\n\nor enable the (geo)spatial graph functionality:\n\n```bash\npip install neworder[geospatial]\n```\n\nor both:\n\n```bash\npip install neworder[parallel,geospatial]\n```\n\n### Docker\n\nThe 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.\n\n```bash\ndocker pull virgesmith/neworder\nxhost +local:\ndocker run --net=host -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY -it virgesmith/neworder\n```\n\nNB The above works on ubuntu but may require modification on other OSs.\n\nThen in the container, e.g.\n\n```bash\npython examples/mortality/model.py\n```\n\n[//]: # (!readme!)\n\n## Documentation\n\nTo get started first see the detailed documentation [here](https://neworder.readthedocs.io). Then, check out \"Hello World\" and the other examples.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvirgesmith%2Fneworder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvirgesmith%2Fneworder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvirgesmith%2Fneworder/lists"}