def simulate(): print "running" #if modelscales_select.value == "No_Models": #print modelscales_select.value #else: #print modelscales_select.value print pwd sys.path.append(pwd) # uncomment only when using executiveViz ec = ExecutiveControl() modelscale = models_select.value.split()[0] modelname = models_select.value.split()[1] chosenmodel = ec.choose_model(modelscale=modelscale, modelname=modelname) parameters = ast.literal_eval(runtime_input.value) print parameters print stimulation.value if stimulation.value == "yes": stimparameters = ast.literal_eval(stim_type_input.value) stimparameters.update( {"stimlist": ast.literal_eval(stim_list_input.value)}) ec.launch_model(parameters=parameters, onmodel=chosenmodel, stimparameters=stimparameters, stimloc=stim_loc_input.value) #with Profiler() as prof, ResourceProfiler() as rprof: # ec.launch_model ( parameters=parameters, onmodel=chosenmodel, # stimparameters=stimparameters, stimloc=stim_loc_input.value ) else: ec.launch_model(parameters=parameters, onmodel=chosenmodel) #with Profiler() as prof, ResourceProfiler() as rprof: # ec.launch_model( parameters=parameters, onmodel=chosenmodel ) #myplot = visualize([prof, rprof]) ec.save_response() print "done running"
def update_global_model(attr, old, new): menu_list = new.split() modelscale = menu_list[0] # update global modelscale modelname = menu_list[1] # update glocal modelname #print modelscale, modelname sys.path.append(pwd) # uncomment only when using executiveViz chosenmodel = ExecutiveControl.choose_model(modelscale=str(modelscale), modelname=str(modelname)) modeltitle.text = chosenmodel.name modeldescr.text = chosenmodel.description modelregions.text = "Potential stimulation sites: " + str( chosenmodel.regions) runmodel.disabled = False
def __init__(self, model, validation_test, alpha=0.05, epsilon=5): """ This constructor method initializes the dictionary ``.model``, validation test ``.validation_test``, level of significance ``.alpha`` and error limit (Epsilon) ``.epsilon``. Default value for ``.alpha`` is set to 0.05 while value of ``.epsilon`` is set to 5. """ self.level_of_significance = alpha self.epsilon = epsilon self.modelscale = model["modelscale"] self.modelname = model["modelname"] self.validation_test = validation_test from executive import ExecutiveControl as ec self.exc = ec() self.desired_model = ec.choose_model(modelscale=self.modelscale, modelname=self.modelname)
class ExecutiveControlTest(unittest.TestCase): def setUp(self): self.ec = ExecutiveControl( ) #instance for non: static & class methods. self.pwd = os.getcwd() #@unittest.skip("reason for skipping") def test_1_list_modelscales(self): x = len(self.ec.list_modelscales()) != 0 self.assertEqual(x, True) #@unittest.skip("reason for skipping") def test_2_list_models(self): dummyscale_path = self.pwd + os.sep + "models" + os.sep + "dummyscale" for i in range(3): # create three dummymodels os.makedirs(dummyscale_path + os.sep + "dummymodel" + str(i + 1)) self.assertEqual(len(self.ec.list_models(modelscale="dummyscale")), 3) shutil.rmtree(dummyscale_path) #@unittest.skip("reason for skipping") def test_3_choose_model(self): # NOTE: this only works if the 'minimal' script # ~/models/cells/model2015Masoli.py exists # 'minimal' => a class with __init__ method with # self.modelname = "PC2015Masoli.py" x = self.ec.choose_model(modelscale="cells", modelname="PC2015Masoli") #"DummyTest" self.assertEqual(x.modelname, "PC2015Masoli") #@unittest.skip("reason for skipping") def test_4_launch_model_NEURON_nostimulus_with_capability(self): pickedmodel = self.ec.choose_model(modelscale="cells", modelname="DummyTest") parameters = {"dt": 0.01, "celsius": 30, "tstop": 100, "v_init": 65} self.assertEqual( self.ec.launch_model(parameters=parameters, onmodel=pickedmodel, capabilities={ 'model': None, 'vtest': None }), pickedmodel) @unittest.skip("reason for skipping") def test_5_launch_model_NEURON_nostimulus_raw(self): pickedmodel = self.ec.choose_model(modelscale="cells", modelname="PC2015Masoli") parameters = {"dt": 0.1, "celsius": 30, "tstop": 10, "v_init": 65} self.assertEqual( self.ec.launch_model(parameters=parameters, onmodel=pickedmodel), pickedmodel) @unittest.skip("reason for skipping") def test_6_save_response(self): pickedmodel = self.ec.choose_model(modelscale="cells", modelname="PC2015Masoli") parameters = {"dt": 0.1, "celsius": 30, "tstop": 10, "v_init": 65} stimparameters = { "type": ["current", "IClamp"], "stimlist": [{ "amp": 0.5, "dur": 5.0, "delay": 1.0 }, { "amp": 1.0, "dur": 5.0, "delay": 0.0 + 5.0 }], "tstop": parameters["tstop"] } model = self.ec.launch_model(parameters=parameters, onmodel=pickedmodel, stimparameters=stimparameters, stimloc="soma") fullfilename = self.ec.save_response() # sesstime = str(self.ec.tm.nwbfile.session_start_time).replace( " ", "_")[0:-6] filename_shouldbe = self.ec.tm.nwbfile.session_id + "_" + sesstime.replace( ":", "-") + ".h5" # path = os.getcwd( ) + os.sep + "responses" + os.sep + model.modelscale + os.sep + model.modelname shutil.rmtree(path) # fullname_shouldbe = path + os.sep + filename_shouldbe # self.assertEqual(fullfilename, fullname_shouldbe)