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.print_version()[source]
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)

Module contents