def test_fhn_brain_network_exploration(self): ds = Dataset("hcp") model = FHNModel(Cmat=ds.Cmat, Dmat=ds.Dmat) model.params.duration = 10 * 1000 # ms model.params.dt = 0.2 model.params.bold = True parameters = ParameterSpace( { "x_ext": [np.ones((model.params["N"],)) * a for a in np.linspace(0, 2, 2)], "K_gl": np.linspace(0, 2, 2), "coupling": ["additive", "diffusive"], }, kind="grid", ) search = BoxSearch(model=model, parameterSpace=parameters, filename="test_fhn_brain_network_exploration.hdf") search.run(chunkwise=True, bold=True) pu.getTrajectorynamesInFile(os.path.join(paths.HDF_DIR, "test_fhn_brain_network_exploration.hdf")) search.loadDfResults() search.getRun(0, pypetShortNames=True) search.getRun(0, pypetShortNames=False) search.loadResults() # firing rate xr dataarray = search.xr() self.assertTrue(isinstance(dataarray, xr.DataArray)) self.assertFalse(dataarray.attrs) # bold xr dataarray = search.xr(bold=True) self.assertTrue(isinstance(dataarray, xr.DataArray)) self.assertFalse(dataarray.attrs) search.info()
def test_multimodel_explore(self): start = time.time() DELAY = 13.0 fhn_net = FitzHughNagumoNetwork(np.random.rand(2, 2), np.array([[0.0, DELAY], [DELAY, 0.0]])) model = MultiModel(fhn_net) parameters = ParameterSpace({"*noise*sigma": [0.0, 0.05], "*epsilon*": [0.5, 0.6]}, allow_star_notation=True) search = BoxSearch(model, parameters, filename="test_multimodel.hdf") search.run() search.loadResults() dataarray = search.xr() self.assertTrue(isinstance(dataarray, xr.DataArray)) self.assertTrue(isinstance(dataarray.attrs, dict)) self.assertListEqual(list(dataarray.attrs.keys()), list(parameters.dict().keys())) end = time.time() logging.info("\t > Done in {:.2f} s".format(end - start))
def test_single_node(self): start = time.time() model = ALNModel() parameters = ParameterSpace({"mue_ext_mean": np.linspace(0, 3, 2), "mui_ext_mean": np.linspace(0, 3, 2)}) search = BoxSearch(model, parameters, filename="test_single_nodes.hdf") search.run() search.loadResults() dataarray = search.xr() self.assertTrue(isinstance(dataarray, xr.DataArray)) self.assertFalse(dataarray.attrs) for i in search.dfResults.index: search.dfResults.loc[i, "max_r"] = np.max( search.results[i]["rates_exc"][:, -int(1000 / model.params["dt"]) :] ) end = time.time() logging.info("\t > Done in {:.2f} s".format(end - start))