Exemple #1
0
    def CreateColumn(self, numOfCells, localInhibitionRadius=0):

        column = sim.create(numOfCells, NEURON_MODEL, self.column_neuron_params, label="blabla")

        # connect column with inhibitory connections
        inhColumnConnector = sim.FixedProbabilityConnector(0.9, weigths=-10.0)
        for neuron in column:
            sim.projection(neuron, column, syn_spec=self.syn_local_inh)
        return column
    'gbar_Na': 20.0,
    'gbar_K': 6.0,
    'g_leak': 0.1,
    'cm': 0.2,
    'v_offset': ELeak,
    'e_rev_Na': EIs[1],
    'e_rev_K': EIs[2],
    'e_rev_leak': ELeak,
    'e_rev_E': EIs[1],
    'e_rev_I': EIs[2],
    'tau_syn_E': 0.2,
    'tau_syn_I': 2.0,
    'i_offset': 0.0,
}

neuron1 = sim.create(sim.HH_cond_exp(**cellparams))
neuron1.record(["v"])
neuron1.initialize(v=cellparams["e_rev_leak"])

neuron2 = sim.create(sim.HH_cond_exp(**cellparams))
neuron2.record(["v"])
neuron2.initialize(v=cellparams["e_rev_leak"])

spike_times = [2.0]
spike_source = sim.Population(1, sim.SpikeSourceArray(spike_times=spike_times))

sim.Projection(spike_source,
               neuron1,
               sim.OneToOneConnector(),
               sim.StaticSynapse(weight=0.076, delay=0.1),
               receptor_type='excitatory'),
        'g_leak'    : 0.1,
        'cm'        : 0.2,
        'v_offset'  : ELeak,
        'e_rev_Na'  : EIs[1],
        'e_rev_K'   : EIs[2],
        'e_rev_leak': ELeak,
        'e_rev_E'   : EIs[1],
        'e_rev_I'   : EIs[2],
        'tau_syn_E' : 0.2,
        'tau_syn_I' : 2.0,
        'i_offset'  : 0.0,
}

#vs = np.linspace(-75.0, EIs[0] + 5, 3)
vs = [-80.0, -61.0, -60.0]
neurons = [sim.create(sim.HH_cond_exp(**cellparams)) for _ in vs]
for i in xrange(len(vs)):
    neurons[i].record(["v"])
    neurons[i].initialize(v=vs[i])

sim.run(tEnd)

fig = plt.figure(figsize=(cm2inch(12.4), cm2inch(7)))
ax = fig.add_subplot(111)

#cmap = plt.cm.rainbow
#cmap = colors.LinearSegmentedColormap.from_list('blues', ['#729fcf', '#3465a4',
#        '#193a6b'])
lss = ['--', ':', '-']
#colors = iter(cmap(np.linspace(0, 1, len(vs))))
colors = iter(['#204a87'] * 3)
import pyNN.nest as pynn
import numpy as np
import matplotlib.pyplot as plt

pynn.setup(timestep=0.1, min_delay=2.0)
sim_duration = 1000.0

if_cell = pynn.create(pynn.IF_cond_exp, {'i_offset':0.11, 'tau_refrac':3.0, 'v_thresh':-51.0})
source = pynn.create(pynn.SpikeSourcePoisson, {'rate':10})

pynn.connect(source, if_cell, weight=0.006, receptor_type='excitatory', delay=2.0)

if_cell.record('v')
source.record('spikes')

pynn.run(sim_duration)
pynn.end()

if_cell_v = if_cell.get_data('v').segments[0].analogsignals[0]
source_spiketrain = source.get_data('spikes').segments[0].spiketrains[0]

fig,ax = plt.subplots(nrows=1,ncols=1, figsize=(5,4))
ax.plot(if_cell_v.times, if_cell_v, label='IF-cell membrane voltage')
y_lims = ax.get_ylim()
ax.vlines(source_spiketrain.times, ymin=y_lims[0], ymax=y_lims[1], color='black', alpha=0.3, label='Pre-synaptic spike', linestyle='--')
ax.set_ylim(y_lims)
ax.set_xlim(0,sim_duration)
ax.set_xlabel('Time (ms)', fontsize='x-large')
ax.set_ylabel('Membrane Voltage (mV)', fontsize='x-large')
ax.tick_params(axis='both', labelsize='large')
[ax.spines[l].set_visible(False) for l in ['top','right']]
Exemple #5
0
    'g_leak': 0.1,
    'cm': 0.2,
    'v_offset': ELeak,
    'e_rev_Na': EIs[1],
    'e_rev_K': EIs[2],
    'e_rev_leak': ELeak,
    'e_rev_E': EIs[1],
    'e_rev_I': EIs[2],
    'tau_syn_E': 0.2,
    'tau_syn_I': 2.0,
    'i_offset': 0.0,
}

#vs = np.linspace(-75.0, EIs[0] + 5, 3)
vs = [-80.0, -61.0, -60.0]
neurons = [sim.create(sim.HH_cond_exp(**cellparams)) for _ in vs]
for i in xrange(len(vs)):
    neurons[i].record(["v"])
    neurons[i].initialize(v=vs[i])

sim.run(tEnd)

fig = plt.figure(figsize=(cm2inch(12.4), cm2inch(7)))
ax = fig.add_subplot(111)

#cmap = plt.cm.rainbow
#cmap = colors.LinearSegmentedColormap.from_list('blues', ['#729fcf', '#3465a4',
#        '#193a6b'])
lss = ['--', ':', '-']
#colors = iter(cmap(np.linspace(0, 1, len(vs))))
colors = iter(['#204a87'] * 3)
Exemple #6
0
parser.add_argument('-i', '--num_inhib', help='number of inhibitory cells.', default=1, type=int)
parser.add_argument('-r', '--inhib_rates_lower', help='lower boundary of inhibitory rates (Hz).', default=8.0, type=float)
parser.add_argument('-e', '--num_excit', help='number of excitatory cells.', default=1, type=int)
parser.add_argument('-p', '--excit_rates_lower', help='lower boundary of inhibitory rates (Hz).', default=5.0, type=float)
parser.add_argument('-t', '--duration', help='duration of simulation.', default=500.0, type=float)
parser.add_argument('-s', '--stdp', help='use STDP', default=False, action='store_true')
parser.add_argument('-a', '--record_target_spikes', help='Record the target spikes.', default=False, action='store_true')
parser.add_argument('-m', '--make_plots', help='make the plots, or not.', default=False, action='store_true')
parser.add_argument('-d', '--debug', help='enter debug mode', default=False, action='store_true')
args = parser.parse_args()

pynn.setup(timestep=0.1, min_delay=2.0)

if not args.debug:
    # define target cell
    target_cell = pynn.create(pynn.IF_cond_exp, {'i_offset':0.11, 'tau_refrac':3.0, 'v_thresh':-51.0})

    # define inhibitory and excitatory populations
    inhib_rates, excit_rates = getRatesForInhibExcit(args.inhib_rates_lower, args.excit_rates_lower, args.num_inhib, args.num_excit)
    inhib_source = pynn.Population(args.num_inhib, pynn.SpikeSourcePoisson(rate=inhib_rates), label="inhib_input")
    excit_source = pynn.Population(args.num_excit, pynn.SpikeSourcePoisson(rate=excit_rates), label="excit_input")

    # define stdp rules, parameters could be messed around with here.
    stdp = pynn.STDPMechanism(weight=0.02, # this is the initial value of the weight
            timing_dependence=pynn.SpikePairRule(tau_plus=20.0, tau_minus=20.0, A_plus=0.01, A_minus=0.012),
            weight_dependence=pynn.AdditiveWeightDependence(w_min=0, w_max=0.04))
    synapse_to_use = stdp if args.stdp else pynn.StaticSynapse(weight=0.02)

    # connect inhibitory and excitatory sources to target. Could connect inhib to excit?
    inhib_conn = pynn.Projection(inhib_source, target_cell, connector=pynn.AllToAllConnector(), synapse_type=synapse_to_use, receptor_type='inhibitory')
    excit_conn = pynn.Projection(excit_source, target_cell, connector=pynn.AllToAllConnector(), synapse_type=synapse_to_use, receptor_type='excitatory')
        'gbar_Na'   : 20.0,
        'gbar_K'    : 6.0,
        'g_leak'    : 0.1,
        'cm'        : 0.2,
        'v_offset'  : ELeak,
        'e_rev_Na'  : EIs[1],
        'e_rev_K'   : EIs[2],
        'e_rev_leak': ELeak,
        'e_rev_E'   : EIs[1],
        'e_rev_I'   : EIs[2],
        'tau_syn_E' : 0.2,
        'tau_syn_I' : 2.0,
        'i_offset'  : 0.0,
}

neuron1 = sim.create(sim.HH_cond_exp(**cellparams))
neuron1.record(["v"])
neuron1.initialize(v=cellparams["e_rev_leak"])

neuron2 = sim.create(sim.HH_cond_exp(**cellparams))
neuron2.record(["v"])
neuron2.initialize(v=cellparams["e_rev_leak"])


spike_times = [2.0]
spike_source = sim.Population(1, sim.SpikeSourceArray(spike_times=spike_times))

sim.Projection(spike_source, neuron1, sim.OneToOneConnector(),
                            sim.StaticSynapse(weight=0.076, delay=0.1),
                            receptor_type='excitatory'),
sim.Projection(spike_source, neuron2, sim.OneToOneConnector(),
Exemple #8
0
taumcond = 9.9  # ms
tausyne = 2.9  # ms
tausyni = 5.2  # ms

tsim = 500.
dt = .1

sim.setup(timestep=dt, min_delay=dt, max_delay=dt)

ifcellscond = [
    sim.create(
        sim.IF_cond_exp, {
            'cm': cm,
            'tau_m': taumcond,
            'tau_syn_E': tausyne,
            'tau_syn_I': tausyni,
            'e_rev_E': ereve,
            'e_rev_I': erevi,
            'v_rest': vrest,
            'v_thresh': 0,
            'tau_refrac': 2.0
        }) for i in range(1)
]

for ifcell in ifcellscond:
    ifcell.initialize(v=vrest)

####### simulate #######

spkte = array(
    [50., 100., 103., 106., 109., 112., 115., 118., 121., 124., 127.]) + 150.
spkti = spkte + 150.