Page 1 of 1

Trigger on voltage

Posted: Tue Feb 18, 2014 1:27 pm
by Wosen
Hi, is there a way to trigger an event on the voltage crossing a threshold and can I link a procedure to the event where I reset the model to its resting state? In the event procedure I would like to reset sodium mechanisms and voltage to some predefined state but not the current clamp mechanism (in case it is only possible to reset all mechanisms I will find a workaround for the latter condition, so that is less important).

I ask this because I have reduced a complex to a simple model that cannot produce a full blown spike, hence, loosely speaking, I would like a spike generation mechanism similar to the one of an integrate-and-fire model.

Thanks for every help!

Best regards,
David

Re: Trigger on voltage

Posted: Wed Feb 19, 2014 7:11 pm
by ted
If your model cell can generate even a low amplitude spike, you don't have to do anything special--just make sure that any NetCon that uses your cell as a "presynaptic neuron" has its threshold parameter set to an appropriate value.

If your model cell can't make any spikes at all, get spikeout.mod from https://senselab.med.yale.edu/modeldb/S ... URON\coba\. Attach an instance of the SpikeOut class to the soma of your model cell, and set its
--thresh parameter to the value that you want to call "spike threshold"
--refrac parameter to the "spike duration" that you want
--vrefrac to the membrane potential that you want your cell to have at the end of a spike
--grefrac to a value large enough that the cell's membrane potential is "sufficiently close" to vrefrac at the end of a spike

Then use the SpikeOut instance as an "event source" for NetCons, just as if it were an artificial spiking cell.

Re: Trigger on voltage

Posted: Tue Feb 25, 2014 5:19 am
by Wosen
Thanks for your reply Ted!

I will try the approach with spikeout.mod.

Best regards,
David

Re: Trigger on voltage

Posted: Thu Mar 27, 2014 10:36 am
by Wosen
Hello Ted,

I have tried to implement a NetCon to do what I need based on what I have seen in the spikeout.mod which was your suggestion.

I have the following issue:
My cell model geometry is ball and stick. I set the NetCon at the beginning of the axon close to the soma at about 0.03. In the NET_RECEIVE block I reset the voltage to its resting state value. And here comes the problem: I need to reset the voltage of the entire cell to the resting state value not only at the position of the mechanism in which I have the NET_RECEIVE block. Do you have a suggestion how to do that? Currently I just reset the voltage at the position I put the mechanism.
I would be very grateful!

Here is (hopefully only) the relevant parts, of the mechanism, especially the NET_RECEIVE block:

Code: Select all

NEURON {
        POINT_PROCESS sodium_trigger
        USEION na READ ena WRITE ina
        RANGE gnabar, gna, ena
        GLOBAL minf, mtau, v1_2, v_resting
}

PARAMETER {
        gnabar = 0.00215  (S)  <0,1e9> 
        v1_2 = -40 (mV)
        v_resting = -75 (mV)
        mtau = 0.1 (ms) 
        ena = 60 (mV)
}

NET_RECEIVE (w) {
        v = v_resting
        m = 1 / (1 + exp((v1_2 - v_resting)/6))                                                                                                                                   
}
And the relevant part of my hoc code reads:

Code: Select all

access axon

sodiumchan = new sodium_trigger(0.03)
APgen = new NetCon(&v(0.03), sodiumchan,-40,1,0)
Thanks a lot in advance!
Very best regards,
David

Re: Trigger on voltage

Posted: Fri Mar 28, 2014 3:29 pm
by Wosen
Dear Ted,

as I defined a partial workaround to the previously stated question, my issue now reduces to the following question:

Can I set the voltage of the entire multi-compartment cell model to a defined value without resetting the whole simulation (finitialize(v))? Is there another (more efficient) way apart from looping over all segments of all sections and setting v to some value?

Thank you for your help,
David

Re: Trigger on voltage

Posted: Fri Mar 28, 2014 4:21 pm
by ted
Actually you don't want to finitialize(v). That will reset time to 0, force all state variables to their steady state values for whatever the numerical argument of finitialize() is (or to whatever the local potential is, if finitialize() has no argument), reset all Graphs and Vectors to which data are recorded, reset all signal sources including voltage and current clamps, and all artificial spiking cells. Basically a disaster. Your only option is to iterate over all sections whose v is to be reset, and force their potentials to the value you want. If you are using adaptive integration, you must follow that by calling cvode.re_init()

But I don't understand why you'd want to do this anyway. The whole point of having a dendrite is to introduce membrane that is not isopotential with the spike trigger zone. It has been a decade at least since it was demonstrated that somatic spikes do not suck all synaptic charge out of the dendrites of real cells or reset membrane potential to ek or resting level (sorry, I don't recall the authors but I think that was published in Science). And years before that it was known that backpropagating spikes spread decrementally into dendrites, often dying out over relatively short distances. So why reset the whole dendrite after a somatic spike?

Re: Trigger on voltage

Posted: Tue Jul 01, 2014 6:19 am
by Wosen
Dear Ted,

I had solved the problem exatly as you proposed by resetting voltage by looping over the variable and it works nicely (no trouble with computation time).

Concerning your remark:
ted wrote:But I don't understand why you'd want to do this anyway. The whole point of having a dendrite is to introduce membrane that is not isopotential with the spike trigger zone. It has been a decade at least since it was demonstrated that somatic spikes do not suck all synaptic charge out of the dendrites of real cells or reset membrane potential to ek or resting level (sorry, I don't recall the authors but I think that was published in Science). And years before that it was known that backpropagating spikes spread decrementally into dendrites, often dying out over relatively short distances. So why reset the whole dendrite after a somatic spike?
Surely you are right with your remarks and the simple answer is that we do not have any dendritic tree in our model cell. It is just soma and axon, ball and stick, hence a leaky integrate and fire neuron that is not a point neuron and has somewhat more realistic sodium currents.

Best regards,
David