def dynamics(task): try: numbers = list(map(lambda x: int(x), task)) fname = "analyzer_settings.txt" neurs = int(fs.load_parameter(fname, "NEURONS", 100)) elects = int(fs.load_parameter(fname, "ELECTRODES", 30)) cons = int(fs.load_parameter(fname, "CONNECTIONS", 2000)) elecons = int(fs.load_parameter(fname, "ELECONS", 150)) noize = int(fs.load_parameter(fname, "NOIZEVAL", 5)) dtesttime = int(fs.load_parameter(fname, "DYNTESTTIME", 2000)) data = [] states = [] for i in range(len(numbers)): states.append([]) class Callback: @staticmethod def draw_info(info): data.append(info) callback = Callback() ntw = Network(callback) ntw.add_neurons(neurs) ntw.add_electrodes(elects) ntw.add_connections(True, cons, 0, neurs - 1, 0, neurs - 1) ntw.add_connections(False, elecons, 0, cons - 1, 0, elects - 1) ntw.setNoize(True, noize) for i in range(dtesttime): ntw.step() state = ntw.get_state() for j in range(len(numbers)): states[j].append(state[3 + numbers[j]]) # processing data value_dynamics = [] for n_states in states: potential = [] strength = [] resource = [] incoming_current = [] for state in n_states: potential.append(state[0]) strength.append(state[1]) resource.append(state[2]) incoming_current.append(state[3]) neuron_data = [potential, strength, resource, incoming_current] value_dynamics.append(neuron_data) fs.save_matrix(data, "output/analyzer/dynamics_activity.txt") for i in range(len(numbers)): fs.save_matrix([value_dynamics[i][0]], "output/analyzer/dynamics_" + str(numbers[i]) + "_potential" + ".txt") fs.save_matrix([value_dynamics[i][1]], "output/analyzer/dynamics_" + str(numbers[i]) + "_strength" + ".txt") fs.save_matrix([value_dynamics[i][2]], "output/analyzer/dynamics_" + str(numbers[i]) + "_resource" + ".txt") fs.save_matrix([value_dynamics[i][3]], "output/analyzer/dynamics_" + str(numbers[i]) + "_current" + ".txt") except Exception as e: print("error: " + str(e), flush=True)
def activity(task): drawall = len(task) == 2 fname = task[0] sfname = "analyzer_settings.txt" wind_size = int(fs.load_parameter(sfname, "WINDOWSIZE", 7)) pstart = int(fs.load_parameter(sfname, "PACKSTART", 79)) pend = int(fs.load_parameter(sfname, "PACKEND", 21)) columns = int(fs.load_parameter(sfname, "HISTCOLUMNS", 7)) params = (wind_size, pstart, pend) alldata = fs.load_matrix(fname) if alldata is not None: packs = [] start_ind = 0 flag = True while flag: pack = find_pack(alldata, start_ind, params) if pack is not None: packs.append(pack) start_ind = pack[1] else: flag = False packs = list(map(lambda x: alldata[x[0]:x[1]], packs)) if drawall: draw_activity(alldata, "all activity") p_act_data = [get_population_activity(alldata)] fs.save_matrix(p_act_data, "output/analyzer/all activity.txt") process_burst(alldata, 0, columns) for i in range(len(packs)): process_burst(packs[i], i+1, columns) draw_activity(packs[i], "pack " + str(i+1) + " activity") else: print("cannot read file '" + fname + "'", flush=True)
def bpks(task): for fname in task: try: fs.save_matrix(fs.load_pks(fname), fname[:-4] + "txt") except Exception: print("error working with file '" + fname + "'", flush=True)