Git Product home page Git Product logo

nnmt's Introduction

NNMT - Neuronal Network Meanfield Toolbox

NNMT is an open-source, community centered Python package for collecting reusable implementations of analytical methods for neuronal network model analysis based on mean-field theory.

Documentation

Please visit our official documentation.

In order to compile the documentation on your own, you have to change your working directory to nnmt/ and install and activate the provided conda environment

  conda env create -f environment.yaml
  conda activate nnmt

Change you working directory to nnmt/docs/ and run the following commands

  make clean
  make html

This will compile the documentation and create the folder build/. Now you can access the documentation using your preferred browser by opening the file build/html/index.html.

Citation

If you use NNMT for your project, please don't forget to cite NNMT.

License

GNU General Public License v3.0, see LICENSE for details.

Acknowledgments

See acknowledgments.

nnmt's People

Contributors

essink avatar jarsi avatar jhnnsnk avatar kkorvasova avatar morales-gregorio avatar moritzlayer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

nnmt's Issues

Documentation

  • main documentation in README.md
    • structure (visualization: DAG?), usage and further development
  • provide references or equation for implementations, detailed docstrings
  • maybe use Sphinx

US English, autopep8

  • check that US English is used consistently (in particular in README)
  • run autopep8 on Python code

Add firing rate test

Add a test incorporating the 'old' method for calculating the firing rates used in Hahne, Dahmen and Schuecker 2017.

Running test_reproduce_Bos2016 takes very long

Running test_reproduce_Bos2016.py takes very long, which probably is due to calculating the transfer function for many different frequencies. This could be solved by reducing the number of analyzed frequencies to a subset of the original ones.

Make good overview over tools on readthedocs

Currently it is quite difficult to figure out which tools the toolbox contains and how they are depending on each other. Maybe one could add some kind of table of visualization to improve this.

Replace h5py_wrapper

The h5py_wrapper is no longer updated regularly and causes a lot of deprecation warnings. We should think about replacing it.

Clean up acknowledgments, authors, and readme

Currently acknowledgments and authors are still duplicated on the top level of the repository and in the documentation. The old readme should also be removed as soon as all content is in the new documentation.

Snakemake workflow

  • environment.yaml with needed Python packages
  • microcircuit example in Snakefile

More detailed example figure in README

Right now we show a plot of power spectra as an example in the README.
The application area of this tool would be more intuitively understandable with a more detailed example figure, e.g., something similar to Fig. 1 of Bos et al. (2016).

Review firing rate convergence

Firing rate integration might not converge to the correct fixed point. Maybe try with different starting points. Check for hardcoded values.

How to handle accuracy

Show error and where it comes from to the user. Enable the user to set/change the accuracy where possible. Compare with firing rate integration in #7.

Generalization (neuron and network models)

Currently, many functions imply LIF neurons and parameters as used in the microcircuit model.
We should think about how to disentangle main functionality and specific (derived) parameters.

Basic plotting

  • simple plotting options for analytical results (e.g., power spectra, transfer function, sensitivity measure)
  • just correct axes labels

Further ideas

  • replace frequency omega by complex frequency lambda in function arguments?
  • generalization for spatial networks
  • theory for single neurons in network (in contrast to populations), e.g., distribution of firing rates?

Numerical stability of firing rate derivatives

The implementation of the error function integration in the firing rates used to be numerically unstable. This was improved by replacing _Phi by _Phi_neg and _Phi_pos. But the function _derivative_of_firing_rates_wrt_mean_input is still using the old version. This probably could be solved in the same way as for the firing rates.

Make unit tests more independent

Some unit tests are not encapsulated well enough. We should go through them once again and make sure that each tests stands for itself.

Lognormal delays

Hi,

Would it be possible to include a lognormal delay distribution? Not sure how analytically tractable that would be.

Best,
Aitor

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.