TITLE ZAP current COMMENT ----------------------------------------------------------------------------- ZAP current model for membrane impedance analysis ================================================== IMPLEMENTATION This mechanism is implemented as a nonspecific current defined as a point process, mimicking a current-clamp stimulation protocol, injecting a sinusoidally oscillating waveform I(t), with instantaneous frequency changing in time (i.e. chirp or ZAP waveform). I(t) = A * sin (2 pi (f(t) - Fstart) ( t - ttstart) / 2 ) f(t) = Fstart + (Fstop - Fstart) * ( t - ttstart) / ( ttstop - ttstart) A(t) = Astart + (Astop - Astart) * ( t - ttstart) / ( ttstop - ttstart) Note: Although counterintuitive at a first glance, the above expression of I(t) indeed correspond to a sinusoid starting with the initial frequency Fstart that is linearly increasing up to Fstop while the time goes from ttstart to ttstop. Note: Since this is an electrode current, positive values of i depolarize the cell and in the presence of the extracellular mechanism there will be a change in vext since i is not a transmembrane current but a current injected directly to the inside of the cell. Refer to: Cali' et al. (2007) PARAMETERS This mechanism takes the following parameters: Ioff = 0. (nA) : initial current offset. Astart = 0. (nA) : initial value of the (linearly changing) amplitude of the ZAP current. Astop = 0. (nA) : final value of the (linearly changing) amplitude of the ZAP current. ttstart = 0. (ms) : starting time of the stimulation. ttstop = 0. (ms) : final time of the stimulation. Fstart = 0. (Hz) : initial value of the (linearly changing) frequency of the ZAP current. Fstop = 0. (Hz) : final value of the (linearly changing) frequency of the ZAP current. Written by M. Giugliano and C. Cali', Brain Mind Institute, EPFL, March 2006 ----------------------------------------------------------------------------- ENDCOMMENT INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)} NEURON { POINT_PROCESS Izap RANGE Astart, Astop, ttstart, ttstop, Fstart, Fstop, Ioff NONSPECIFIC_CURRENT i } UNITS { (nA) = (nanoamp) (mV) = (millivolt) } PARAMETER { Ioff = 0. (nA) : initial current offset Astart = 0. (nA) : initial value of the (linearly changing) amplitude of the ZAP current Astop = 0. (nA) : final value of the (linearly changing) amplitude of the ZAP current ttstart = 0. (ms) : starting time of the stimulation.. ttstop = 0. (ms) : final time of the stimulation.. Fstart = 0. (Hz) : initial value of the (linearly changing) frequency of the ZAP current Fstop = 0. (Hz) : final value of the (linearly changing) frequency of the ZAP current } ASSIGNED { i (nA) : fluctuating current } BREAKPOINT { if ((t < ttstart) || (t > ttstop)) { i = - Ioff } else { i = - (Ioff + ( ((Astart*(ttstop-t)/(ttstop-ttstart)) + ((t-ttstart)/(ttstop-ttstart)) * Astop)) * sin( (0.0062831853071795866 * Fstart + ((t-ttstart)/(ttstop-ttstart)) * 0.5 * 0.0062831853071795866 * (Fstop - Fstart) ) * (t-ttstart))) } }