コード例 #1
0
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)
コード例 #2
0
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)
コード例 #3
0
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)