def configure(self, dt=2**-3, model=models.Generic2dOscillator, speed=4.0, coupling_strength=0.00042, method="HeunDeterministic", surface_sim=False, default_connectivity=True): """ Create an instance of the Simulator class, by default use the generic plane oscillator local dynamic model and the deterministic version of Heun's method for the numerical integration. """ self.method = method if default_connectivity: white_matter = connectivity.Connectivity(load_default=True) # NOTE: This is the default region mapping should consider changing the name. region_mapping = RegionMapping.from_file( source_file= "cortex_reg13/region_mapping/o52r00_irp2008_hemisphere_both_subcortical_false_regions_74.txt.bz2" ) else: white_matter = connectivity.Connectivity.from_file( source_file="connectivity_190.zip") region_mapping = RegionMapping.from_file( source_file= "cortex_reg13/region_mapping/o52r00_irp2008_hemisphere_both_subcortical_true_regions_190.txt.bz2" ) white_matter_coupling = coupling.Linear(a=coupling_strength) white_matter.speed = speed dynamics = model() if method[-10:] == "Stochastic": hisss = noise.Additive(nsig=numpy.array([2**-11])) integrator = eval("integrators." + method + "(dt=dt, noise=hisss)") else: integrator = eval("integrators." + method + "(dt=dt)") if surface_sim: local_coupling_strength = numpy.array([2**-10]) default_cortex = Cortex(load_default=True, region_mapping_data=region_mapping) default_cortex.coupling_strength = local_coupling_strength default_cortex.local_connectivity = LocalConnectivity( load_default=default_connectivity, surface=default_cortex) else: default_cortex = None # Order of monitors determines order of returned values. self.sim = simulator.Simulator(model=dynamics, connectivity=white_matter, coupling=white_matter_coupling, integrator=integrator, monitors=self.monitors, surface=default_cortex) self.sim.configure()
def configure(self, dt=2 ** -3, model=models.Generic2dOscillator, speed=4.0, coupling_strength=0.00042, method="HeunDeterministic", surface_sim=False, default_connectivity=True): """ Create an instance of the Simulator class, by default use the generic plane oscillator local dynamic model and the deterministic version of Heun's method for the numerical integration. """ self.method = method if default_connectivity: white_matter = Connectivity(load_file="connectivity_76.zip") region_mapping = RegionMapping(load_file="regionMapping_16k_76.txt") else: white_matter = Connectivity(load_file="connectivity_192.zip") region_mapping = RegionMapping(load_file="regionMapping_16k_192.txt") white_matter_coupling = coupling.Linear(a=coupling_strength) white_matter.speed = speed dynamics = model() if method[-10:] == "Stochastic": hisss = noise.Additive(nsig=numpy.array([2 ** -11])) integrator = eval("integrators." + method + "(dt=dt, noise=hisss)") else: integrator = eval("integrators." + method + "(dt=dt)") if surface_sim: local_coupling_strength = numpy.array([2 ** -10]) default_cortex = Cortex(region_mapping_data=region_mapping, load_file="cortex_16384.zip") default_cortex.coupling_strength = local_coupling_strength default_cortex.local_connectivity = LocalConnectivity(load_file="local_connectivity_16384.mat") else: default_cortex = None # Order of monitors determines order of returned values. self.sim = simulator.Simulator(model=dynamics, connectivity=white_matter, coupling=white_matter_coupling, integrator=integrator, monitors=self.monitors, surface=default_cortex) self.sim.configure()
def test_cortexdata(self): dt = Cortex(load_default=True) assert isinstance(dt, Cortex) assert dt.region_mapping is not None ## Initialize Local Connectivity, to avoid long computation time. dt.local_connectivity = LocalConnectivity(load_default=True) dt.configure() summary_info = dt.summary_info assert abs(summary_info['Region area, maximum (mm:math:`^2`)'] - 9333.39) < 0.01 assert abs(summary_info['Region area, mean (mm:math:`^2`)'] - 3038.51) < 0.01 assert abs(summary_info['Region area, minimum (mm:math:`^2`)'] - 540.90) < 0.01 assert dt.get_data_shape('vertices') == (16384, 3) assert dt.get_data_shape('vertex_normals') == (16384, 3) assert dt.get_data_shape('triangles') == (32760, 3)
def test_cortexdata(self): dt = Cortex(load_file="cortex_16384.zip", region_mapping_data=RegionMapping( load_file="regionMapping_16k_76.txt")) assert isinstance(dt, Cortex) assert dt.region_mapping_data is not None ## Initialize Local Connectivity, to avoid long computation time. dt.local_connectivity = LocalConnectivity( load_file="local_connectivity_16384.mat") dt.configure() summary_info = dt._find_summary_info() assert abs(summary_info['Region area, maximum (mm:math:`^2`)'] - 9333.39) < 0.01 assert abs(summary_info['Region area, mean (mm:math:`^2`)'] - 3038.51) < 0.01 assert abs(summary_info['Region area, minimum (mm:math:`^2`)'] - 540.90) < 0.01 assert dt.vertices.shape == (16384, 3) assert dt.vertex_normals.shape == (16384, 3) assert dt.triangles.shape == (32760, 3)
def test_cortexdata(self): dt = Cortex(load_default=True) self.assertTrue(isinstance(dt, Cortex)) self.assertTrue(dt.region_mapping is not None) ## Initialize Local Connectivity, to avoid long computation time. dt.local_connectivity = LocalConnectivity(load_default=True) dt.configure() summary_info = dt.summary_info self.assertTrue( abs(summary_info['Region area, maximum (mm:math:`^2`)'] - 9119.4540365252615) < 0.00000001) self.assertTrue( abs(summary_info['Region area, mean (mm:math:`^2`)'] - 3366.2542250541251) < 0.00000001) self.assertTrue( abs(summary_info['Region area, minimum (mm:math:`^2`)'] - 366.48271886512993) < 0.00000001) self.assertEqual(dt.get_data_shape('vertices'), (16384, 3)) self.assertEqual(dt.get_data_shape('vertex_normals'), (16384, 3)) self.assertEqual(dt.get_data_shape('triangles'), (32760, 3))
#Bundle them what_to_watch = (mon_tavg, mon_savg, mon_eeg) #Initialise a surface: #First define the function describing the "local" connectivity. grey_matter = LocalConnectivity(cutoff=40.0) grey_matter.equation.parameters['sigma'] = 10.0 grey_matter.equation.parameters['amp'] = 1.0 #then a scaling factor, to adjust the strength of the local connectivity local_coupling_strength = numpy.array([-0.0115]) #finally, create a default cortex that includes the custom local connectivity. default_cortex = Cortex(load_default=True) default_cortex.local_connectivity = grey_matter default_cortex.coupling_strength = local_coupling_strength #Initialise Simulator -- Model, Connectivity, Integrator, Monitors, and surface. sim = simulator.Simulator(model=oscillator, connectivity=white_matter, integrator=heunint, monitors=what_to_watch, surface=default_cortex) sim.configure() LOG.info("Starting simulation...") #Perform the simulation tavg_data = [] tavg_time = [] savg_data = []