The Populist Python page

section_py

Below is the Python script which gives identical results to the C++ program for balanced excitatory-inhibitory input

 import Populist
 from Populist import *
 # Set the neuron parameters of the output population
 #
 par=OrnsteinUhlenbeckParameter()
 par._theta      = 20e-3
 par._tau        = 10e-3
 par._V_reversal = 0.0
 par._V_reset    = 0.0
 #
 # Set mu and sigma
 mu    = 17e-3       # (V)
 sigma = 2e-3        # (V)
 #
 # In order to approximate a diffusion process set a small value for input
 # weights (small relative to theta).
 #
 J= 0.01* par._theta
 #
 # Now convert mu and sigma to input rates of an excitatory and inhibitory
 # population.
 #
 nu_e = (J*mu + sigma*sigma)/(2*J*J*par._tau)
 nu_i = (sigma*sigma - J*mu)/(2*J*J*par._tau)
 #
 # some parameters specific to the algorithm
 #
 V_min  = -10e-3
 n_bins = 10000
 n_add  = 1
 f_exp  = 1.1
 rebinner = InterpolationRebinner()
 ratealg  = IntegralRateComputation()
 density = InitialDensityParameter(par._V_reversal,0)
 par_spec = PopulistSpecificParameter(V_min,n_bins,n_add,density,f_exp,rebinner,ratealg,SINGLE_POPULATION_MODE)

 #
 # Now create the network
 #
 net = Pop_Net()
 par_pop = PopulistParameter(par,par_spec)
 alg_pop = PopulationAlgorithm(par_pop)
 id_pop  = net.AddNode(alg_pop,EXCITATORY)
 #
 # Create input populations and add them to the network
 #
 alg_rate_exc=OURateAlgorithm(nu_e)
 id_e = net.AddNode(alg_rate_exc,EXCITATORY)
 con_e = OrnsteinUhlenbeckConnection(1,J)
 alg_rate_inh=OURateAlgorithm(nu_i)
 id_i = net.AddNode(alg_rate_inh,INHIBITORY)
 con_i = OrnsteinUhlenbeckConnection(1,-J)
 
 net.MakeFirstInputOfSecond(id_e,id_pop,con_e)
 net.MakeFirstInputOfSecond(id_i,id_pop,con_i)
 #
 handler=RootReportHandler("data.root",1,1)
 handler.SetFrequencyRange(0,20)
 handler.SetDensityRange(-0.01,10)
 handler.SetTimeRange(0,0.3)
 handler.SetPotentialRange(-0.001,0.020)
 handler.AddNodeToCanvas(id_pop)
 #
 # Configure the simulation
 #
 par_run = SimulationRunParameter(handler,100000,0.,0.3,1e-3,1e-3,1e-3,"simulation.log")

 net.ConfigureSimulation(par_run)
 net.Evolve()

Generated on Fri Jul 17 18:57:36 2009 by  doxygen 1.5.6