"""
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.')