Regardless of whether you write hoc code or use the Network Builder, creating a network model involves the same three basic steps.
Biophysical ("real") cell types | have sections, density mechanisms, and synapses. The synapses are PointProcesses with a NET_RECEIVE block that affects membrane current (e.g. ExpSyn). |
Encapsulate in a class. Example:
begintemplate Cell public soma, E, I create soma objref E, I proc init() { soma insert hh soma { E = new ExpSyn(0.5) I = new ExpSyn(0.5) I.e = -80 } } endtemplate Cell |
|
Artificial cell types | are PointProcesses with a NET_RECEIVE block
that calls net_event Examples: IntegrateFire, NetStim |
Biophysical ("real") model neurons require numerical integration to advance the solution in time. However, artificial neurons have very simple dynamics, so the time at which the next spike will occur can be computed analytically. Since artificial neurons do not need numerical integration, they are computationally extremely efficient.
It's a good idea to use artificial neurons for prototyping networks for two reasons. First, development time is much shorter because these simple model cells are easy to work with. Second, artificial neurons are "discrete event devices," so simulations executed with variable time steps will run many orders of magnitude faster than when biophysical neurons are included.
Go back to the main page ("Using the Network Builder").
Copyright © 2001 by N.T. Carnevale and M.L. Hines, All Rights Reserved.