You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Follow-up to #347 (closed as won't-fix). #347 documented a transient depol-block-recovery sequence in the first ~15 ms of REPETITIVE_FIRING (+3 µA/cm² × 200 ms from a fresh v_rest = −80 mV cold start): one full Na⁺ spike at +46.6 mV, then 5–8 suppressed/aborted spikes (V max −7…+7 mV) while Na inactivation recovers, then resumed firing.
The pattern is dt-invariant (verified at 40/80/160 kHz) and is therefore biophysical, not a numerical artifact. It is also phase-dependent on where in the ~10 Hz spontaneous limit cycle the step lands — with pre_stimulus_duration = 50 ms (vs the current 10 ms), the block disappears.
Why a deeper retune is required
The #347 sweep ruled out every minimal-change candidate:
g_Na trim (Candidate A) — makes the block worse.
g_T trim (Candidate B) — clears the block at ≤2.4 mS/cm² but breaks the rebound burst and raises spontaneous AP peak above +40 mV.
g_KCa bump (Candidate D) — Ca needs accumulation time.
2D (g_T × g_K) — no combination clears all 5 gates.
ICaT ft V½ shift — at ≤−85 mV the cell stops pacing entirely.
So a clean fix needs more than a one-line parameter change. The constraint set (rebound-burst preserved, in-band tonic AP shape, in-band Ca peak, 1–15 Hz pacing, and no LTS-rise depol-block) over-determines the (g_Na, g_K, g_T, g_KCa, g_h, g_NaL, g_KL) space.
Scope
Comparable to #308/#346: a coordinated kinetic-and-conductance retune. Possible levers identified during #347:
Faster Na h-gate recovery — shift TRN h V½ or τ_h to let Na recover from the first big spike before the LTS pulls Vm too high to escape.
Add an Im (Kv7) current — TRN literature (Cueni 2008, Bessaïh papers, Crandall/Avanzini) supports a slow K⁺ current that contributes to inter-spike repolarisation. Would help break the +5 mV plateau.
No depol-block — every Vm peak in the first 25 ms post-step-onset of REPETITIVE_FIRING (+3 µA/cm² × 200 ms from cold start at v_rest) reaches ≥ +10 mV (HP92 floor).
Rebound burst — 5–15 spikes, 200–600 Hz, exactly 1 burst at −4 µA/cm² × 500 ms (test_trn_step_release_produces_hp92_rebound_burst).
trn_lts_validate_winner.py — full 5-gate evaluation
Priority
Low — visible only on cold start before pacing equilibrates; macroscopic burst-then-tonic phenotype is correct. UX impact is a 15 ms transient on the user's first run from preset defaults.
Background
Follow-up to #347 (closed as won't-fix). #347 documented a transient depol-block-recovery sequence in the first ~15 ms of REPETITIVE_FIRING (+3 µA/cm² × 200 ms from a fresh v_rest = −80 mV cold start): one full Na⁺ spike at +46.6 mV, then 5–8 suppressed/aborted spikes (V max −7…+7 mV) while Na inactivation recovers, then resumed firing.
The pattern is dt-invariant (verified at 40/80/160 kHz) and is therefore biophysical, not a numerical artifact. It is also phase-dependent on where in the ~10 Hz spontaneous limit cycle the step lands — with
pre_stimulus_duration = 50 ms(vs the current 10 ms), the block disappears.Why a deeper retune is required
The #347 sweep ruled out every minimal-change candidate:
So a clean fix needs more than a one-line parameter change. The constraint set (rebound-burst preserved, in-band tonic AP shape, in-band Ca peak, 1–15 Hz pacing, and no LTS-rise depol-block) over-determines the (g_Na, g_K, g_T, g_KCa, g_h, g_NaL, g_KL) space.
Scope
Comparable to #308/#346: a coordinated kinetic-and-conductance retune. Possible levers identified during #347:
Each lever needs literature support; this is not a free-tuning exercise.
Acceptance criteria (carried from #347)
test_trn_step_release_produces_hp92_rebound_burst).test_strong_stim_peak_ca_in_band).tests/integration/test_trn.pypinning gate (1).Diagnostic infrastructure
#347 left four diagnostic scripts under
scratch/(gitignored) that exercise these gates against a TRN variant builder. Reusable for the deeper retune:trn_lts_rise_dt_sweep.py— dt invariance checktrn_lts_depol_block_sweep.py— single-axis A/B/C/Dtrn_lts_2d_sweep.py— 2D (g_T × g_K)trn_lts_ft_vhalf_sweep.py— ICaT ft V½ shifttrn_lts_validate_winner.py— full 5-gate evaluationPriority
Low — visible only on cold start before pacing equilibrates; macroscopic burst-then-tonic phenotype is correct. UX impact is a 15 ms transient on the user's first run from preset defaults.
References