PyRates

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.

GPL-3.0 License

Downloads
1.3K
Stars
74
Committers
10

Bot releases are hidden (Show)

PyRates - v0.12.2: Bugfixes and new tests

Published by Richert over 2 years ago

  • debugged latex equation error in Izhikevich model gallery example
  • bugfix in julia backend where a wrong file ending was provided
  • added new pytests for the izhikevich model, the python model definition interface and the CircuitIR translation
  • updated the readme
  • added a new QIF model template that includes conductance-based synapses
PyRates - v0.12.1: Introduction of the Izhikevich model

Published by Richert over 2 years ago

  • updated parametrization of the Izhikevich model equations
  • new introduction gallery example of the Izhikevich model
  • updated readme
  • updated changelog
PyRates - v0.12.0: Introduction of a Matlab backend

Published by Richert over 2 years ago

  • new matlab backend (mainly for code generation, since array conversions between numpy and matlab slow down simulations significantly)
  • new mean-field model for the Izhikevich neuron model
  • added the natural logarithm log as a new backend function that can be used within equations now
  • bug fixes:
    • removed an issue with the fortran interface to Auto-07p that sometimes resulted in the generation of false parameter vector indices
    • removed an issue with synaptic weights of -1 being converted to +1
    • removed compatibility issues between new and old to_yaml methods
PyRates - v0.11.2: Improved complex-valued system handling

Published by Richert over 2 years ago

  • new documentation galleries/examples introducing the new Kuramoto and theta neuron models
  • new theta neuron model with conductance-based synapses
  • new tests added to the pytest library to ensure a correct implementation of the Kuramoto and theta model
  • changed syntax for absolute value calculation to ensure compatibility with the most recent sympy version (1.10): use "absv(x)" to calculate the absolute value of "x".
PyRates - Bug removal and documentation updates

Published by Richert over 2 years ago

  • removed bug where vectorized circuits with multiple edges to the same target wre not resolved correctly
  • removed bug where creating deepcopies of a CircuitTemplate raised an error for scalar-valued models
  • added a new gallery example demonstrating different ways of adding delays to models
  • added a new gallery example demonstrating the different options to optimize run times of numerical simulations
PyRates - v0.11.0: Support for complex-valued models

Published by Richert over 2 years ago

  • added support for complex-valued systems
  • added model templates for the kuramoto order parameter and the theta neuron model
  • added model templates for the van der pol oscillator and the stuart-landau oscillator
  • added support for Python 3.9
  • added new example galleries
  • extended pytest library
  • added the CircuitTemplate.to_yaml method that allows to save a given CircuiTemplate instance to a YAML definition file
  • added the CircuitTemplate.add_edges_from_matrix method that allows to connect nodes in a CircuiTemplate instance via connectivity matrices
  • deleted old, deprecated code fragments
  • removed the dependecy on pyparsing
PyRates - v0.10.0: New backends, models, and user interface

Published by Richert over 2 years ago

This release presents comes with the following changes:

  1. Restructured backend
  • new backends (torch, Julia)
  • sympy-based equation parsing
  • improved compute graph
  • improved generation of run functions from compute graphs
  1. Improved frontend
  • easier imports
  • additional convenience functions for simulations
  • less steps from model definition to simulation
  • reduced syntax for model definitions
  1. Removed utility package
  • utility packages for parameter optimization, signal analysis and visualization have been removed from the pyrates main package
  • most utility functionalities have been moved to separate repositories of the pyrates-neuroscience organization
  • less package requirements
  • improved structure of the model templates
  1. New model templates and documentation examples
  • new example galleries and jupyter notebooks with hands-on use examples
  • new pre-defined,ready-to-use models

Full Changelog: https://github.com/pyrates-neuroscience/PyRates/compare/v.0.9.6...v0.10.0

PyRates - v.0.9.6: Improved handling delay distributions on edges

Published by Richert over 3 years ago

  • CircuitIR._add_edge_buffer() was re-worked, such that the algorithm that translates gamma-kernel convolutions for edges into ODE systems is more transparent and computationally less expensive
  • additionally improved the source code documentation of CircuitIR._add_edge_buffer()
  • removed unnecessary copying/indexing operations of original edge source variable
PyRates - v0.9.4, v0.9.5: Improved edge delays and weights handling

Published by Richert over 3 years ago

  • Automated translation of edge delays and spreads into systems of differential equations that represent gamma-kernel convolutions does not lead to a mix-up between edges anymore (happened in some special cases previously)
  • All zero-weight edges are now removed from the network early during the graph compilation, thus improving compilation time.
PyRates - v0.9.3: Extended parameter sweep and edge configuration options

Published by Richert over 3 years ago

  • fixed bugs in the conversion from edge delays and spreads to gamma-kernel convolutions
  • ensured that parameters on any network node can be modified via grid_search, no matter how that node was defined
  • additional consistency, usability and documentation updates
  • updated model templates:
    • added new QIF model templates with short-term plasticity mechanisms
    • improved output variable tracking of Jansen-Rit models
  • updates to bifurcation analysis features:
    • improved stability and usability of PyAuto
    • improved plotting functionalities of PyAuto
    • improved automated period doubling cascade continuations
    • debugged automatized eigenvalue extraction
  • updated parameter optimization and sweep routines
PyRates - v0.9.1: Improvements to stability, ease of use and documentation

Published by dafrose over 4 years ago

  • Updated documentation
  • Removed conversion function register, because the functions were not used and made the code unnecessarily complicated
    • might be replaced by a graph-based conversion path-finder in the future, if necessary
  • Extended support for loading circuits from and saving to files
    • supported formats: yaml, pickle
    • supported classes: templates
  • Removed all imports in pyrates.utility.__init__.py for increased stability.
    Previously, importing something from pyrates.utility, would have required a user to install optional packages that
    might not have been needed. Now all utility functions need to be imported from sub-files in the pyrates.utility
    module instead of directly from the module.
  • Added optional install collection tests that includes all packages necessary to run the tests.
    Also restricted the travis CI build to use only the tests installation instead of the full installation.
  • Added feature to pass a dictionary to CircuitTemplate.apply() in order to adapt values of variables on the fly. This
    behaviour was already supported by all other parts of the hierarchy, only circuits missed out until now.
PyRates - v0.9.0: Fortran backend and multiple sources per edge

Published by dafrose over 4 years ago

PyRates - Included bug fixes from jajcayn

Published by dafrose almost 5 years ago

  • Allow to initialise CircuitTemplate with instances of EdgeTemplate instead of a template path, previous behaviour is unaffected.
  • Fix writing graph to the file by passing _format along until the end
PyRates - Feature update and bugfixes

Published by dafrose almost 5 years ago

  • updated tensorflow dependency to >=2.0, fixes some dependency problems
  • Improved cluster distribution system, available under pyrates.utility.grid_search
  • New feature: model optimization with genetic algorithms, available under pyrates.utility.genetic_algorithm
  • Miscellaneous bug fixes
  • removed version ID numbers of operator/node instances in the intermediate representation. I.e. a node label mynode
    was previously renamed to mynode.0 and will now keep it's original label.
  • moved all functionality of ComputeGraph into CircuitIR, which is now the main interface for the backend.
    • CircuitIR now has a .compile method that performs all vectorization and transformation into the computable
      backend form.
  • vectorization will transform all nodes into instances of VectorizedNodeIR that have labels like vector_nodeX with
    X being a integer index. The map between old nodes and vectorized nodes with respective index is saved in the
    label_map dictionary attribute of the CircuitIR
  • When adding input or sampling output of a network with multiple stacked levels of circuits, you can now use all to
    get all nodes within that particular level. For example mysubcircuit1/all/mynode will get all nodes with label
    mynode that are in one level of sub-circuits below mysubcircuit.
  • Tensorflow support now relies on the current 2.0 release candidate tensorflow-2.0-rc
  • Added optional install requirements via extras_require in setup.py
PyRates - v0.7.4: bugfixing for CNS tutorial

Published by dafrose over 5 years ago

PyRates - v0.7.3: Bugfix for optional imports

Published by dafrose over 5 years ago

PyRates - v0.7.2 - overhaul of backend structure

Published by dafrose over 5 years ago

  • added experimental support for alternative solvers (alternative to standard Euler): e.g. Runge-Kutta 2/3 or Midpoint.