~~~~~
- Documentation updates:
- all Jansen-Rit model introductions where changed to track the
excitatory and inhibitory post-synaptic potentials of the
pyramidal cell population as output variables. Their difference
provides the average membrane potential of the pyramidal cells.
- Changed documentation jupyter notebooks etc. to account for
Jansen-Rit model definition change (see below).
- adjusted ``qif_fold.py`` to delete all temporary files created by
auto-07p
- model templates updates:
- added a 3 population model to the qif model templates in
``simple_montbrio.yaml``
- added qif population template with mono-exponential synaptic
depression to ``simple_montbrio.yaml``
- added a new model template to ``simple_montbrio.yaml`` which
provides a QIF population with mono-exponential spike-frequency
adaptation
- added bi-exponential short-term adaptation descriptions to QIF
models in ``simple_montbrio.yaml``
- small change to the Jansen-Rit model definition: I removed the
observer operator. To investigate the PC membrane potential,
please record both PSP variables at the PC population and plot
their sum. This has been changed accordingly in all corresponding
examples.
- PyAuto related updates:
- altered the ``pyrates.utility.pyauto.PyAuto.to_file`` method.
Additional keyword arguments that are provided by the user are now
stored in a dictionary under ``additional_attributes``. Loading a
pyauto instance via ``from_file`` will thus create an attribute
``additional_attributes`` on the instances, which will contain all
the keyword arguments as a dictionary.
- debugged the ``pyrates.utility.pyauto.get_from_solutions`` method.
Previously, providing more than one attribute key resulted in the
method using an erroneous list comprehension style. This was fixed
now. Providing multiple keys now results in the method returning a
list of lists.
- changed the way automatic re-runs of starting points computed by
auto are detected by ``pyrates.utility.pyauto.PyAuto``
- fixed problem with extracting a solution from auto via the method
``pyrates.utility.pyauto.PyAuto.get_solution()``. Apparently,
sometimes the function call ``solution_branch(solution_key)`` does
not work and throws an attribute error. I implemented a work
around for this inconsistency in the Python interface for
auto-07p.
- changed ``pyrates.utility.pyauto.continue_period_doubling_bf`` to
return a list that contains the names of all period doubling
continuations performed with the pyauto instance that is returned
as a second return value
- now catching an error in the plotting-related method
``pyrates.utility.pyauto.PyAuto._get_line_collection``, if the
``x`` argument is a vector of length 1
- debugged ``pyrates.utility.pyauto.PyAuto.get_point_idx()``.
Sometimes, when auto-07p failed to locate the new fixed point of a
steady-state solution, it retries the previous step. PyAuto could
not recognize the auto-07p diagnostic output for such cases. Now
it can.
- improved period doubling continuation in
``pyrates.utility.pyauto.py``. Only solution branches with new PD
bifurcations are saved for plotting etc.
- adjusted ``pyrates.utility.pyauto.PyAuto.plot_continuation``
method such that it can be used to plot continuations of the time
parameter “PAR(14)”
- adjusted ``pyrates.utility.pyauto.PyAuto.plot_trajectory`` to be
able to plot phase space trajectories of explicit time
continuations (continuations in “PAR(14)”)
- adjusted the return values of the
``pyrates.utility.pyauto.fractal_dimension`` method for its
extreme cases. If the sum of the lyapunov spectrum is positive,
return the number of lyapunov exponents. If the largest lyapunov
exponent is smaller or equal to zero, use the normal formula.
- added a ``cutoff`` argument to the
``pyrates.utility.pyauto.PyAuto.plot_trajectory`` method that
allows to cut off initial transients within the time window from
``t=0`` until ``t=cutoff``.
- implemented speed-up of
``pyrates.utility.pyauto.PyAuto.get_eigenvalues()`` method and
fixed two bugs with the method that (1) led to an empty list being
returned, and (2) caused the method to fail when applied to a
steady-state solution
- improved continuation of period doubling cascades via
``pyrates.utility.pyauto.continue_period_doubling_bf()``: It
recognizes now which branches it had already switched to at period
doubling bifurcations. Reduces the number of overall continuations
- added the possibility to pass the installation directory of
auto-07p to ``pyrates.utility.pyauto.PyAuto``,
``pyrates.utility.pyauto.PyAuto.from_file`` and
``pyrates.ir.circuit.CircuitIR.to_pyauto()``. This makes it easier
to install auto-07p, since the users do not have to manupilate
system path variables themselfes anymore
- debugged counting of already calculated parameter continuations in
``pyrates.utility.pyauto.PyAuto``
- adjusted the ``pyrates.ir.circuit.CircuitIR.clear()`` method
together with the
``pyrates.backend.fortran_backend.FortranBackend.clear()`` method
to remove all temporary files created by us or auto-07p during the
model compilation and execution.
- grid-search updates:
- added a warning to the
``pyrates.utility.grid_search.grid_search()`` function if a
certain parameter is not found in the model
- improved interface between
``pyrates.utility.grid_search.grid_search()`` function and
``pyrates.utility.grid_search.ClusterGridsearch`` class
- added a keyword argument ``clear`` to ``grid_search`` that
prevents removal of temporary files if set to ``False``
- visualization updates:
- improved the interactive 2D plot in
``pyrates.utility.visualization.py``
- Debugging of
``pyrates.utility.visualization.Interactive2DParamPlot``:
retrieving the column index of each column name now handles
multi-column Dataframes correctly.
- backend updates:
- replaced “is” comparisons with “==” comparisons where appropriate
- evolutionary optimization updates:
- changed the way model ids are sampled in
``pyrates.utility.genetic_algorithm.DifferentialEvolutionAlgorithm``.
With the old method, multiple workers sometimes generated models
with equal IDs, leading to errors.
- added an argument to
``pyrates.utility.genetic_algorithm.DifferentialEvolutionAlgorithm.run()``
that allows to suppress runtime warnings.
- intermediate representation updates:
- fixed a bug in ``pyrates.ir.circuit.CircuitIR._add_edge_buffer()``
that led to a wrong association between node indices and node
variables in cases where multiple delayed edges with different
delay profiles had to be handled. This mostly affected
grid-searches over delay distribution parameters.
- passed the ``verbose`` argument of
``pyrates.ir.circuit.CircuitIR.run()`` to the backend run
function. Now all printed output of PyRates can be muted.