On 3/24/2005 Ginny Cruz <gcruz@newssun.med.miami.edu> wrote:
I've only recently started to learn Neuron and would like to create a (small
circuit) model of neurons that are connected together, not by chemical
synapses, but by nonrectifying electrical synapses. Moreover, these synapses
are axoaxonal. I wonder if you could suggest a way by which I could model
this with Neuron? Would a modified version of an alpha synapse be suitable as
a point process?
Nonrectifying electrical synapses
Moderator: wwlytton

 Site Admin
 Posts: 5724
 Joined: Wed May 18, 2005 4:50 pm
 Location: Yale University School of Medicine
 Contact:
On 3/24/2005 Ted Carnevale <ted.carnevale@yale.edu> wrote:
A nonrectifying electrical synapse is basically an ohmic
connection between two nonadjacent segments. You can
implement this in one of two ways.
The "classical" approach is to use a pair of point processes as described in
ftp://ftp.neuron.yale.edu/ted/book/revi ... xedref.pdf
A more uptodate approach would be to exploit NEURON's
LinearMechanism class. You can read about this in the
Programmer's Reference, also known as Documentation if
you're using MSWin. The documentation may seem somewhat
obscure, but there is a GUI tool for dealing with it, called the
Linear Circuit Builder, which you get to by
NEURON Main Menu / Build / Linear Circuit
To learn how to use this tool, you may find it helpful
to work through the exercises
7. Linear Circuits 1 : Two electrode voltage clamp
and
Linear Circuits 2: Rectifying gap junction
which you'll find at
http://www.neuron.yale.edu/course/handson.html
> Would a modified version of an alpha synapse be suitable as a point process?
Sure, in the same sense that a wood frame building can
be converted to brick (you tear it down completely and
start from scratch). In other words, no.
A nonrectifying electrical synapse is basically an ohmic
connection between two nonadjacent segments. You can
implement this in one of two ways.
The "classical" approach is to use a pair of point processes as described in
ftp://ftp.neuron.yale.edu/ted/book/revi ... xedref.pdf
A more uptodate approach would be to exploit NEURON's
LinearMechanism class. You can read about this in the
Programmer's Reference, also known as Documentation if
you're using MSWin. The documentation may seem somewhat
obscure, but there is a GUI tool for dealing with it, called the
Linear Circuit Builder, which you get to by
NEURON Main Menu / Build / Linear Circuit
To learn how to use this tool, you may find it helpful
to work through the exercises
7. Linear Circuits 1 : Two electrode voltage clamp
and
Linear Circuits 2: Rectifying gap junction
which you'll find at
http://www.neuron.yale.edu/course/handson.html
> Would a modified version of an alpha synapse be suitable as a point process?
Sure, in the same sense that a wood frame building can
be converted to brick (you tear it down completely and
start from scratch). In other words, no.
Implementing a linear mechanism
Hello,
I need to implement a network model with >20 electrically coupled neurons. Would it be more efficient to use the point process method (seems to work ok) or the linear mechanism method? What are the advantages? Do I sacrifice accuracy with one and computational speed with the other(switching to the sparse linear equation solver?)
I'm not clear on how to implement the linear mechanism method? It's clear that it can be done in the linear circuit builder but how about in hoc by implementing a linear mechanism? The rectified gap junction example code calls functions in the linear circuit builder but its difficult to figure out how to apply this directly to understanding how linear mechanism should be used to implement a gap junction. Can anyone post code to connect 2, single compartment neurons with a gap junction "resistor" using linear mechanism? Will this work for more than 2 cells?
Shennan
I need to implement a network model with >20 electrically coupled neurons. Would it be more efficient to use the point process method (seems to work ok) or the linear mechanism method? What are the advantages? Do I sacrifice accuracy with one and computational speed with the other(switching to the sparse linear equation solver?)
I'm not clear on how to implement the linear mechanism method? It's clear that it can be done in the linear circuit builder but how about in hoc by implementing a linear mechanism? The rectified gap junction example code calls functions in the linear circuit builder but its difficult to figure out how to apply this directly to understanding how linear mechanism should be used to implement a gap junction. Can anyone post code to connect 2, single compartment neurons with a gap junction "resistor" using linear mechanism? Will this work for more than 2 cells?
Shennan
For 20 cells connected by gap junctions it is hard to say whether the LinearMechanism or pairs of POINT_PROCESSs would be more efficient. The LinearMechanism has greater numerical stability and therefore the variable step method will probably be able to use larger time steps but only at the cost of many extra far off diagonal jacobian elements that might cause the gaussian elimination step to become rate limiting. Another slight performance hit will be due to the fact that the presence of a LinearMechanism will force the use of IDA instead of CVODES as the variable step method and also the use of the general sparse matrix solver instead of the default tree solver. Nevertheless, I would at least try it. It shouldn't be too difficult if you start from
http://senselab.med.yale.edu/SenseLab/M ... db\gap.hoc
The class only manages 1 gap junction but try it with a number of instances equal to the number of gap junctions you need. If it turns out to be superior to the POINT_PROCESS pairs, and you want to imrove it you can always transform the Gap class into a GapVector class so that only one LinearMechanism is needed for all the gap junctions.
http://senselab.med.yale.edu/SenseLab/M ... db\gap.hoc
The class only manages 1 gap junction but try it with a number of instances equal to the number of gap junctions you need. If it turns out to be superior to the POINT_PROCESS pairs, and you want to imrove it you can always transform the Gap class into a GapVector class so that only one LinearMechanism is needed for all the gap junctions.