How to use the moltemplate.dump2data.InputError function in moltemplate

To help you get started, we’ve selected a few moltemplate examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github jewettaij / moltemplate / moltemplate / dump2data.py View on Github external
def AtomStyle2ColNames(atom_style_string):

    atom_style_string = atom_style_string.strip()
    if len(atom_style_string) == 0:
        raise InputError('Error(dump2data): Invalid atom_style\n'
                         '       (The atom_style command was followed by an empty string.)\n')
    atom_style_args = atom_style_string.split()
    atom_style = atom_style_args[0]

    hybrid_args = atom_style_args[1:]

    if (atom_style not in g_style_map):
        if (len(atom_style_args) >= 2):
            # If the atom_style_string includes at least 2 words, then we
            # interpret this as a list of the individual column names
            return atom_style_args
        else:
            raise InputError(
                'Error(dump2data): Unrecognized atom_style: \"' + atom_style + '\"\n')

    if (atom_style != 'hybrid'):
github jewettaij / moltemplate / moltemplate / dump2data.py View on Github external
raise InputError(
            'Error(dump2data): List of column names lacks an \"atom-ID\"\n')

    i_atomtype = None
    if 'atom-type' in column_names:
        i_atomtype = column_names.index('atom-type')
    elif 'atom−type' in column_names:  # (− hyphen character used in manual)
        i_atomtype = column_names.index('atom−type')
    elif 'atomtype' in column_names:
        i_atomtype = column_names.index('atomtype')
    elif 'type' in column_names:
        i_atomtype = column_names.index('type')
    elif '@atom' in column_names:
        i_atomtype = column_names.index('@atom')
    else:
        raise InputError(
            'Error(dump2data): List of column names lacks an \"atom-type\"\n')

    i_molid = None
    if 'molecule-ID' in column_names:
        i_molid = column_names.index('molecule-ID')
    elif 'molecule−ID' in column_names:  # (− hyphen character used in manual)
        i_molid = column_names.index('molecule−ID')
    elif 'moleculeID' in column_names:
        i_molid = column_names.index('moleculeID')
    elif 'moleculeid' in column_names:
        i_molid = column_names.index('moleculeid')
    elif 'molecule' in column_names:
        i_molid = column_names.index('molecule')
    elif 'molID' in column_names:
        i_molid = column_names.index('molID')
    elif 'molid' in column_names:
github jewettaij / moltemplate / moltemplate / dump2data.py View on Github external
This function outputs a list of lists of triplets of integers.

    """
    i_x = None
    i_y = None
    i_z = None
    if 'x' in column_names:
        i_x = column_names.index('x')
    if 'y' in column_names:
        i_y = column_names.index('y')
    if 'z' in column_names:
        i_z = column_names.index('z')
    if (((i_x != None) != (i_y != None)) or
            ((i_y != None) != (i_z != None)) or
            ((i_z != None) != (i_x != None))):
        raise InputError(
            'Error(dump2data): columns must include \"x\", \"y\", and \"z\".\n')
    return [[i_x, i_y, i_z]]
github jewettaij / moltemplate / moltemplate / dump2data.py View on Github external
i_z = dump_column_names.index('z')
                    elif 'zu' in dump_column_names:
                        i_zu = dump_column_names.index('zu')
                        z_already_unwrapped = True
                    elif 'zs' in dump_column_names:
                        i_zs = dump_column_names.index('zs')
                    elif 'zsu' in dump_column_names:
                        i_zsu = dump_column_names.index('zsu')
                        z_already_unwrapped = True
                    else:
                        raise InputError('Error(dump2data): \"ATOMS\" section of dump file lacks a \"z\" column.\n' +
                                         '       (excerpt below)\n' + line)

                    ii_vects = ColNames2Vects(dump_column_names)
                    if (len(ii_vects) != len(data_settings.ii_vects)):
                        raise InputError('Error(dump2data): atom styles in data and dump files differ.\n'
                                         '      Some needed columns from the atom_styles are missing in the dump file.')

                    i_ix = i_iy = i_iz = -1
                    if 'ix' in dump_column_names:
                        i_ix = dump_column_names.index('ix')
                    if 'iy' in dump_column_names:
                        i_iy = dump_column_names.index('iy')
                    if 'iz' in dump_column_names:
                        i_iz = dump_column_names.index('iz')

                    i_vx = i_vy = i_vz = -1
                    if 'vx' in dump_column_names:
                        i_vx = dump_column_names.index('vx')
                    if 'vy' in dump_column_names:
                        i_vy = dump_column_names.index('vy')
                    if 'vz' in dump_column_names:
github jewettaij / moltemplate / moltemplate / dump2data.py View on Github external
"""
    vects = []
    i_mux = None
    i_muy = None
    i_muz = None
    if 'mux' in column_names:
        i_mux = column_names.index('mux')
    if 'muy' in column_names:
        i_muy = column_names.index('muy')
    if 'muz' in column_names:
        i_muz = column_names.index('muz')
    if (((i_mux != None) != (i_muy != None)) or
            ((i_muy != None) != (i_muz != None)) or
            ((i_muz != None) != (i_mux != None))):
        raise InputError(
            'Error(dump2data): custom atom_style list must define mux, muy, and muz or none.\n')
    if i_mux != None:
        vects.append([i_mux, i_muy, i_muz])
    i_quati = None
    i_quatj = None
    i_quatk = None
    if 'quati' in column_names:
        i_quati = column_names.index('quati')
    if 'quatj' in column_names:
        i_quatj = column_names.index('quatj')
    if 'quatk' in column_names:
        i_quatk = column_names.index('quatk')
    if (((i_quati != None) != (i_quatj != None)) or
            ((i_quatj != None) != (i_quatk != None)) or
            ((i_quatk != None) != (i_quati != None))):
        raise InputError(
github jewettaij / moltemplate / moltemplate / dump2data.py View on Github external
'       However there are no columns with this name in your data file\n'
                                             '       (or the column was not in the expected place).\n'
                                             '       Hence, the atom styles in the dump and data files do not match.')

            if finished_reading_frame:

                if misc_settings.scale != None:
                    for atomid in frame_coords:
                        for d in range(0, 3):
                            crd = float(frame_coords[atomid][d])
                            frame_coords[atomid][d]=str(crd*misc_settings.scale)

                if len(frame_coords) != frame_natoms:
                    err_msg = 'Number of lines in \"ITEM: ATOMS\" section disagrees with\n' \
                        + '           \"ITEM: NUMBER OF ATOMS\" declared earlier in this file.\n'
                    raise InputError(err_msg)

                if misc_settings.center_frame:
                    cm = [0.0, 0.0, 0.0]
                    for atomid in frame_coords:
                        for d in range(0, 3):
                            cm[d] += float(frame_coords[atomid][d])
                    for d in range(0, 3):
                        cm[d] /= float(len(frame_coords))
                    for atomid in frame_coords:
                        for d in range(0, 3):
                            frame_coords[atomid][d] = "%.7g" % (
                                float(frame_coords[atomid][d]) - cm[d])
                        frame_coords_ixiyiz[atomid] = ["0", "0", "0"]

                    if misc_settings.output_format != 'data':
                        frame_coords_ixiyiz[atomid] = ["0", "0", "0"]
github jewettaij / moltemplate / moltemplate / dump2data.py View on Github external
if (atom_style not in g_style_map):
        if (len(atom_style_args) >= 2):
            # If the atom_style_string includes at least 2 words, then we
            # interpret this as a list of the individual column names
            return atom_style_args
        else:
            raise InputError(
                'Error(dump2data): Unrecognized atom_style: \"' + atom_style + '\"\n')

    if (atom_style != 'hybrid'):
        return g_style_map[atom_style]
    else:
        column_names = ['atom-ID', 'atom-type', 'x', 'y', 'z']
        if (len(hybrid_args) == 0):
            raise InputError(
                'Error(dump2data): atom_style hybrid must be followed by a sub_style.\n')
        for sub_style in hybrid_args:
            if (sub_style not in g_style_map):
                raise InputError(
                    'Error(dump2data): Unrecognized atom_style: \"' + sub_style + '\"\n')
            for cname in g_style_map[sub_style]:
                if cname not in column_names:
                    column_names.append(cname)

        return column_names