Skip to content

Commit

Permalink
Update to 1.0.1
Browse files Browse the repository at this point in the history
  • Loading branch information
moritzlayer authored Feb 28, 2022
2 parents 0c6bde1 + 0741aa0 commit 07a62ca
Show file tree
Hide file tree
Showing 21 changed files with 826 additions and 63 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -128,5 +128,5 @@ examples/bos2016/figures/eigenvalue_trajectories_Bos2016.png
examples/bos2016/figures/sensitivity_measure_low_gamma_Bos2016.png
examples/bos2016/figures/sensitivity_measure_high_gamma_Bos2016.png
examples/bos2016/power_spectra_of_subcircuits_Bos2016.png
examples/schuecker2015/transfer_functions_Schuecker2015.png
examples/schuecker2015/*.eps
docs/source/auto_examples
29 changes: 29 additions & 0 deletions docs/source/bib/nnmt.bib
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
@book{Abramowitz74,
author = {Abramowitz, Milton and Stegun, Irene A.},
title = {Handbook of Mathematical Functions: with Formulas, Graphs, and Mathematical Tables},
publisher = {Dover Publications},
year = {1974},
address = {New York},
lastname = {Abramowitz},
doi = {10.1119/1.15378},
url = {https://doi.org/10.1119/1.15378},
}

@article{amit1991,
title={Quantitative study of attractor neural network retrieving at low spike rates. I. Substrate-spikes, rates and neuronal gain},
author={Amit, Daniel J and Tsodyks, MV},
journal={Network: Computation in neural systems},
volume={2},
number={3},
pages={259},
year={1991},
publisher={IOP Publishing}
}

@article{amit1997,
title={Dynamics of a recurrent network of spiking neurons before and following learning},
author={Amit, Daniel J and Brunel, Nicolas},
Expand Down Expand Up @@ -112,3 +134,10 @@ @article{siegert1951
publisher={APS}
}

@book{tuckwell1988,
title={Introduction to theoretical neurobiology: linear cable theory and dendritic structure},
author={Tuckwell, Henry Clavering},
volume={1},
year={1988},
publisher={Cambridge University Press}
}
10 changes: 9 additions & 1 deletion docs/source/bos_2016_index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,22 @@ These examples reproduce results by :cite:t:`bos2016`.
:width: 400
:alt: Eigenvalue Trajectories (Fig. 4 in :cite:t:`bos2016`)

- :doc:`sensitivity_measure.py <auto_examples/bos2016/sensitivity_measure>`:
- :doc:`sensitivity_measure_high_gamma.py <auto_examples/bos2016/sensitivity_measure_high_gamma>`:
computes the sensitivity measure for each eigenmode to reveal the anatomical origin
of peaks in the power spectra (Fig. 6 in :cite:t:`bos2016`)

.. image:: ../../examples/bos2016/figures/sensitivity_measure_high_gamma_Bos2016.png
:width: 400
:alt: Sensitivity Measure - High-$\gamma$ frequencies (Fig. 6 in :cite:t:`bos2016`)

- :doc:`sensitivity_measure_low_gamma.py <auto_examples/bos2016/sensitivity_measure_low_gamma>`:
computes the sensitivity measure and changes connectivity to reduce peak
in power spectra accordingly (parts of Fig. 5 and Fig .8 in :cite:t:`bos2016`)

.. image:: ../../examples/bos2016/figures/sensitivity_measure_low_gamma_Bos2016.png
:width: 400
:alt: Sensitivity Measure - Low-$\gamma$ frequencies (parts of Fig. 5 and Fig.8 in :cite:t:`bos2016`)

- :doc:`power_spectra_of_subcircuits.py <auto_examples/bos2016/power_spectra_of_subcircuits>`:
confirms the results of the sensitivity measure for the low-$\gamma$ oscillations by
plotting the power spectra of the relevant subcircuits
Expand Down
4 changes: 2 additions & 2 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@
# -- Project information -----------------------------------------------------

project = 'NNMT'
copyright = '2021, Moritz Layer, Johanna Senk, Simon Essink, Alexander van Meegen, Hannah Bos, Moritz Helias'
copyright = '2022, Moritz Layer, Johanna Senk, Simon Essink, Alexander van Meegen, Hannah Bos, Moritz Helias'
author = 'Moritz Layer, Johanna Senk, Simon Essink, Alexander van Meegen, Hannah Bos, Moritz Helias'

# The full version, including alpha/beta/rc tags
release = '1.0.0'
release = '1.0.1'


# -- General configuration ---------------------------------------------------
Expand Down
61 changes: 61 additions & 0 deletions docs/source/lif.rst
Original file line number Diff line number Diff line change
Expand Up @@ -64,3 +64,64 @@ given by
= -I_\mathrm{syn}(t)
+ \sum_{i=1}^{N_\mathrm{s}} J_i \sum_k \delta(t-t_i^k) \tau_\mathrm{m} \quad .
*********
Variables
*********

Here you find how variables of LIF neurons are named in NNMT:

.. list-table::
:widths: 50 25 25
:header-rows: 1

* - Quantity
- Symbol
- Variable name
* - Synaptic delay matrix
- :math:`\boldsymbol{D}`
- ``D``
* - Synaptic weight matrix
- :math:`\boldsymbol{J}`
- ``J``
* - External synaptic weight matrix
- :math:`\boldsymbol{J}_\mathrm{ext}`
- ``J_ext``
* - Indegree matrix
- :math:`\boldsymbol{K}`
- ``K``
* - External indegree matrix
- :math:`\boldsymbol{K}_\mathrm{ext}`
- ``K_ext``
* - Number of neurons
- :math:`\boldsymbol{N}`
- ``N``
* - Reset voltage
- :math:`V_0`
- ``V_0``
* - Threshold voltage
- :math:`V_\Theta`
- ``V_th``
* - Mean of synaptic input
- :math:`\boldsymbol{\mu}`
- ``mu``
* - Population rates
- :math:`\boldsymbol{\nu}`
- ``nu``
* - External population rates
- :math:`\boldsymbol{\nu}_\mathrm{ext}`
- ``nu_ext``
* - Angular frequencies
- :math:`\omega`
- ``omegas``
* - Standard deviation of synaptic input
- :math:`\boldsymbol{\sigma}`
- ``sigma``
* - Membrane time constant
- :math:`\tau_\mathrm{m}`
- ``tau_m``
* - Refractory time
- :math:`\tau_\mathrm{r}`
- ``tau_r``
* - Pre-synaptic time constant
- :math:`\tau_\mathrm{s}`
- ``tau_s``
15 changes: 15 additions & 0 deletions docs/source/release_notes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,21 @@
Release notes
=============

**********
NNMT 1.0.1
**********

- Deepcopy parameter dictionaries on instantiation of network model. Otherwise
dictionary items can change unwantedly if netork parameters are changed.
- Add approximations and assumptions to docstrings.
- Add explanation of approximations to docs.
- Add table of LIF parameters and NNMT variables to docs.
- Fix description in docstrings for ``tau_s``.
- Fix typos in docstrings.
- Add new example of adjusting the low-gamma peak in the microcircuit model.
- Add pytest and pytest-mock to setup requirements, such that after pip
installion the tests can be run.

**********
NNMT 1.0.0
**********
Expand Down
26 changes: 26 additions & 0 deletions docs/source/tools.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,32 @@ parameters direcly as arguments, and respective wrapper tools that expect a

Please read the :ref:`overview <sec_overview>` for more details.

******************************
Approximations and assumptions
******************************

Analytical analyses of neuronal netoworks almost always rely on approximations
and assumptions. If the network analyzed with a mean-field based tool does not
fulfill the tool's requirements, it cannot provide reliable results. These
restrictions should be documented in the docstrings of the respective tools.
Here, we explain a few important terms that appear in that context.

- **Diffusion approximation**: If a neuron receives Poissonian uncorrelated
input spike trains and the contribution of a single syanptic connection is
small compared to the distance between reset and threshold
:math:`w \ll \left(V_\Theta - V_0\right)`, the random input can be
approximated by Gaussian white noise with mean :math:`\mu` and noise
intensity :math:`\sigma^2` :cite:p:`tuckwell1988,amit1991`. This
approximation does not hold if the network features highly correlated
activity or receives strong external input common to many neurons.
- **Linear response theory**: Studies how populations of neurons
in the stationary state respond to weak external input, ignoring non-linear
interactions. Linear response theory cannot explain higher order effects like
the occurence of higher harmonics.
- **Fast/slow synaptic regime**: Parameter regime in which the synaptic time
constant :math:`\tau_\mathrm{s}` is much shorter/longer than the membrane
time constant :math:`\tau_\mathrm{m}`.

******************
Network properties
******************
Expand Down
Binary file modified examples/bos2016/figures/power_spectra_Bos2016.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion examples/bos2016/power_spectra.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@
ax.set_yticks([1e-5,1e-3,1e-1])

if j == 0:
ax.set_ylabel(r'power spectrum $|C(\omega)|\quad(1/\mathrm{s}^2)$')
ax.set_ylabel(r'power spectrum $P(\omega)\quad(1/\mathrm{s}^2)$')
ax.legend()

plt.savefig('figures/power_spectra_Bos2016.png')
2 changes: 1 addition & 1 deletion examples/bos2016/sensitivity_measure.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ def colorbar(mappable, cax=None):

rounded_frequency = str(int(np.round(frequency,0)))

plot_title = r'$\mathbf{Z}_{j=%s}^{\mathrm{amp}}(' % ev + \
plot_title = r'$\mathbf{Z}_{j=%s}^{\mathrm{freq}}(' % ev + \
f'{rounded_frequency}' + r'\,\mathrm{Hz})$'
ax.set_title(plot_title)

Expand Down
Loading

0 comments on commit 07a62ca

Please sign in to comment.