def create_C2_populations(spiketrains):
    C2_populations = [sim.Population(1,
                            sim.SpikeSourceArray(spike_times=[spiketrains[prot]]),
                            label=str(prot))\
                        for prot in range(len(spiketrains))]
    compound_C2_population = C2_populations[0]
    for pop in C2_populations[1:]:
        compound_C2_population += pop
    return (C2_populations, compound_C2_population)
Ejemplo n.º 2
0
        weights[i][j] = round(weight_to_spike * \
                    (1 / (sig * np.sqrt(2 * np.pi)) * \
                    (np.exp(-np.power(dist[i][j] - mu, 2.) \
                    / (2 * np.power(sig, 2.))))), 2)
        cann_connector.append((i, j, weights[i][j]))#, delay_cann2cann))
print("Weight matrix:\n", weights)                    

spike_times = [1000., 2000.]

cann_pop = sim.Population(n, sim.IF_cond_alpha(**cell_params),
                         label = "cann_pop")

inhib_pop = sim.Population(1, sim.IF_cond_alpha(**cell_params),
                         label = "inhib_pop")

spike_source = sim.Population(1, sim.SpikeSourceArray(
    spike_times = spike_times))

spike_2_conn = sim.Projection(spike_source, cann_pop[spiky:spiky+1], sim.AllToAllConnector(),
                      sim.StaticSynapse(weight = 0.002, delay = 0.1))

cann_2_cann = sim.Projection(cann_pop, cann_pop, sim.FromListConnector(cann_connector, column_names=["weight"]),
                          sim.StaticSynapse(weight = 0.0001, delay = 75))

cann_2_inh = sim.Projection(cann_pop, inhib_pop, sim.AllToAllConnector(),
                            sim.StaticSynapse(weight = 0.02, delay = 0.1),
                            receptor_type = "excitatory")

inh_2_cann = sim.Projection(inhib_pop, cann_pop, sim.AllToAllConnector(),
                            sim.StaticSynapse(weight = 0.2, delay = 0.1),
                            receptor_type = "inhibitory")
Ejemplo n.º 3
0
    'v_thresh': v_th,
    'v_reset': 0.0,
    'v_rest': 0.0,
    'e_rev_E': 10.0,
    'e_rev_I': -10.0,
    'i_offset': 0.0,
    'cm': 0.1,
    'tau_m': 0.8325,
    'tau_syn_E': tau_syn,
    'tau_syn_I': tau_syn,
    'tau_refrac': 0.0
}

cellvalues = {'gsyn_exc': 0.0, 'v': 0.0, 'gsyn_inh': 0.0}

input_celltype = sim.SpikeSourceArray(spike_times=spike_times)
fc_celltype = sim.IF_cond_exp(**cellparams)
input_pop = sim.Population(34 * 34 * 2, input_celltype)

fc0 = sim.Population(w1.shape[0], fc_celltype)
fc0.initialize(**cellvalues)
fc0.set(v_thresh=vth0)

fc1 = sim.Population(w1.shape[0], fc_celltype)
fc1.initialize(**cellvalues)
fc1.set(v_thresh=vth1)
#fc1.set(i_offset=b1)

fc2 = sim.Population(10, fc_celltype)
fc2.initialize(**cellvalues)
fc2.set(v_thresh=vth2)
Ejemplo n.º 4
0
# variables names and values
n_neurons = 10
sim_time = 6000.0

# Build the network
sim.setup()

# spike source
#generate_spike_times = [[0], [500], [1000], [1500], [2000], [2500], [3000],
#                       [3500], [4000], [4500]] #, [5000]]
#spike_source = sim.Population(n_neurons,
#                              sim.SpikeSourceArray(
#                                  spike_times = generate_spike_times))

spike_source = sim.Population(
    n_neurons, sim.SpikeSourceArray(spike_times=[0, 1000, 3000]))

# populations and projections
layer_1 = sim.Population(n_neurons, sim.IF_curr_alpha(), label="layer_1")
'''
layer_2 = sim.Population(n_neurons, sim.IF_curr_alpha(),
                         label = "layer_2")
'''
proj_src_2_l1 = sim.Projection(spike_source, layer_1, sim.OneToOneConnector())
'''
proj_l1_2_l2 = sim.Projection(layer_1, layer_2, 
                              sim.OneToOneConnector())
'''
sim.run(sim_time)

layer_1.record(('spikes', 'v'))
                                         args.s2_prototype_cells)

print('Create C1 layers')
t1 = time.clock()
dumpfile = open(args.c1_dumpfile, 'rb')
ddict = pickle.load(dumpfile)
layer_collection['C1'] = {}
for size, layers_as_dicts in ddict.items():
    layer_list = []
    for layer_as_dict in layers_as_dicts:
        n, m = layer_as_dict['shape']
        spiketrains = layer_as_dict['segment'].spiketrains
        dimensionless_sts = [[s for s in st] for st in spiketrains]
        new_layer = nw.Layer(
            sim.Population(n * m,
                           sim.SpikeSourceArray(spike_times=dimensionless_sts),
                           label=layer_as_dict['label']), (n, m))
        layer_list.append(new_layer)
    layer_collection['C1'][size] = layer_list
print('C1 creation took {} s'.format(time.clock() - t1))

print('Creating S2 layers')
t1 = time.clock()
layer_collection['S2'] = nw.create_S2_layers(layer_collection['C1'],
                                             args.feature_size,
                                             args.s2_prototype_cells,
                                             refrac_s2=6)
print('S2 creation took {} s'.format(time.clock() - t1))

#for layers in layer_collection['C1'].values():
#    for layer in layers:
#occurrence = re.search('\d+\.\d+blank', validation_dumpfile_name)
if occurrence is not None:
    blanktime = float(occurrence.group()[:-5])

print('Create C1 layers')
t1 = time.clock()
training_ddict = pickle.load(open(args.training_c1_dumpfile, 'rb'))
validation_ddict = pickle.load(open(args.validation_c1_dumpfile, 'rb'))
layer_collection['C1'] = {}
for size, layers_as_dicts in training_ddict.items():
    layer_list = []
    for layer_as_dict in layers_as_dicts:
        n, m = layer_as_dict['shape']
        new_layer = nw.Layer(
            sim.Population(n * m,
                           sim.SpikeSourceArray(),
                           label=layer_as_dict['label']), (n, m))
        layer_list.append(new_layer)
    layer_collection['C1'][size] = layer_list
print('C1 creation took {} s'.format(time.clock() - t1))
t1 = time.clock()
print('Creating S2 layers and reading the epoch weights')
epoch_weights_list = pickle.load(open(args.weights_from, 'rb'))
epoch = epoch_weights_list[-1][0]
weights_dict_list = epoch_weights_list[-1][1]
f_s = int(np.sqrt(list(weights_dict_list[0].values())[0].shape[0]))
s2_prototype_cells = len(weights_dict_list)
layer_collection['S2'] = nw.create_S2_layers(layer_collection['C1'],
                                             f_s,
                                             s2_prototype_cells,
                                             refrac_s2=.1,
Ejemplo n.º 7
0
    'v_reset': 0.0,
    'v_rest': 0.0,
    'e_rev_E': 10.0,
    'e_rev_I': -10.0,
    'i_offset': 0.0,
    'cm': 0.001,
    'tau_m': 0.8325,
    'tau_syn_E': 0.01,
    'tau_syn_I': 0.01,
    'tau_refrac': 0.0
}

cellvalues = {'v': 0.0}

fc_celltype = sim.IF_cond_exp(**cellparams)
input_celltype = sim.SpikeSourceArray()
input_pop = sim.Population(34 * 34 * 2, input_celltype)

pops = [input_pop]

for layer in range(len(weights)):
    inh_synapses = []
    exc_synapses = []
    for i in range(weights[layer].shape[1]):
        for j in range(weights[layer].shape[0]):
            if float(weights[layer][j, i]) < 0.0:
                inh_synapses.append([i, j, -1.0 * weights[layer][j, i], delay])
            else:
                exc_synapses.append([i, j, weights[layer][j, i], delay])

    pops.append(sim.Population(weights[layer].shape[0], fc_celltype))
Ejemplo n.º 8
0
hd_cann_pop = sim.Population(n, sim.IF_cond_alpha(**cell_params),
                         label = "hd_cann_pop")

inhib_pop = sim.Population(1, sim.IF_cond_alpha(**cell_params),
                         label = "inhib_pop")

#pos_rot_conj = sim.Population(n, sim.IF_cond_alpha(**cell_params),
pos_rot_conj = sim.Population(n, sim.IF_cond_alpha(),
                          label = "pos_rot_conj")

#neg_rot_conj = sim.Population(n, sim.IF_cond_alpha(**cell_params),
neg_rot_conj = sim.Population(n, sim.IF_cond_alpha(),
                          label = "neg_rot_conj")

hd_spike_src = sim.Population(1, sim.SpikeSourceArray(
    spike_times = spike_times))
#spike_source_2 = sim.Population(1, sim.SpikeSourceArray(
#    spike_times = spike_time_for_id_2))
#spike_source_3 = sim.Population(1, sim.SpikeSourceArray(
#    spike_times = spike_time_for_id_3))
#spike_source_4 = sim.Population(1, sim.SpikeSourceArray(
#    spike_times = spike_time_for_id_4))
#spike_source_9 = sim.Population(1, sim.SpikeSourceArray(
#    spike_times = spike_time_for_id_9))

pos_spike_src = sim.Population(1, sim.SpikeSourceArray(
    #spike_times = pos_spike_times))
    spike_times = spike_input))
neg_spike_src = sim.Population(1, sim.SpikeSourceArray(
    spike_times = neg_spike_times))
Ejemplo n.º 9
0
spikes_i = make_spikes(70,72,3)

# %%COBA
ge_vec, gi_vec, u_vec, s_vec = LIF_COBA(spikes_e=spikes_e, w=0.016)

# %%CUBA
I_vec, u_vec, s_vec  = LIF_CUBA(spikes=spikes_e)

# %% PyNN CUBA
# Setup
sim.setup(timestep=0.1, min_delay=0.1, max_delay=10.0)
IF_sim = sim.Population(1, sim.IF_curr_exp(), label="IF_curr_exp")
IF_sim.record('v')

spike_times = np.arange(50,100,10)
spike_input = sim.Population(1,sim.SpikeSourceArray(spike_times=spike_times),label="Input spikes")

# Connections
w = 1
connections = sim.Projection(spike_input, IF_sim,
                            connector=sim.AllToAllConnector(),
                            synapse_type=sim.StaticSynapse(weight=w,delay=0.1),
                            receptor_type="excitatory")

# Running simulation in MS
IF_sim.record('v')
sim.run(100.0)

# Data 
v_data = IF_sim.get_data()   
data = IF_sim.get_data().segments[0]
Ejemplo n.º 10
0
    'v_reset': -70.0,  # (mV) 
    'v_thresh': -60.0,  # (mV)
    'cm': 0.5
}
sim.setup()

neuron1 = sim.Population(n, sim.IF_cond_alpha(**cell_params), label="neuron1")

neuron2 = sim.Population(n, sim.IF_cond_alpha(**cell_params), label="neuron2")

generate_spike_times = [
    0., 1020., 1040., 1060., 1080., 1100., 1120., 1140., 1160., 2000.
]

spike_source = sim.Population(
    n, sim.SpikeSourceArray(spike_times=generate_spike_times))

conn = sim.Projection(spike_source, neuron1, sim.AllToAllConnector(),
                      sim.StaticSynapse(weight=0.002, delay=1.))

n2n_conn = sim.Projection(neuron1, neuron2, sim.OneToOneConnector(),
                          sim.StaticSynapse(weight=0.002, delay=1.))

spike_source.record('spikes')
neuron1.record(('v', 'spikes'))
neuron2.record(('v', 'spikes'))

sim.run(5000.0)

#print neuron1.get_spike_counts()
from pyNN.utility.plotting import Figure, Panel
Ejemplo n.º 11
0
hd_cann_pop = sim.Population(n,
                             sim.IF_cond_alpha(**cell_params),
                             label="hd_cann_pop")

inhib_pop = sim.Population(1,
                           sim.IF_cond_alpha(**cell_params),
                           label="inhib_pop")

#pos_rot_conj = sim.Population(n, sim.IF_cond_alpha(**cell_params),
pos_rot_conj = sim.Population(n, sim.IF_cond_alpha(), label="pos_rot_conj")

#neg_rot_conj = sim.Population(n, sim.IF_cond_alpha(**cell_params),
neg_rot_conj = sim.Population(n, sim.IF_cond_alpha(), label="neg_rot_conj")

spike_source_1 = sim.Population(
    1, sim.SpikeSourceArray(spike_times=spike_time_for_id_1))
spike_source_2 = sim.Population(
    1, sim.SpikeSourceArray(spike_times=spike_time_for_id_2))
spike_source_3 = sim.Population(
    1, sim.SpikeSourceArray(spike_times=spike_time_for_id_3))
spike_source_4 = sim.Population(
    1, sim.SpikeSourceArray(spike_times=spike_time_for_id_4))
spike_source_9 = sim.Population(
    1, sim.SpikeSourceArray(spike_times=spike_time_for_id_9))

pos_spike_src = sim.Population(
    1,
    sim.SpikeSourceArray(
        #spike_times = pos_spike_times))
        spike_times=spikes_50))
neg_spike_src = sim.Population(
Ejemplo n.º 12
0
x1, dummy = positions_off[Ncells_lgn]
dummy, y1 = positions_off[1]
dx = x1 - x0
dy = y1 - y0
lx = x_end - x0
ly = y_end - y0

lgn_structure_off = space.Grid2D(aspect_ratio=1,
                                 x0=x0,
                                 y0=y0,
                                 dx=dx,
                                 dy=dy,
                                 z=0)

# Spikes for LGN populations
lgn_spikes_on_model_0 = simulator.SpikeSourceArray(
    spike_times=spike_times_on_0)
lgn_spikes_off_model_0 = simulator.SpikeSourceArray(
    spike_times=spike_times_off_0)

lgn_spikes_on_model_1 = simulator.SpikeSourceArray(
    spike_times=spike_times_on_1)
lgn_spikes_off_model_1 = simulator.SpikeSourceArray(
    spike_times=spike_times_off_1)

lgn_spikes_on_model_2 = simulator.SpikeSourceArray(
    spike_times=spike_times_on_2)
lgn_spikes_off_model_2 = simulator.SpikeSourceArray(
    spike_times=spike_times_off_2)

lgn_spikes_on_model_3 = simulator.SpikeSourceArray(
    spike_times=spike_times_on_3)
Ejemplo n.º 13
0
                             label="hd_cann_pop")

inhib_pop = sim.Population(n,
                           sim.IF_cond_alpha(**cell_params),
                           label="inhib_pop")

#pos_rot_conj = sim.Population(n, sim.IF_cond_alpha(**cell_params),
pos_rot_conj = sim.Population(n, sim.IF_cond_alpha(), label="pos_rot_conj")

#neg_rot_conj = sim.Population(n, sim.IF_cond_alpha(**cell_params),
neg_rot_conj = sim.Population(n, sim.IF_cond_alpha(), label="neg_rot_conj")

# Spike Sources

hd_spike_src = sim.Population(1,
                              sim.SpikeSourceArray(spike_times=hd_spike_times))

pos_spike_src = sim.Population(
    1, sim.SpikeSourceArray(spike_times=pos_spike_times))

neg_spike_src = sim.Population(
    1, sim.SpikeSourceArray(spike_times=neg_spike_times))

# Connections between spike sources and ppopulation

spike_2_hd = sim.Projection(hd_spike_src, hd_cann_pop[3:4],
                            sim.OneToOneConnector(),
                            sim.StaticSynapse(weight=0.002, delay=0.1))

pos_spikes = sim.Projection(pos_spike_src, pos_rot_conj,
                            sim.AllToAllConnector(),
Ejemplo n.º 14
0
        cann_connector.append((i, j, weights[i][j]))  #, delay_cann2cann))
print("Weight matrix:\n", weights)

spike_time_for_id_3 = [1000.]
spike_time_for_id_6 = [3000., 3010., 3020.]

cann_pop = sim.Population(n,
                          sim.IF_cond_alpha(**cell_params),
                          label="cann_pop")

inhib_pop = sim.Population(1,
                           sim.IF_cond_alpha(**cell_params),
                           label="inhib_pop")

spike_source_3 = sim.Population(
    1, sim.SpikeSourceArray(spike_times=spike_time_for_id_3))
spike_source_6 = sim.Population(
    1, sim.SpikeSourceArray(spike_times=spike_time_for_id_6))

spike_2_conn_for_3 = sim.Projection(spike_source_3, cann_pop[3:4],
                                    sim.OneToOneConnector(),
                                    sim.StaticSynapse(weight=0.002, delay=0.1))

spike_2_conn_for_6 = sim.Projection(spike_source_6, cann_pop[6:7],
                                    sim.OneToOneConnector(),
                                    sim.StaticSynapse(weight=0.002, delay=0.1))

cann_2_cann = sim.Projection(
    cann_pop, cann_pop,
    sim.FromListConnector(cann_connector, column_names=["weight"]),
    sim.StaticSynapse(weight=0.0001, delay=75))
Ejemplo n.º 15
0
spike_time_for_id_2 = [500., 505., 510., 515.]
spike_time_for_id_3 = [1200., 1205., 1210., 1215.]
spike_time_for_id_4 = [2000., 2005., 2010., 2015.]
spike_time_for_id_9 = [3000., 3005., 3010., 3015.]
#[3000., 3003., 3005., 3008., 3010., 3013., 3015., 3017., 3020.]

cann_pop = sim.Population(n,
                          sim.IF_cond_alpha(**cell_params),
                          label="cann_pop")

inhib_pop = sim.Population(1,
                           sim.IF_cond_alpha(**cell_params),
                           label="inhib_pop")

spike_source_1 = sim.Population(
    1, sim.SpikeSourceArray(spike_times=spike_time_for_id_1))
spike_source_2 = sim.Population(
    1, sim.SpikeSourceArray(spike_times=spike_time_for_id_2))
spike_source_3 = sim.Population(
    1, sim.SpikeSourceArray(spike_times=spike_time_for_id_3))
spike_source_4 = sim.Population(
    1, sim.SpikeSourceArray(spike_times=spike_time_for_id_4))
spike_source_9 = sim.Population(
    1, sim.SpikeSourceArray(spike_times=spike_time_for_id_9))

spike_2_conn_for_1 = sim.Projection(spike_source_1, cann_pop[1:2],
                                    sim.OneToOneConnector(),
                                    sim.StaticSynapse(weight=0.002, delay=0.1))
spike_2_conn_for_2 = sim.Projection(spike_source_2, cann_pop[2:3],
                                    sim.OneToOneConnector(),
                                    sim.StaticSynapse(weight=0.002, delay=0.1))
Ejemplo n.º 16
0
    spikes_off.append(cPickle.load(f2))
    f2.close()

# Now we construct the functions that will pass the spikes to the cell model


def spike_times(simulator, layer, spikes_file):
    return [simulator.Sequence(x) for x in spikes_file[layer]]


# Cells models for the LGN spikes (SpikeSourceArray)
lgn_spikes_on_models = []
lgn_spikes_off_models = []

for layer in xrange(N_lgn_layers):
    model = simulator.SpikeSourceArray(
        spike_times=spike_times(simulator, layer, spikes_on))
    lgn_spikes_on_models.append(model)
    model = simulator.SpikeSourceArray(
        spike_times=spike_times(simulator, layer, spikes_off))
    lgn_spikes_off_models.append(model)

# LGN Popluations

lgn_on_populations = []
lgn_off_populations = []

for layer in xrange(N_lgn_layers):
    population = simulator.Population(Ncell_lgn,
                                      lgn_spikes_on_models[layer],
                                      label='LGN_on_layer_' + str(layer))
    lgn_on_populations.append(population)
Ejemplo n.º 17
0
hd_cann_pop = sim.Population(n,
                             sim.IF_cond_alpha(**cell_params),
                             label="hd_cann_pop")

inhib_pop = sim.Population(1,
                           sim.IF_cond_alpha(**cell_params),
                           label="inhib_pop")

#pos_rot_conj = sim.Population(n, sim.IF_cond_alpha(**cell_params),
pos_rot_conj = sim.Population(n, sim.IF_cond_alpha(), label="pos_rot_conj")

#neg_rot_conj = sim.Population(n, sim.IF_cond_alpha(**cell_params),
neg_rot_conj = sim.Population(n, sim.IF_cond_alpha(), label="neg_rot_conj")

spike_source_1 = sim.Population(
    1, sim.SpikeSourceArray(spike_times=spike_time_for_id_1))
spike_source_2 = sim.Population(
    1, sim.SpikeSourceArray(spike_times=spike_time_for_id_2))
spike_source_3 = sim.Population(
    1, sim.SpikeSourceArray(spike_times=spike_time_for_id_3))
spike_source_4 = sim.Population(
    1, sim.SpikeSourceArray(spike_times=spike_time_for_id_4))
spike_source_9 = sim.Population(
    1, sim.SpikeSourceArray(spike_times=spike_time_for_id_9))

pos_spike_src = sim.Population(
    1, sim.SpikeSourceArray(spike_times=pos_spike_times))
neg_spike_src = sim.Population(1, sim.SpikeSourceArray(spike_times=spikes_50))

#spike_2_conn_for_1 = sim.Projection(spike_source_1, hd_cann_pop[1:2], sim.OneToOneConnector(),
#                      sim.StaticSynapse(weight = 0.002, delay = 0.1))