AMPA,GABA, NMDA alpha function and binding

The basics of how to develop, test, and use models.
Post Reply
epokh
Posts: 13
Joined: Wed Jan 10, 2007 7:55 am
Contact:

AMPA,GABA, NMDA alpha function and binding

Post by epokh »

Hi,
I want to implement the following postsynaptic current:

Code: Select all

Isyn=gmax*s*(V-Vsyn)
Vsyn=0 for AMPA (excitatory)
Vsyn=-70 mv for the GABA (inhibitory)
Where s is the gating variable modeled as an instantaneus jump of magnitude 1 when a spike occours in the presynaptic neuron followed by an exponential decay with time constant of 2ms for the AMPA and 1ms for the GABAa.

So I read the NMODL chapter and I came with this base code:

Code: Select all

NEURON {
	POINT_PROCESS AlphaSyn
	RANGE tau, e, i
	NONSPECIFIC_CURRENT i
}

UNITS {
	(nA) = (nanoamp)
	(mV) = (millivolt)
	(nS) = (nanosiemens)
}

PARAMETER {
	tau = 0.1 (ms) <1e>
	e = 0	(mV)
}

ASSIGNED {
	v (mV)
	i (nA)
}

STATE {
	a (uS)
      g (uS)
}

INITIAL {
	g=0
}

BREAKPOINT {
	SOLVE state METHOD sparse
	i = g*(v - e)
}

KINETIC state
{
  ~ a (arrow left arrow right) g (1/tau,0)
  ~ g (arrow right) (1/tau)
}

NET_RECEIVE(weight (uS)) {
	state_discontinuity(a, a + weight*exp(1))
}
With weight set to the gmax.
Is it right?

I was trying to test the synapse conductance in this way:

Code: Select all

{load_file("nrngui.hoc")}

objref syn
syn=new AlphaSyn()

syn{
tau=10
e=0
}

objref expsyn
expsyn=new ExpSyn()


objref input,netcon
input=new NetStim()
input{
s=1
number=100
start=10
}

tend=300
netcon=new NetCon(input,syn,0,0,1)
But I receive the error:
AlphaSyn[0] point process not located in a section
So I have to create firsta a section and then insert the synapse?

For the NMDA channel is much more complex (for me of course).

Code: Select all

Isyn=gmax*g*s*(V-Vsyn)
where g

Code: Select all

g=1/(1+[Mg2plus])*exp(-0.062*Vm)/3.57) with [Mg2plus]=1.0mM and Vm the membrane potential
and this is easy
but the gating variable s are

Code: Select all

ds/dt=(-1/taus)*s+alphas*x*(1-s)
and
dx/dt=(-1/taux)*x+sum_over_i(delta(t-ti))
where ti=presynaptic spile times
alphas, taus, taux are constant
I know I have to use the derivate block and the net events with the discontinuity states but don't know how!
Is there some template that do similar things?

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

Re: AMPA,GABA, NMDA alpha function and binding

Post by ted »

epokh wrote:I want to implement the following postsynaptic current:

Code: Select all

Isyn=gmax*s*(V-Vsyn)
Vsyn=0 for AMPA (excitatory)
Vsyn=-70 mv for the GABA (inhibitory)
Where s is the gating variable modeled as an instantaneus jump of magnitude 1 when a spike occours in the presynaptic neuron followed by an exponential decay with time constant of 2ms for the AMPA and 1ms for the GABAa.
Why reinvent the wheel? Use the built-in ExpSyn and Exp2Syn, with appropriate parameters.

Code: Select all

objref exc, inh
soma exc = new ExpSyn(0.5)
// default e is 0 which is fine for AMPAergic synapses
exc.tau = 2
soma inh = new ExpSyn(0.5)
inh.tau = 1
inh.e = -70
I use exc and inh for such "garden variety" synapses, but you can call the objrefs
whatever you like--even ampasyn or gabaasyn if you don't mind a lot of typing.

Questions for you:
1. Isn't GABAa slower than AMPA?
2. If answer to 1 is yes, would it be better to use Exp2Syn (which has a gradual rising
phase) instead of ExpSyn?
epokh
Posts: 13
Joined: Wed Jan 10, 2007 7:55 am
Contact:

Re: AMPA,GABA, NMDA alpha function and binding

Post by epokh »

epokh wrote:Hi,

Where s is the gating variable modeled as an instantaneus jump of magnitude 1 when a spike occours in the presynaptic neuron followed by an exponential decay with time constant of 2ms for the AMPA and 1ms for the GABAa.
Sorry I missed a zero in the tau constant!
GABA tau=10 msec.

This is unforgivable! My boss will kill me if he knows!

Actually I used another model for the NMDA channel so I don't need it for now! Luky man! :-P
Post Reply