def __init__( self, simu_path, paramtree=None, measuretree=None, load=False, n_simu=100, initial_plug="random", parallel=True, verbose=True, ): self.verbose = verbose if not self.verbose: log.disabled = True else: log.disabled = False self.simu_path = simu_path if not load: self.paramtree = paramtree self.measuretree = measuretree self.initial_plug = initial_plug self.parallel = parallel self.n_simu = n_simu # Create a folder. Raise an exeception if it exists. if os.path.isdir(self.simu_path): raise FolderExistException("%s exists." % self.simu_path) else: os.makedirs(self.simu_path) self.metaphases_path = [] self.simus_run = False self.digits = int(math.log10(self.n_simu)) + 1 # Create metadata.h5 files # with paramtree, measuretree, intial_plug, # parallel, date/time, n_simu store = pd.HDFStore(os.path.join(self.simu_path, "metadata.h5")) store["params"] = paramtree.to_df() store["measures"] = measuretree.to_df() metadata = pd.Series( { "n_simu": self.n_simu, "parallel": self.parallel, "initial_plug": initial_plug, "datetime": str(datetime.datetime.now()), } ) store["metadata"] = metadata store.close() else: if not os.path.isdir(self.simu_path): raise FolderNotExistException("%s does not exists." % self.simu_path) store = pd.HDFStore(os.path.join(self.simu_path, "metadata.h5")) self.paramtree = ParamTree(root=build_tree(store["params"])) self.measuretree = ParamTree(root=build_tree(store["measures"]), adimentionalized=False) self.n_simu = store["metadata"]["n_simu"] self.parallel = store["metadata"]["parallel"] self.initial_plug = store["metadata"]["initial_plug"] store.close() self.metaphases_path = [] self.digits = int(math.log10(self.n_simu)) + 1 for i in range(self.n_simu): fname = "simu_%s.h5" % (str(i).zfill(self.digits)) self.metaphases_path.append(os.path.join(self.simu_path, fname)) self.simus_run = True
def __init__(self, multi_pool_path, parameters=None, trees=None, paramtree=None, measuretree=None, load=False, n_simu=10, initial_plug='random', parallel=True, verbose=True): self.verbose = verbose if not self.verbose: log.disabled = True else: log.disabled = False self.multi_pool_path = multi_pool_path if not load: # Create a folder. Raise an exeception if it exists. if os.path.isdir(self.multi_pool_path): raise FolderExistException("%s exists." % self.multi_pool_path) else: os.makedirs(self.multi_pool_path) self.parameters = parameters self.paramtree = paramtree self.measuretree = measuretree self.n_simu = n_simu self.parallel = parallel self.initial_plug = initial_plug self.trees = trees self.simus_run = False self._build_path() store = pd.HDFStore( os.path.join(self.multi_pool_path, "metadata.h5")) store['simus_path'] = self.simus_path store['params'] = paramtree.to_df() store['measures'] = measuretree.to_df() metadata = pd.Series({'n_simu': self.n_simu, 'parallel': self.parallel, 'initial_plug': initial_plug, 'datetime': str(datetime.datetime.now())}) store['metadata'] = metadata store.close() else: if not os.path.isdir(self.multi_pool_path): raise FolderNotExistException( "%s does not exists." % self.multi_pool_path) self.simus_run = True store = pd.HDFStore( os.path.join(self.multi_pool_path, "metadata.h5")) self.simus_path = store['simus_path'] self.paramtree = ParamTree(root=build_tree(store['params'])) self.measuretree = ParamTree(root=build_tree(store['measures']), adimentionalized=False) self.n_simu = store['metadata']['n_simu'] self.parallel = store['metadata']['parallel'] self.initial_plug = store['metadata']['initial_plug'] store.close() self.load_pools() self.parameter_labels = self.simus_path.index.values