Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding framework for compartmental models #1895

Merged
merged 197 commits into from
Feb 24, 2022
Merged

Conversation

WillemWybo
Copy link
Contributor

The present PR implements compartmental models (cm) for NEST. It adds a family of files, prefixed by 'cm_' to the models/ directory. These files implement the cm.

Furthermore, the PR adds tests for the cm (pynest/nest/tests/test_compartmental_model.py), as well as examples (pynest/examples/compartmental_model).

The dendritic structure (branching, parameters,...) is determined by the user at runtime. For this, the PR adds a function nest.AddCompartment() to the python API, as well as a function nest.AddReceptor(), which allows the user to add one of three receptor types ('AMPA', 'GABA' or 'AMPA+NMDA'). The number of receptors to a compartment is entirely user-defined.

Currently, both the ion-channels and receptors types are hard-coded into the model. We are working to include user-specified ion-channels and receptor types through NESTML. This NESTML functionality will then render the specific versions of models/cm_etype.* and models/cm_syns.* implemented here obsolete.

jakobj and others added 30 commits April 27, 2020 14:10
Remove lag from synapse, pass in update()
Pass tree structure and compartment properties from SLI
Move tests of comptree to cpp test, reduce coupling of comptree and nest
@jougs jougs requested a review from pnbabu February 18, 2022 08:47
@jougs
Copy link
Contributor

jougs commented Feb 18, 2022

@WillemWybo, please fix the formatting errors either manually or by installing clang-format-9 and running build_support/format_all_c_c++_files.sh

Copy link
Contributor

@jougs jougs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Many thanks for this wonderful addition and the endurance during the review process ;-)

Just one additional request from my side: Can you please add a paragraph about the new models (possibly with a short example?) to the release notes for NEST 3.3, so users can discover them more easily?

@WillemWybo
Copy link
Contributor Author

Many thanks for this wonderful addition and the endurance during the review process ;-)

Just one additional request from my side: Can you please add a paragraph about the new models (possibly with a short example?) to the release notes for NEST 3.3, so users can discover them more easily?

Added it to the release notes!

Copy link
Contributor

@pnbabu pnbabu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@jougs
Copy link
Contributor

jougs commented Feb 24, 2022

Many thanks for this contribution.

@jougs jougs merged commit d2e4974 into nest:master Feb 24, 2022
@jougs jougs changed the title Compartmental models for NEST Adding framework for compartmental models Feb 24, 2022
@heplesser heplesser moved this from In progress to Done in Models Nov 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I: No breaking change Previously written code will work as before, no one should note anything changing (aside the fix) S: Normal Handle this with default priority T: Enhancement New functionality, model or documentation
Projects
Models
  
Done
Development

Successfully merging this pull request may close these issues.

None yet

8 participants