예제 #1
0
def reaction_leaf(prefix, root_ds=None):
    """ reaction leaf DataSeries

    :param prefix: path to leaf
    :type prefix: string
    :return: dataseries filesystem object for leaf
    :type: DataSeries
    """
    loc_dfile = data_files.locator(
        file_prefix=SPEC_FILE_PREFIX,
        map_dct_={
            'inchis':
            lambda locs: locs[0],
            'charges':
            lambda locs: locs[1],
            'multiplicities':
            lambda locs: locs[2],
            'ts_multiplicity':
            lambda locs: locs[3],
            'smiles':
            lambda locs: [
                list(map(automol.inchi.smiles, locs[0][0])),
                list(map(automol.inchi.smiles, locs[0][1]))
            ],
        },
        loc_keys=['inchis', 'charges', 'multiplicities', 'ts_multiplicity'])

    _map = _pack_arguments(loc_maps.reaction_leaf)
    nlocs = _count_arguments(loc_maps.reaction_leaf)
    return model.DataSeries(prefix,
                            map_=_map,
                            nlocs=nlocs,
                            depth=11,
                            loc_dfile=loc_dfile,
                            root_ds=root_ds)
예제 #2
0
def species_leaf(prefix, root_ds=None):
    """ species leaf DataSeries

    :param prefix: path to leaf
    :type prefix: string
    :return: dataseries filesystem object for leaf
    :type: DataSeries
    """
    loc_dfile = data_files.locator(
        file_prefix=SPEC_FILE_PREFIX,
        map_dct_={
            'inchi': lambda locs: locs[0],
            'charge': lambda locs: locs[1],
            'multiplicity': lambda locs: locs[2],
            'smiles': lambda locs: automol.inchi.smiles(locs[0])
        },
        loc_keys=['inchi', 'charge', 'multiplicity'])

    _map = _pack_arguments(loc_maps.species_leaf)
    nlocs = _count_arguments(loc_maps.species_leaf)
    return model.DataSeries(prefix,
                            map_=_map,
                            nlocs=nlocs,
                            depth=5,
                            loc_dfile=loc_dfile,
                            root_ds=root_ds)
예제 #3
0
def cscan_branch1(prefix, root_ds=None):
    """ constrained scan branch 2 DataSeries

    :param prefix: path to branch
    :type prefix: string
    :return: dataseries filesystem object for branch
    :type: DataSeries
    """
    def _round_values(val_dct):
        names = list(val_dct.keys())
        vals = [float(round(val, 2)) for val in val_dct.values()]
        val_dct = dict(zip(names, vals))
        return val_dct

    loc_dfile = data_files.locator(
        file_prefix=SPEC_FILE_PREFIX,
        map_dct_={'cons_coo_vals': lambda locs: _round_values(locs[0])},
        loc_keys=['cons_coo_vals'])

    _map = _pack_arguments(loc_maps.cscan_branch1)
    nlocs = _count_arguments(loc_maps.cscan_branch1)
    return model.DataSeries(prefix,
                            map_=_map,
                            nlocs=nlocs,
                            depth=1,
                            loc_dfile=loc_dfile,
                            root_ds=root_ds)
예제 #4
0
def theory_leaf(prefix, root_ds=None):
    """ theory leaf DataSeries

    :param prefix: path to leaf
    :type prefix: string
    :return: dataseries filesystem object for leaf
    :type: DataSeries
    """

    loc_dfile = data_files.locator(file_prefix=SPEC_FILE_PREFIX,
                                   map_dct_={
                                       'method': lambda locs: locs[0],
                                       'basis': lambda locs: locs[1],
                                       'orb_type': lambda locs: locs[2]
                                   },
                                   loc_keys=['method', 'basis', 'orb_type'])

    _map = _pack_arguments(loc_maps.theory_leaf)
    nlocs = _count_arguments(loc_maps.theory_leaf)
    return model.DataSeries(prefix,
                            map_=_map,
                            nlocs=nlocs,
                            depth=1,
                            loc_dfile=loc_dfile,
                            root_ds=root_ds)
예제 #5
0
def build_trunk(prefix, root_ds=None):
    """ build trunk DataSeries
    """
    loc_dfile = data_files.locator(file_prefix=SPEC_FILE_PREFIX,
                                   map_dct_={'head': lambda locs: locs[0]},
                                   loc_keys=['head'])

    _map = _pack_arguments(loc_maps.build_trunk)
    nlocs = _count_arguments(loc_maps.build_trunk)
    return model.DataSeries(prefix,
                            map_=_map,
                            nlocs=nlocs,
                            depth=1,
                            loc_dfile=loc_dfile,
                            root_ds=root_ds)
예제 #6
0
def vrctst_leaf(prefix, root_ds=None):
    """ vrctst leaf DataSeries
    """
    loc_dfile = data_files.locator(file_prefix=SPEC_FILE_PREFIX,
                                   map_dct_={'num': lambda locs: locs[0]},
                                   loc_keys=['num'])

    _map = _pack_arguments(loc_maps.vrctst_leaf)
    nlocs = _count_arguments(loc_maps.vrctst_leaf)
    return model.DataSeries(prefix,
                            map_=_map,
                            nlocs=nlocs,
                            depth=1,
                            loc_dfile=loc_dfile,
                            root_ds=root_ds)
예제 #7
0
def cscan_leaf(prefix, root_ds=None):
    """ constrained scan leaf DataSeries
    """
    loc_dfile = data_files.locator(file_prefix=SPEC_FILE_PREFIX,
                                   map_dct_={'coo_vals': lambda locs: locs[0]},
                                   loc_keys=['coo_vals'])

    _map = _pack_arguments(loc_maps.cscan_leaf)
    nlocs = _count_arguments(loc_maps.cscan_leaf)
    return model.DataSeries(prefix,
                            map_=_map,
                            nlocs=nlocs,
                            depth=1,
                            loc_dfile=loc_dfile,
                            root_ds=root_ds)
예제 #8
0
def build_branch(prefix, root_ds=None):
    """ build trunk DataSeries
    :param prefix: path to trunk
    :type prefix: string
    :return: dataseries filesystem object for trunk
    :type: DataSeries
    """
    loc_dfile = data_files.locator(
        file_prefix=SPEC_FILE_PREFIX,
        map_dct_={'fml_str': lambda locs: locs[0]},
        loc_keys=['fml_str'])

    _map = _pack_arguments(loc_maps.build_branch)
    nlocs = _count_arguments(loc_maps.build_branch)
    return model.DataSeries(prefix, map_=_map, nlocs=nlocs, depth=1,
                            loc_dfile=loc_dfile, root_ds=root_ds)
예제 #9
0
def vrctst_leaf(prefix, root_ds=None):
    """ vrctst leaf DataSeries
    :param prefix: path to leaf
    :type prefix: string
    :return: dataseries filesystem object for leaf
    :type: DataSeries
    """
    loc_dfile = data_files.locator(
        file_prefix=SPEC_FILE_PREFIX,
        map_dct_={'num': lambda locs: locs[0]},
        loc_keys=['num'])

    _map = _pack_arguments(loc_maps.vrctst_leaf)
    nlocs = _count_arguments(loc_maps.vrctst_leaf)
    return model.DataSeries(prefix, map_=_map, nlocs=nlocs, depth=1,
                            loc_dfile=loc_dfile, root_ds=root_ds)
예제 #10
0
def cscan_branch2(prefix, root_ds=None):
    """ constrained scan branch 1 DataSeries
    :param prefix: path to branch
    :type prefix: string
    :return: dataseries filesystem object for branch
    :type: DataSeries
    """
    loc_dfile = data_files.locator(
        file_prefix=SPEC_FILE_PREFIX,
        map_dct_={'coo_names': lambda locs: locs[0]},
        loc_keys=['coo_names'])

    _map = _pack_arguments(loc_maps.cscan_branch2)
    nlocs = _count_arguments(loc_maps.cscan_branch2)
    return model.DataSeries(prefix, map_=_map, nlocs=nlocs, depth=1,
                            loc_dfile=loc_dfile, root_ds=root_ds)
예제 #11
0
def run_leaf(prefix, root_ds=None):
    """ run leaf DataSeries
    """
    loc_dfile = data_files.locator(file_prefix=SPEC_FILE_PREFIX,
                                   map_dct_={'job': lambda locs: locs[0]},
                                   loc_keys=['job'])

    _map = _pack_arguments(loc_maps.run_leaf)
    nlocs = _count_arguments(loc_maps.run_leaf)
    return model.DataSeries(prefix,
                            map_=_map,
                            nlocs=nlocs,
                            depth=1,
                            loc_dfile=loc_dfile,
                            root_ds=root_ds,
                            removable=True)
예제 #12
0
def scan_branch(prefix, root_ds=None):
    """ scan branch DataSeries
    """
    loc_dfile = data_files.locator(
        file_prefix=SPEC_FILE_PREFIX,
        map_dct_={'coo_names': lambda locs: locs[0]},
        loc_keys=['coo_names'])

    _map = _pack_arguments(loc_maps.scan_branch)
    nlocs = _count_arguments(loc_maps.scan_branch)
    return model.DataSeries(prefix,
                            map_=_map,
                            nlocs=nlocs,
                            depth=1,
                            loc_dfile=loc_dfile,
                            root_ds=root_ds)
예제 #13
0
def scan_leaf(prefix, root_ds=None):
    """ scan leaf DataSeries
    :param prefix: path to leaf
    :type prefix: string
    :return: dataseries filesystem object for leaf
    :type: DataSeries
    """
    loc_dfile = data_files.locator(
        file_prefix=SPEC_FILE_PREFIX,
        # this should actually say coo_vals, but leave for compatibility
        map_dct_={'grid_idxs': lambda locs: locs[0]},
        loc_keys=['grid_idxs'])

    _map = _pack_arguments(loc_maps.scan_leaf)
    nlocs = _count_arguments(loc_maps.scan_leaf)
    return model.DataSeries(prefix, map_=_map, nlocs=nlocs, depth=1,
                            loc_dfile=loc_dfile, root_ds=root_ds)
예제 #14
0
def subrun_leaf(prefix, root_ds=None):
    """ subrun leaf DataSeries
    """
    loc_dfile = data_files.locator(file_prefix=SPEC_FILE_PREFIX,
                                   map_dct_={
                                       'macro_idx': lambda locs: locs[0],
                                       'micro_idx': lambda locs: locs[1]
                                   },
                                   loc_keys=['macro_idx', 'micro_idx'])

    _map = _pack_arguments(loc_maps.subrun_leaf)
    nlocs = _count_arguments(loc_maps.subrun_leaf)
    return model.DataSeries(prefix,
                            map_=_map,
                            nlocs=nlocs,
                            depth=1,
                            loc_dfile=loc_dfile,
                            root_ds=root_ds)