You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.5 KiB
64 lines
1.5 KiB
COMMENT |
|
|
|
Iclamp2.mod: Electrode current injection, revised for our own use |
|
I specifically needed more step changes in a single waveform than |
|
were provided by the default code. This routine gives us 5 levels: |
|
holding, 3 steps, and a final (holding?) level. |
|
|
|
This version generates a pulse of duration at amplitude I for |
|
onset times in the vector onset[STEP] and durations in dur[STEP] |
|
Each pulse is independent and pulses _could_ overlap. |
|
|
|
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. |
|
|
|
(modified and borrowed extensively from other Neuron code, |
|
2001-2002. Paul B. Manis) |
|
|
|
ENDCOMMENT |
|
|
|
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)} |
|
|
|
DEFINE NSTEP 5 : maximum number of steps supported in this mechanism |
|
|
|
NEURON { |
|
POINT_PROCESS IClamp2 |
|
RANGE onset, dur, amp, i |
|
ELECTRODE_CURRENT i |
|
} |
|
UNITS { |
|
(nA) = (nanoamp) |
|
} |
|
PARAMETER { |
|
} |
|
|
|
ASSIGNED { |
|
i (nA) |
|
index |
|
onset[NSTEP] (ms) |
|
dur[NSTEP] (ms) |
|
amp[NSTEP] (nA) |
|
pu |
|
} |
|
|
|
INITIAL { |
|
i = 0 (nA) |
|
index = 0 |
|
pu = 0 |
|
} |
|
: |
|
: at each onset time, a pulse of duration dur is generated. |
|
: |
|
|
|
BREAKPOINT { |
|
i = 0 |
|
FROM index = 0 TO NSTEP-1 { |
|
if(t > onset[index]) { |
|
if(t < (dur[index]+onset[index])) { |
|
i = i + amp[index] : allows overlap |
|
} : end of if condition |
|
} :end of second if condition |
|
} : end of "FROM" (for) loop |
|
} : end of breakpoint
|
|
|