def getting_started(): rate_monitor, spike_monitor, trace_monitor, phase_monitor, monitored_spike_idx = simulate_AdEx_network(N_Excit=1000) plot_tools.plot_network_activity(rate_monitor, spike_monitor, trace_monitor, spike_train_idx_list=monitored_spike_idx, t_min=0.*b2.ms) plt.show() plot_adex_state(phase_monitor)
def getting_started(): """ A simple example to get started. Returns: """ stim_start = 150. * b2.ms stim_duration = 350 * b2.ms print("stimulus start: {}, stimulus end: {}".format( stim_start, stim_start + stim_duration)) results = sim_decision_making_network(N_Excit=341, N_Inhib=85, weight_scaling_factor=6.0, t_stimulus_start=stim_start, t_stimulus_duration=stim_duration, coherence_level=+0.90, w_pos=2.0, mu0_mean_stimulus_Hz=500 * b2.Hz, max_sim_time=800. * b2.ms) plot_tools.plot_network_activity(results["rate_monitor_A"], results["spike_monitor_A"], results["voltage_monitor_A"], t_min=0. * b2.ms, avg_window_width=20. * b2.ms, sup_title="Left") plot_tools.plot_network_activity(results["rate_monitor_B"], results["spike_monitor_B"], results["voltage_monitor_B"], t_min=0. * b2.ms, avg_window_width=20. * b2.ms, sup_title="Right") plt.show()
def getting_started(): rate_monitor, spike_monitor, trace_monitor, monitored_spike_idx = simulate_lif_network( N_Excit=2000, external_input=False) plot_tools.plot_network_activity(rate_monitor, spike_monitor, trace_monitor, spike_train_idx_list=monitored_spike_idx, t_min=0. * b2.ms) plt.show()
def getting_started(): """ A simple example to get started """ rate_monitor, spike_monitor, voltage_monitor, monitored_spike_idx = simulate_brunel_network( N_Excit=200, sim_time=400. * b2.ms) plot_tools.plot_network_activity(rate_monitor, spike_monitor, voltage_monitor, spike_train_idx_list=monitored_spike_idx, t_min=0.*b2.ms, N_highlighted_spiketrains=3) plt.show()
def getting_started(): """ A simple example to get started """ rate_monitor, spike_monitor, voltage_monitor, monitored_spike_idx = simulate_brunel_network( N_Excit=2000, sim_time=800. * b2.ms) plot_tools.plot_network_activity(rate_monitor, spike_monitor, voltage_monitor, spike_train_idx_list=monitored_spike_idx, t_min=0.*b2.ms, N_highlighted_spiketrains=3, avg_window_width=1. * b2.ms) plt.show()
def getting_started(): b2.defaultclock.dt = 0.1 * b2.ms rate_monitor_excit, spike_monitor_excit, voltage_monitor_excit, idx_monitored_neurons_excit,\ rate_monitor_inhib, spike_monitor_inhib, voltage_monitor_inhib, idx_monitored_neurons_inhib,\ weight_profile\ = simulate_wm(N_excitatory=256, N_inhibitory=64, weight_scaling_factor=8., sim_time=500. * b2.ms, stimulus_center_deg=120, t_stimulus_start=100 * b2.ms, t_stimulus_duration=200 * b2.ms, stimulus_strength=.07 * b2.namp) plot_tools.plot_network_activity(rate_monitor_excit, spike_monitor_excit, voltage_monitor_excit, t_min=0. * b2.ms) plt.show()
def _some_example_calls_and_tests(): from neurodynex.tools import spike_tools poisson_rate = 35*b2.Hz g = 4 CE = 5000 delta_t = 0.1 * b2.ms delta_f = 5. * b2.Hz T_init = 100 * b2.ms k = 9 f_max = 1./(2. * delta_t) N_samples = 2. * f_max / delta_f T_signal = N_samples * delta_t T_sim = k * T_signal + T_init print("Start simulation. T_sim={}, T_signal={}. N_samples={}".format(T_sim, T_signal, N_samples)) b2.defaultclock.dt = delta_t stime = T_sim + (10 + k) * b2.defaultclock.dt # add a few extra samples (solves rounding issues) rate_monitor, spike_monitor, voltage_monitor, monitored_spike_idx = \ simulate_brunel_network( N_Excit=CE, poisson_input_rate=poisson_rate, g=g, sim_time=stime) plot_tools.plot_network_activity(rate_monitor, spike_monitor, voltage_monitor, spike_train_idx_list=monitored_spike_idx, t_min=0*b2.ms) plot_tools.plot_network_activity(rate_monitor, spike_monitor, voltage_monitor, spike_train_idx_list=monitored_spike_idx, t_min=T_sim - 80*b2.ms) spike_stats = spike_tools.get_spike_train_stats(spike_monitor, window_t_min=150.*b2.ms) plot_tools.plot_ISI_distribution(spike_stats, hist_nr_bins=77, xlim_max_ISI=100*b2.ms) # # Power Spectrum pop_freqs, pop_ps, average_population_rate = \ spike_tools.get_population_activity_power_spectrum( rate_monitor, delta_f, k, T_init, subtract_mean_activity=True) plot_tools.plot_population_activity_power_spectrum(pop_freqs, pop_ps, 1000*b2.Hz, average_population_rate) plt.show() freq, mean_ps, all_ps, mean_firing_rate, all_mean_firing_freqs = \ spike_tools.get_averaged_single_neuron_power_spectrum( spike_monitor, sampling_frequency=1./delta_t, window_t_min=100.*b2.ms, window_t_max=T_sim, subtract_mean=False, nr_neurons_average=200) print("plot_spike_train_power_spectrum") plot_tools.plot_spike_train_power_spectrum(freq, mean_ps, all_ps, 1000 * b2.Hz, mean_firing_freqs_per_neuron=all_mean_firing_freqs, nr_highlighted_neurons=2) plt.show() print("done")
def getting_started(): """ A simple example to get started. Returns: """ stim_start = 150. * b2.ms stim_duration = 350 * b2.ms print("stimulus start: {}, stimulus end: {}".format(stim_start, stim_start+stim_duration)) results = sim_decision_making_network(N_Excit=341, N_Inhib=85, weight_scaling_factor=6.0, t_stimulus_start=stim_start, t_stimulus_duration=stim_duration, coherence_level=+0.90, w_pos=2.0, mu0_mean_stimulus_Hz=500 * b2.Hz, max_sim_time=800. * b2.ms) plot_tools.plot_network_activity(results["rate_monitor_A"], results["spike_monitor_A"], results["voltage_monitor_A"], t_min=0. * b2.ms, avg_window_width=20. * b2.ms, sup_title="Left") plot_tools.plot_network_activity(results["rate_monitor_B"], results["spike_monitor_B"], results["voltage_monitor_B"], t_min=0. * b2.ms, avg_window_width=20. * b2.ms, sup_title="Right") plt.show()
def _demo_emergence_of_oscillation(): poisson_rate = 18 * b2.Hz g = 2.5 rate_monitor, spike_monitor, voltage_monitor, monitored_spike_idx = \ simulate_brunel_network(N_Excit=6000, random_vm_init=True, poisson_input_rate=poisson_rate, g=g, sim_time=300. * b2.ms, monitored_subset_size=50) plot_tools.plot_network_activity(rate_monitor, spike_monitor, voltage_monitor, spike_train_idx_list=monitored_spike_idx, t_min=0*b2.ms) plot_tools.plot_network_activity(rate_monitor, spike_monitor, voltage_monitor, spike_train_idx_list=monitored_spike_idx, t_max=50*b2.ms) plot_tools.plot_network_activity(rate_monitor, spike_monitor, voltage_monitor, spike_train_idx_list=monitored_spike_idx, t_min=250*b2.ms) plt.show()
V_REST = 0. * b2.mV V_RESET = +10. * b2.mV FIRING_THRESHOLD = +20. * b2.mV MEMBRANE_TIME_SCALE = 20. * b2.ms ABSOLUTE_REFRACTORY_PERIOD = 2.0 * b2.ms # Default parameters of the network: SYNAPTIC_WEIGHT_W0 = 0.1 * b2.mV # note: w_ee=w_ie = w0 and = w_ei=w_ii = -g*w0 RELATIVE_INHIBITORY_STRENGTH_G = 4. # balanced CONNECTION_PROBABILITY_EPSILON = 0.1 SYNAPTIC_DELAY = 1.5 * b2.ms POISSON_INPUT_RATE = 12. * b2.Hz N_POISSON_INPUT = 1000 """ denom = LIF_spiking_network.N_POISSON_INPUT * LIF_spiking_network.SYNAPTIC_WEIGHT_W0 * LIF_spiking_network.MEMBRANE_TIME_SCALE ni_thresh = LIF_spiking_network.FIRING_THRESHOLD/(denom) print("La frequenza di soglia della rete poissoniana di input sufficiente a portare i neuroni in uno stato di firing è {} Hz".format(ni_thresh)) T = 500*b2.ms rate_monitor, spike_monitor, voltage_monitor, monitored_spike_idx = LIF_spiking_network.simulate_brunel_network(poisson_input_rate=ni_thresh, sim_time=T) plot_tools.plot_network_activity(rate_monitor, spike_monitor, voltage_monitor, spike_train_idx_list=monitored_spike_idx, t_min=0.*b2.ms) avg_fi_rate_sn = spike_monitor.num_spikes / (T * spike_monitor.source.N) print("Il firing rate per singolo neurone del netowork è {} Hz".format(avg_fi_rate_sn)) plt.show()