neurodynex.competing_populations package¶
Submodules¶
neurodynex.competing_populations.decision_making module¶
Implementation of a decision making model of [1] Wang, Xiao-Jing. “Probabilistic decision making by slow reverberation in cortical circuits.” Neuron 36.5 (2002): 955-968.
Some parts of this implementation are inspired by material from Stanford University, BIOE 332: Large-Scale Neural Modeling, Kwabena Boahen & Tatiana Engel, 2013, online available.
Note: Most parameters differ from the original publication.
-
neurodynex.competing_populations.decision_making.
getting_started
()[source]¶ A simple example to get started. Returns:
-
neurodynex.competing_populations.decision_making.
run_multiple_simulations
(f_get_decision_time, coherence_levels, nr_repetitions, max_sim_time=1.2 * second, rate_threshold=25. * hertz, avg_window_width=30. * msecond, N_excit=384, N_inhib=96, weight_scaling=5.33, w_pos=1.9, f_Subpop_size=0.25, t_stim_start=100. * msecond, t_stim_duration=99.999 * second, mu0_mean_stim_Hz=160.0, stimulus_StdDev_Hz=20.0, stim_upd_interval=30. * msecond, N_extern=1000, firing_rate_extern=9.8 * hertz)[source]¶ Parameters: - f_get_decision_time (Function) – a function that implements the decision criterion.
- coherence_levels (array) – A list of coherence levels
- nr_repetitions (int) – Number of repetitions (independent simulations).
- max_sim_time (Quantity) – max simulation time.
- rate_threshold (Quantity) – A firing rate threshold passed to f_get_decision_time.
- avg_window_width (Quantity) – window size when smoothing the firing rates. Passed to f_get_decision_time.
- N_excit (int) – total number of neurons in the excitatory population
- N_inhib (int) – nr of neurons in the inhibitory populations
- weight_scaling (float) – When increasing the number of neurons by 2, the weights should be scaled down by 1/2
- w_pos (float) – Scaling (strengthening) of the recurrent weights within the subpopulations “Left” and “Right”
- f_Subpop_size (float) – fraction of the neurons in the subpopulations “Left” and “Right”. #left = #right = int(f_Subpop_size*N_Excit).
- t_stim_start (Quantity) – Start of the stimulation
- t_stim_duration (Quantity) – Duration of the stimulation
- mu0_mean_stim_Hz (float) – maximum mean firing rate of the stimulus if c=+1 or c=-1
- stimulus_StdDev_Hz (float) – std deviation of the stimulating PoissonGroups.
- stim_upd_interval (Quantity) – the mean of the stimulating PoissonGroups is re-sampled at this interval
- N_extern=1000 (int) – Size of the external PoissonGroup (unstructured input)
- firing_rate_extern (Quantity) – Firing frequency of the external PoissonGroup
Returns: Five values are returned. [1] time_to_A: A matrix of size [nr_of_c_levels x nr_of_repetitions], where for each entry the time stamp for decision A is recorded. If decision B was made, the entry is 0ms. [2] time_to_B (array): A matrix of size [nr_of_c_levels x nr_of_repetitions], where for each entry the time stamp for decision B is recorded. If decision A was made, the entry is 0ms. [3] count_A (int): Nr of times decision A is made. [4] count_B (int): Nr of times decision B is made. [5] count_No (int): Nr of times no decision is made within the simulation time.
Return type: results_tuple (array)
-
neurodynex.competing_populations.decision_making.
sim_decision_making_network
(N_Excit=384, N_Inhib=96, weight_scaling_factor=5.33, t_stimulus_start=100. * msecond, t_stimulus_duration=9.999 * second, coherence_level=0.0, stimulus_update_interval=30. * msecond, mu0_mean_stimulus_Hz=160.0, stimulus_std_Hz=20.0, N_extern=1000, firing_rate_extern=9.8 * hertz, w_pos=1.9, f_Subpop_size=0.25, max_sim_time=1. * second, stop_condition_rate=None, monitored_subset_size=512)[source]¶ Parameters: - N_Excit (int) – total number of neurons in the excitatory population
- N_Inhib (int) – nr of neurons in the inhibitory populations
- weight_scaling_factor – When increasing the number of neurons by 2, the weights should be scaled down by 1/2
- t_stimulus_start (Quantity) – time when the stimulation starts
- t_stimulus_duration (Quantity) – duration of the stimulation
- coherence_level (int) – coherence of the stimulus. Difference in mean between the PoissonGroups “left” stimulus and “right” stimulus
- stimulus_update_interval (Quantity) – the mean of the stimulating PoissonGroups is re-sampled at this interval
- mu0_mean_stimulus_Hz (float) – maximum mean firing rate of the stimulus if c=+1 or c=-1. Each neuron in the populations “Left” and “Right” receives an independent poisson input.
- stimulus_std_Hz (float) – std deviation of the stimulating PoissonGroups.
- N_extern (int) – nr of neurons in the stimulus independent poisson background population
- firing_rate_extern (int) – firing rate of the stimulus independent poisson background population
- w_pos (float) – Scaling (strengthening) of the recurrent weights within the subpopulations “Left” and “Right”
- f_Subpop_size (float) – fraction of the neurons in the subpopulations “Left” and “Right”. #left = #right = int(f_Subpop_size*N_Excit).
- max_sim_time (Quantity) – simulated time.
- stop_condition_rate (Quantity) – An optional stopping criteria: If not None, the simulation stops if the firing rate of either subpopulation “Left” or “Right” is above stop_condition_rate.
- monitored_subset_size (int) – max nr of neurons for which a state monitor is registered.
Returns: - “rate_monitor_A”, “spike_monitor_A”, “voltage_monitor_A”, “idx_monitored_neurons_A”, “rate_monitor_B”,
”spike_monitor_B”, “voltage_monitor_B”, “idx_monitored_neurons_B”, “rate_monitor_Z”, “spike_monitor_Z”, “voltage_monitor_Z”, “idx_monitored_neurons_Z”, “rate_monitor_inhib”, “spike_monitor_inhib”, “voltage_monitor_inhib”, “idx_monitored_neurons_inhib”
Return type: A dictionary with the following keys (strings)