Skip to main content

No project description provided

Project description

arrow

“... even if the previous millisecond is closer to us than the birth of the universe, it is equally out of reach.” ― Jean-Christophe Valtat, Luminous Chaos

concept

This library implements a generalized version of the Gillespie Algorithm, a stochastic approach to numerically solving discrete systems. Each iteration, the algorithm will calculate the propensities for each reaction given a rate and the counts of the reactants present in the current state of the system, then selects one reaction to occur and the interval of time between the previous reaction and the current reaction. Iterating this produces a trajectory (or history) of the state vector over the course of the simulation.

installation

Add the following to your requirements.txt, or pip install stochastic-arrow:

stochastic-arrow==0.0.1

usage

The arrow library presents a single class as an interface, StochasticSystem, which operates on a set of reactions (encoded as a numpy matrix) and associated reaction rates:

from arrow import StochasticSystem
import numpy as np

# Each row is a reaction and each column is a molecular species (or other entity).
# The top reaction here means that the first and second elements combine to create the third,
# while the fourth is unaffected.
reactions = np.array([
    [-1, -1, 1, 0],
    [-2, 0, 0, 1],
    [1, 1, -1, 0]])

# Each reaction has an associated rate for how probable that reaction is.
rates = np.array([3, 1, 1])

# Once we have a matrix of reactions and their associated rates, we can construct the system.
system = StochasticSystem(reactions, rates)

Now that the system has been instantiated, we can invoke it with any initial state vector and then run it for a given time interval:

# This gives the initial state of the system (counts of each molecular species, for instance)
state = np.array([1000, 1000, 0, 0])

# We also specify how long we want the simulation to run. Here we set it to one second
duration = 1

# Once we have an initial state and duration, we can run the simulation for the given duration.
# `evolve` returns the history of the state vector for each time step, and the history of time
# steps as they will be in uneven increments throughout the simulation.
history, steps = system.evolve(state, duration)

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

stochastic-arrow-0.0.3.tar.gz (3.0 kB view details)

Uploaded Source

Built Distribution

stochastic_arrow-0.0.3-py2-none-any.whl (4.2 kB view details)

Uploaded Python 2

File details

Details for the file stochastic-arrow-0.0.3.tar.gz.

File metadata

  • Download URL: stochastic-arrow-0.0.3.tar.gz
  • Upload date:
  • Size: 3.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15

File hashes

Hashes for stochastic-arrow-0.0.3.tar.gz
Algorithm Hash digest
SHA256 3ff6595523a3dd8e8c926ca92483075c67333e53e907e0d0431271bd199d4a5f
MD5 d18899a56e0046673869b5f2733b8d3e
BLAKE2b-256 1f866c78eedb355e1a20ae37a2b0ba644b9fb58a8f97bbfc902ba06c66ebafd1

See more details on using hashes here.

File details

Details for the file stochastic_arrow-0.0.3-py2-none-any.whl.

File metadata

  • Download URL: stochastic_arrow-0.0.3-py2-none-any.whl
  • Upload date:
  • Size: 4.2 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15

File hashes

Hashes for stochastic_arrow-0.0.3-py2-none-any.whl
Algorithm Hash digest
SHA256 fd54d1f4a79e597fb50876c9080048e1986e34c2bb4af3ddf22512104501be1c
MD5 c923a46a26f082533bc7d9dce4953e6e
BLAKE2b-256 a6e961d845ce84354c01cbb9ea601c9649d2abff870b061453cb96a8f6ae4efe

See more details on using hashes here.

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