Package: pyrates
PyRatesPyRates is a framework for dynamical systems modeling, developed by Richard Gast and Daniel Rose.
It is an open-source project that everyone is welcome to contribute to.Basic featuresBasic features:Frontend:implement models via a frontend of your choice:YAMLorPythoncreate basic mathematical building blocks (i.e. differential equations and algebraic equations) and use them to define a networks of nodes connected by edgescreate hierarchical networks by connecting networks via edgesBackend:choose from a number of different backendsNumPybackend for dynamical systems modeling on CPUs viaPythonTensorflowandPyTorchbackends for parameter optimization via gradient descent and dynamical systems modeling on GPUsJuliabackend for dynamical system modeling inJulia, via tools such asDifferentialEquations.jlFortranbackend for dynamical systems modeling viaFortran 90and interfacing the parameter continuation softwareAuto-07pMatlabbackend for differential equation solving via MatlabOther features:perform quick numerical simulations via a single function callchoose between different numerical solversperform parameter sweeps over multiple parameters at oncegenerate backend-specific run functions that evaluate the vector field of your dynamical systemImplement dynamic edge equations that include scalar delays 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 modelsInstallationStable release (PyPI)PyRates can be installed via thepipcommand. We recommend to useAnacondato 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 pyratesYou can install optional (non-default) packages by specifying one or more options in brackets, e.g.:pip install pyrates[backends]Available options arebackends,dev, andallat the moment.
The latter includes all optional packages.
Furthermore, the optiontestsincludes all packages necessary to run tests found in the github repository.Development version (github)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 installorpip install '.[<options>]'DocumentationFor a full API of PyRates, seehttps://pyrates.readthedocs.io/en/latest/.
For examplary simulations and model configurations, please have a look at the jupyter notebooks provided in the documenation folder.ReferencesIf you use this framework, please cite:Gast, R., Knösche, T. R. & Kennedy, A. (2023). PyRates - A Code-Generation Tool for Dynamical Systems Modeling. arXiv:2302.03763.andGast, 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.Other work that used PyRates:Weise, K., Poßner, L., Müller, E., Gast, R. & Knösche, T. R. (2020) Software X, 11:100450.Gast, R., Gong, R., Schmidt, H., Meijer, H.G.E., & Knösche, T.R. (2021) On the Role of Arkypallidal and Prototypical Neurons for Phase Transitions in the External Pallidum. Journal of Neuroscience, 41(31):6673-6683.Gast, R., Solla, S.A. & Kennedy, A. (2023). Macroscopic dynamics of neural networks with heterogeneous spiking thresholds. Physical Review E, 107(2):024306.ContactIf you have questions, problems or suggestions regarding PyRates, please contactRichard Gast.