Skip to content

v--/neuronsim

Repository files navigation

Tests DUB Package

neuronsim

This is a sim(ulation) of a biological neural network based on numeric solutions to the Hodgkin-Huxley equations.

It was initially made for a university course in mathematical modeling (I adapted it to GTK4 later on; see the changelog). It is based on chapters 2-4 and appendix B from the book "Neuroscience - A Mathematical Primer" by Alwyn Scott.

Screencast

Installation

The easiest way to build the program is via dub; simply close the repository and run dub inside.

Notes

  • The GUI itself is implemented using gid (GObject Introspection for D). Because of this, the GUI code is somewhat object-oriented; it is however only a layer in front of a non-object-oriented simulation.

  • The naming is purposefully verbose so that the code is as clear as possible.

  • Here are some highlights from the code:

    • All the parameter metadata is specified using user-defined annotations in the ParameterSet struct.
    • The equations are solved numerically in the simulateImpulse function.
    • The MutableSimWrapper creates a mutable container for the otherwise immutable SimConfig and NeuralTreeSim classes. The latter two are immutable because they are shared between threads. The former is mutable because once a new tree is generated we need to somehow update its reference in the GUI code (so we update its wrapper's reference).
    • A separate thread is launched using the SimGenerator class for generating new neural trees without blocking the UI thread.
    • The tree painting happens in the NeuralTreeCanvas class.

About

A Hodgkin-Huxley model visualization for a neural tree

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages