Source code for schrodinger.application.desmond.constants

"""
Define common numerical constants, CT and atom property names, and keyword
values (enums).

Copyright Schrodinger, LLC. All rights reserved.
"""
import enum

from schrodinger.infra.mm import FFIO_DATA_CT_TYPE
from schrodinger.infra.mm import FFIO_FULL_SYSTEM


class _ConstantsMeta(type):

    def __iter__(self):
        for k, v in self.__dict__.items():
            if not k.startswith("_"):
                yield v

    def __str__(self):
        """
        Prints all constant members defined in the `_ConstantsMeta` class into a
        string.
        """
        return " ".join([str(e) for e in self])


[docs]class Constants(object, metaclass=_ConstantsMeta): """ Related constants can inherit from `Constants` to make them iterable in the order of their declarations. """
class _MaePropertyValue: """ This class defines a container for values associated with `MaePropertyName`. This makes the values iterable in the order of their declarations. """ def __init__(self, **kwargs): self._kwargs = kwargs for k, v in kwargs.items(): setattr(self, k, v) def __iter__(self): for v in self._kwargs.values(): yield v def __str__(self): return " ".join([str(e) for e in self._kwargs.values()])
[docs]class MaePropertyName(str): """ This class defines a container for structure or atom level properties. The property key can be accessed directly, while enum values are accessed via the `VAL` attribute. Example usage: CT_TYPE = MaePropertyName(FFIO_DATA_CT_TYPE, FULL_SYSTEM=FFIO_FULL_SYSTEM) ct.property[CT_TYPE] = CT_TYPE.VAL.FULL_SYSTEM valid_ct_types = list(CT_TYPE.VAL) """ def __new__(cls, name: str, **kwargs): # Validation checks can be added here. return str.__new__(cls, name)
[docs] def __init__(self, name: str, **kwargs): self.VAL = _MaePropertyValue(**kwargs)
# Physical constants # References: # - GAS_CONSTANT / BOLTZMANN: # - https://en.wikipedia.org/wiki/Gas_constant # - https://physics.nist.gov/cgi-bin/cuu/Value?r BOLTZMANN = 1.9872036E-3 # kcal/mol/K GAS_CONSTANT = BOLTZMANN GAS_CONSTANT_JOUL = 8.3144598 # J/mol/K ONE_ATMOSPHERE = 1.01325 # bar # Unit conversion factors
[docs]class Conversion: KCAL_TO_JOUL = 4184.0 CAL_CM_TO_MPA = 0.48888 # From (cal/cm^3)^1/2 to MPa^(1/2) AU_TO_KG = 1.6605655 # Mass: 1 mole of AU to kg
# Misc. constants LIGAND_TOTAL_ATOMS_LIMIT = 150 DEFAULT_RANDOM_SEED = 2014 # Force Field CT block FFIO_FF = 'ffio_ff'
[docs]class EXISTING_RESTRAINT(Constants): RETAIN = 'retain' IGNORE = 'ignore' IGNORE_POSRE = 'ignore_posre'
[docs]class WATER_MODELS(Constants): SPC = 'SPC' SPCE = 'SPCE' TIP3P = 'TIP3P' TIP3P_CHARMM = 'TIP3P_CHARMM' TIP4P = 'TIP4P' TIP4PEW = 'TIP4PEW' TIP4P2005 = 'TIP4P2005' TIP5P = 'TIP5P' TIP4PD = 'TIP4PD'
# Map water model name to pdb residue FFLD_WATER = { WATER_MODELS.SPC: "SPC", WATER_MODELS.SPCE: "SPCE", WATER_MODELS.TIP3P: "T3P", WATER_MODELS.TIP4P: "T4P", WATER_MODELS.TIP4P2005: "T4P5", WATER_MODELS.TIP4PEW: "T4PE", WATER_MODELS.TIP4PD: "T4PD", WATER_MODELS.TIP5P: "T5P" }
[docs]class CUSTOM_CHARGE_MODE(Constants): KEEP = 'keep' CLEAR = 'clear' ASSIGN = 'assign'
# graph constants
[docs]class FEP_TYPES(Constants): PRM_PROTEIN_BINDING = 'prm_protein_binding' PRM_LIGAND_BINDING = 'prm_ligand_binding' PROTEIN_STABILITY = 'prm_stability' PROTEIN_SELECTIVITY = 'protein_selectivity' COVALENT_LIGAND = 'covalent_ligand' SMALL_MOLECULE = 'small_molecule' METALLOPROTEIN = 'metalloprotein' LIGAND_SELECTIVITY = 'ligand_selectivity' ABSOLUTE_BINDING = "absolute_binding" SOLUBILITY = 'solubility'
PROTEIN_FEP_TYPES = (FEP_TYPES.PROTEIN_STABILITY, FEP_TYPES.PROTEIN_SELECTIVITY, FEP_TYPES.LIGAND_SELECTIVITY, FEP_TYPES.PRM_LIGAND_BINDING, FEP_TYPES.PRM_PROTEIN_BINDING) NON_LIGAND_PROTEIN_FEP_TYPES = (FEP_TYPES.PROTEIN_STABILITY, FEP_TYPES.PROTEIN_SELECTIVITY, FEP_TYPES.PRM_PROTEIN_BINDING) LIGAND_SELECTIVITY_FEP_TYPES = (FEP_TYPES.PRM_LIGAND_BINDING, FEP_TYPES.LIGAND_SELECTIVITY) PROTEIN_SELECTIVITY_FEP_TYPES = (FEP_TYPES.PRM_PROTEIN_BINDING, FEP_TYPES.PROTEIN_SELECTIVITY) SELECTIVITY_FEP_TYPES = LIGAND_SELECTIVITY_FEP_TYPES + PROTEIN_SELECTIVITY_FEP_TYPES # Per edge simulation protocol
[docs]class SIMULATION_PROTOCOL(Constants): DEFAULT = 'default' CHARGED = "charge" FORMALCHARGED = "charge0" COREHOPPING = "core-hopping" MACROCYCLE_COREHOPPING = "macrocycle-core-hopping" FRAGMENT_LINKING = "fragment-linking"
# Used for building filenames PROTOCOL_TO_POSTFIX = { SIMULATION_PROTOCOL.DEFAULT: "", SIMULATION_PROTOCOL.CHARGED: "_chg", SIMULATION_PROTOCOL.FORMALCHARGED: "_chg", SIMULATION_PROTOCOL.COREHOPPING: "_corehopping", SIMULATION_PROTOCOL.MACROCYCLE_COREHOPPING: "_corehopping", SIMULATION_PROTOCOL.FRAGMENT_LINKING: "_fragment_linking" } # Structure level ct properties NUM_COMPONENT = 'i_ffio_num_component' USE_CUSTOM_OPLSDIR = 'b_ffio_use_custom_oplsdir' IS_INFINITE = 'b_matsci_is_infinite' # (MATSCI-2544, MATSCI-6234) CT_INDEX = 'i_ffio_ct_index' CT_TYPE = MaePropertyName(FFIO_DATA_CT_TYPE, FULL_SYSTEM=FFIO_FULL_SYSTEM, SOLUTE='solute', SOLVENT='solvent', MEMBRANE='membrane', ION='ion', COSOLVENT='cosolvent', CRYSTAL_WATER='crystal water', POSITIVE_SALT='positive salt', NEGATIVE_SALT='negative salt', LIGAND='ligand', RECEPTOR='receptor', ALCHEMICAL_WATER='alchemical_water') # there may be more.. FEP_STRUC_TAG = MaePropertyName( 's_fep_struc_tag', LIGAND='ligand', RECEPTOR='receptor', MEMBRANE='membrane', SOLVENT='solvent', # ct with solvent, not leg COMPLEX='complex', # ct with protein-ligand complex, not leg FRAGMENT='fragment') # ct with protein fragment, not leg MOLTYPE = MaePropertyName("s_leadoptmap_moltype", LIGAND='ligand') VISIBILITY = "i_m_visibility" FEP_FRAGNAME = "s_fep_fragname" FEP_WRTFRAG = 's_fep_wrtfrag' FEP_PERTDB = 's_fep_pertdb' FEPMAPPER_BIAS = "i_fepmapper_bias" FEP_SUITABILITY = "r_bioluminate_delta_FEP_Suitability" COVALENT_LIGAND = 's_fep_covalent_ligand' FEP_COVALENT_PROTEIN_BB_ATOM = 'i_fep_cov_protein_bb_atom' FEP_DG_PREFIX = "s_des_dG" FEP_DDG_PREFIX = "s_des_ddG" FEP_DG_CROSSLINK_CORRECTION_REF = FEP_DG_PREFIX + "_crosslink_correction_ref" FEP_DG_CROSSLINK_CORRECTION_MUT = FEP_DG_PREFIX + "_crosslink_correction_mut" FEP_DDG_CROSSLINK_CORRECTION = FEP_DDG_PREFIX + "_crosslink_correction" # For the absolute binding fep workflow FEP_DG_CROSSLINK_CORRECTION = FEP_DG_PREFIX + "_crosslink_correction" FEP_PRED_DG = "r_fepplus_pred_dg" # FIXME: PANEL should use this contant FEP_PRED_DG_ERROR = "r_fepplus_pred_dg_error" # FIXME: PANEL should use this contant # Used to set node experimental dg on initial graph creation. FEPMAPPER_EXP_DG = "r_fepmapper_exp_dG" # Used to keep track of the mutations for protein fep. BIOLUMINATE_MUTATION = "s_bioluminate_Mutations" # Marker for the WT structure. BIOLUMINATE_WT = 'NONE' WT_IDENTIFIER = 'WT' ABFEP_DUMMY_LIGAND = "b_fep_ab_dummy_ligand" # Marker for dummy ligand in AB FEP and Solubility DUMMY_LIGAND = "b_fep_dummy_ligand" LIGAND_ORIGINAL_TITLE = "s_ligand_original_title" PROTEIN_ORIGINAL_TITLE = "s_protein_original_title" # Selection bias correction properties. CORRECTED_PREDICTED_AFFINITY_KCAL = 'r_fep_Corrected_Predicted_Affinity_(kcal/mol)' CORRECTED_PREDICTED_UNCERTAINTY_KCAL = 'r_fep_Corrected_Predicted_Uncertainty_(kcal/mol)' CORRECTED_PREDICTED_AFFINITY_nM = 'r_fep_Corrected_Predicted_Affinity_(nM)' FOLD_UNCERTAINTY = 'r_fep_Fold_Uncertainty' # Mixed solvent properties. MXMD_COSOLVENT_PROBE = 's_mxmd_cosolvent_probe' MXMD_GRID_SPACING = 'r_mxmd_grid_spacing' MXMD_BOX_LENGTH = 'r_mxmd_box_length' MXMD_NUM_PROBES = 'i_mxmd_num_probes' MXMD_CENTER_X = 'r_mxmd_center_x' MXMD_CENTER_Y = 'r_mxmd_center_y' MXMD_CENTER_Z = 'r_mxmd_center_z' # Simulation box _SIM_BOX_BASENAME = 'r_chorus_box' SIM_BOX = tuple(f"{_SIM_BOX_BASENAME}_{abc}{xyz}" for abc in ['a', 'b', 'c'] for xyz in ['x', 'y', 'z']) SIM_BOX_DIAGONAL = tuple( f"{_SIM_BOX_BASENAME}_{val}" for val in ('ax', 'by', 'cz')) # Define water SMARTS patterns WATER_SMARTS = ["[H]O[H]"] ZOB_WATER_SMARTS = ["[H]O([H])_[*]", "[H]O[H]_[*]"] # Trajectory TRJ_POINTER = 's_chorus_trajectory_file' # Solubility FEP properties. FEP_ORIGINAL_TITLE = 's_fep_original_title' FEP_HASH_ID = 's_fep_hash_id' FEP_SOLUBILITY = "s_des_dG_dissolution" FEP_SOLUBILITY_MICROMOLAR = 'r_des_solubility_[uM]' FEP_TRANSFER_FREE_ENERGY = "s_des_dG_transfer" SOLUBILITY_SUBJOB = MaePropertyName('s_fep_solubility_subjob', MD='md', HYDRATION='hydration', SUBLIMATION='sublimation', SOLVATION='solvation', SOLUBLE='soluble') SOLUBILITY_STATUS = MaePropertyName('s_fep_solubility_status', FINISHED='finished', FAILED='failed') # Atom level ct properties FEP_MAPPING = "i_fep_mapping" FEP_RESTRAIN = "i_fep_restrain" FEPIO_STAGE = 'i_fepio_stage' FEP_SUBST = 'i_fep_subst' # Marks the ligand atoms for protein ligand mutation LIGAND_MARKER = "i_protmap_nochange" CRYSTAL_WATER_PROP = 'i_desmond_crystal_water' FF_USE_EXISTING_CHARGE = "i_ff_skip_cm1a" # TODO: What is the difference between these? FEP_ATOM_INDEX = "i_fep_pa_atomindex" ORIGINAL_INDEX = 'i_m_original_index' ORIGINAL_MOLECULE_NUMBER = 'i_m_original_molecule' # atom property added in captermini.CapTermini PPW_ATOM_INDEX = "i_ppw_original_index" # atom property added in Epik generated titration states FEP_TMP_IDX = "i_fep_tmp_idx" # Atom charge FF_CUSTOM_CHARGE = 'r_ffio_custom_charge' DES_ATOM_DOMAIN = MaePropertyName('i_des_atom_domain', SOLUTE=1, SOLVENT=2, ION=3, MEMBRANE=4, CRYSTAL_WATER=5, ALCHEM_A=7, ALCHEM_B=8, INACTIVE=9) # REST region definition REST_HOTREGION = "i_rest_hotregion"
[docs]class REST_PROPERTIES(Constants): SOLVENT_HOTREGION = 'i_rest_solvent_hotregion' COMPLEX_HOTREGION = 'i_rest_complex_hotregion'
[docs]class REST_COMPONENT(Constants): ENVIRONMENT = "environment" RECEPTOR = "receptor" MEMBRANE = "membrane" LIGAND = "ligand" COMPLEX = "complex"
[docs]class REST_REGION_RULE(Constants): DEFAULT = 'default' ALL = 'all'
# Absolute FEP properties. FEP_ABSOLUTE_ENERGY = "i_ffio_grp_energy" FEP_ABSOLUTE_LIGAND = "i_ffio_grp_ligand" # Protein FEP properties. # PROT_LIGAND_REGION signifies the subset of the protein that # is mutating in protein fep, analogous to the ligand in normal FEP # (no guarantee that all atoms are mutated) PROT_LIGAND_REGION = "i_fep_protein_mutating_subset" # Original coordinates REFERENCE_COORD_BASENAME = 'r_fep_original_coord' REFERENCE_COORD_PROPERTIES = [ REFERENCE_COORD_BASENAME + '_x', REFERENCE_COORD_BASENAME + '_y', REFERENCE_COORD_BASENAME + '_z' ] # Only for the analysis, not used to determine restraints _ANALYSIS_REFERENCE_COORD_BASENAME = 'r_fep_analysis_original_coord' ANALYSIS_REFERENCE_COORD_PROPERTIES = [ _ANALYSIS_REFERENCE_COORD_BASENAME + '_x', _ANALYSIS_REFERENCE_COORD_BASENAME + '_y', _ANALYSIS_REFERENCE_COORD_BASENAME + '_z' ] # yapf: disable # alchemical ion # FIXME: Note there is also a `CT_TYPE.VAL.ALCHEMICAL_WATER` ALCHEMICAL_ION = 'b_fep_alchemical_ion' ALCHEMICAL_WATER = 'i_fep_alchemical_water' ALCHEMICAL_WATER_CHARGE = 'i_fep_alchemical_water_charge' # Maestro subgroup M_SUBGROUP_TITLE = 's_m_subgroup_title' M_SUBGROUPID = 's_m_subgroupid' M_SUBGROUP_COLLAPSED = 'b_m_subgroup_collapsed' # FEP schedule names POSE_DIHEDRAL_RESTRAINT = 'pose_dihedral_restraint'
[docs]class IsotropyPolicy(Constants): ISOTROPIC = 'isotropic' SEMI_ISOTROPIC = 'semi_isotropic' CONSTANT_AXIS_A = "constant_axis_a" CONSTANT_AXIS_B = "constant_axis_b" CONSTANT_AXIS_C = "constant_axis_c" ANISOTROPIC = "anisotropic" FLEXIBLE = "flexible"
# Conformation restraint types
[docs]class ConfRestraintType(Constants): BACKBONE = "backbone" SIDECHAIN = "sidechain" CALPHA_RUNG = "calpha_rung"
# Fragment linking FRAGMENT_LINKING_JOBS = MaePropertyName( 's_fep_frag_linking_job', COMPLEX='complex', SOLVENT='solvent', FRAGMENT_HYDRATION='solvent_fragment_hydration', RESTRAINED_FRAGMENT_HYDRATION='solvent_restrained_fragment_hydration') FRAGMENT_LINKING_SOLVENT_JOBS = ( FRAGMENT_LINKING_JOBS.VAL.SOLVENT, FRAGMENT_LINKING_JOBS.VAL.FRAGMENT_HYDRATION, FRAGMENT_LINKING_JOBS.VAL.RESTRAINED_FRAGMENT_HYDRATION) FRAGMENT_LINKING_HYDRATION_JOBS = ( FRAGMENT_LINKING_JOBS.VAL.FRAGMENT_HYDRATION, FRAGMENT_LINKING_JOBS.VAL.RESTRAINED_FRAGMENT_HYDRATION) FEP_RESTRAINT_CORRECTION = 'r_fep_restraint_correction' FRAGMENT_LINKING_SIGN = 'i_fep_frag_linking_sign' FEP_ENCODED_RESTRAINTS = 's_fep_encoded_restraints' ABFE_LIGAND = 'b_fep_abfe' FEP_ABSOLUTE_BINDING_LIGAND = 'i_fep_absolute_binding_ligand' # protein backbone atom pdbname PROTEIN_BACKBONE_PDB_NAMES = [ ' H ', ' N ', ' O ', ' CA ', ' HA ', ' C ', ' HA3', ' HA2' ] # Absolute Binding FEP ABSOLUTE_BINDING_LEGS = MaePropertyName('s_fep_absolute_binding_leg', COMPLEX='complex', SOLVENT='solvent')
[docs]class FepLegTypes(Constants): COMPLEX = 'complex' SOLVENT = 'solvent' FRAGMENT = 'fragment' VACUUM = 'vacuum' SUBLIMATION = 'sublimation' HYDRATION = 'hydration' SOLVATION = SOLUBILITY_SUBJOB.VAL.SOLVATION FRAGMENT_HYDRATION = FRAGMENT_LINKING_JOBS.VAL.FRAGMENT_HYDRATION RESTRAINED_FRAGMENT_HYDRATION = FRAGMENT_LINKING_JOBS.VAL.RESTRAINED_FRAGMENT_HYDRATION MD = 'md'
[docs]class Ensembles(Constants): NVT = "NVT" NPT = "NPT" MUVT = "muVT"
[docs]class RestrainTypes(Constants): POS = 'pos' POS_FBHW = 'posfbhw' STRETCH_FBHW = 'stretchfbhw' ANGLE_FBHW = 'anglefbhw' IMPROPER_FBHW = 'improperfbhw'
# Default ABSOLUTE_BINDING_COMPLEX_LAMBDAS = 68 ABSOLUTE_BINDING_SOLVENT_LAMBDAS = 60 # ABFEP with restraints uses a different number of lambdas ABSOLUTE_BINDING_RESTRAINED_COMPLEX_LAMBDAS = 80 ABSOLUTE_BINDING_RESTRAINED_SOLVENT_LAMBDAS = 68 # Default number of lambdas
[docs]class Schedule(Constants): DEFAULT = "default" FLEXIBLE = "flexible" CHARGE = "charge"
DEFAULT_LAMBDAS_BY_SCHEDULE = { Schedule.DEFAULT: 12, Schedule.FLEXIBLE: 16, Schedule.CHARGE: 24, } # Absolute hydration windows FRAGMENT_LINKING_HYDRATION_LAMBDAS = 24 DEFAULT_LAMBDAS_BY_SIMULATION_PROTOCOL = { SIMULATION_PROTOCOL.DEFAULT: DEFAULT_LAMBDAS_BY_SCHEDULE[Schedule.DEFAULT], SIMULATION_PROTOCOL.CHARGED: DEFAULT_LAMBDAS_BY_SCHEDULE[Schedule.CHARGE], SIMULATION_PROTOCOL.FORMALCHARGED: DEFAULT_LAMBDAS_BY_SCHEDULE[ Schedule.CHARGE], SIMULATION_PROTOCOL.COREHOPPING: DEFAULT_LAMBDAS_BY_SCHEDULE[ Schedule.FLEXIBLE], SIMULATION_PROTOCOL.MACROCYCLE_COREHOPPING: DEFAULT_LAMBDAS_BY_SCHEDULE[ Schedule.FLEXIBLE], SIMULATION_PROTOCOL.FRAGMENT_LINKING: FRAGMENT_LINKING_HYDRATION_LAMBDAS } FFIO_NUM_PSEUDOS = 'i_ffio_num_pseudos' FFIO_PARENT2PSEUDO = 's_ffio_parent_to_pseudo' FEP_TITRATION_STATES = 's_fep_TITRATION_STATES' FEP_STATE_INFO = 's_fep_STATE_INFO' FEP_AID2GID = 's_fep_aid2gid' FEP_ALCHEMICAL_CHANGE = 's_fep_ALCHEMICAL_CHANGE' DESMOND_WRITE_JSON = 'b_desmond_write_json'
[docs]class IdConversion(Constants): COMPONENT_TO_COMBINED = 'component_to_combined' ATOM_TOTAL = 'atom_total' PSEUDO_END = 'pseudo_end' PARENT2PSEUDO = 'parent_to_pseudo' PSEUDO2PARENT = 'pseudo_to_parent' TOPOLOGY = 'topology'
GCMC_BATCH_SIZE_DEFAULT = 1600 GCMC_LIGAND = 'i_gcmc_ligand' # keys are (water model, inner timestep fs) # values are: (chemical_potential: kcal/mol, molecule number density: 1/A^3) # exclusion_radius = 1.5 A GCMC_CHEMICAL_POTENTIALS = { ("SPC", 4): (-6.137, 0.032480), ("TIP3P", 4): (-6.011, 0.032722), ("TIP4P", 4): (-5.997, 0.033041), ("TIP4PEW", 4): (-6.858, 0.033145), ("TIP4PD", 4): (-7.694, 0.033083), ("TIP5P", 4): (-5.569, 0.032731), ("SPCE", 4): (-6.958, 0.033), ("TIP4P2005", 4): (-7.064, 0.033), ("SPC", 2): (-6.189, 0.03262), ("TIP3P", 2): (-6.060, 0.0329), ("TIP4P", 2): (-6.051, 0.03315), ("TIP4PEW", 2): (-6.940, 0.03323), ("TIP4PD", 2): (-7.821, 0.03316), ("TIP5P", 2): (-5.628, 0.03285), ("SPCE", 2): (-7.016, 0.033), ("TIP4P2005", 2): (-7.122, 0.033), } # Water models that only work with S-OPLS and not OPLS2005 S_OPLS_WATER_MODELS = { "TIP4P", "TIP4P2005", "TIP4PEW", "TIP4PD", "TIP5P", "SCPE" } # FEP advanced options GUI lambda window option aliases ALIAS_FEP_NUM_LW_DEFAULT = 'num_lw_default' ALIAS_FEP_NUM_LW_CORE = 'num_lw_core' ALIAS_FEP_NUM_LW_CHARGE = 'num_lw_charge' # FFIO velocity _FFIO_PREFIX = 'r_ffio_' _VELOCITY_POSTFIX = '_vel' VELOCITY_PROPERTIES = [ _FFIO_PREFIX + 'x' + _VELOCITY_POSTFIX, _FFIO_PREFIX + 'y' + _VELOCITY_POSTFIX, _FFIO_PREFIX + 'z' + _VELOCITY_POSTFIX ] # FFIO coordinate _COORD_POSTFIX = '_coord' COORD_PROPERTIES = [ _FFIO_PREFIX + 'x' + _COORD_POSTFIX, _FFIO_PREFIX + 'y' + _COORD_POSTFIX, _FFIO_PREFIX + 'z' + _COORD_POSTFIX ]
[docs]class CorrectionTerm(Constants): PKA = "pKa" STATE_PENALTY = "State Penalty" UNKNOWN = "Unknown" BORESCH_RESTRAINT = "Boresch Restraint" FRAGMENT_SOLVATION = "Fragment Solvation" POPULATION = "Population"
# keys used in interaction match
[docs]class FEP_STATE_KEYS(Constants): WT = 'wt' MUT = 'mut'
# ASL BACKBONE_CA_ASL = "(backbone and atom.ptype ' CA ')" MONATOMIC_IONS_ASL = "m.atoms 1"
[docs]class ENERGY_GROUPS(Constants): PRESSURE_TENSOR = 'pressure_tensor' CORR_ENERGY = 'corr_energy' SELF_ENERGY_ONLY = 'self_energy_only' CROSS_ENERGY_ONLY = 'cross_energy_only' GCMC_INFO = 'gcmc_info' SIMULATION_BOX = 'simulation_box'
# type of cms.Cms
[docs]class SystemType(Constants): ALCHEMICAL = 1 # requires desmond gibbs plugin for alchemical changes BINDING = 2 # requires desmond gibbs plugin for binding FEP OTHER = 0
# property to use titration code for fep USE_TITRATION = 'b_fep_use_titration' # Lambda Dynamics FEP_TITRATABLE_GROUP = 'i_fep_titratable_group' CONSTANT_PH_UNMAP_SIDECHAIN = 'b_titration_unmap_sidechain' CONSTANT_PH_TITRATABLE_WATER = 'b_fep_TITRATABLE_H2O' CONSTANT_PH_PMF_ORDER = 4 # key for conf-pose restraints CONF_POST_RESTRAINTS = "conf_pose_restraints" # For model2 license
[docs]class PRODUCT(Constants): FEP = 'fep' CONSTANT_PH = 'constant_ph' IFD_MD = 'ifd-md'
# For OPLS_DIR SCHRODINGER_MULTISIM_DONT_COPY_OPLS = 'SCHRODINGER_MULTISIM_DONT_COPY_OPLS' # For memory, linear fit is for mem in MB vs num atoms * num lambdas # Data comes from GraphDB runs # For small molecule, abfep, prm stability fep CPU_SLOPE_INTERCEPT = (0.002214250636309, 4162.26530542264) GPU_SLOPE_INTERCEPT = (0.004060048145001, 879.10326851197) # For covalent and selectivity fep COVALENT_CPU_SLOPE_INTERCEPT = (0.00427170019974, 4056.80282331548) COVALENT_GPU_SLOPE_INTERCEPT = (0.010131291639133, -232.357871994725) # For CLIs UiMode = enum.Enum("UiMode", "NEW,RESTART,EXTEND") # build_geometry stage
[docs]class BUILD_GEOMETRY(Constants): NAME = 'build_geometry' REMOVE_OVERLAPPED_SOLVENT = 'remove_overlapped_solvent'
[docs]class SYSTEM_BUILDER_INP(Constants): CHECK_SOLVENT_OVERLAP = 'check_solvent_overlap'