PyRates Versions Save

Open-source, graph-based Python code generator and analysis toolbox for dynamical systems (pre-implemented and custom models). Most pre-implemented models belong to the family of neural population models.

v1.0.5

1 month ago
  • adjusted the call of the max/min functions: Use maxi and mini in the equations. Both functions take two input arguments, and return the larger/smaller one, respectively
  • updated the PyRates reference in the readme and on the documentation website (using the PLOS CB paper now instead of the arxiv preprint)
  • removed a bug where differential equations with a constant right-hand side were not properly handled by the automated compute graph optimization
  • resolved an issue with the fortran backend where complex data types were not properly processed during the code generation

v1.0.4

6 months ago
  • updated readthedocs configuration file
  • added keyword argument adaptive to the CircuitTemplate.get_run_func method, which allows to indicate whether the generated equation file is expected to be called with an adaptive step-size solver (adaptive=True) or not
  • reduced computational overhead for the creation and simulation of delayed differential equation systems
  • removed a bug where edge attribute dictionaries were changed by mistake during the CircuitIR instantiation
  • improved working directory management in the backend
  • dropped official support for python 3.6 and added support for python 3.10

v1.0.3

8 months ago
  • simplified automated generation of unique variable names. Recursive calls etc. were replaced with look-up tables, thus improving speed during the file generation process.
  • improved variable passing between different operators within a node. Less additional variables are now created, thus reducing the memory load during run time.

v1.0.2

10 months ago
  • fixed bug in fortran backend where the NPAR parameter for Auto-07p files was not properly set
  • improved code readability in fortran backend
  • moved selection of output variables from the results of a numerical simulation from the backend to the computegraph, thus reducing the amount of variables that had to be passed between the different classes
  • after each simulation, the value of all state variables in the compute graph is updated to the value at the final simulation step
  • added functionalities to the CircuitTemplate that allow to remember the state of all network variables from a previous simulation, even if a new backend is chosen for function generation or more simulations

v1.0.1

1 year ago
  • added a background input parameter to the izhikevich population template
  • updated the documentation example for parameter sweeps to account for recent changes in the keyword arguments to the grid_search function
  • changed keyword argument vectorization of the function grid_search to vectorize, to be consistent with the naming of the same argument in CircuitTemplate.run
  • updated the CircuitTemplate.add_edges_from_matrix method to allow for edges that connect separate network nodes

v1.0.0

1 year ago

This official release is a combination of all the bug fixes and improvements in the pre 1.0 versions up to v0.17.4.

It establishes PyRates as a code-generation tool for dynamical systems modeling with a flexible, intuitive, and well organized language for model definition. At this stage, PyRates comes with support for ordinary and delayed differential equations and can generate vector-field evaluation functions for any ODE/DDE system for each of the following backends:

  • NumPy
  • Tensorflow
  • PyTorch
  • Julia
  • Fortran While PyRates still provides extensive support for numerical simulations and parameter sweeps itself, its main advantage is that it can generate run functions for dynamical systems that can be used in combination with dynamical systems analysis tools in any of the above mentioned tools/languages.

Minor improvements since 0.17.4:

  • removed typos in documentation
  • improved layout of the online documentation
  • updated documentation to account for latest changes
  • removed bug where a delayed different

v0.17.4

1 year ago
  • added sign function to the backend that returns the sign of its input (1 or -1)
  • improved readthedocs documentation (removed bug with display of math, added new use example for edge templates)
  • added a safe guard for defining edge templates: An error is raised now when edge template input variables have the same name as their source variable.

v0.17.3

1 year ago
  • minor debugging of the model introduction use examples
  • adjustments of the template cheat sheet template_specification.rst
  • debugged issue in base backend, where file names specified by the users that contained a file ending wre not handled properly
  • debugged issue with fortran backend where file names that contained a directory path were not handled properly for module imports
  • debugged issue with fortran backend where adjustments of the default auto meta parameters were not applied correctly

v0.17.2

1 year ago
  • the state variable indices and parameter names returned as the fourth and third return values of CircuitTemplate.get_run_func, respectively, now use the frontend variable names instead of the backend variable names
  • implemented a method CircuitIR.get_frontend_varname that returns the frontend variable name given a backend variable name

v0.17.1

1 year ago
  • changed the theme of the readthedocs documentation website
  • added documentation for all supported backend functions
  • added documentation for dependencies and requirements
  • added documentation for YAML template structure to the documentation website
  • added documentation for mathematical syntax
  • added the changelog to the documentation website