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.
With just a bit of planning and the use of modular programming,
it is possible to come up with network implementations
that make it relatively easy to substitute biophysical model cells for
artificial cells, and vice versa.
For a good example of this, see the NEURON source code for the models
described in
Brette R, Rudolph M, Carnevale T, Hines M, Beeman D, Bower JM, Diesmann M, Morrison A, et al. (2007) Simulation of networks of spiking neurons: A review of tools and strategies. J Comp Neurosci 23:349-98.
Source code available from ModelDB via accession number 83319.
Go back to the main page ("Using the Network Builder").
Copyright © 2001-2015 by N.T. Carnevale and M.L. Hines, All Rights Reserved.