def __init__(self, source, target, nsyn, **kwargs): self.source = source self.target = target self.nsyn = nsyn self.weights = kwargs.pop('weights', None) self.probs = kwargs.pop('probs', None) self.delay = float(kwargs.pop('delay', 0)) self.metadata = kwargs if self.weights != None or self.probs != None: assert len(self.weights) == len(self.probs) else: self.weights, self.probs = util.descretize(kwargs.get('distribution', None), kwargs.get('N', None), scale=kwargs.get('scale', None)) assert np.abs(self.probs).sum() == 1 # Defined at runtime: self.delay_queue = None self.delay_ind = None self.simulation = None
def example(show=False, save=False): # Settings: t0 = 0. dt = .0001 dv = .0001 tf = .1 update_method = 'gmres' tol = 1e-14 # Run simulation: mu = .02 sigma = 0.004 b = np.inf a = 0 tau_m_dist = sps.truncnorm(float(a - mu) / sigma, float(b - mu) / sigma, loc=mu, scale=sigma) total = 0 vals, probs = descretize(tau_m_dist, 100) for ii, (val, prob) in enumerate(zip(vals, probs)): print ii network = get_network(dv=dv, update_method=update_method, tol=tol, tau_m=val) network.run(dt=dt, tf=tf, t0=t0) i1 = network.population_list[1] total += i1.firing_rate_record[-1] * prob print total # # Visualize: # i1 = network.population_list[1] # # fig, ax = plt.subplots(figsize=(3,3)) # # i1.plot(ax=ax) # plt.xlim([0,tf]) # plt.ylim(ymin=0) # plt.xlabel('Time (s)') # plt.ylabel('Firing Rate (Hz)') # fig.tight_layout() # if save == True: plt.savefig('./singlepop.png') # # # # if show == True: # pragma: no cover # fig = plt.gcf() # pragma: no cover # window = fig.canvas.manager.window # pragma: no cover # window.raise_() # pragma: no cover # plotting.show() return i1.t_record, i1.firing_rate_record
def example(show=False, save=False): # Settings: t0 = 0.0 dt = 0.0001 dv = 0.0001 tf = 0.1 update_method = "gmres" tol = 1e-14 # Run simulation: mu = 0.02 sigma = 0.004 b = np.inf a = 0 tau_m_dist = sps.truncnorm(float(a - mu) / sigma, float(b - mu) / sigma, loc=mu, scale=sigma) total = 0 vals, probs = descretize(tau_m_dist, 100) for ii, (val, prob) in enumerate(zip(vals, probs)): print ii network = get_network(dv=dv, update_method=update_method, tol=tol, tau_m=val) network.run(dt=dt, tf=tf, t0=t0) i1 = network.population_list[1] total += i1.firing_rate_record[-1] * prob print total # # Visualize: # i1 = network.population_list[1] # # fig, ax = plt.subplots(figsize=(3,3)) # # i1.plot(ax=ax) # plt.xlim([0,tf]) # plt.ylim(ymin=0) # plt.xlabel('Time (s)') # plt.ylabel('Firing Rate (Hz)') # fig.tight_layout() # if save == True: plt.savefig('./singlepop.png') # # # # if show == True: # pragma: no cover # fig = plt.gcf() # pragma: no cover # window = fig.canvas.manager.window # pragma: no cover # window.raise_() # pragma: no cover # plotting.show() return i1.t_record, i1.firing_rate_record
def __init__(self, source, target, nsyn, **kwargs): self.source = source self.target = target self.nsyn = nsyn self.weights = kwargs.pop('weights', None) self.probs = kwargs.pop('probs', None) self.delay = float(kwargs.pop('delay', 0)) self.metadata = kwargs if self.weights != None or self.probs != None: assert len(self.weights) == len(self.probs) else: self.weights, self.probs = util.descretize( kwargs.get('distribution', None), kwargs.get('N', None), scale=kwargs.get('scale', None)) assert np.abs(self.probs).sum() == 1 # Defined at runtime: self.delay_queue = None self.delay_ind = None self.simulation = None