Page 1 of 1

AMPA,GABA, NMDA alpha function and binding

Posted: Sat Jan 20, 2007 6:53 am
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.

Re: AMPA,GABA, NMDA alpha function and binding

Posted: Sat Jan 20, 2007 11:57 am
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?

Re: AMPA,GABA, NMDA alpha function and binding

Posted: Sun Jan 21, 2007 6:39 am
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