allensdk.model.glif.glif_neuron module¶
- exception allensdk.model.glif.glif_neuron.GlifBadResetException(message, dv)[source]¶
Bases:
Exception
Exception raised when voltage is still above threshold after a reset rule is applied.
- class allensdk.model.glif.glif_neuron.GlifNeuron(El, dt, asc_tau_array, R_input, C, asc_amp_array, spike_cut_length, th_inf, th_adapt, coeffs, AScurrent_dynamics_method, voltage_dynamics_method, threshold_dynamics_method, AScurrent_reset_method, voltage_reset_method, threshold_reset_method, init_voltage, init_threshold, init_AScurrents, **kwargs)[source]¶
Bases:
object
Implements the current-based Mihalas Neiber GLIF neuron. Simulations model the voltage, threshold, and afterspike currents of a neuron given an input stimulus. A set of modular dynamics rules are applied until voltage crosses threshold, at which point a set of modular reset rules are applied. See glif_neuron_methods.py for a list of what options there are for voltage, threshold, and afterspike current dynamics and reset rules.
- Parameters:
- Elfloat
resting potential
- dtfloat
duration between time steps
- asc_tau_array: np.ndarray
TODO
- R_inputfloat
input resistance
- Cfloat
capacitance
- asc_amp_arrapnp.ndarray
afterspike current vector. one element per element of asc_tau_array.
- spike_cut_lengthint
how many time steps to replace with NaNs when a spike occurs.
- th_inffloat
instantaneous threshold
- coeffsdict
dictionary coefficients premultiplied to neuron properties during simulation. used for optimization.
- AScurrent_dynamics_methoddict
dictionary containing the ‘name’ of the afterspike current dynamics method to use and a ‘params’ dictionary parameters to pass to that function.
- voltage_dynamics_methoddict
dictionary containing the ‘name’ of the voltage dynamics method to use and a ‘params’ dictionary parameters to pass to that function.
- threshold_dynamics_methoddict
dictionary containing the ‘name’ of the threshold dynamics method to use and a ‘params’ dictionary parameters to pass to that function.
- AScurrent_reset_methoddict
dictionary containing the ‘name’ of the afterspike current dynamics method to use and a ‘params’ dictionary parameters to pass to that function.
- voltage_reset_methoddict
dictionary containing the ‘name’ of the voltage dynamics method to use and a ‘params’ dictionary parameters to pass to that function.
- threshold_reset_methoddict
dictionary containing the ‘name’ of the threshold dynamics method to use and a ‘params’ dictionary parameters to pass to that function.
- init_voltagefloat
initial voltage value
- init_thresholdfloat
initial spike threshold value
- init_AScurrentsnp.ndarray
initial afterspike current vector. one element per element of asc_tau_array.
- TYPE = 'GLIF'¶
- static configure_library_method(method_type, params)[source]¶
Create a GlifNeuronMethod instance out of a library of functions organized by type name. This refers to the METHOD_LIBRARY in glif_neuron_methods.py, which lays out the available functions that can be used for dynamics and reset rules.
- Parameters:
- method_typestring
the name of a function category (e.g. ‘AScurrent_dynamics_method’ for the afterspike current dynamics methods)
- paramsdict
a dictionary with two members. ‘name’: the string name of function you want, and ‘params’: parameters you want to pass to that function
- Returns:
- GlifNeuronMethod
a GlifNeuronMethod instance
- static configure_method(method_name, method, method_params)[source]¶
Create a GlifNeuronMethod instance given a name, a function, and function parameters. This is just a shortcut to the GlifNeuronMethod constructor.
- Parameters:
- method_namestring
name for refering to this method later
- methodfunction
a python function
- method_parametersdict
function arguments whose values should be fixed
- Returns:
- GlifNeuronMethod
a GlifNeuronMethod instance
- dynamics(voltage_t0, threshold_t0, AScurrents_t0, inj, time_step, spike_time_steps)[source]¶
Update the voltage, threshold, and afterspike currents of the neuron for a single time step.
- Parameters:
- voltage_t0float
the current voltage of the neuron
- threshold_t0float
the current spike threshold level of the neuron
- AScurrents_t0np.ndarray
the current state of the afterspike currents in the neuron
- injfloat
the current value of the current injection into the neuron
- time_stepint
the current time step of the neuron simulation
- spike_time_stepslist
a list of all of the time steps of spikes in the neuron
- Returns:
- tuple
voltage_t1 (voltage at next time step), threshold_t1 (threshold at next time step), AScurrents_t1 (afterspike currents at next time step)
- reset(voltage_t0, threshold_t0, AScurrents_t0)[source]¶
Apply reset rules to the neuron’s voltage, threshold, and afterspike currents assuming a spike has occurred (voltage is above threshold).
- Parameters:
- voltage_t0float
the current voltage of the neuron
- threshold_t0float
the current spike threshold level of the neuron
- AScurrents_t0np.ndarray
the current state of the afterspike currents in the neuron
- Returns:
- tuple
voltage_t1 (voltage at next time step), threshold_t1 (threshold at next time step), AScurrents_t1 (afterspike currents at next time step)
- run(stim)[source]¶
Run neuron simulation over a given stimulus. This steps through the stimulus applying dynamics equations. After each step it checks if voltage is above threshold. If so, self.spike_cut_length NaNs are inserted into the output voltages, reset rules are applied to the voltage, threshold, and afterspike currents, and the simulation resumes.
- Parameters:
- stimnp.ndarray
vector of scalar current values
- Returns:
- dict
- a dictionary containing:
‘voltage’: simulated voltage values, ‘threshold’: threshold values during the simulation, ‘AScurrents’: afterspike current values during the simulation, ‘grid_spike_times’: spike times (in uits of self.dt) aligned to simulation time steps, ‘interpolated_spike_times’: spike times (in units of self.dt) linearly interpolated between time steps, ‘spike_time_steps’: the indices of grid spike times, ‘interpolated_spike_voltage’: voltage of the simulation at interpolated spike times, ‘interpolated_spike_threshold’: threshold of the simulation at interpolated spike times
- property tau_m¶
- allensdk.model.glif.glif_neuron.interpolate_spike_time(dt, time_step, threshold_t0, threshold_t1, voltage_t0, voltage_t1)[source]¶
Given two voltage and threshold values, the dt between them and the initial time step, interpolate a spike time within the dt interval by intersecting the two lines.
- allensdk.model.glif.glif_neuron.interpolate_spike_value(dt, interpolated_spike_time_offset, v0, v1)[source]¶
Take a value at two adjacent time steps and linearly interpolate what the value would be at an offset between the two time steps.