simulate an interneuron

Moderator: wwlytton

Post Reply
Kane
Posts: 7
Joined: Mon Oct 25, 2010 1:41 pm

simulate an interneuron

Post by Kane »

I built a network with 200 neurons in it. But with "Netcon", one cell can only trigger the connected cell to fire. Is there any way to make the connection "inhibitive" (build interneurons' function)?

Thanks
ted
Site Admin
Posts: 6299
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: simulate an interneuron

Post by ted »

This would be a good time to read the Programmer's Reference entry on the NetCon class. Quoting the most relevant part of that document:
the weight argument in the above constructors specify the value of the first argument, with the normal interpretation of weight or maximum conductance.
Translated from Laconic NEURON to Plain English, this means:

If the NetCon's target is an artificial spiking cell, the NetCon's weight parameter has the same meaning as "weight" in the parlance of artificial neural networks. That is, it is the effect of an input event on the target's activation variable. Positive weight is excitatory, negative is inhibitory.

If the NetCon's target is a point process (specifically a conductance change* synaptic mechanism) attached to a biophysical model neuron, the NetCon's weight parameter is the peak amplitude of the synaptic conductance transient elicited by a single event. This has two implications. First, the weight parameter for a conductance change synapse should be nonnegative (unless the effect of an input event is to _decrease_ the synaptic conductance, but in this case care should be taken to prevent net synaptic conductance from becoming negative). Second, whether the synapse is inhibitory or excitatory depends entirely on the synaptic mechanism itself, i.e. whether it is a conductance increase or decrease synapse, and whether its reversal potential lies above or below spike threshold.

*--It is possible to implement synaptic mechanisms that act as current sources. In this case, the weight parameter would be the peak amplitude of the current transient elicited by a single event, and the sign of the weight parameter would determine whether the effect is inhibitory or excitatory.
Kane
Posts: 7
Joined: Mon Oct 25, 2010 1:41 pm

Re: simulate an interneuron

Post by Kane »

I tried to modify the weight into negative, but the effect is still excitatory
ted
Site Admin
Posts: 6299
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: simulate an interneuron

Post by ted »

Kane wrote:I tried to modify the weight into negative
How?
but the effect is still excitatory
So presumably the target is an artificial spiking cell, not a synaptic mechanism attached to a section. If this inference is correct, what kind of artificial spiking cell is the target, and what happens to its activation variable m when a NetCon with negative weight delivers an event?
Kane
Posts: 7
Joined: Mon Oct 25, 2010 1:41 pm

Re: simulate an interneuron

Post by Kane »

ted wrote:
Kane wrote:I tried to modify the weight into negative
How?
but the effect is still excitatory
So presumably the target is an artificial spiking cell, not a synaptic mechanism attached to a section. If this inference is correct, what kind of artificial spiking cell is the target, and what happens to its activation variable m when a NetCon with negative weight delivers an event?
here is the code for excitatory synapse connection:
CA3right.axon[0] CA3left[cell1].nclist.append(new NetCon(&v(i), synleft[syn1], -20, axonlen1*0.0005, 0.5))

to simulate the inhibitatory connection, I changed the last value 0.5 into -0.5

As for the artificial cell, no matter it is a pyramidal or interneuron, the parameter is the same :
proc init() {local axon1, axon2
axon1 = $1
axon2 = $2
create soma
nclist = new List()

soma {
nseg = 1
diam = 20
L = 30
Ra = 255.0
Cm = .75
insert hh
gnabar_hh=0.2
gl_hh = .0001666
el_hh = -60.0
}

axon[0] {
nseg = 20
diam = 2
L = axon1
insert hh
insert pas
}

axon[1] {
nseg = 20
diam = 2
L = axon2
insert hh
insert pas
}

dend[0] {
nseg = 1
diam = .75
L = 10
insert pas
}

dend[1] {
nseg = 1
diam = .75
L = 10
insert pas
}
ted
Site Admin
Posts: 6299
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: simulate an interneuron

Post by ted »

So the NetCon's target _is_ a synaptic mechanism (a point process) attached to a section (part of a biophysical model neuron). To quote myself:
If the NetCon's target is a point process (specifically a conductance change* synaptic mechanism) attached to a biophysical model neuron, the NetCon's weight parameter is the peak amplitude of the synaptic conductance transient elicited by a single event. This has two implications. First, the weight parameter for a conductance change synapse should be nonnegative (unless the effect of an input event is to _decrease_ the synaptic conductance, but in this case care should be taken to prevent net synaptic conductance from becoming negative). Second, whether the synapse is inhibitory or excitatory depends entirely on the synaptic mechanism itself, i.e. whether it is a conductance increase or decrease synapse, and whether its reversal potential lies above or below spike threshold.
So if a presynaptic spike is supposed to increase synaptic conductance, you want the NetCon's weight to be positive. In this case, the synaptic effect will be inhibitory if you make the synapse's reversal potential more negative than spike threshold.
sanjaybioe
Posts: 14
Joined: Sun Apr 24, 2011 11:35 pm

Re: simulate an interneuron

Post by sanjaybioe »

I also wanted to simulate an inhibitory effect using Exp2Syn mechanism and as Ted suggested, when the reversal potential of synapse is more negative than the spike threshold, the synapse shows inhibitory effect. But at that very negative reversal potential, if I increse the weight of the synapse, the effect is again excitatory. Why does this happen?

(My model is very similar to the two-neuron model that Kane made; it has a soma, tow dendrites and an axon, passive properties and hh mechanism put in through out the morphology of the neuron)

Part of the code is:

objref syn1
dend1[1] syn1 = new ExpSyn(0.8)
syn1.e = -60
axon2 ncl.append(new NetCon(&v(1), syn1, 10, 50, 0.05)) // postsyn to presyn connection

1) When syn1.e = -60 and weight is 0.05, effect is inhibitory

2) When syn1.e = -60 and weight is -0.05 (negative weight), effect is still inhibitory

3) When syn1.e = -60 and weight is 0.5 (10 times the initial weight), effect is inhibitory

4) When syn1.e = -60 and weight is -0.5 (negative), effect is excitatory

Why are the outputs different in conditions 2) and 4)? It would be good if you could give little detail of what actually the weight term in this context implies. Because general notion is if weight is negative, the effect is invariably Inhibitory. I could not clearly understand the reply you had posted for Kane's query.

Sanjay.
ted
Site Admin
Posts: 6299
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: simulate an interneuron

Post by ted »

Quoting the Programmer's Reference documentation of Exp2Syn, this mechanism
produces a synaptic current with alpha function like conductance (if tau1/tau2 is appoximately 1) defined by
i = G * (v - e)
Implicit in the documentation is the fact that a single activation of this mechanism produces a synaptic current given by i = G*(V-e) where G is the product of the weight associated with the event and a normalized biexponential function (a function that is the difference between decaying exponentials with time constants tau1 and tau2, multiplied by a scale factor so that its maximum is always 1).

For events with weight > 0, all is well and good--the synaptic conductance is always >= 0.
Events with weight < 0 produce results that are not physically realizable, because current flow would oppose the electrochemical gradient.

The moral of this story is: make sure that the NetCons that target event-driven conductance change synapses, such as ExpSyn and Exp2Syn, have positive weights.
sanjaybioe wrote: 1) When syn1.e = -60 and weight is 0.05, effect is inhibitory

2) When syn1.e = -60 and weight is -0.05 (negative weight), effect is still inhibitory

3) When syn1.e = -60 and weight is 0.5 (10 times the initial weight), effect is inhibitory

4) When syn1.e = -60 and weight is -0.5 (negative), effect is excitatory

Why are the outputs different in conditions 2) and 4)?
My guess would be that the negative conductance in case 2 is counteracted by local net positive conductances that are sufficiently large to nullify its effect. This being a completely hypothetical case--even more hypothetical than the usual computational model--I am disinclined to pursue the issue.
It would be good if you could give little detail of what actually the weight term in this context implies.
In addition to my brief discussion above, the source code for ExpSyn and Exp2Syn would probably answer a lot of questions--examine expsyn.mod and exp2syn.mod in c:\nrnxx\src\nrnoc (MSWin) (UNIX/Linux/OS X users should get the nrn...tar.gz file, expand it, and look in nrn-x.x/src/nrnoc/).
Because general notion is if weight is negative, the effect is invariably Inhibitory.
Quite true in the context of artificial neural nets. In biology, however, the effect of opening synaptic channels depends on whether the electrochemical gradient of the permeant ionic species favors net influx or efflux of positive charge.
I could not clearly understand the reply you had posted for Kane's query.
I'll have to re-read it to see where it might lack clarity.
ted
Site Admin
Posts: 6299
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: simulate an interneuron

Post by ted »

sanjaybioe wrote:I could not clearly understand the reply you had posted for Kane's query.
NEURON models may involve any combination of biophysical or artificial spiking model cells. A biophysical model cell has membrane capacitance, may also have membrane conductance, and definitely has a membrane potential that is computed by integrating transmembrane currents. Synaptic inputs cause conductance changes (open channels) that allow transmembrane current flow, the direction of which is governed by the transmembrane electrochemical gradient for the ionic species that can flow through the channels. The effective sign of such inputs (i.e. whether they are excitatory or inhibitory) depends on whether the driving force for synaptic current flow tends to push membrane potential above firing threshold, or to hold it below firing threshold. Since membrane properties can have very complex dynamics and voltage dependencies of their own, simulating the activity of a biophysical model cell over a time interval requires numerical solution of the cable equation at multiple points in that interval (even if it has only a single compartment, because the ODE for a 1 compartment model is just a degenerate form of the cable equation).

In NEURON, an artificial spiking cell is defined by a collection of ODEs and/or logical statements that govern the "state" of the cell. There are no ionic currents, nor any ionic equilibrium potentials. Instead of membrane potential, there is a "membrane state variable" m that is governed by a set of ODEs that are simple enough to have an analytical solution, so that, given the state of the cell at any time t0, one can predict the cell's future behavior. Also, if an input arrives at some time t1, its effect on the cell's states can be reckoned analytically and used to predict the (now perturbed) cell's subsequent behavior. Simulating the activity of an artificial spiking cell over a time interval typically requires only the evaluation of algebraic equations (the equations that are the solutions to the model cell's ODEs), and these only have to be evaluated when a new input event arrives.
Post Reply