Пример #1
0
    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
Пример #2
0
    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