How to integrate synapses such as GABA and others...

The basics of how to develop, test, and use models.
Post Reply
nianwosuh
Posts: 39
Joined: Tue Jul 27, 2010 11:00 pm

How to integrate synapses such as GABA and others...

Post by nianwosuh »

Please how can I interface synapses such as GABA (mod file) and other synapse into the NEURON gui so as to use them in networkbuilder for constructing networks?

Thank you
Irene
ted
Site Admin
Posts: 5810
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: How to integrate synapses such as GABA and others...

Post by ted »

Does this mean that you have a mod file that defines a GABAergic synaptic mechanism, or are you just asking how to implement something that behaves like such a synaptic mechanism? If the latter, use Exp2Syn with appropriate reversal potential (probably near resting potential) and time constants.
nianwosuh
Posts: 39
Joined: Tue Jul 27, 2010 11:00 pm

Re: How to integrate synapses such as GABA and others...

Post by nianwosuh »

I'm working through one of Destexhe's network model, he wrote hoc code for the whole program. I'm trying to repeat most of the part using NEURON GUI. (As a way to optimize the use of the GUI and write less code). He has a mod file for GABA_A, which he used as a synapse to connect the two cells. I saved this GABA_A.mod file in the directory where I was "re-engineering his work" as a way to learn from his work.

I "reconstructed" the two cells using the network cell builder, but do not know how to use the GABA.mod as synapse to conect the cells. I thought the GABA_A would appear under the "New " of the SynType GUI. as "a costume written" point processor would appear under the point Processor Manager.

Since GABA_A.mod did not appear in the SynType GUI, how would I use it to connect the cell if I am using the network cell builder to construct my network?

Or is that one uses ExpSyn for all biologically excitatory synapses and simply change the tau, and e to match the experimental vlaues and do the same with Exp2Syn for hibitory synapses.

Or in general how does one use the biological synapses in net work while using the network cell builder?

Thank you
Irene
ted
Site Admin
Posts: 5810
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: How to integrate synapses such as GABA and others...

Post by ted »

Alain is one of the star NEURON users. He writes very well-structured code. He started using NEURON when it was "only an egg," so some of the models he developed were created before NEURON had many of its more advanced features. For example, his older network models often have synapses that use POINTERs (so that the synaptic conductance, which is attached to the postsynaptic cell, can discover the calcium concentration or membrane potential in the presynaptic cell).

Code: Select all

Since GABA_A.mod did not appear in the SynType GUI, how would I use it to connect the cell if I am using the network cell builder to construct my network?
This suggests to me that the mechanism specified by GABA_A.mod uses POINTERs, does not have a NET_RECEIVE block, and does not use a NetCon to connect the presynaptic spike source to the synaptic mechanism attached to the postsynaptic cell. If you tell me which of his models you are trying to re-implement, I will examine it and advise you on what to do about its synapses.

The alternative, of course, is to do what he did--just use the same mechanisms he did, and couple presynaptic cells to postsynaptic cells with POINTERs. That means writing some hoc code, and it precludes use of the Network Builder.
nianwosuh
Posts: 39
Joined: Tue Jul 27, 2010 11:00 pm

Re: How to integrate synapses such as GABA and others...

Post by nianwosuh »

He mdeled the synapses as point processors. Here is the model file for the GABA_A receptor;

INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}

NEURON {
POINT_PROCESS GABAa
POINTER pre
RANGE C, R, R0, R1, g, gmax, lastrelease, TimeCount
NONSPECIFIC_CURRENT i
GLOBAL Cmax, Cdur, Alpha, Beta, Erev, Prethresh, Deadtime, Rinf, Rtau
}
UNITS {
(nA) = (nanoamp)
(mV) = (millivolt)
(umho) = (micromho)
(mM) = (milli/liter)
}

PARAMETER {
dt (ms)
Cmax = 1 (mM) : max transmitter concentration
Cdur = 1 (ms) : transmitter duration (rising phase)
Alpha = 5 (/ms mM) : forward (binding) rate
Beta = 0.18 (/ms) : backward (unbinding) rate
Erev = -80 (mV) : reversal potential
Prethresh = 0 : voltage level nec for release
Deadtime = 1 (ms) : mimimum time between release events
gmax (umho) : maximum conductance
}


ASSIGNED {
v (mV) : postsynaptic voltage
i (nA) : current = g*(v - Erev)
g (umho) : conductance
C (mM) : transmitter concentration
R : fraction of open channels
R0 : open channels at start of release
R1 : open channels at end of release
Rinf : steady state channels open
Rtau (ms) : time constant of channel binding
pre : pointer to presynaptic variable
lastrelease (ms) : time of last spike
TimeCount (ms) : time counter
}

INITIAL {
R = 0
C = 0
Rinf = Cmax*Alpha / (Cmax*Alpha + Beta)
Rtau = 1 / ((Alpha * Cmax) + Beta)
lastrelease = -1000
R1=0
TimeCount=-1
}

BREAKPOINT {
SOLVE release
g = gmax * R
i = g*(v - Erev)
}

PROCEDURE release() {
:will crash if user hasn't set pre with the connect statement

TimeCount=TimeCount-dt : time since last release ended

: ready for another release?
if (TimeCount < -Deadtime) {
if (pre > Prethresh) { : spike occured?
C = Cmax : start new release
R0 = R
lastrelease = t
TimeCount=Cdur
}

} else if (TimeCount > 0) { : still releasing?

: do nothing

} else if (C == Cmax) { : in dead time after release
R1 = R
C = 0.
}



if (C > 0) { : transmitter being released?

R = Rinf + (R0 - Rinf) * exptable (- (t - lastrelease) / Rtau)

} else { : no release occuring

R = R1 * exptable (- Beta * (t - (lastrelease + Cdur)))
}

VERBATIM
return 0;
ENDVERBATIM
}

FUNCTION exptable(x) {
TABLE FROM -10 TO 10 WITH 2000

if ((x > -10) && (x < 10)) {
exptable = exp(x)
} else {
exptable = 0.
}
}
ted
Site Admin
Posts: 5810
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: How to integrate synapses such as GABA and others...

Post by ted »

If the model source code is in ModelDB, it is sufficient to include just the ModelDB accession number and the name of the file--maybe with a brief excerpt, which in this case would be the NEURON block because it shows that he did use POINTERs.

This particular NMODL source code implements the following conceptual model of transmitter-receptor interaction with receptor saturation:
C + T <-> O
i.e. a first order reaction in which T is the transmitter concentration and C and O are the fractional number of channels that are in the closed and open states, respectively (in the mod file these are C, 1-R, and R, respectively). Transmitter concentration is either 0 or 1, and transmitter release lasts for a constant amount of time after each presynaptic spike. The advent of NEURON's event delivery system allows a much simpler implementation of this kind of mechanism--for an example see Example 10.6: Saturating synapses in The NEURON Book.

It would be a potentially instructive, but tedious, excercise to convert this model of GABAergic synaptic transmission into a form that uses the event delivery system. I'm not that what one would learn would be sufficient compensation for the effort required.

Alain's implementation won't work with the Network Builder. I'd suggest substituting Exp2Syn with appropriate time constants and reversal potential--say 0.2 ms and 5 ms, and -80 mV respectively. It won't saturate, but unless driven at high rates I bet it would give qualitatively similar results.
nianwosuh
Posts: 39
Joined: Tue Jul 27, 2010 11:00 pm

Re: How to integrate synapses such as GABA and others...

Post by nianwosuh »

Thank you!
Post Reply