Source code for schrodinger.application.jaguar.solvation_keywords

"""
This module documents all possible Solvation input keywords.
"""

# Contributors: Mark A. Watson

from schrodinger.application.jaguar.workflow_keywords import Choices
from schrodinger.application.jaguar.workflow_keywords import WorkflowKeyword

SOLVATION_KEYWORDS = {}
INPUT_MOLECULE = 'input'
JAG_SOLVATION_METHODS = ['PBF', 'PCM', 'SM8', 'OFF']
MACRO_PKA = 'macro-pka'
EPIKX_PKA = 'epikx'
PKA_METHODS = [MACRO_PKA, EPIKX_PKA]

#------------------------------------------------------------------------------


[docs]def keyword(name, valid_type, default, description): """ Convenience function to create a dictionary of SolvationKeyword's """ if name in SOLVATION_KEYWORDS: raise ValueError('keyword %s is duplicated' % name) # Define all keywords in lower case SOLVATION_KEYWORDS[name.lower()] = WorkflowKeyword(name=name.lower(), valid_type=valid_type, default=default, description=description)
[docs]def generate_all_keywords(): from . import solvation_input # noqa: F401 #------------------------------------------------------------------------------ # Add new "list of strings" Solvation keywords here #------------------------------------------------------------------------------ #------------------------------------------------------------------------------ # Add new "list of float" Solvation keywords here #------------------------------------------------------------------------------ keyword(name='pHs', valid_type=[float], default=[7.4], description='A list of pHs for LogD calculations') #------------------------------------------------------------------------------ # Add new "boolean" Solvation keywords here #------------------------------------------------------------------------------ keyword(name='optimize_phase1', valid_type=bool, default=True, description='If True, optimize input molecule(s) in phase 1.') keyword(name='optimize_phase2', valid_type=bool, default=True, description='If True, optimize input molecule(s) in phase 2.') keyword(name='optimize_gas', valid_type=bool, default=True, description='If True, optimize input molecule(s) in gas phase.') keyword(name='debug', valid_type=bool, default=False, description='Print extra debugging information.') keyword( name='solvation_energy', valid_type=bool, default=False, description='Compute energy of solvation from gas phase to both phases.' ) keyword( name='csrch', valid_type=bool, default=False, description='Do tautomer and conformational search on input molecule.') keyword(name='logP', valid_type=bool, default=False, description='Compute the logP between the two phases.') keyword(name='logD', valid_type=bool, default=False, description='Compute the logD between the two phases.') keyword( name='run_alternate_charges', valid_type=bool, default=True, description='Compute the QM logP of charges found in pKa calculation.') #------------------------------------------------------------------------------ # Add new "integer" Solvation keywords here #------------------------------------------------------------------------------ keyword(name='multiplicity', valid_type=int, default=1, description='Overall spin multiplicity of reaction complex.') keyword(name='charge', valid_type=int, default=0, description='Overall charge of reaction complex.') #------------------------------------------------------------------------------ # Add new "float" Solvation keywords here #------------------------------------------------------------------------------ keyword(name='temp', valid_type=float, default=298.15, description='Temperature of reactions.') #------------------------------------------------------------------------------ # Add new "string" Solvation keywords here #------------------------------------------------------------------------------ keyword( name=INPUT_MOLECULE, valid_type=str, default='', description= 'A list of full paths (absolute or relative) to Maestro structure files containing individual reactant molecules.' ) keyword(name='phase1', valid_type=str, default='gas', description='The first phase for the input molecules.') keyword(name='phase2', valid_type=str, default='water', description='The second phase for the input molecules.') keyword( name='opt_solvation_method', valid_type=Choices(*JAG_SOLVATION_METHODS), default='PCM', description= 'The solvation method used for computing geometry optimization of the phases.' ) keyword( name='solvation_method', valid_type=Choices(*JAG_SOLVATION_METHODS), default='SM8', description= 'The solvation method used for final solvation energy of the phases.') keyword(name='pka_method', valid_type=Choices(*PKA_METHODS), default=MACRO_PKA, description='The pka predictor to use for LogD calculations.')