Pseudocode for
the identification of firing pattern elements
(i)
IF HAS_DELAY(): add
"D."
(ii) IF HAS_TSTUT():
If swa > MIN_SWA: add "TSWB."
Else: add "TSTUT."
(iii)
RUN_SOLVER_STAT_TESTS()
(iv) IF STEADY_STATE_FIRING:
IF HAS_PSTUT():
If swa> MIN_SWA: add "PSWB"
ELSE: add "PSTUT"
(v)
IF HAS_SLN(): add
"SLN"
Function
definitions:
HAS_DELAY()
IF fsl > DELAY_FACTOR * ISI_AVG(1,2):
Return TRUE
ELSE:
Return FALSE
HAS_TSTUT()
For ISIs i = 2, 3 and 4:
IF ISIi > ISIi-1 * TSTUT_PRE_FACTOR &&
ISIi > ISIi+1 *
TSTUT_POST_FACTOR &&
Avg(ISIi:n) > Avg(ISI1:i-1) *
TSTUT_PRE_FACTOR &&
Freq(ISI1:i-1) >
MIN_TSTUT_FREQ
Return TRUE
IF pss
> ISIn * TSTUT_PRE_FACTOR &&
Freq(ISI1:n) >
MIN_TSTUT_FREQ &&
swa > MIN_SWA
Return TRUE
RUN_SOLVER_STAT_TESTS()
Fit ISIs against their latencies using 1 parameter (Y=c0), 2
parameter (Y=m1X+c1), 3 parameter (Y=m2X+c2, Y=c3) and 4 parameter (Y=m4X+c4, Y=m5X+c5)
piecewise linear fits
IF NOT significant improvement from 1 parm
to 2 parm linear fit:
Add "NASP/STEADY_STATE"
Return
IF NOT significant improvement from 2 parm
to 3 parm linear fit:
IF slope > SLOPE_THRESHOLD:
Add "ASP."
ELSE:
Add "NASP"
Return
IF NOT significant improvement from 3 parm
to 4 parm linear fit:
Add "ASP."
Add "NASP"
Return
Add "ASP."
Add "ASP."
Return
HAS_PSTUT()
ISIi =
maximum of ISIs
factor_1
= ISIi/ISIi-1
factor_2
= ISIi/ISIi+1
IF
factor_1 + factor_2 > PSTUT_FACTOR
Return TRUE
HAS_SLN()
IF pss > SLN_FACTOR *
ISI_AVG(n,n-1) &&
pss > SLN_FACTOR * ISI_MAX:
Return TRUE
ELSE:
Return FALSE
Abbreviations:
ISI - inter spike interval, fsl - first spike
latency, pss
- post spike silence, swa
- slow after hyperpolarizing wave amplitude.
Constants:
MIN_SWA
= 5mV, DELAY_FACTOR = 2, SLN_FACTOR = 2, TSTUT_PRE_FACTOR=2.5, TSTUT_POST_FACTOR=1.5,
PSTUT_FACTOR = 5, SLOPE_THRESHOLD=0.003,
MIN_TSTUT_FREQ = 25Hz