"""
This module documents all possible Solvation input keywords.
"""
# Contributors: Mark A. Watson
from voluptuous import Any
from voluptuous import MultipleInvalid
from voluptuous import Required
from voluptuous import Schema
from schrodinger.application.jaguar.workflow_keywords import Choices, WorkflowKeyword
SOLVATION_KEYWORDS = {}
INPUT_MOLECULE = 'input'
JAG_SOLVATION_METHODS = ['PBF', 'PCM', 'SM8']
#------------------------------------------------------------------------------
[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
#------------------------------------------------------------------------------
# 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.')
#------------------------------------------------------------------------------
# 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='PBF',
description=
'The solvation method used for final solvation energy of the phases.')