Source code for schrodinger.application.jaguar.solvation_keywords

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