Example #1
0
 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"
Example #2
0
 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
Example #3
0
    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)
Example #4
0
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)