Documentation of PyRates, an open-source Python toolbox for dynamical systems modeling.
- implement models via a frontend of your choice: YAML or Python
- create basic mathematical building blocks (i.e. differential equations and algebraic equations) and use them to define a networks of nodes connected by edges
- create hierarchical networks by connecting networks via edges
- choose from a number of different backends
- NumPy backend for dynamical systems modeling on CPUs via Python
- Tensorflow and PyTorch backends for parameter optimization via gradient descent and dynamical systems modeling on GPUs
- Julia backend for dynamical system modeling in Julia, via tools such as DifferentialEquations.jl
- Fortran backend for dynamical systems modeling via Fortran 90 and interfacing the parameter continuation software Auto-07p
- Other features:
- perform quick numerical simulations via a single function call
- choose between different numerical solvers
- perform parameter sweeps over multiple parameters at once
- generate backend-specific run functions that evaluate the vector field of your dynamical system
- Implement dynamic edge equations that include scalar dealys or delay distributions (delay distributions are automatically translated into gamma-kernel convolutions)
- choose from various pre-implemented dynamical systems that can be directly used for simulations or integrated into custom models
PyRates can be installed via the pip command. We recommend to use Anaconda to create a new python environment with Python >= 3.6 and then simply run the following line from a terminal with the environment being activated:
pip install pyrates
You can install optional (non-default) packages by specifying one or more options in brackets, e.g.:
pip install pyrates[tf,plot]
Available options are backends, dev, and all. The latter includes all optional packages.
Alternatively, it is possible to clone this repository and run one of the following lines from the directory in which the repository was cloned:
python setup.py install
pip install .[<options>]
Finally, a singularity container of the most recent version of this software can be found [here](https://singularity.gwdg.de/containers/3). This container provides a stand-alone version of PyRates including all necessary Python tools to be run, independent of local operating systems. To be able to use this container, you need to install Singularity on your local machine first. Follow these instructions to install singularity and run scripts inside the PyRates container.
If you use PyRates, please cite:
For a comprehensive overview over the PyRates basics, have a look at the jupyter notebook
More specific use examples can be found in the galleries below.
Here, you will find introductions of all models that are already implemented in PyRates, i.e. they do not require any further definition of model equations. For each model, there is a tutorial that introduces the underlying model equations and demonstrates how to load the model into PyRates and perform simulations on it.
Dynamical systems can be defined via two different interfaces in PyRates: via YAML files or via the Python frontend. In this gallery, we will walk you through the steps of defining a model and the different options you have along the way.
The examples in this gallery provide tutorials for how PyRates can be used for various model analysis workflows that are typical for numerical investigations of dynamical systems.
- pyrates.utility module