コード例 #1
0
def _add_projection(pop_pre, pop_post, syn, delay, weight, probability, net):

    pre = pop_pre.id.split('_')[1]
    post = pop_post.id.split('_')[1]
    w = 'weight_%s_%s' % (pre, post)
    net.parameters[w] = weight

    syn_present = False

    for syn_nml in net.synapses:
        if syn_nml.id == syn:
            syn_present = True
    if not syn_present:
        net.synapses.append(
            Synapse(id=syn, neuroml2_source_file='../HNN_Synapses.nml'))

    net.projections.append(
        Projection(
            id='proj_%s_%s_%s' % (pre, post, syn),
            presynaptic=pop_pre.id,
            postsynaptic=pop_post.id,
            synapse=syn,
            delay=delay,
            weight=w,
            random_connectivity=RandomConnectivity(probability=probability)))
コード例 #2
0
def standard_projection(pre, post, syn, weight):

    net.projections.append(
        Projection(id='proj_%s_%s' % (pre.id, post.id),
                   presynaptic=pre.id,
                   postsynaptic=post.id,
                   synapse=syn,
                   type='continuousProjection',
                   delay=0,
                   weight=weight,
                   random_connectivity=RandomConnectivity(probability=1)))
コード例 #3
0
def internal_connections(pops):
    for pre in pops:
        for post in pops:

            weight = W[pops.index(post)][pops.index(pre)]
            print('Connection %s -> %s weight: %s' % (pre.id, post.id, weight))
            if weight != 0:

                net.projections.append(
                    Projection(
                        id='proj_%s_%s' % (pre.id, post.id),
                        presynaptic=pre.id,
                        postsynaptic=post.id,
                        synapse=syns[pre.id],
                        type='continuousProjection',
                        delay=0,
                        weight=weight,
                        random_connectivity=RandomConnectivity(probability=1)))
コード例 #4
0
def generate():
    ################################################################################
    ###   Build new network

    net = Network(id='Example7_Brunel2000')
    net.notes = 'Example 7: based on network of Brunel 2000'

    net.parameters = {
        'g': 4,
        'eta': 1,
        'order': 5,
        'epsilon': 0.1,
        'J': 0.1,
        'delay': 1.5,
        'tauMem': 20.0,
        'tauSyn': 0.1,
        'tauRef': 2.0,
        'U0': 0.0,
        'theta': 20.0
    }

    cell = Cell(id='ifcell', pynn_cell='IF_curr_alpha')

    cell.parameters = {
        'tau_m': 'tauMem',
        'tau_refrac': 'tauRef',
        'v_rest': 'U0',
        'v_reset': 'U0',
        'v_thresh': 'theta',
        'cm': 0.001,
        "i_offset": 0
    }

    #cell = Cell(id='hhcell', neuroml2_source_file='test_files/hhcell.cell.nml')
    net.cells.append(cell)

    expoisson = Cell(id='expoisson', pynn_cell='SpikeSourcePoisson')
    expoisson.parameters = {
        'rate':
        '1000 * (eta*theta/(J*4*order*epsilon*tauMem)) * (4*order*epsilon)',
        'start': 0,
        'duration': 1e9
    }
    net.cells.append(expoisson)
    '''
    input_source = InputSource(id='iclamp0', 
                               pynn_input='DCSource', 
                               parameters={'amplitude':0.002, 'start':100., 'stop':900.})

    input_source = InputSource(id='poissonFiringSyn', 
                               neuroml2_input='poissonFiringSynapse',
                               parameters={'average_rate':"eta", 'synapse':"ampa", 'spike_target':"./ampa"})



    net.input_sources.append(input_source)'''

    pE = Population(id='Epop',
                    size='4*order',
                    component=cell.id,
                    properties={'color': '1 0 0'})
    pEpoisson = Population(id='Einput',
                           size='4*order',
                           component=expoisson.id,
                           properties={'color': '.5 0 0'})
    pI = Population(id='Ipop',
                    size='1*order',
                    component=cell.id,
                    properties={'color': '0 0 1'})

    net.populations.append(pE)
    net.populations.append(pEpoisson)
    net.populations.append(pI)

    net.synapses.append(
        Synapse(id='ampa',
                pynn_receptor_type='excitatory',
                pynn_synapse_type='curr_alpha',
                parameters={'tau_syn': 0.1}))
    net.synapses.append(
        Synapse(id='gaba',
                pynn_receptor_type='inhibitory',
                pynn_synapse_type='curr_alpha',
                parameters={'tau_syn': 0.1}))

    net.projections.append(
        Projection(id='projEinput',
                   presynaptic=pEpoisson.id,
                   postsynaptic=pE.id,
                   synapse='ampa',
                   delay=2,
                   weight=0.02,
                   one_to_one_connector=OneToOneConnector()))
    '''           
    net.projections.append(Projection(id='projEE',
                                      presynaptic=pE.id, 
                                      postsynaptic=pE.id,
                                      synapse='ampa',
                                      delay=2,
                                      weight=0.002,
                                      random_connectivity=RandomConnectivity(probability=.5)))'''

    net.projections.append(
        Projection(id='projEI',
                   presynaptic=pE.id,
                   postsynaptic=pI.id,
                   synapse='ampa',
                   delay=2,
                   weight=0.02,
                   random_connectivity=RandomConnectivity(probability=.5)))
    '''
    net.projections.append(Projection(id='projIE',
                                      presynaptic=pI.id, 
                                      postsynaptic=pE.id,
                                      synapse='gaba',
                                      delay=2,
                                      weight=0.02,
                                      random_connectivity=RandomConnectivity(probability=.5)))

    net.inputs.append(Input(id='stim',
                            input_source=input_source.id,
                            population=pE.id,
                            percentage=50))'''

    #print(net)
    #print(net.to_json())
    new_file = net.to_json_file('%s.json' % net.id)

    ################################################################################
    ###   Build Simulation object & save as JSON

    sim = Simulation(id='SimExample7',
                     network=new_file,
                     duration='1000',
                     dt='0.025',
                     seed=123,
                     recordTraces={
                         pE.id: '*',
                         pI.id: '*'
                     },
                     recordSpikes={'all': '*'})

    sim.to_json_file()

    return sim, net
コード例 #5
0
p1 = Population(id='pop1',
                size=10,
                component='iaf',
                properties={'color': '0 0 .8'})

print(p1.to_json())

net.populations.append(p0)
net.populations.append(p1)

################################################################################
###   Add a projection

net.projections.append(
    Projection(id='proj0',
               presynaptic=p0.id,
               postsynaptic=p1.id,
               synapse='ampa'))

net.projections[0].random_connectivity = RandomConnectivity(probability=0.5)

################################################################################
###   Save to JSON format

print(net)
net.id = 'TestNetwork'

print(net.to_json())
new_file = net.to_json_file('Example1_%s.json' % net.id)

################################################################################
###   Export to some formats, e.g. try:
コード例 #6
0
def generate():

    dt = 0.025
    simtime = 1000

    ################################################################################
    ###   Build new network

    net = Network(id="Example7_Brunel2000")
    net.notes = "Example 7: based on network of Brunel 2000"

    net.parameters = {
        "g": 4,
        "eta": 1,
        "order": 5,
        "epsilon": 0.1,
        "J": 0.1,
        "delay": 1.5,
        "tauMem": 20.0,
        "tauSyn": 0.1,
        "tauRef": 2.0,
        "U0": 0.0,
        "theta": 20.0,
    }

    cell = Cell(id="ifcell", pynn_cell="IF_curr_alpha")

    cell.parameters = {
        "tau_m": "tauMem",
        "tau_refrac": "tauRef",
        "v_rest": "U0",
        "v_reset": "U0",
        "v_thresh": "theta",
        "cm": 0.001,
        "i_offset": 0,
    }

    # cell = Cell(id='hhcell', neuroml2_source_file='test_files/hhcell.cell.nml')
    net.cells.append(cell)

    poisson_input = Cell(id="poisson_input", pynn_cell="SpikeSourcePoisson")
    poisson_input.parameters = {
        "rate":
        "1000 * (eta*theta/(J*4*order*epsilon*tauMem)) * (4*order*epsilon)",
        "start": 0,
        "duration": 1e9,
    }
    net.cells.append(poisson_input)

    r1 = RectangularRegion(id="region1",
                           x=0,
                           y=0,
                           z=0,
                           width=1000,
                           height=100,
                           depth=1000)
    net.regions.append(r1)

    pE = Population(
        id="Epop",
        size="4*order",
        component=cell.id,
        properties={
            "color": ".9 0 0",
            "radius": 5
        },
        random_layout=RandomLayout(region=r1.id),
    )
    pEpoisson = Population(
        id="expoisson",
        size="4*order",
        component=poisson_input.id,
        properties={
            "color": "0.9 0.7 0.7",
            "radius": 3
        },
        random_layout=RandomLayout(region=r1.id),
    )
    pI = Population(
        id="Ipop",
        size="1*order",
        component=cell.id,
        properties={
            "color": "0 0 .9",
            "radius": 5
        },
        random_layout=RandomLayout(region=r1.id),
    )
    pIpoisson = Population(
        id="inpoisson",
        size="1*order",
        component=poisson_input.id,
        properties={
            "color": "0.7 0.7 0.9",
            "radius": 3
        },
        random_layout=RandomLayout(region=r1.id),
    )

    net.populations.append(pE)
    net.populations.append(pEpoisson)
    net.populations.append(pI)
    net.populations.append(pIpoisson)

    net.synapses.append(
        Synapse(
            id="ampa",
            pynn_receptor_type="excitatory",
            pynn_synapse_type="curr_alpha",
            parameters={"tau_syn": 0.1},
        ))

    net.synapses.append(
        Synapse(
            id="gaba",
            pynn_receptor_type="inhibitory",
            pynn_synapse_type="curr_alpha",
            parameters={"tau_syn": 0.1},
        ))

    delay_ext = dt

    downscale = 1
    J_eff = "J*%s" % (downscale)
    # synaptic weights, scaled for alpha functions, such that
    # for constant membrane potential, charge J would be deposited
    fudge = 0.00041363506632638  # ensures dV = J at V=0
    JE = "((%s)/tauSyn)*%s" % (J_eff, fudge)
    JI = "-1*g*%s" % (JE)

    net.projections.append(
        Projection(
            id="projEinput",
            presynaptic=pEpoisson.id,
            postsynaptic=pE.id,
            synapse="ampa",
            delay=delay_ext,
            weight=JE,
            one_to_one_connector=OneToOneConnector(),
        ))

    net.projections.append(
        Projection(
            id="projIinput",
            presynaptic=pIpoisson.id,
            postsynaptic=pI.id,
            synapse="ampa",
            delay=delay_ext,
            weight=JE,
            one_to_one_connector=OneToOneConnector(),
        ))

    net.projections.append(
        Projection(
            id="projEE",
            presynaptic=pE.id,
            postsynaptic=pE.id,
            synapse="ampa",
            delay="delay",
            weight=JE,
            random_connectivity=RandomConnectivity(probability="epsilon"),
        ))

    net.projections.append(
        Projection(
            id="projEI",
            presynaptic=pE.id,
            postsynaptic=pI.id,
            synapse="ampa",
            delay="delay",
            weight=JE,
            random_connectivity=RandomConnectivity(probability="epsilon"),
        ))

    net.projections.append(
        Projection(
            id="projIE",
            presynaptic=pI.id,
            postsynaptic=pE.id,
            synapse="gaba",
            delay="delay",
            weight=JI,
            random_connectivity=RandomConnectivity(probability="epsilon"),
        ))

    net.projections.append(
        Projection(
            id="projII",
            presynaptic=pI.id,
            postsynaptic=pI.id,
            synapse="gaba",
            delay="delay",
            weight=JI,
            random_connectivity=RandomConnectivity(probability="epsilon"),
        ))

    # print(net)
    # print(net.to_json())
    new_file = net.to_json_file("%s.json" % net.id)

    ################################################################################
    ###   Build Simulation object & save as JSON

    sim = Simulation(
        id="SimExample7",
        network=new_file,
        duration=simtime,
        dt=dt,
        seed=123,
        record_traces={
            pE.id: [0, 1],
            pI.id: [0, 1]
        },
        record_spikes={
            pE.id: "*",
            pI.id: "*",
            pEpoisson.id: [0, 1, 2, 3, 4],
            pIpoisson.id: [0, 1, 2, 3, 4],
        },
    )

    sim.to_json_file()

    return sim, net
コード例 #7
0
                 component=cell.id,
                 properties={'color': '0 0 .7'})

net.populations.append(pE)
net.populations.append(pRS)

net.synapses.append(
    Synapse(id='ampa', neuroml2_source_file='test_files/ampa.synapse.nml'))
net.synapses.append(
    Synapse(id='gaba', neuroml2_source_file='test_files/gaba.synapse.nml'))

net.projections.append(
    Projection(id='projEI',
               presynaptic=pE.id,
               postsynaptic=pRS.id,
               synapse='ampa',
               delay=2,
               weight=0.2,
               random_connectivity=RandomConnectivity(probability=.8)))

net.inputs.append(
    Input(id='stim',
          input_source=input_source.id,
          population=pE.id,
          percentage=50,
          weight='weightInput'))

print(net)
print(net.to_json())
new_file = net.to_json_file('%s.json' % net.id)
コード例 #8
0
ファイル: ArborExample.py プロジェクト: NeuroML/NeuroMLlite
net.synapses.append(
    Synapse(
        id="ampaSyn",
        pynn_receptor_type="excitatory",
        pynn_synapse_type="cond_alpha",
        parameters={
            "e_rev": -10,
            "tau_syn": 2
        },
    ))

net.projections.append(
    Projection(
        id="proj0",
        presynaptic=p0.id,
        postsynaptic=p1.id,
        synapse="ampaSyn",
        delay="5",
        weight="0.0001*random()",
    ))

net.projections[0].random_connectivity = RandomConnectivity(probability=0.5)
'''
net.synapses.append(Synapse(id='gabaSyn',
                            pynn_receptor_type='inhibitory',
                            pynn_synapse_type='cond_alpha',
                            parameters={'e_rev':-80, 'tau_syn':10}))


net.projections.append(Projection(id='proj1',
                                  presynaptic=p0.id,
                                  postsynaptic=p2.id,
コード例 #9
0
def generate():
    
    dt = 0.025
    simtime = 1000
    
    ################################################################################
    ###   Build new network

    net = Network(id='Example7_Brunel2000')
    net.notes = 'Example 7: based on network of Brunel 2000'
    

    net.parameters = { 'g':       4, 
                       'eta':     1, 
                       'order':   5,
                       'epsilon': 0.1,
                       'J':       0.1,
                       'delay':   1.5,
                       'tauMem':  20.0,
                       'tauSyn':  0.1,
                       'tauRef':  2.0,
                       'U0':      0.0,
                       'theta':   20.0}

    cell = Cell(id='ifcell', pynn_cell='IF_curr_alpha')


    cell.parameters = { 'tau_m':       'tauMem', 
                        'tau_refrac':  'tauRef',
                        'v_rest':      'U0',
                        'v_reset':     'U0',
                        'v_thresh':    'theta',
                        'cm':          0.001,
                        "i_offset":    0}

    #cell = Cell(id='hhcell', neuroml2_source_file='test_files/hhcell.cell.nml')
    net.cells.append(cell)

    poisson_input = Cell(id='poisson_input', pynn_cell='SpikeSourcePoisson')
    poisson_input.parameters = { 'rate':       '1000 * (eta*theta/(J*4*order*epsilon*tauMem)) * (4*order*epsilon)',
                             'start':      0,
                             'duration':   1e9}
    net.cells.append(poisson_input)

    r1 = RectangularRegion(id='region1', x=0,y=0,z=0,width=1000,height=100,depth=1000)
    net.regions.append(r1)

    pE = Population(id='Epop', 
                    size='4*order', 
                    component=cell.id, 
                    properties={'color':'.9 0 0', 'radius':5},
                    random_layout = RandomLayout(region=r1.id))
    pEpoisson = Population(id='expoisson', 
                           size='4*order', 
                           component=poisson_input.id, 
                           properties={'color':'0.9 0.7 0.7', 'radius':3},
                           random_layout = RandomLayout(region=r1.id))
    pI = Population(id='Ipop', 
                    size='1*order', 
                    component=cell.id, 
                    properties={'color':'0 0 .9', 'radius':5},
                    random_layout = RandomLayout(region=r1.id))
    pIpoisson = Population(id='inpoisson', 
                           size='1*order', 
                           component=poisson_input.id, 
                           properties={'color':'0.7 0.7 0.9', 'radius':3},
                           random_layout = RandomLayout(region=r1.id))

    net.populations.append(pE)
    net.populations.append(pEpoisson)
    net.populations.append(pI)
    net.populations.append(pIpoisson)


    net.synapses.append(Synapse(id='ampa', 
                                pynn_receptor_type='excitatory', 
                                pynn_synapse_type='curr_alpha', 
                                parameters={'tau_syn':0.1}))
                                
    net.synapses.append(Synapse(id='gaba', 
                                pynn_receptor_type='inhibitory', 
                                pynn_synapse_type='curr_alpha', 
                                parameters={'tau_syn':0.1}))

    delay_ext = dt
    
    downscale   = 1
    J_eff     = 'J*%s'%(downscale)
    # synaptic weights, scaled for alpha functions, such that
    # for constant membrane potential, charge J would be deposited
    fudge = 0.00041363506632638  # ensures dV = J at V=0
    JE = '((%s)/tauSyn)*%s'%(J_eff,fudge)
    JI = '-1*g*%s'%(JE)
    
    net.projections.append(Projection(id='projEinput',
                                      presynaptic=pEpoisson.id, 
                                      postsynaptic=pE.id,
                                      synapse='ampa',
                                      delay=delay_ext,
                                      weight=JE,
                                      one_to_one_connector=OneToOneConnector()))
    
    net.projections.append(Projection(id='projIinput',
                                      presynaptic=pIpoisson.id, 
                                      postsynaptic=pI.id,
                                      synapse='ampa',
                                      delay=delay_ext,
                                      weight=JE,
                                      one_to_one_connector=OneToOneConnector()))
                                      
           
    net.projections.append(Projection(id='projEE',
                                      presynaptic=pE.id, 
                                      postsynaptic=pE.id,
                                      synapse='ampa',
                                      delay='delay',
                                      weight=JE,
                                      random_connectivity=RandomConnectivity(probability='epsilon')))

    net.projections.append(Projection(id='projEI',
                                      presynaptic=pE.id, 
                                      postsynaptic=pI.id,
                                      synapse='ampa',
                                      delay='delay',
                                      weight=JE,
                                      random_connectivity=RandomConnectivity(probability='epsilon')))
    
    net.projections.append(Projection(id='projIE',
                                      presynaptic=pI.id, 
                                      postsynaptic=pE.id,
                                      synapse='gaba',
                                      delay='delay',
                                      weight=JI,
                                      random_connectivity=RandomConnectivity(probability='epsilon')))
                                      
    net.projections.append(Projection(id='projII',
                                      presynaptic=pI.id, 
                                      postsynaptic=pI.id,
                                      synapse='gaba',
                                      delay='delay',
                                      weight=JI,
                                      random_connectivity=RandomConnectivity(probability='epsilon')))

    #print(net)
    #print(net.to_json())
    new_file = net.to_json_file('%s.json'%net.id)


    ################################################################################
    ###   Build Simulation object & save as JSON

    sim = Simulation(id='SimExample7',
                     network=new_file,
                     duration=simtime,
                     dt=dt,
                     seed= 123,
                     recordTraces={pE.id:[0,1],pI.id:[0,1]},
                     recordSpikes={pE.id:'*', pI.id:'*',pEpoisson.id:[0,1,2,3,4],pIpoisson.id:[0,1,2,3,4]})

    sim.to_json_file()
    
    return sim, net
コード例 #10
0
p1 = Population(id="pop1",
                size=10,
                component="iaf",
                properties={"color": "0 0 .8"})

print(p1.to_json())

net.populations.append(p0)
net.populations.append(p1)

################################################################################
###   Add a projection

net.projections.append(
    Projection(id="proj0",
               presynaptic=p0.id,
               postsynaptic=p1.id,
               synapse="ampa"))

net.projections[0].random_connectivity = RandomConnectivity(probability=0.5)

################################################################################
###   Save to JSON format

print(net)
net.id = "TestNetwork"

print(net.to_json())
new_file = net.to_json_file("Example1_%s.json" % net.id)

################################################################################
###   Export to some formats, e.g. try:
コード例 #11
0
net.regions.append(r1)

p0 = Population(id='pop0', size=1, component=spkArr1.id, properties={'color':'1 0 0', 'radius':10},random_layout = RandomLayout(region=r1.id))
p1 = Population(id='pop1', size=1, component=cell.id, properties={'color':'0 1 0'},random_layout = RandomLayout(region=r1.id))

net.populations.append(p0)
net.populations.append(p1)

syn = Synapse(id='AMPA_preLTP', neuroml2_source_file='fourPathwaySyn.synapse.nml')
syn = Synapse(id='AMPA_postLTD', neuroml2_source_file='fourPathwaySyn.synapse.nml')
net.synapses.append(syn)
                      

net.projections.append(Projection(id='proj0',
                                  presynaptic=p0.id, 
                                  postsynaptic=p1.id,
                                  synapse=syn.id,
                                  delay=0,
                                  weight='weight'))
net.projections[0].random_connectivity=RandomConnectivity(probability=1)


net.inputs.append(Input(id='i_stim1',
                        input_source=stim1.id,
                        population=p1.id,
                        percentage=100))
net.inputs.append(Input(id='i_stim2',
                        input_source=stim2.id,
                        population=p1.id,
                        percentage=100))

print(net.to_json())
コード例 #12
0
ファイル: ABCD.py プロジェクト: kmantel/MDF
def generate():

    dt = 100  # ms, so 0.1s
    simtime = 5000  # ms, so 50s

    ################################################################################
    ###   Build new network

    net = Network(id="ABCD")
    net.notes = "Example of a simplified network"

    net.parameters = {"A_initial": 0.1, "A_slope": 2.2}

    cellInput = Cell(id="a_input",
                     lems_source_file="PNL.xml",
                     parameters={"variable": "A_initial"})

    net.cells.append(cellInput)

    cellA = Cell(id="a", lems_source_file="PNL.xml")
    net.cells.append(cellA)
    cellB = Cell(id="b", lems_source_file="PNL.xml")
    net.cells.append(cellB)
    cellC = Cell(id="c", lems_source_file="PNL.xml")
    net.cells.append(cellC)
    cellD = Cell(id="d", lems_source_file="PNL.xml")
    net.cells.append(cellD)

    rsDL = Synapse(id="rsDL", lems_source_file="PNL.xml")
    net.synapses.append(rsDL)

    r1 = RectangularRegion(id="region1",
                           x=0,
                           y=0,
                           z=0,
                           width=1000,
                           height=100,
                           depth=1000)
    net.regions.append(r1)

    pAin = Population(
        id="A_input",
        size="1",
        component=cellInput.id,
        properties={
            "color": "0.2 0.2 0.2",
            "radius": 3
        },
        random_layout=RandomLayout(region=r1.id),
    )
    net.populations.append(pAin)

    pA = Population(
        id="A",
        size="1",
        component=cellA.id,
        properties={
            "color": "0 0.9 0",
            "radius": 5
        },
        random_layout=RandomLayout(region=r1.id),
    )
    net.populations.append(pA)

    pB = Population(
        id="B",
        size="1",
        component=cellB.id,
        properties={
            "color": ".8 .8 .8",
            "radius": 5
        },
        random_layout=RandomLayout(region=r1.id),
    )
    net.populations.append(pB)

    pC = Population(
        id="C",
        size="1",
        component=cellC.id,
        properties={
            "color": "0.7 0.7 0.7",
            "radius": 5
        },
        random_layout=RandomLayout(region=r1.id),
    )
    net.populations.append(pC)

    pD = Population(
        id="D",
        size="1",
        component=cellD.id,
        properties={
            "color": "0.7 0 0",
            "radius": 5
        },
        random_layout=RandomLayout(region=r1.id),
    )
    net.populations.append(pD)

    silentDLin = Synapse(id="silentSyn_proj_input", lems_source_file="PNL.xml")
    net.synapses.append(silentDLin)
    net.projections.append(
        Projection(
            id="proj_input",
            presynaptic=pA.id,
            postsynaptic=pB.id,
            synapse=rsDL.id,
            pre_synapse=silentDLin.id,
            type="continuousProjection",
            weight=1,
            random_connectivity=RandomConnectivity(probability=1),
        ))

    silentDL0 = Synapse(id="silentSyn_proj0", lems_source_file="PNL.xml")
    net.synapses.append(silentDL0)
    net.projections.append(
        Projection(
            id="proj0",
            presynaptic=pAin.id,
            postsynaptic=pA.id,
            synapse=rsDL.id,
            pre_synapse=silentDL0.id,
            type="continuousProjection",
            weight=1,
            random_connectivity=RandomConnectivity(probability=1),
        ))

    silentDL1 = Synapse(id="silentSyn_proj1", lems_source_file="PNL.xml")
    net.synapses.append(silentDL1)
    net.projections.append(
        Projection(
            id="proj1",
            presynaptic=pA.id,
            postsynaptic=pC.id,
            synapse=rsDL.id,
            pre_synapse=silentDL1.id,
            type="continuousProjection",
            weight=1,
            random_connectivity=RandomConnectivity(probability=1),
        ))

    silentDL2 = Synapse(id="silentSyn_proj2", lems_source_file="PNL.xml")
    net.synapses.append(silentDL2)
    net.projections.append(
        Projection(
            id="proj2",
            presynaptic=pB.id,
            postsynaptic=pD.id,
            synapse=rsDL.id,
            pre_synapse=silentDL2.id,
            type="continuousProjection",
            weight=1,
            random_connectivity=RandomConnectivity(probability=1),
        ))

    silentDL3 = Synapse(id="silentSyn_proj3", lems_source_file="PNL.xml")
    net.synapses.append(silentDL3)
    net.projections.append(
        Projection(
            id="proj3",
            presynaptic=pC.id,
            postsynaptic=pD.id,
            synapse=rsDL.id,
            pre_synapse=silentDL3.id,
            type="continuousProjection",
            weight=1,
            random_connectivity=RandomConnectivity(probability=1),
        ))

    new_file = net.to_json_file("%s.json" % net.id)

    ################################################################################
    ###   Build Simulation object & save as JSON

    sim = Simulation(
        id="Sim%s" % net.id,
        network=new_file,
        duration=simtime,
        dt=dt,
        seed=123,
        recordVariables={"OUTPUT": {
            "all": "*"
        }},
    )  # ,'INPUT':{'all':'*'}

    sim.to_json_file()

    return sim, net
            }))

net.synapses.append(
    Synapse(id='gaba',
            pynn_receptor_type='inhibitory',
            pynn_synapse_type='cond_alpha',
            parameters={
                'e_rev': nesp['E_in'],
                'tau_syn': nesp['tau_syn_in']
            }))

net.projections.append(
    Projection(id='projBkgPre',
               presynaptic=bkgPre.id,
               postsynaptic=pE.id,
               synapse='ampa',
               delay=2,
               weight='0.001*Be_bkg',
               one_to_one_connector=OneToOneConnector()))
'''
net.projections.append(Projection(id='projEe',
                                  presynaptic=pE.id, 
                                  postsynaptic=pE.id,
                                  synapse='ampa',
                                  delay=2,
                                  weight='0.001*Be',
                                  random_connectivity=RandomConnectivity(probability=0.15)))
                                  
net.projections.append(Projection(id='projEI',
                                  presynaptic=pE.id, 
                                  postsynaptic=pI.id,
コード例 #14
0
            }))

W = [[2.4167, -0.3329, -0.8039, 0], [2.9706, -3.4554, -2.1291, 0],
     [4.6440, 0, 0, -2.7896], [0.7162, 0, -0.1560, 0]]

for pre in pops:
    for post in pops:

        weight = W[pops.index(post)][pops.index(pre)]
        print('Connection %s -> %s weight %s' % (pre.id, post.id, weight))
        if weight != 0:

            net.projections.append(
                Projection(id='proj_%s_%s' % (pre.id, post.id),
                           presynaptic=pre.id,
                           postsynaptic=post.id,
                           synapse='ampa',
                           delay=0,
                           weight=weight))
'''
bkgE = InputSource(id='bkgEstim', 
                           pynn_input='DCSource', 
                           parameters={'amplitude':2, 'start':0., 'stop':1e6})
                        
net.input_sources.append(bkgE)

net.inputs.append(Input(id='bkgE',
                        input_source=bkgE.id,
                        population=pE.id,
                        percentage=100))'''

net.inputs.append(
コード例 #15
0
def generate(ref="Example6_PyNN", add_inputs=True):

    ################################################################################
    ###   Build new network

    net = Network(id=ref, notes="Another network for PyNN - work in progress...")

    net.parameters = {
        "N_scaling": 0.005,
        "layer_height": 400,
        "width": 100,
        "depth": 100,
        "input_weight": 0.1,
    }

    cell = Cell(id="CorticalCell", pynn_cell="IF_curr_exp")
    cell.parameters = {
        "cm": 0.25,  # nF
        "i_offset": 0.0,  # nA
        "tau_m": 10.0,  # ms
        "tau_refrac": 2.0,  # ms
        "v_reset": -65.0,  # mV
        "v_rest": -65.0,  # mV
        "v_thresh": -50.0,  # mV
    }
    net.cells.append(cell)

    if add_inputs:
        input_cell = Cell(id="InputCell", pynn_cell="SpikeSourcePoisson")
        input_cell.parameters = {"start": 0, "duration": 10000000000, "rate": 150}
        net.cells.append(input_cell)

    e_syn = Synapse(
        id="ampa",
        pynn_receptor_type="excitatory",
        pynn_synapse_type="curr_exp",
        parameters={"tau_syn": 0.5},
    )
    net.synapses.append(e_syn)
    i_syn = Synapse(
        id="gaba",
        pynn_receptor_type="inhibitory",
        pynn_synapse_type="curr_exp",
        parameters={"tau_syn": 0.5},
    )
    net.synapses.append(i_syn)

    N_full = {
        "L23": {"E": 20683, "I": 5834},
        "L4": {"E": 21915, "I": 5479},
        "L5": {"E": 4850, "I": 1065},
        "L6": {"E": 14395, "I": 2948},
    }

    scale = 0.1

    pops = []
    input_pops = []
    pop_dict = {}

    layers = ["L23"]
    layers = ["L23", "L4", "L5", "L6"]

    for l in layers:

        i = 3 - layers.index(l)
        r = RectangularRegion(
            id=l,
            x=0,
            y=i * net.parameters["layer_height"],
            z=0,
            width=net.parameters["width"],
            height=net.parameters["layer_height"],
            depth=net.parameters["depth"],
        )
        net.regions.append(r)

        for t in ["E", "I"]:

            try:
                import opencortex.utils.color as occ

                if l == "L23":
                    if t == "E":
                        color = occ.L23_PRINCIPAL_CELL
                    if t == "I":
                        color = occ.L23_INTERNEURON
                if l == "L4":
                    if t == "E":
                        color = occ.L4_PRINCIPAL_CELL
                    if t == "I":
                        color = occ.L4_INTERNEURON
                if l == "L5":
                    if t == "E":
                        color = occ.L5_PRINCIPAL_CELL
                    if t == "I":
                        color = occ.L5_INTERNEURON
                if l == "L6":
                    if t == "E":
                        color = occ.L6_PRINCIPAL_CELL
                    if t == "I":
                        color = occ.L6_INTERNEURON

            except:
                color = ".8 0 0" if t == "E" else "0 0 1"

            pop_id = "%s_%s" % (l, t)
            pops.append(pop_id)
            ref = "l%s%s" % (l[1:], t.lower())
            exec(
                ref
                + " = Population(id=pop_id, size='int(%s*N_scaling)'%N_full[l][t], component=cell.id, properties={'color':color, 'type':t})"
            )
            exec("%s.random_layout = RandomLayout(region = r.id)" % ref)
            exec("net.populations.append(%s)" % ref)
            exec("pop_dict['%s'] = %s" % (pop_id, ref))

            if add_inputs:
                color = ".8 .8 .8"
                input_id = "%s_%s_input" % (l, t)
                input_pops.append(input_id)
                input_ref = "l%s%s_i" % (l[1:], t.lower())
                exec(
                    input_ref
                    + " = Population(id=input_id, size='int(%s*N_scaling)'%N_full[l][t], component=input_cell.id, properties={'color':color})"
                )
                exec("%s.random_layout = RandomLayout(region = r.id)" % input_ref)
                exec("net.populations.append(%s)" % input_ref)

        # l23i = Population(id='L23_I', size=int(100*scale), component=cell.id, properties={'color':})
        # l23ei = Population(id='L23_E_input', size=int(100*scale), component=input_cell.id)
        # l23ii = Population(id='L23_I_input', size=int(100*scale), component=input_cell.id)

    # net.populations.append(l23e)
    # net.populations.append(l23ei)
    # net.populations.append(l23i)
    # net.populations.append(l23ii)

    conn_probs = [
        [0.1009, 0.1689, 0.0437, 0.0818, 0.0323, 0.0, 0.0076, 0.0],
        [0.1346, 0.1371, 0.0316, 0.0515, 0.0755, 0.0, 0.0042, 0.0],
        [0.0077, 0.0059, 0.0497, 0.135, 0.0067, 0.0003, 0.0453, 0.0],
        [0.0691, 0.0029, 0.0794, 0.1597, 0.0033, 0.0, 0.1057, 0.0],
        [0.1004, 0.0622, 0.0505, 0.0057, 0.0831, 0.3726, 0.0204, 0.0],
        [0.0548, 0.0269, 0.0257, 0.0022, 0.06, 0.3158, 0.0086, 0.0],
        [0.0156, 0.0066, 0.0211, 0.0166, 0.0572, 0.0197, 0.0396, 0.2252],
        [0.0364, 0.001, 0.0034, 0.0005, 0.0277, 0.008, 0.0658, 0.1443],
    ]

    if add_inputs:
        for p in pops:
            proj = Projection(
                id="proj_input_%s" % p,
                presynaptic="%s_input" % p,
                postsynaptic=p,
                synapse=e_syn.id,
                delay=2,
                weight="input_weight",
            )
            proj.one_to_one_connector = OneToOneConnector()
            net.projections.append(proj)

    for pre_i in range(len(pops)):
        for post_i in range(len(pops)):
            pre = pops[pre_i]
            post = pops[post_i]
            prob = conn_probs[post_i][pre_i]  #######   TODO: check!!!!
            weight = 1
            syn = e_syn
            if prob > 0:
                if "I" in pre:
                    weight = -1
                    syn = i_syn
                proj = Projection(
                    id="proj_%s_%s" % (pre, post),
                    presynaptic=pre,
                    postsynaptic=post,
                    synapse=syn.id,
                    delay=1,
                    weight=weight,
                )
                proj.random_connectivity = RandomConnectivity(probability=prob)
                net.projections.append(proj)

    print(net.to_json())
    new_file = net.to_json_file("%s.json" % net.id)

    ################################################################################
    ###   Build Simulation object & save as JSON

    record_traces = {}
    record_spikes = {}

    from neuromllite.utils import evaluate

    for p in pops:
        forecast_size = evaluate(pop_dict[p].size, net.parameters)
        record_traces[p] = list(range(min(2, forecast_size)))
        record_spikes[p] = "*"
    for ip in input_pops:
        record_spikes[ip] = "*"

    sim = Simulation(
        id="Sim%s" % net.id,
        network=new_file,
        duration="100",
        dt="0.025",
        seed=1234,
        record_traces=record_traces,
        record_spikes=record_spikes,
    )

    sim.to_json_file()

    return sim, net
コード例 #16
0
def generate():

    dt = 0.025
    simtime = 1000

    ################################################################################
    ###   Build new network

    net = Network(id='McCPNet')
    net.notes = 'Example of simplified McCulloch-Pitts based Network'

    net.parameters = {'amp': 1.5, 'scale': 3}

    cell = Cell(id='mccp0', lems_source_file='McCPTest.xml')
    net.cells.append(cell)

    silentDL = Synapse(id='silentSyn_proj0', lems_source_file='McCPTest.xml')
    net.synapses.append(silentDL)
    rsDL = Synapse(id='rsDL', lems_source_file='McCPTest.xml')
    net.synapses.append(rsDL)

    r1 = RectangularRegion(id='region1',
                           x=0,
                           y=0,
                           z=0,
                           width=1000,
                           height=100,
                           depth=1000)
    net.regions.append(r1)

    p0 = Population(id='McCPpop0',
                    size='1*scale',
                    component=cell.id,
                    properties={
                        'color': '.9 0.9 0',
                        'radius': 5
                    },
                    random_layout=RandomLayout(region=r1.id))
    net.populations.append(p0)

    p1 = Population(id='McCPpop1',
                    size='1*scale',
                    component=cell.id,
                    properties={
                        'color': '.9 0 0.9',
                        'radius': 5
                    },
                    random_layout=RandomLayout(region=r1.id))
    net.populations.append(p1)

    net.projections.append(
        Projection(id='proj0',
                   presynaptic=p0.id,
                   postsynaptic=p1.id,
                   synapse=rsDL.id,
                   pre_synapse=silentDL.id,
                   type='continuousProjection',
                   weight='random()',
                   random_connectivity=RandomConnectivity(probability=0.6)))
    '''
                                      
    
    net.synapses.append(Synapse(id='ampa', 
                                pynn_receptor_type='excitatory', 
                                pynn_synapse_type='curr_alpha', 
                                parameters={'tau_syn':0.1}))
                                
    
    net.projections.append(Projection(id='proj1',
                                      presynaptic=pEpoisson.id, 
                                      postsynaptic=pLNP.id,
                                      synapse='ampa',
                                      delay=0,
                                      weight='in_weight',
                                      random_connectivity=RandomConnectivity(probability=0.7)))'''

    input_source0 = InputSource(id='sg0', neuroml2_source_file='inputs.nml')
    net.input_sources.append(input_source0)
    input_source1 = InputSource(id='sg1', neuroml2_source_file='inputs.nml')
    net.input_sources.append(input_source1)

    for pop in [p0.id]:
        net.inputs.append(
            Input(id='stim0_%s' % pop,
                  input_source=input_source0.id,
                  population=pop,
                  percentage=60))

        net.inputs.append(
            Input(id='stim1_%s' % pop,
                  input_source=input_source1.id,
                  population=pop,
                  percentage=60))

    #print(net)
    #print(net.to_json())
    new_file = net.to_json_file('%s.json' % net.id)

    ################################################################################
    ###   Build Simulation object & save as JSON

    sim = Simulation(id='Sim%s' % net.id,
                     network=new_file,
                     duration=simtime,
                     dt=dt,
                     seed=123,
                     recordVariables={
                         'R': {
                             'all': '*'
                         },
                         'ISyn': {
                             'all': '*'
                         }
                     })

    sim.to_json_file()

    return sim, net
コード例 #17
0
                'e_rev': -10,
                'tau_syn': 2
            }))
net.synapses.append(
    Synapse(id='gabaSyn',
            pynn_receptor_type='inhibitory',
            pynn_synapse_type='cond_alpha',
            parameters={
                'e_rev': -80,
                'tau_syn': 10
            }))

net.projections.append(
    Projection(id='proj0',
               presynaptic=p0.id,
               postsynaptic=p1.id,
               synapse='ampaSyn',
               delay=2,
               weight=0.02))
net.projections[0].random_connectivity = RandomConnectivity(probability=1)

net.projections.append(
    Projection(id='proj1',
               presynaptic=p0.id,
               postsynaptic=p2.id,
               synapse='gabaSyn',
               delay=2,
               weight=0.01))
net.projections[1].random_connectivity = RandomConnectivity(probability=1)

net.inputs.append(
    Input(id='stim',
コード例 #18
0
net.populations.append(p0)
net.populations.append(p1)

ampaSyn = Synapse(id='ampa',
                  neuroml2_source_file='test_files/ampa.synapse.nml')
net.synapses.append(ampaSyn)

nmdaSyn = Synapse(id='nmdaSyn',
                  neuroml2_source_file='test_files/NMDA.synapse.nml')
net.synapses.append(nmdaSyn)

net.projections.append(
    Projection(id='proj0',
               presynaptic=p0.id,
               postsynaptic=p1.id,
               synapse=ampaSyn.id,
               delay=0,
               weight='weight'))
net.projections[0].random_connectivity = RandomConnectivity(probability=1)

net.projections.append(
    Projection(id='proj1',
               presynaptic=p0.id,
               postsynaptic=p1.id,
               synapse=nmdaSyn.id,
               delay=0,
               weight='weight'))
net.projections[1].random_connectivity = RandomConnectivity(probability=1)

net.inputs.append(
    Input(id='stim',
コード例 #19
0
ファイル: Example11.py プロジェクト: NeuroML/NeuroMLlite
net.populations.append(p0)
net.populations.append(p1)

ampaSyn = Synapse(id="ampa",
                  neuroml2_source_file="test_files/ampa.synapse.nml")
net.synapses.append(ampaSyn)

nmdaSyn = Synapse(id="nmdaSyn",
                  neuroml2_source_file="test_files/NMDA.synapse.nml")
net.synapses.append(nmdaSyn)

net.projections.append(
    Projection(
        id="proj0",
        presynaptic=p0.id,
        postsynaptic=p1.id,
        synapse=ampaSyn.id,
        delay=0,
        weight="weight",
    ))
net.projections[0].random_connectivity = RandomConnectivity(probability=1)

net.projections.append(
    Projection(
        id="proj1",
        presynaptic=p0.id,
        postsynaptic=p1.id,
        synapse=nmdaSyn.id,
        delay=0,
        weight="weight",
    ))
net.projections[1].random_connectivity = RandomConnectivity(probability=1)
コード例 #20
0
ファイル: Example6.py プロジェクト: sanjayankur31/NeuroMLlite
def generate(ref='Example6_PyNN', add_inputs=True):

    ################################################################################
    ###   Build new network

    net = Network(id=ref,
                  notes='Another network for PyNN - work in progress...')

    net.parameters = {
        'N_scaling': 0.005,
        'layer_height': 400,
        'width': 100,
        'depth': 100,
        'input_weight': 0.1
    }

    cell = Cell(id='CorticalCell', pynn_cell='IF_curr_exp')
    cell.parameters = {
        'cm': 0.25,  # nF
        'i_offset': 0.0,  # nA
        'tau_m': 10.0,  # ms
        'tau_refrac': 2.0,  # ms
        'v_reset': -65.0,  # mV
        'v_rest': -65.0,  # mV
        'v_thresh': -50.0  # mV
    }
    net.cells.append(cell)

    if add_inputs:
        input_cell = Cell(id='InputCell', pynn_cell='SpikeSourcePoisson')
        input_cell.parameters = {
            'start': 0,
            'duration': 10000000000,
            'rate': 150
        }
        net.cells.append(input_cell)

    e_syn = Synapse(id='ampa',
                    pynn_receptor_type='excitatory',
                    pynn_synapse_type='curr_exp',
                    parameters={'tau_syn': 0.5})
    net.synapses.append(e_syn)
    i_syn = Synapse(id='gaba',
                    pynn_receptor_type='inhibitory',
                    pynn_synapse_type='curr_exp',
                    parameters={'tau_syn': 0.5})
    net.synapses.append(i_syn)

    N_full = {
        'L23': {
            'E': 20683,
            'I': 5834
        },
        'L4': {
            'E': 21915,
            'I': 5479
        },
        'L5': {
            'E': 4850,
            'I': 1065
        },
        'L6': {
            'E': 14395,
            'I': 2948
        }
    }

    scale = 0.1

    pops = []
    input_pops = []
    pop_dict = {}

    layers = ['L23']
    layers = ['L23', 'L4', 'L5', 'L6']

    for l in layers:

        i = 3 - layers.index(l)
        r = RectangularRegion(id=l,
                              x=0,
                              y=i * net.parameters['layer_height'],
                              z=0,
                              width=net.parameters['width'],
                              height=net.parameters['layer_height'],
                              depth=net.parameters['depth'])
        net.regions.append(r)

        for t in ['E', 'I']:

            try:
                import opencortex.utils.color as occ
                if l == 'L23':
                    if t == 'E': color = occ.L23_PRINCIPAL_CELL
                    if t == 'I': color = occ.L23_INTERNEURON
                if l == 'L4':
                    if t == 'E': color = occ.L4_PRINCIPAL_CELL
                    if t == 'I': color = occ.L4_INTERNEURON
                if l == 'L5':
                    if t == 'E': color = occ.L5_PRINCIPAL_CELL
                    if t == 'I': color = occ.L5_INTERNEURON
                if l == 'L6':
                    if t == 'E': color = occ.L6_PRINCIPAL_CELL
                    if t == 'I': color = occ.L6_INTERNEURON

            except:
                color = '.8 0 0' if t == 'E' else '0 0 1'

            pop_id = '%s_%s' % (l, t)
            pops.append(pop_id)
            ref = 'l%s%s' % (l[1:], t.lower())
            exec(
                ref +
                " = Population(id=pop_id, size='int(%s*N_scaling)'%N_full[l][t], component=cell.id, properties={'color':color, 'type':t})"
            )
            exec("%s.random_layout = RandomLayout(region = r.id)" % ref)
            exec("net.populations.append(%s)" % ref)
            exec("pop_dict['%s'] = %s" % (pop_id, ref))

            if add_inputs:
                color = '.8 .8 .8'
                input_id = '%s_%s_input' % (l, t)
                input_pops.append(input_id)
                input_ref = 'l%s%s_i' % (l[1:], t.lower())
                exec(
                    input_ref +
                    " = Population(id=input_id, size='int(%s*N_scaling)'%N_full[l][t], component=input_cell.id, properties={'color':color})"
                )
                exec("%s.random_layout = RandomLayout(region = r.id)" %
                     input_ref)
                exec("net.populations.append(%s)" % input_ref)

        #l23i = Population(id='L23_I', size=int(100*scale), component=cell.id, properties={'color':})
        #l23ei = Population(id='L23_E_input', size=int(100*scale), component=input_cell.id)
        #l23ii = Population(id='L23_I_input', size=int(100*scale), component=input_cell.id)

    #net.populations.append(l23e)
    #net.populations.append(l23ei)
    #net.populations.append(l23i)
    #net.populations.append(l23ii)

    conn_probs = [
        [0.1009, 0.1689, 0.0437, 0.0818, 0.0323, 0., 0.0076, 0.],
        [0.1346, 0.1371, 0.0316, 0.0515, 0.0755, 0., 0.0042, 0.],
        [0.0077, 0.0059, 0.0497, 0.135, 0.0067, 0.0003, 0.0453, 0.],
        [0.0691, 0.0029, 0.0794, 0.1597, 0.0033, 0., 0.1057, 0.],
        [0.1004, 0.0622, 0.0505, 0.0057, 0.0831, 0.3726, 0.0204, 0.],
        [0.0548, 0.0269, 0.0257, 0.0022, 0.06, 0.3158, 0.0086, 0.],
        [0.0156, 0.0066, 0.0211, 0.0166, 0.0572, 0.0197, 0.0396, 0.2252],
        [0.0364, 0.001, 0.0034, 0.0005, 0.0277, 0.008, 0.0658, 0.1443]
    ]

    if add_inputs:
        for p in pops:
            proj = Projection(id='proj_input_%s' % p,
                              presynaptic='%s_input' % p,
                              postsynaptic=p,
                              synapse=e_syn.id,
                              delay=2,
                              weight='input_weight')
            proj.one_to_one_connector = OneToOneConnector()
            net.projections.append(proj)

    for pre_i in range(len(pops)):
        for post_i in range(len(pops)):
            pre = pops[pre_i]
            post = pops[post_i]
            prob = conn_probs[post_i][pre_i]  #######   TODO: check!!!!
            weight = 1
            syn = e_syn
            if prob > 0:
                if 'I' in pre:
                    weight = -1
                    syn = i_syn
                proj = Projection(id='proj_%s_%s' % (pre, post),
                                  presynaptic=pre,
                                  postsynaptic=post,
                                  synapse=syn.id,
                                  delay=1,
                                  weight=weight)
                proj.random_connectivity = RandomConnectivity(probability=prob)
                net.projections.append(proj)

    print(net.to_json())
    new_file = net.to_json_file('%s.json' % net.id)

    ################################################################################
    ###   Build Simulation object & save as JSON

    recordTraces = {}
    recordSpikes = {}

    from neuromllite.utils import evaluate
    for p in pops:
        forecast_size = evaluate(pop_dict[p].size, net.parameters)
        recordTraces[p] = list(range(min(2, forecast_size)))
        recordSpikes[p] = '*'
    for ip in input_pops:
        recordSpikes[ip] = '*'

    sim = Simulation(id='Sim%s' % net.id,
                     network=new_file,
                     duration='100',
                     dt='0.025',
                     seed=1234,
                     recordTraces=recordTraces,
                     recordSpikes=recordSpikes)

    sim.to_json_file()

    return sim, net
コード例 #21
0
def generate():

    dt = 0.025
    simtime = 500

    ################################################################################
    ###   Build new network

    net = Network(id='SpikingEI')
    net.notes = 'SpikingEI'

    net.parameters = {
        'order': 5,
        'wee': 8,
        'wei': 12,
        'wie': -12,
        'wii': -3,
        'w_scale': 0.001,
        'in_rate': 400,
        'epsilon': 0.5,
        'tauMem': 20.0,
        'tauSyn': 0.1,
        'tauRef': 2.0
    }

    cell = Cell(id='ifcell', pynn_cell='IF_curr_alpha')

    cell.parameters = {
        'tau_m': 'tauMem',
        'tau_refrac': 'tauRef',
        'v_rest': -70,
        'v_reset': -70,
        'v_thresh': -50,
        'cm': 0.001,
        "i_offset": 0
    }

    #cell = Cell(id='hhcell', neuroml2_source_file='test_files/hhcell.cell.nml')
    net.cells.append(cell)

    poisson_input = Cell(id='poisson_input', pynn_cell='SpikeSourcePoisson')
    poisson_input.parameters = {'rate': 'in_rate', 'start': 0, 'duration': 1e9}
    net.cells.append(poisson_input)

    r1 = RectangularRegion(id='region1',
                           x=0,
                           y=0,
                           z=0,
                           width=1000,
                           height=100,
                           depth=1000)
    net.regions.append(r1)

    pE = Population(id='Excitatory',
                    size='4*order',
                    component=cell.id,
                    properties={
                        'color': '.9 0 0',
                        'radius': 5
                    },
                    random_layout=RandomLayout(region=r1.id))
    pEpoisson = Population(id='expoisson',
                           size='4*order',
                           component=poisson_input.id,
                           properties={
                               'color': '0.9 0.7 0.7',
                               'radius': 3
                           },
                           random_layout=RandomLayout(region=r1.id))
    pI = Population(id='Inhibitory',
                    size='1*order',
                    component=cell.id,
                    properties={
                        'color': '0 0 .9',
                        'radius': 5
                    },
                    random_layout=RandomLayout(region=r1.id))
    pIpoisson = Population(id='inpoisson',
                           size='1*order',
                           component=poisson_input.id,
                           properties={
                               'color': '0.7 0.7 0.9',
                               'radius': 3
                           },
                           random_layout=RandomLayout(region=r1.id))

    net.populations.append(pE)
    net.populations.append(pEpoisson)
    net.populations.append(pI)
    net.populations.append(pIpoisson)

    net.synapses.append(
        Synapse(id='ampa',
                pynn_receptor_type='excitatory',
                pynn_synapse_type='curr_alpha',
                parameters={'tau_syn': 0.1}))

    net.synapses.append(
        Synapse(id='gaba',
                pynn_receptor_type='inhibitory',
                pynn_synapse_type='curr_alpha',
                parameters={'tau_syn': 0.1}))

    delay_ext = dt

    net.projections.append(
        Projection(id='projEinput',
                   presynaptic=pEpoisson.id,
                   postsynaptic=pE.id,
                   synapse='ampa',
                   delay=delay_ext,
                   weight=0.01,
                   one_to_one_connector=OneToOneConnector()))

    net.projections.append(
        Projection(id='projIinput',
                   presynaptic=pIpoisson.id,
                   postsynaptic=pI.id,
                   synapse='ampa',
                   delay=delay_ext,
                   weight=0.01,
                   one_to_one_connector=OneToOneConnector()))

    net.projections.append(
        Projection(
            id='projEE',
            presynaptic=pE.id,
            postsynaptic=pE.id,
            synapse='ampa',
            delay=delay_ext,
            weight='wee * w_scale',
            random_connectivity=RandomConnectivity(probability='epsilon')))

    net.projections.append(
        Projection(
            id='projEI',
            presynaptic=pE.id,
            postsynaptic=pI.id,
            synapse='ampa',
            delay=delay_ext,
            weight='wei * w_scale',
            random_connectivity=RandomConnectivity(probability='epsilon')))

    net.projections.append(
        Projection(
            id='projIE',
            presynaptic=pI.id,
            postsynaptic=pE.id,
            synapse='gaba',
            delay=delay_ext,
            weight='wie * w_scale',
            random_connectivity=RandomConnectivity(probability='epsilon')))

    net.projections.append(
        Projection(
            id='projII',
            presynaptic=pI.id,
            postsynaptic=pI.id,
            synapse='gaba',
            delay=delay_ext,
            weight='wii * w_scale',
            random_connectivity=RandomConnectivity(probability='epsilon')))

    #print(net)
    #print(net.to_json())
    new_file = net.to_json_file('%s.json' % net.id)

    ################################################################################
    ###   Build Simulation object & save as JSON

    sim = Simulation(id='SimSpiking',
                     network=new_file,
                     duration=simtime,
                     dt=dt,
                     seed=123,
                     recordTraces={
                         pE.id: '*',
                         pI.id: '*'
                     },
                     recordSpikes={'all': '*'})

    sim.to_json_file()

    return sim, net
コード例 #22
0
ファイル: ExampleIF.py プロジェクト: pgleeson/rate
def generate():

    dt = 0.025
    simtime = 1000

    ################################################################################
    ###   Build new network

    net = Network(id='ExampleIF')
    net.notes = 'Example with IF'

    net.parameters = {
        'tauMem': 20.0,
        'tauSyn': 0.1,
        'tauRef': 2,
        'V0': -70,
        'theta': -50.0,
        'scale': 1,
        'in_weight': 0.01,
        'in_rate': 50
    }

    ifcell = Cell(id='ifcell', pynn_cell='IF_curr_alpha')

    ifcell.parameters = {
        'tau_m': 'tauMem',
        'tau_refrac': 'tauRef',
        'v_rest': 'V0',
        'v_reset': 'V0',
        'v_thresh': 'theta',
        'cm': 0.001,
        "i_offset": 0
    }

    net.cells.append(ifcell)

    poisson_input = Cell(id='poisson_input', pynn_cell='SpikeSourcePoisson')
    poisson_input.parameters = {'rate': 'in_rate', 'start': 0, 'duration': 1e9}
    net.cells.append(poisson_input)

    r1 = RectangularRegion(id='region1',
                           x=0,
                           y=0,
                           z=0,
                           width=1000,
                           height=100,
                           depth=1000)
    net.regions.append(r1)

    pIF = Population(id='IFpop',
                     size='1*scale',
                     component=ifcell.id,
                     properties={
                         'color': '.9 0 0',
                         'radius': 5
                     },
                     random_layout=RandomLayout(region=r1.id))
    net.populations.append(pIF)

    pLNP = Population(id='LNPpop',
                      size='1*scale',
                      component=ifcell.id,
                      properties={
                          'color': '.9 0.9 0',
                          'radius': 5
                      },
                      random_layout=RandomLayout(region=r1.id))
    net.populations.append(pLNP)

    pEpoisson = Population(id='expoisson',
                           size='10',
                           component=poisson_input.id,
                           properties={
                               'color': '0.9 0.7 0.7',
                               'radius': 3
                           },
                           random_layout=RandomLayout(region=r1.id))

    net.populations.append(pEpoisson)

    net.synapses.append(
        Synapse(id='ampa',
                pynn_receptor_type='excitatory',
                pynn_synapse_type='curr_alpha',
                parameters={'tau_syn': 0.1}))

    net.projections.append(
        Projection(id='proj0',
                   presynaptic=pEpoisson.id,
                   postsynaptic=pIF.id,
                   synapse='ampa',
                   delay=0,
                   weight='in_weight',
                   random_connectivity=RandomConnectivity(probability=0.7)))

    net.projections.append(
        Projection(id='proj1',
                   presynaptic=pEpoisson.id,
                   postsynaptic=pLNP.id,
                   synapse='ampa',
                   delay=0,
                   weight='in_weight',
                   random_connectivity=RandomConnectivity(probability=0.7)))

    #print(net)
    #print(net.to_json())
    new_file = net.to_json_file('%s.json' % net.id)

    ################################################################################
    ###   Build Simulation object & save as JSON

    sim = Simulation(id='SimExampleIF',
                     network=new_file,
                     duration=simtime,
                     dt=dt,
                     seed=123,
                     recordTraces={pIF.id: '*'},
                     recordSpikes={'all': '*'})

    sim.to_json_file()

    return sim, net
コード例 #23
0
ファイル: GenerateExample.py プロジェクト: pgleeson/rate
net.synapses.append(Synapse(id='ampaSyn', 
                            pynn_receptor_type='excitatory', 
                            pynn_synapse_type='cond_alpha', 
                            parameters={'e_rev':-10, 'tau_syn':2}))
                            
net.synapses.append(Synapse(id='gabaSyn', 
                            pynn_receptor_type='inhibitory', 
                            pynn_synapse_type='cond_alpha', 
                            parameters={'e_rev':-80, 'tau_syn':10}))
                            
                            
net.projections.append(Projection(id='projEI',
                                  presynaptic=pE.id, 
                                  postsynaptic=pI.id,
                                  synapse='ampaSyn',
                                  delay=1,
                                  weight='Wei',
                                  random_connectivity=RandomConnectivity(probability=.8)))
                                  
net.projections.append(Projection(id='projIE',
                                  presynaptic=pI.id, 
                                  postsynaptic=pE.id,
                                  synapse='gabaSyn',
                                  delay=1,
                                  weight='Wie',
                                  random_connectivity=RandomConnectivity(probability=.8)))
                            
                            
net.inputs.append(Input(id='stim',
                        input_source=input_source.id,
コード例 #24
0
ファイル: Example4.py プロジェクト: sanjayankur31/NeuroMLlite
net.synapses.append(
    Synapse(
        id="gabaSyn",
        pynn_receptor_type="inhibitory",
        pynn_synapse_type="cond_alpha",
        parameters={
            "e_rev": -80,
            "tau_syn": 10
        },
    ))

net.projections.append(
    Projection(
        id="proj0",
        presynaptic=p0.id,
        postsynaptic=p1.id,
        synapse="ampaSyn",
        delay=2,
        weight=0.02,
    ))
net.projections[0].random_connectivity = RandomConnectivity(probability=1)

net.projections.append(
    Projection(
        id="proj1",
        presynaptic=p0.id,
        postsynaptic=p2.id,
        synapse="gabaSyn",
        delay=2,
        weight=0.01,
    ))
net.projections[1].random_connectivity = RandomConnectivity(probability=1)
コード例 #25
0
        print('Adding conn from %s to %s with FLN: %s'%(src,tgt,fln))
        for pop_id in [tgt,src]:
            if not pop_id in pop_ids:
                p0 = Population(id=pop_id, size=1, component='iaf', properties={'color':'%s %s %s'%(random.random(),random.random(),random.random())})

                net.populations.append(p0)
                pop_ids.append(pop_id)


        ################################################################################
        ###   Add a projection

        if fln>0.0:
            net.projections.append(Projection(id='proj_%s_%s'%(src,tgt),
                                              presynaptic=src, 
                                              postsynaptic=tgt,
                                              synapse='ampa',
                                              weight=fln))

            #net.projections[0].random_connectivity=RandomConnectivity(probability=0.5)



print(net)
net.id = 'TestNetwork'

print(net.to_json())
new_file = net.to_json_file('Example1_%s.json'%net.id)


################################################################################
コード例 #26
0
def generate():

    dt = 0.1
    simtime = 1

    ################################################################################
    ###   Build new network

    net = Network(id='ABC')
    net.notes = 'Example of simplified network'

    net.parameters = {'A_initial': 0, 'A_slope': 5}

    cellInput = Cell(id='a_input',
                     lems_source_file='PNL.xml',
                     parameters={'variable': 'A_initial'})
    net.cells.append(cellInput)

    cellA = Cell(id='a',
                 lems_source_file='PNL.xml',
                 parameters={'slope': 'A_slope'})
    net.cells.append(cellA)
    cellB = Cell(id='b', lems_source_file='PNL.xml')
    net.cells.append(cellB)
    cellC = Cell(id='c', lems_source_file='PNL.xml')
    net.cells.append(cellC)

    rsDL = Synapse(id='rsDL', lems_source_file='PNL.xml')
    net.synapses.append(rsDL)

    r1 = RectangularRegion(id='region1',
                           x=0,
                           y=0,
                           z=0,
                           width=1000,
                           height=100,
                           depth=1000)
    net.regions.append(r1)

    pAin = Population(id='A_input',
                      size='1',
                      component=cellInput.id,
                      properties={
                          'color': '0.2 0.2 0.2',
                          'radius': 3
                      },
                      random_layout=RandomLayout(region=r1.id))
    net.populations.append(pAin)

    pA = Population(id='A',
                    size='1',
                    component=cellA.id,
                    properties={
                        'color': '0 0.9 0',
                        'radius': 5
                    },
                    random_layout=RandomLayout(region=r1.id))
    net.populations.append(pA)

    pB = Population(id='B',
                    size='1',
                    component=cellB.id,
                    properties={
                        'color': '.9 0 0',
                        'radius': 5
                    },
                    random_layout=RandomLayout(region=r1.id))
    net.populations.append(pB)

    pC = Population(id='C',
                    size='1',
                    component=cellC.id,
                    properties={
                        'color': '0.7 0 0',
                        'radius': 5
                    },
                    random_layout=RandomLayout(region=r1.id))
    net.populations.append(pC)

    silentDLin = Synapse(id='silentSyn_proj_input', lems_source_file='PNL.xml')
    net.synapses.append(silentDLin)
    net.projections.append(
        Projection(id='proj_input',
                   presynaptic=pA.id,
                   postsynaptic=pB.id,
                   synapse=rsDL.id,
                   pre_synapse=silentDLin.id,
                   type='continuousProjection',
                   weight=1,
                   random_connectivity=RandomConnectivity(probability=1)))

    silentDL0 = Synapse(id='silentSyn_proj0', lems_source_file='PNL.xml')
    net.synapses.append(silentDL0)
    net.projections.append(
        Projection(id='proj0',
                   presynaptic=pAin.id,
                   postsynaptic=pA.id,
                   synapse=rsDL.id,
                   pre_synapse=silentDL0.id,
                   type='continuousProjection',
                   weight=1,
                   random_connectivity=RandomConnectivity(probability=1)))

    silentDL1 = Synapse(id='silentSyn_proj1', lems_source_file='PNL.xml')
    net.synapses.append(silentDL1)
    net.projections.append(
        Projection(id='proj1',
                   presynaptic=pA.id,
                   postsynaptic=pC.id,
                   synapse=rsDL.id,
                   pre_synapse=silentDL1.id,
                   type='continuousProjection',
                   weight=1,
                   random_connectivity=RandomConnectivity(probability=1)))

    new_file = net.to_json_file('%s.json' % net.id)

    ################################################################################
    ###   Build Simulation object & save as JSON

    sim = Simulation(id='Sim%s' % net.id,
                     network=new_file,
                     duration=simtime,
                     dt=dt,
                     seed=123,
                     recordVariables={
                         'OUTPUT': {
                             'all': '*'
                         },
                         'INPUT': {
                             'all': '*'
                         }
                     })

    sim.to_json_file()

    return sim, net
コード例 #27
0
ファイル: Example8.py プロジェクト: NeuroML/NeuroMLlite
net.populations.append(pRS)

net.synapses.append(
    Synapse(id="ampa", neuroml2_source_file="test_files/ampa.synapse.nml")
)
net.synapses.append(
    Synapse(id="gaba", neuroml2_source_file="test_files/gaba.synapse.nml")
)


net.projections.append(
    Projection(
        id="projEI",
        presynaptic=pE.id,
        postsynaptic=pRS.id,
        synapse="ampa",
        delay=2,
        weight=0.2,
        random_connectivity=RandomConnectivity(probability=0.8),
    )
)


net.inputs.append(
    Input(
        id="stim",
        input_source=input_source.id,
        population=pE.id,
        percentage=50,
        weight="weightInput",
    )
コード例 #28
0
net.populations.append(p1)
net.populations.append(p2)'''

net.synapses.append(
    Synapse(id='ampaSyn',
            pynn_receptor_type='excitatory',
            pynn_synapse_type='cond_alpha',
            parameters={
                'e_rev': -10,
                'tau_syn': 2
            }))

net.projections.append(
    Projection(id='proj0',
               presynaptic=p0.id,
               postsynaptic=p1.id,
               synapse='ampaSyn',
               delay='5',
               weight='0.0001*random()'))

net.projections[0].random_connectivity = RandomConnectivity(probability=0.5)
'''
net.synapses.append(Synapse(id='gabaSyn',
                            pynn_receptor_type='inhibitory',
                            pynn_synapse_type='cond_alpha',
                            parameters={'e_rev':-80, 'tau_syn':10}))


net.projections.append(Projection(id='proj1',
                                  presynaptic=p0.id,
                                  postsynaptic=p2.id,
                                  synapse='gabaSyn',