Struct NeuronModel
Parameters of the leaky integrate-and-fire (LIF) point-neuron model used by dotFly.
Defaults reproduce Shiu et al. 2024 (philshiu/Drosophila_brain_model@91bdd1e7, model.py):
dv/dt = (v_0 - v + g) / t_mbr (unless refractory)
dg/dt = -g / tau (unless refractory)
threshold: v > v_th; reset: v = v_rst, g = 0; refractory t_rfc
synapse: g += w (after delay t_dly), w = signed contact count × w_syn
All voltages are in millivolts and all times in milliseconds so the descriptor is unit-free at the kernel boundary. Use Discretize(double) to obtain the per-step constants of the exact (matrix-exponential) integrator.
public readonly record struct NeuronModel : IEquatable<NeuronModel>
- Implements
- Inherited Members
Constructors
NeuronModel()
Creates a model with the Shiu et al. 2024 defaults.
public NeuronModel()
Properties
DelayMs
Homogeneous synaptic transmission delay t_dly in ms. Default 1.8.
public double DelayMs { get; init; }
Property Value
MembraneTauMs
Membrane time constant t_mbr in ms. Default 20.
public double MembraneTauMs { get; init; }
Property Value
PoissonWeightMv
Voltage added to v by one Poisson input event, w_syn × f_poi, in mV.
Default 0.275 × 250 = 68.75, i.e. every event fires the neuron at the next threshold check.
public double PoissonWeightMv { get; init; }
Property Value
RefractoryMs
Absolute refractory period t_rfc in ms. Default 2.2.
public double RefractoryMs { get; init; }
Property Value
ResetMv
Reset potential v_rst in mV. Default −52.
public double ResetMv { get; init; }
Property Value
RestMv
Resting potential v_0 in mV. Default −52.
public double RestMv { get; init; }
Property Value
Shiu2024
The Shiu et al. 2024 model with all defaults.
public static NeuronModel Shiu2024 { get; }
Property Value
SynapseWeightMv
Unitary synaptic weight w_syn in mV per contact. Default 0.275.
public double SynapseWeightMv { get; init; }
Property Value
SynapticTauMs
Synaptic time constant tau in ms. Default 5.
public double SynapticTauMs { get; init; }
Property Value
ThresholdMv
Spike threshold v_th in mV; a spike is emitted when v > v_th. Default −45.
public double ThresholdMv { get; init; }
Property Value
Methods
Discretize(double)
Computes the per-step constants of the exact integrator for a given timestep.
public LifStepConstants Discretize(double dtMs)
Parameters
dtMsdoubleIntegration timestep in ms (Brian2 default and all inspected demos: 0.1).
Returns
Exceptions
- ArgumentOutOfRangeException
Timestep is not positive, or the two time constants are equal (the closed form has a removable singularity there that is not implemented).