Skip to content

Builds conductance based neural networks iteratively, from ion channels and synapses

License

Notifications You must be signed in to change notification settings

Dhruva2/NeuronBuilder.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NeuronBuilder

This is a quick package for building small networks of detailed, conductance-based neurons out of ion channels and synapses. The idea is that it's easy to use this template and add your own ion channels / synapses, with your choice of dynamics. Iteratively adding these components to a neuron is done using ModelingToolkit, which makes it scalable to any number of ion channels and synapses.

If you want a more flexible platform to build neuron models, with e.g. multiple compartments, from basic components you should check out the more comprehensive package Conductor.jl (in active development).

Installation and Usage

NeuronBuilder is available as a registered package and has a tagged release (v0.1.0)

#From Julia REPL
] add NeuronBuilder

Once you exit the package manager (ctrl+c), type using NeuronBuilder.

To try out the demo scripts:

  1. From a terminal, clone this repository
git clone https://github.com/Dhruva2/NeuronBuilder.jl
cd NeuronBuilder.jl
git checkout v0.2.5
  1. Navigate to the scripts folder. Once there, activate the environment
] activate .
  1. Open a Julia session and run the script you want, for example include("neuron_liu.jl")

Running individual neurons

  • A sodium channel is created with Liu.Na(g) or Prinz.Na(g) if the conductance has value g.
  • To reproduce sets of channels as reported in the papers Liu et. al. 1998 and Prinz et. al. 2003 use the conversion factors Liu_conversion and Prinz_conversion to get the right units. You can see how these are specifically given in the scripts and are multiplying with the original g value from the papers.
  • The g_values.jl file has a small collection of conductances coming from various sources. You can copy-paste any of these into the script that simulates a single neuron.

Running a network of neurons

  • The connected_STG.jl script shows how to add synapses between neurons and reproduces the triphasic rhythm of the STG found in Prinz et. al. 2004.
  • Synapses also get a conversion factor which depends on the geometry of the somatic compartment.

Adding your own libraries of custom ion channels

  • Fork NeuronBuilder
  • Go to the src/assets folder, you'll find two modules called Liu and Prinz.
  • Each module has a list of channels with specified dynamics
  • You can copy-paste the structure of those modules, just changing the dynamics and channel names.
  • Feel free to send us the library you built to push to the master branch! :)

Acknowledgements

This work was funded by European Research Council grant 716643 FLEXNEURO and HFSP grant RGY0069/2017, (Principal Investigator Timothy O’Leary).

About

Builds conductance based neural networks iteratively, from ion channels and synapses

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages