schrodinger.application.jaguar.workflow_input module

Functions and classes for defining the input to a Workflow workflow.

Copyright Schrodinger, LLC. All rights reserved.

class schrodinger.application.jaguar.workflow_input.WorkflowInput(inputfile=None, keywords=None, jaguar_keywords=None, jobname=None)

Bases: abc.ABC

A Base class for specifying parameters in workflow calculations.

The following functions must be defined in the inheriting class:
  • validate(self)

  • generate_keywords(self)

abstract generate_keywords()

Initialize the list of possible keywords

Return type

dictionary (keys are lowercase string, values are WorkflowKeyword)

Return param

key, WorkflowKeyword pairs specific to this job’s input file

abstract validate()

Perform a self-consistency check of all currently set keywords.

write for inheriting class

Return param

Whether or no input passes workflow-specific validation checks

Return type

bool

input_file_keys = []
workflow_name = 'Workflow'
__init__(inputfile=None, keywords=None, jaguar_keywords=None, jobname=None)

Create a WorkflowInput instance. If a keyword is specified in both ‘inputfile’ and ‘keywords’, then the values in ‘keywords’ will be set preferrentially. This also applies to ‘jaguar_keywords’.

Parameters
  • inputfile (str) – Path to a Workflow input file

  • keywords (dict) – Workflow keyword/value pairs

  • jaguar_keywords (dict) – Jaguar &gen section keyword/value pairs

  • jobname (string) – Name of job, if it is not None it will be set to the basename of the input file name.

property keywords
property values

Support access to WorkflowKeyword values via attribute syntax. e.g.:

wi = WorkflowInput()
print wi.values.optimize   # print 'optimize' keyword value
getValue(keyword)

Return the value for Workflow keyword. The return type depends on the keyword.

Parameters

keyword (string) – name of keyword

:raise WorkflowKeywordError if no keyword found

setValue(keyword, value)

Set the Workflow keyword ‘keyword’ to value ‘value’. Note that there may be type-checking and conversion by the WorkflowKeyword class.

If ‘value’ is None, the keyword will be reset.

Parameters
  • keyword (string) – name of keyword

  • value (anytype) – value of keyword

Raises

WorkflowKeywordException – if no keyword found or there is an issue with the keyword or value

setValues(keywords)

Set multiple Workflow keywords.

Parameters

keywords (dict of string/anytype pairs) – keyword/value pairs

getJaguarValue(key)

Return the value for Jaguar keyword ‘key’. The return type depends on the keyword.

Parameters

key (string) – name of keyword

setJaguarValue(key, value)

Set the Jaguar &gen section keyword ‘key’ to value ‘value’.

Parameters
  • key (string) – name of keyword

  • value (anytype) – value of keyword

:raise JaguarKeywordException if keyword is invalid

setJaguarValues(keywords)

Set multiple Jaguar &gen section keywords.

Parameters

keywords (dict of string/anytype pairs) – Jaguar &gen section keyword/value pairs

getJaguarNonDefault()

Return a dictionary of all non-default Jaguar keys except ‘multip’ and ‘molchg’, which must be retrieved explicitly.

resetKey(keyword)

Reset keyword to default state.

Parameters

keyword (string) – name of keyword

resetAll()

Reset all keywords to their default states.

getDefault(keyword)

Return the default value for Workflow keyword ‘keyword’. The return type depends on the keyword.

Parameters

keyword (string) – name of keyword

:raise WorkflowKeywordError if no keyword found

getNonDefaultKeys()

Return a dictionary of all non-default-value WorkflowKeyword instances indexed by name.

isNonDefault(keyword)

Has the specified keyword been set to a non-default value?

Parameters

keyword (str) – The key to check

Returns

True if the specified keyword is set to a non-default value. False otherwise.

setConstraints(constraints)

Set the constraints.

Parameters

constraints (dict of str: Coordinate instance) – dictionary relating structure title to a list of Coordinate instances which define the constraints

getConstraints()

Return the constraints defined in the input file

Returns

a dict relating structure titles to constraints the constraints are given as a list of Coordinate instances and the titles refer to the titles of the input molecules.

setFrozenAtoms(frozen_atoms)

Set the constraints.

Parameters

frozen_atoms (dict of str: Coordinate instance) – dictionary relating structure title to a list of Coordinate instances which define the frozen atoms

getFrozenAtoms()

Return the frozen atoms defined in the input file

Returns

a dict relating structure titles to constraints the constraints are given as a list of Coordinate instances and the titles refer to the titles of the input molecules.

validate_jaguar_keywords(sts)

Perform a check to ensure that Jaguar keywords are not set in a way that cannot be handled.

Parameters

sts (list of Structure objects) – Structures whose basis needs validating

save(name)

Create a Workflow input file called ‘name’ in the current working directory based on this class instance. Only write the non-default keyword values.

Parameters

name (str) – Path to a Workflow input file

setJobname(jobname)

Set the attribute jobname.

Parameters

jobname (string) – input name of job. If jobname is None we try to use self._inputfile. If that is also None we assign a unique name.

read(inputfile)

Read an existing Workflow input file.

Any keywords specified in the input file will override existing values in this WorkflowInput instance.

Jaguar &gen section keywords are defined like:

&JaguarKeywords
  key=val
  key=val
  ...
&

Constraints can be defined with:

&Constraints
    st_title atom_index1 atom_index2... value
&
Parameters

inputfile (str) – Path to a Workflow input file

remove_input_file_paths()

Remove full paths from file specifications. A new input file is no longer written, if that is desired the user must call the save method.

update_input_file_paths()

Update full paths for file specifications to reflect the CWD. This is useful if running this job in a subdirectory or on a remote host.

have_constraints()

Do we have internal coordinate constraints

have_frozen_atoms()

Do we have frozen atom constraints

get_input_files()

Return set of expected input files.