:Current Clamp
: Asymmetric biphasic Stimulus with prepulse (Cathodic money phase if polarity = -1, anodic money phase if polarity = +1)
: Opposite Medtronic Pulses
NEURON {
POINT_PROCESS asymtrainIClamp
RANGE del, PW, polarity, train, amp, ratio, freq, i, conv, pulsecount, onoff
ELECTRODE_CURRENT i
}
UNITS { (na) = (nanoamp) }
PARAMETER{
del (ms)
PW (ms)
train (ms)
amp (na)
freq (1/s)
conv = 1000 (ms/s)
pulsecount (s/s)
onoff (s/s)
polarity (s/s) : -1 is stimulus is cathodic, + if stimulus is anodic
ratio (s/s) : second pulse has amplitude amp/ratio and duration pw*ratio
}
ASSIGNED {
i (na)
}
INITIAL { LOCAL j,k
pulsecount = 0
onoff = 0
k = (train/conv)/freq
i = 0
FROM j = 0 TO k {
at_time (del + (j*(conv/freq)))
at_time (del + PW + (j*(conv/freq)))
}
at_time (del + train)
}
BREAKPOINT {
if (t < del + train && t > del) {
if (t > del + (pulsecount*(conv/freq)) && t < del + (pulsecount*(conv/freq)) + PW + ratio*PW) {
if (t > del + (pulsecount*(conv/freq)) && t < del + (pulsecount*(conv/freq)) + ratio*PW) {
i = amp*-polarity/ratio
onoff = 1
} else {
i = amp*polarity
:onoff = 1
}
} else {
if (onoff == 0) {
i = 0
} else {
i = 0
pulsecount = pulsecount + 1
onoff = 0
}
}
} else {
i = 0
pulsecount = 0
onoff = 0
}
}