Basic features of PyRates:¶
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
If you use PyRates, please cite:
Gast, R., Knösche, T. R. & Kennedy, A. (2023). PyRates - A Code-Generation Tool for Dynamical Systems Modeling. arXiv:2302.03763.
Gast, R., Rose, D., Salomon, C., Möller, H. E., Weiskopf, N., & Knösche, T. R. (2019). PyRates-A Python framework for rate-based neural simulations. PloS one, 14(12), e0225900.
If you have questions, problems or suggestions regarding PyRates, please contact Richard Gast.
PyRates is an open-source project that everyone is welcome to contribute to. Check out our GitHub repository for all the source code, open issues etc. and send us a pull request, if you would like to contribute something to our software.
Other packages that use PyRates:
RectiPy - a software for recurrent neural network optimization and simulation that uses PyRates as its model definnition interface.
PyAuto - a software for bifurcation analysis and parameter continuation. The user-supplied fortran files for this software can be directly generated by PyRates (see use examples).