weight update pointprocess to netcon

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

weight update pointprocess to netcon

Post by epokh »

I would to know if this procedure is correct:
I have a NMDA point process or a Ca channel process and an AMPA pointprocess.
The operation I want to do is:
the NMDA channel or the CA channel update some internal field during the simulation time. For each simulation step I want to update the AMPA weight, so let's say the weight of the associated NetCon.
How can I do that?

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

Post by ted »

Before launching into implementational details, a question: what are you trying to
achieve? That is, what kind of synaptic plasticity do you want to have?

Non-associative use-dependent, for example as described by
Tsodyks, M., Uziel, A., Markram, H.
Synchrony generation in recurrent networks with frequency-dependent synapses.
J. Neurosci. 2000 RC50.
or
Varela, J.A., Sen, K., Gibson, J., Fost, J., Abbott, L.R., and Nelson, S.B..
A quantitative description of short-term plasticity at excitatory synapses in layer 2/3 of rat
primary visual cortex.
Journal of Neuroscience 17:7926-7940, 1997.
?

Or do you need associative (Hebbian) plasticity?

If you need a Hebbian mechanism, do you want a "functional" implementation of STDP
(where it is literally the interval between synaptic activation and postsynaptic spiking
that governs the weight change), or is it essential to have a mechanistic implentation
of some hypothetical molecular scheme involving 2nd messengers, reactions etc.?
epokh
Posts: 13
Joined: Wed Jan 10, 2007 7:55 am
Contact:

Post by epokh »

Yes my group of research is about STPD, but we want to check if the LTP and LTD could be achieved from the biophysical point of view. So we don't do any hypotesis about the STPD shape (composed by the 2 exponetial curve or whatever you want) . We think that teh calcium dynamics and the magnesium could lead to the LTP or LTD. So on the syanpse site we have the NMDA is kind of sensor that communicate with the AMPA receptor through some second messanger (this process actually is not perfectly know).
So we want to try 2 learning rule:
The first I told you before is:
deltaW=[NMDA activity]* Iout (modulated by dopamine)
The second one is:
deltaW=[NMDA]*(CA2plus)'

The first term you already know.
The second term is the derivative of the Calcium concentration.
Believe me that if this is working it will be a cool stuff!

So basically on the binding site I'm using:
a low threshold calcium current
a pump calcium channel
an NMDA receptor.

The calcium current has the following interface:

Code: Select all

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

NEURON {
	SUFFIX it2
	USEION ca READ cai, cao WRITE ica
	RANGE gcabar, m_inf, tau_m, h_inf, tau_h, shift
}
The calcium pump is:

Code: Select all

TITLE decay of submembrane calcium concentration
:
: Internal calcium concentration due to calcium currents and pump.
: Differential equations.
:
: This file contains two mechanisms:
:
: 1. Simple model of ATPase pump with 3 kinetic constants (Destexhe 1992)
:
:       Cai + P <CaP> Cao + P  (k1,k2,k3)
:
:   A Michaelis-Menten approximation is assumed, which reduces the complexity
:   of the system to 2 parameters: 
:       kt = <tot> * k3  -> TIME CONSTANT OF THE PUMP
:	kd = k2/k1 (dissociation constant)    -> EQUILIBRIUM CALCIUM VALUE
:   The values of these parameters are chosen assuming a high affinity of 
:   the pump to calcium and a low transport capacity (cfr. Blaustein, 
:   TINS, 11: 438, 1988, and references therein).  
:
:   For further information about this this mechanism, see Destexhe, A. 
:   Babloyantz, A. and Sejnowski, TJ.  Ionic mechanisms for intrinsic slow 
:   oscillations in thalamic relay neurons. Biophys. J. 65: 1538-1552, 1993.
:
:
: 2. Simple first-order decay or buffering:
:
:       Cai + B <-> ...
:
:   which can be written as:
:
:       dCai/dt = (cainf - Cai) / taur
:
:   where cainf is the equilibrium intracellular calcium value (usually
:   in the range of 200-300 nM) and taur is the time constant of calcium 
:   removal.  The dynamics of submembranal calcium is usually thought to
:   be relatively fast, in the 1-10 millisecond range (see Blaustein, 
:   TINS, 11: 438, 1988).
:
: All variables are range variables
:
: Written by Alain Destexhe, Salk Institute, Nov 12, 1992
:

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

NEURON {
	SUFFIX cad
	USEION ca READ ica, cai WRITE cai
	RANGE depth,kt,kd,cainf,taur
}

UNITS {
	(molar) = (1/liter)			: moles do not appear in units
	(mM)	= (millimolar)
	(um)	= (micron)
	(mA)	= (milliamp)
	(msM)	= (ms mM)
}

CONSTANT {
	FARADAY = 96489		(coul)		: moles do not appear in units
}

PARAMETER {
	depth	= 1	(um)		: depth of shell
	taur	= 1e10	(ms)		: remove first-order decay
	cainf	= 2.4e-4 (mM)
	kt	= 1e-4	(mM/ms)
	kd	= 1e-4	(mM)
}

STATE {
	cai		(mM) 
}

INITIAL {
	cai = kd
}

ASSIGNED {
	ica		(mA/cm2)
	drive_channel	(mM/ms)
	drive_pump	(mM/ms)
}
	
BREAKPOINT {
	SOLVE state METHOD euler
}

DERIVATIVE state { 

	drive_channel =  - (10000) * ica / (2 * FARADAY * depth)

	if (drive_channel <= 0.) { drive_channel = 0. }	: cannot pump inward

	drive_pump = -kt * cai / (cai + kd )		: Michaelis-Menten

	cai' = drive_channel + drive_pump + (cainf-cai)/taur
}

The NMDA block has the following:

Code: Select all

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

NEURON {
	POINT_PROCESS NMDA
	POINTER pre
	RANGE C, R, R0, R1, g, gmax, B, lastrelease, TimeCount
	NONSPECIFIC_CURRENT i
	GLOBAL Cmax, Cdur, Alpha, Beta, Erev, mg
	GLOBAL Prethresh, Deadtime, Rinf, Rtau
}
So my purpose now is to trasmit the cai' * g (of the NMDA block)(for each simulation step), that is exactly the derivate of the calcium concentration to the weight of the netcon object linked to the AMPA synapse.

Is it possible to do something like that:

Code: Select all

TITLE decay of submembrane calcium concentration
:
: Internal calcium concentration due to calcium currents and pump.
: Differential equations.
:
: This file contains two mechanisms:
:
: 1. Simple model of ATPase pump with 3 kinetic constants (Destexhe 1992)
:
:       Cai + P <CaP> Cao + P  (k1,k2,k3)
:
:   A Michaelis-Menten approximation is assumed, which reduces the complexity
:   of the system to 2 parameters: 
:       kt = <tot> * k3  -> TIME CONSTANT OF THE PUMP
:	kd = k2/k1 (dissociation constant)    -> EQUILIBRIUM CALCIUM VALUE
:   The values of these parameters are chosen assuming a high affinity of 
:   the pump to calcium and a low transport capacity (cfr. Blaustein, 
:   TINS, 11: 438, 1988, and references therein).  
:
:   For further information about this this mechanism, see Destexhe, A. 
:   Babloyantz, A. and Sejnowski, TJ.  Ionic mechanisms for intrinsic slow 
:   oscillations in thalamic relay neurons. Biophys. J. 65: 1538-1552, 1993.
:
:
: 2. Simple first-order decay or buffering:
:
:       Cai + B <-> ...
:
:   which can be written as:
:
:       dCai/dt = (cainf - Cai) / taur
:
:   where cainf is the equilibrium intracellular calcium value (usually
:   in the range of 200-300 nM) and taur is the time constant of calcium 
:   removal.  The dynamics of submembranal calcium is usually thought to
:   be relatively fast, in the 1-10 millisecond range (see Blaustein, 
:   TINS, 11: 438, 1988).
:
: All variables are range variables
:
: Written by Alain Destexhe, Salk Institute, Nov 12, 1992
:

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

NEURON {
	SUFFIX cad
	USEION ca READ ica, cai WRITE cai
      POINTER gnmda,wAMPA
	RANGE depth,kt,kd,cainf,taur
}

UNITS {
	(molar) = (1/liter)			: moles do not appear in units
	(mM)	= (millimolar)
	(um)	= (micron)
	(mA)	= (milliamp)
	(msM)	= (ms mM)
}

CONSTANT {
	FARADAY = 96489		(coul)		: moles do not appear in units
}

PARAMETER {
	depth	= 1	(um)		: depth of shell
	taur	= 1e10	(ms)		: remove first-order decay
	cainf	= 2.4e-4 (mM)
	kt	= 1e-4	(mM/ms)
	kd	= 1e-4	(mM)
}

STATE {
	cai		(mM) 
}

INITIAL {
	cai = kd
}

ASSIGNED {
	ica		(mA/cm2)
	drive_channel	(mM/ms)
	drive_pump	(mM/ms)
}
	
BREAKPOINT {
	SOLVE state METHOD euler
      wAMPA.weight=wAMPA.weight+g*cai'
}

DERIVATIVE state { 

	drive_channel =  - (10000) * ica / (2 * FARADAY * depth)

	if (drive_channel <= 0.) { drive_channel = 0. }	: cannot pump inward

	drive_pump = -kt * cai / (cai + kd )		: Michaelis-Menten

	cai' = drive_channel + drive_pump + (cainf-cai)/taur
}
Sorry for always asking! But I'm in a hurry for the Toronto conference, and I was switched from a project to another and started to use NEURON 3 days ago.
ted
Site Admin
Posts: 6393
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Post by ted »

Sorry about the delay in replying, but there were pressing tasks at this end.
epokh wrote:So we want to try 2 learning rule:
The first I told you before is:
deltaW=[NMDA activity]* Iout (modulated by dopamine)
The second one is:
deltaW=[NMDA]*(CA2plus)'

The first term you already know.
The second term is the derivative of the Calcium concentration.
The rule that invokes the derivative of calcium concentration seems biophysically
implausible to me, but what do I know about the molecular machinery of learning.
So my purpose now is to trasmit the cai' * g (of the NMDA block)(for each simulation step), that is exactly the derivate of the calcium concentration to the weight of the netcon object linked to the AMPA synapse.
Almost. The weight of the connection to the AMPA synapse only needs to be changed
when a new input event arrives at that connection, or did I misunderstand? You don't
really want the AMPA synapse's conductance to follow the moment-to-moment changes
of cai' * g, do you?

Assuming that your answer is "no", here's what to do.
1. In the original calcium pump mechanism, add
RANGE Dtcai
to the NEURON block, and
Dtcai (mM/ms)
to the ASSIGNED block.
At the end of the DERIVATIVE block, insert this statement
Dtcai = drive_channel + drive_pump + (cainf-cai)/taur
2. To the AMPA synapse's NEURON block, add this
POINTER Dtcai, gNMDA
RANGE k
and to its ASSIGNED block add
Dtcai (mM/ms)
gNMDA (uS)
Finally, to its PARAMETER block add
k = 1 (ms/mM-uS)
You will need to adjust k by trial and error to get the desired magnitude of synaptic weight
change.
3. I assume that the AMPA synapse's NET_RECEIVE block looks something like this:

Code: Select all

NET_RECEIVE(weight (uS)) {
        g = g + weight
}
Change it to

Code: Select all

NET_RECEIVE(weight (uS)) {
        g = g + weight*(1+k*Dtcai*gNMDA)
}
4. Finally you will need setpointer statements to link the AMPA synapse's POINTER
variables to the corresponding variables in the NMDA and calcium pump mechanisms.
See the documentation n the Programmer's reference
http://www.neuron.yale.edu/neuron/stati ... setpointer
and the examples at the beginning of chapter 10 of The NEURON Book.

I am not altogether sure that this will work, or that it will do what you want. Even if it does,
please note that it does not provide stream-specific plasticity. Therefore it should be
driven by only one NetCon, so if you need to represent more than one "real" AMPAergic
synapse, you will need to use one of these AMPA point processes, each with its own NetCon, to represent each "real" synapse.

Be sure to use modlunit to check for consistency of units in all your mechanisms.
modlunit's error messages can be difficult to interpret, so don't hesitate to ask questions.
After the whole thing is running, it will have to be tested thoroughly to make sure that its
results make sense. The tests should be done in the context of a very simple cell model--just
a single compartment, with as few biophysical mechanisms as necessary, because
complexity will make debugging and testing needlessly difficult.
Post Reply