temporal_patterns = temporal_patterns_full.copy() for idx in range(run + args.n_cells[4], temporal_patterns.shape[0]): temporal_patterns[idx] = np.array([]) for idx in range(0, run): temporal_patterns[idx] = np.array([]) nw = net_tunedrevexpdrives.TunedNetwork( seed=args.seed + run, n_gcs=args.n_cells[0], n_mcs=args.n_cells[1], n_bcs=args.n_cells[2], n_hcs=args.n_cells[3], W_pp_gc=args.W_pp_gc, W_pp_bc=ff_weight, n_pp_gc=args.n_pp_gc, n_pp_bc=args.n_pp_bc, W_gc_bc=fb_weight, W_gc_hc=fb_weight, W_bc_gc=args.W_bc_gc, W_hc_gc=args.W_hc_gc, ff_t_offset=args.t_pp_to_bc_offset, temporal_patterns=temporal_patterns, rec_cond=bool(args.rec_cond)) # Run the model """Initialization for -2000 to -100""" h.cvode.active(0) dt = 0.1 h.steps_per_ms = 1.0 / dt h.finitialize(-60) h.t = -2000
# Generate the PP -> BC mapping as above innervation_pattern_bc = np.array( [np.random.choice(400, 20, replace=False) for x in range(24)]) innervation_pattern_bc = innervation_pattern_bc.swapaxes(0, 1) PP_to_BCs = [] for x in range(0, 400): PP_to_BCs.append(np.argwhere(innervation_pattern_bc == x)[:, 1]) PP_to_BCs = np.array(PP_to_BCs) all_targets = np.array([y for x in PP_to_GCs for y in x]) # Start the runs of the model for run in runs: nw = net_tunedrevexpdrives.TunedNetwork( 10000, temporal_patterns[0 + run:24 + run], PP_to_GCs[0 + run:24 + run], PP_to_BCs[0 + run:24 + run]) # Attach voltage recordings to all cells nw.populations[0].voltage_recording(range(2000)) nw.populations[1].voltage_recording(range(60)) nw.populations[2].voltage_recording(range(24)) nw.populations[3].voltage_recording(range(24)) # Run the model """Initialization for -2000 to -100""" h.cvode.active(0) dt = 0.1 h.steps_per_ms = 1.0 / dt h.finitialize(-60) h.t = -2000 h.secondorder = 0