コード例 #1
0
def test_new_sim():
     #src_files = sorted( glob.glob("/home/michael/hw_to_come//NeuroUnits/src/test_data/l4-9ml/std/*.9ml" ))
     src_files = Locations.get_default_9ml_locations()
     print src_files

     obj_cache_file = 'obj_cache.txt'

     if not os.path.exists(obj_cache_file):
         library_manager = neurounits.NeuroUnitParser.Parse9MLFiles( src_files)
         general_neuron_with_step_inj = library_manager.get('general_neuron_with_step_inj')
         comp = NineMLComponent.build_compound_component(
                 component_name = 'Test1',
                 instantiate={
                     'o1': general_neuron_with_step_inj,
                     'o2': general_neuron_with_step_inj,
                     'o3': general_neuron_with_step_inj,
                     'o4': general_neuron_with_step_inj,
                     },
                 event_connections= [ 
                     ('o1/syntrigger/spike', 'o2/nrn/syn_excit/event'),  
                     ('o1/syntrigger/spike', 'o2/nrn/syn_inhib/event'),  
                     ('o1/syntrigger/spike', 'o3/nrn/syn_excit/event'),  
                     ('o2/syntrigger/spike', 'o3/nrn/syn_excit/event'),  

                     ('o4/syntrigger/spike', 'o2/nrn/syn_excit/event'),  
                     ('o3/syntrigger/spike', 'o4/nrn/syn_excit/event'),  
                    ]
                 )

     else:
         with open(obj_cache_file) as fin:
            comp = cPickle.load(fin) 

     # Write the cache:
     with open(obj_cache_file,'w') as fout:
        cPickle.dump(comp, fout) 




     # Old version:
     #res = general_neuron_with_step_inj.simulate( times = np.arange(0, 0.1,0.00001),)
     #res = comp.simulate( times = np.arange(0, 0.1,0.00001),)

     # New versions:
     #res = neurounits.codegen.python.simulate(comp, times = np.arange(0, 0.5,0.0001),)


     
     res = neurounits.codegen.cpp1.simulate(comp, times = np.arange(0, 0.5,0.0001),)

     res.auto_plot()
コード例 #2
0
ファイル: test_new_sim.py プロジェクト: Python3pkg/NeuroUnits
def test_new_sim():
    #src_files = sorted( glob.glob("/home/michael/hw_to_come//NeuroUnits/src/test_data/l4-9ml/std/*.9ml" ))
    src_files = Locations.get_default_9ml_locations()
    print src_files

    obj_cache_file = 'obj_cache.txt'

    if not os.path.exists(obj_cache_file):
        library_manager = neurounits.NeuroUnitParser.Parse9MLFiles(src_files)
        general_neuron_with_step_inj = library_manager.get(
            'general_neuron_with_step_inj')
        comp = NineMLComponent.build_compound_component(
            component_name='Test1',
            instantiate={
                'o1': general_neuron_with_step_inj,
                'o2': general_neuron_with_step_inj,
                'o3': general_neuron_with_step_inj,
                'o4': general_neuron_with_step_inj,
            },
            event_connections=[
                ('o1/syntrigger/spike', 'o2/nrn/syn_excit/event'),
                ('o1/syntrigger/spike', 'o2/nrn/syn_inhib/event'),
                ('o1/syntrigger/spike', 'o3/nrn/syn_excit/event'),
                ('o2/syntrigger/spike', 'o3/nrn/syn_excit/event'),
                ('o4/syntrigger/spike', 'o2/nrn/syn_excit/event'),
                ('o3/syntrigger/spike', 'o4/nrn/syn_excit/event'),
            ])

    else:
        with open(obj_cache_file) as fin:
            comp = cPickle.load(fin)

    # Write the cache:
    with open(obj_cache_file, 'w') as fout:
        cPickle.dump(comp, fout)

    # Old version:
    #res = general_neuron_with_step_inj.simulate( times = np.arange(0, 0.1,0.00001),)
    #res = comp.simulate( times = np.arange(0, 0.1,0.00001),)

    # New versions:
    #res = neurounits.codegen.python.simulate(comp, times = np.arange(0, 0.5,0.0001),)

    res = neurounits.codegen.cpp1.simulate(
        comp,
        times=np.arange(0, 0.5, 0.0001),
    )

    res.auto_plot()
コード例 #3
0
def test1():
    library_manager =  neurounits.NeuroUnitParser.Parse9MLFile( test_text )
    chlstd_leak = library_manager.get('chlstd_leak')
    std_neuron = library_manager.get('std_neuron')
    step_current = library_manager.get('step_current')
    square_current = library_manager.get('i_squarewave')
    simple_syn1 = library_manager.get('simple_syn')

    evt_gen = library_manager.get('evt_gen')
    evt_syn = library_manager.get('evt_syn')



    c1 = NineMLComponent.build_compound_component(
          component_name = 'Neuron1',
          instantiate = { 'lk': chlstd_leak, 'nrn': std_neuron, 'i_inj':step_current, 'i_square':square_current },
          event_connections = [],
          analog_connections = [
            ('i_inj/i', 'nrn/i_sum'),
            ('lk/i', 'nrn/i_sum'),
            ('i_square/i', 'nrn/i_sum'),
            ('nrn/V', 'lk/V'),
          ],
    )


    c2 = NineMLComponent.build_compound_component(
          component_name = 'Neuron2',
          instantiate = { 'lk': chlstd_leak, 'nrn': std_neuron,},
          event_connections = [],
          analog_connections = [
            ('lk/i', 'nrn/i_sum'),
            ('nrn/V', 'lk/V'),
          ],
    )


    c3 = NineMLComponent.build_compound_component(
          component_name = 'driven_synapse',
          instantiate = { 'spike_gen': evt_gen, 'syn': evt_syn,},
          event_connections = [
            ('spike_gen/myevent', 'syn/myevent' ),
            ],
          analog_connections = [
          ],
    )



    c = NineMLComponent.build_compound_component(
          component_name = 'network',
          instantiate = { 'nrn1': c1, 'nrn2': c2, 'syn1':simple_syn1, 'syn2':c3},
          event_connections = [],
          analog_connections = [
            ('syn1/i','nrn2/nrn/i_sum'),
            ('nrn1/nrn/V','syn1/V_pre'),
            ('nrn2/nrn/V','syn1/V_post'),

            ('syn2/syn/i','nrn2/nrn/i_sum'),
            ('nrn2/nrn/V','syn2/syn/V_post'),
          ],
          )

    res = c.simulate(
                        times = np.linspace(0,1,num=1000),
                        close_reduce_ports=True,
                        parameters={
                            'nrn1/i_inj/i_amp':'5pA',
                            'nrn1/lk/g': '0.1pS/um2',
                            'nrn1/nrn/C': '0.5pF',
                            'nrn1/lk/erev': '-60mV',
                            'nrn1/i_inj/t_start': '500ms',
                            'nrn1/i_square/t_on': '100ms',
                            'nrn1/i_square/t_off': '50ms',
                            'nrn1/i_square/i_amp': '2pA',

                            'nrn2/lk/g': '0.1pS/um2',
                            'nrn2/nrn/C': '0.5pF',
                            'nrn2/lk/erev': '-55mV',

                            'syn1/t_open': '3ms',
                            'syn1/t_close': '10ms',
                            'syn1/g_bar': '100pS',
                            'syn1/e_syn': '0mV',

                            'syn2/syn/t_close':'80ms',
                            'syn2/syn/t_open':'4ms',
                            'syn2/syn/g_bar': '10pS',
                            'syn2/syn/e_syn': '0mV',

                            },
                        initial_state_values={
                            'nrn1/nrn/V': '-50mV',
                            'nrn2/nrn/V': '-60mV',
                            'syn1/A':'0',
                            'syn1/B':'0',

                            'syn2/syn/A':'0',
                            'syn2/syn/B':'0',
                        },
                        initial_regimes={
                            'nrn1/i_inj/':'OFF',
                        }
            )

    f = pylab.figure()
    ax1 = f.add_subplot(3,1,1)
    ax2 = f.add_subplot(3,1,2)
    ax3 = f.add_subplot(3,1,3)
    ax1.set_ylim((-70e-3,50e-3))
    ax1.plot( res.get_time(), res.state_variables['nrn1/nrn/V'] )
    ax1.plot( res.get_time(), res.state_variables['nrn2/nrn/V'] )
    ax1.set_ylabel('nrn1/nrn/V %s' %('??'))
    ax2.plot( res.get_time(), res.state_variables['nrn1/i_square/t_last'] )
    ax3.plot( res.get_time(), res.rt_regimes['nrn1/nrn/']+0.0 , label='nrn1/nrn')
    ax3.plot( res.get_time(), res.rt_regimes['nrn1/i_inj/']+0.1, label='nrn1/i_inj')
    ax3.plot( res.get_time(), res.rt_regimes['nrn1/i_square/']+0.2,label='nrn1/i_square' )
    ax3.legend()