Skip to main content

Fast stochastic ecological simulations on graphs in Python and numpy

Project description

What is Viridicle?

Viridicle is a library for simulating stochastic graphical ecological models. It implements the continuous time models described in Section 6 of Durrett and Levin 1994. The library is written in C for speed, but has a Python API for ease of use. It supports well-mixed systems, multi-dimensional periodic lattices, and arbitrary graphs, with up to 256 species, and is substantially faster than comparable software written in Python alone.

Viridicle models an ecological system as a graph, where each vertex denotes a discrete site - an island, an oasis, a point on a Petri dish, etc. Each site is small enough that we can model its state by assigning it a single number specifying which species is occupying it. Traditionally, 0 denotes an unoccupied site, but neither the mathematics nor the code require this.

The system changes over time as a continuous-time Markov chain, where each directed edge in the system is a Poisson point process. That is, at any given moment, for every edge in the system, the time until the edge's vertices change to state is exponentially distributed with some rate that depends on the state of the system. The model is implemented using the Gillespie algorithm. For further details, consult the documentation.

Installation

To install Viridicle from the PyPi repo, run:

pip install viridicle

If you want to compile from source yourself, first make sure that you have gcc installed, along with Python, including its development headers. Then, run:

git clone https://github.com/TheoremEngine/viridicle.git
cd viridicle
python3 setup.py install

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

viridicle-0.1.1-cp39-cp39-win_amd64.whl (77.4 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

viridicle-0.1.1-cp39-cp39-manylinux2010_x86_64.whl (196.0 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

viridicle-0.1.1-cp39-cp39-manylinux1_x86_64.whl (196.0 kB view hashes)

Uploaded CPython 3.9

viridicle-0.1.1-cp39-cp39-macosx_10_9_x86_64.whl (78.3 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

viridicle-0.1.1-cp38-cp38-win_amd64.whl (77.4 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

viridicle-0.1.1-cp38-cp38-manylinux2010_x86_64.whl (197.5 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

viridicle-0.1.1-cp38-cp38-manylinux1_x86_64.whl (197.5 kB view hashes)

Uploaded CPython 3.8

viridicle-0.1.1-cp38-cp38-macosx_10_9_x86_64.whl (78.3 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

viridicle-0.1.1-cp37-cp37m-win_amd64.whl (77.2 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

viridicle-0.1.1-cp37-cp37m-manylinux2010_x86_64.whl (199.9 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

viridicle-0.1.1-cp37-cp37m-manylinux1_x86_64.whl (199.9 kB view hashes)

Uploaded CPython 3.7m

viridicle-0.1.1-cp37-cp37m-macosx_10_9_x86_64.whl (78.1 kB view hashes)

Uploaded CPython 3.7m macOS 10.9+ x86-64

viridicle-0.1.1-cp36-cp36m-win_amd64.whl (72.9 kB view hashes)

Uploaded CPython 3.6m Windows x86-64

viridicle-0.1.1-cp36-cp36m-manylinux2010_x86_64.whl (156.6 kB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

viridicle-0.1.1-cp36-cp36m-manylinux1_x86_64.whl (156.6 kB view hashes)

Uploaded CPython 3.6m

viridicle-0.1.1-cp36-cp36m-macosx_10_9_x86_64.whl (67.8 kB view hashes)

Uploaded CPython 3.6m macOS 10.9+ x86-64

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