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.