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()
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()
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()