schrodinger.application.matsci.jwsteps module¶
Steps for use in Workflows
Copyright Schrodinger, LLC. All rights reserved.
- schrodinger.application.matsci.jwsteps.import_driver(dpath)¶
- class schrodinger.application.matsci.jwsteps.ParentPathInfo(subdirs, names, outfiles)¶
Bases:
tuple
- __contains__(key, /)¶
Return key in self.
- __len__()¶
Return len(self).
- count(value, /)¶
Return number of occurrences of value.
- index(value, start=0, stop=9223372036854775807, /)¶
Return first index of value.
Raises ValueError if the value is not present.
- names¶
Alias for field number 1
- outfiles¶
Alias for field number 2
- subdirs¶
Alias for field number 0
- exception schrodinger.application.matsci.jwsteps.JobCreationError¶
Bases:
Exception
Raised when a job cannot be created
- __init__(*args, **kwargs)¶
- args¶
- with_traceback()¶
Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.
- class schrodinger.application.matsci.jwsteps.BaseWorkflow(struct, options, count, jobq, strcleaner=None, logger=None, subhierarchy=None, robust=False, max_retries=None)¶
Bases:
schrodinger.application.matsci.jaguarworkflows.WorkFlow
Base Workflow class
- getSteps()¶
Create all the steps required for this workflow
This method should almost certainly be overridden by any child class. The example given here is just that - an example
- write(writer, *args, **kwargs)¶
Write out the structure for this workflow and all the child structures
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
- writeSmap(filename)¶
Write smap files for steps that need them and the smap file for the entire job
- Parameters
filename (str) – The name of the output structure file
- Return type
str or None
- Returns
The name of the written smap file or None if no file written
- FALLBACK_BASE_NAME = 'structure'¶
- __init__(struct, options, count, jobq, strcleaner=None, logger=None, subhierarchy=None, robust=False, max_retries=None)¶
Create a Workflow object
- Parameters
struct (schrodinger.structure.Structure) – The initial structure to use for the workflow
options (argparse Namespace object) – The input options.
count (int) – A serial number to distinguish this workflow from other workflows. May be used to create a unique base name.
jobq (JobDJ) – The queue to submit jobs to
strcleaner (schrodinger.application.matsci.jobutils.StringCleaner or None) – A StringCleaner instance used to guarantee unique workflow base names
logger (
logging.Logger
) – The logger for this classsubhierarchy (str) – If given, the final structure for all steps other than the main step will be placed in a PT subgroup with this name.
robust (bool) – If True, use the robust Jaguar driver to run Jaguar jobs. If false, use Jaguar directly.
max_retries (int or None) – see queue.JobControlJob
- check(log_zero_steps=False)¶
Check if this workflow is complete. Also, submit the next step(s) if the previous step has finished.
- Parameters
log_zero_steps (bool) – log a message if there are zero steps
- Return type
bool
- Returns
True if the workflow is complete, False if not
- generateBaseName(strcleaner, count)¶
Come up with a base name for this workflow based on the workflow structure title or a fallback name if the title can’t be used. Pass in a StringCleaner object to guarantee uniqueness.
- Parameters
strcleaner (schrodinger.application.matsci.jobutils.StringCleaner or None) – a StringCleaner instance to use for uniquifying names
count (int) – A serial number to distinguish this workflow from other workflows. May be used to create a unique base name.
- log(msg, prefix=True, level=20, pad=False, pad_below=False)¶
Add a message to the log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the messagepad (bool) – Whether to pad above this message with a blank line
pad_below (bool) – Whether to pad below this message with a blank line
- periodicMaintenance()¶
The
run_workflows
function will call this method periodically - it can be used to perform operations while one of the workflow steps is running
- recordFailureStatus()¶
Set properties based on the success/failure of each step, and write workflow structures to a summary failed file if any step failed
- stepsInWriteOrder()¶
Generator for steps in the order they’re output structures should be written to the results file. Main step first, then all other steps in order of creation.
- Return type
iterator
- Returns
iterator of step objects
- class schrodinger.application.matsci.jwsteps.SubdirectoryStepMixin(*args, **kwargs)¶
Bases:
object
A mixin to handle some common functionality for steps that run in subdirectories
- __init__(*args, **kwargs)¶
See parent class for documentation
- finishProcessingJobControlJob()¶
Add all the subjob files to the backend
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- class schrodinger.application.matsci.jwsteps.BaseStep(*args, procs=1, tag=None, flags=None, archive=False, monitor_globs=None, full_command=None, local_files=None, input_file=None, cpu_hostname=None, gpu_hostname=None, umbrella='per_flag', splitter=False, split_index=1, split_tag='', child_stages=None, use_jc=None, tpp=1, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.SubdirectoryStepMixin
,schrodinger.application.matsci.jaguarworkflows.Step
A base class for Steps that are not simple Jaguar jobs. Because this step fires off a Python script that itself fires off Jaguar jobs, we have to modify a number of methods that dealt with the jaguar .in file directly or expected standard Jaguar output.
- PROCS = 1¶
- STEP_NAME = 'Base Step'¶
- JOB_BASE = 'base'¶
- DRIVER_PATH = 'driver_dir/driver.py'¶
- DRIVER = None¶
- FLAGS = {}¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- CAN_CREATE_TRAJECTORY = False¶
- REQUIRES_CMS_INPUT = False¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- OUTPUTS_CMS = False¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- RESOURCE = 'cpu'¶
- SUBJOB_RESOURCE = 'cpu'¶
- BUILTIN_WF_FILE = None¶
- SPLITTER = False¶
- COMBINER = False¶
- __init__(*args, procs=1, tag=None, flags=None, archive=False, monitor_globs=None, full_command=None, local_files=None, input_file=None, cpu_hostname=None, gpu_hostname=None, umbrella='per_flag', splitter=False, split_index=1, split_tag='', child_stages=None, use_jc=None, tpp=1, **kwargs)¶
Create a BaseStep object
- Parameters
procs (int) – The number of processors to allocate to steps of this class
tag – str(tag) will be added to the end of the job name and step name
flags (dict) – Command line argument flags in addition to, or that override, the class FLAGS variable. Keys are flag names (“-flag”), values are values for that flag. For flags that take no value, use None as the value. To turn off (not include in the command line) a flag in the class FLAGS variable, use the DO_NOT_USE_FLAG constant as the value.
archive (bool) – If True, instead of copying the subdirectory and individual files, will tar.gz up the entire subdirectory and copy that back.
monitor_globs (list) – List of valid file globs (i.e.
["*.zip"]
) that should be monitored for and copied back to the original job directory when they appear. Note that the interaction of archive and moitor_globs is such that if both are specified, the result will be a subdirectory with the monitored files AND an archive of the entire subdirectory (including any monitored files that remain when this step completes).full_command (list) – the full command line for this step including the driver path, etc. but without $SCHRODINGER/run. The command will be used “as is” except for replacing some pre-defined tokens with job-specific strings - see the createCommand function. Each item of the list is a word of the command line invocation.
local_files (list) – A list of file paths to copy into the job subdirectory before running the command
input_file (str) – The name of the file containing the input structures/data. It is ignored if there is a parent for this step.
cpu_hostname (str) – The name of the host to run CPU processes on
gpu_hostname (str) – The name of the host to run GPU processes on
umbrella (str) – Whether to run drivers that have GPU subjobs in umbrella mode or not. Should be one of UMBRELLA_ALWAYS (always run in umbrella mode even if the flag is not provided), UMBRELLA_NEVER (never run in umbrella mode even if the flag is provided) or UMBRELLA_PER_FLAG (obey the presence or absence of the -md_umbrella flag for this step). This parameter is only used if both cpu_hostname and gpu_hostname are given - if not, UMBRELLA_ALWAYS is enforced.
splitter (bool) – True if this step splits the workflow into parallel workflows, False if it does not. Note that this keyword is ignored if the SPLITTER class constant is True.
split_index (int) – If this step STARTS a new split workflow, the 1-based index of that workflow. Otherwise, just use 1 to indicate that it is the same workflow as the parent step.
split_tag (str) – An extra tag to add to the step name to distinguish between the same stage in parallel workflows
child_stages (list) – A list of child stages that need steps to be created from them. Each item is a
jaguar_multistage_workflow_utils.StageData
instance. This list contains one StageData item for each child stage no matter how many steps will be created from that stage due to splitting the workflow. For instance, if a workflow is A-B-C-D, and B is a splitter step that splits the workflow into 3 workflows, child_stages for B should be [C], not [C, C, C].use_jc (bool) – True if the step should use job control, False if not. The default value of None defaults to the class USES_JC constant.
tpp (int) – The number of threads per process. Serial processes use 1 thread. This will be added to the step command via -TPP tpp.
See parent class for additional documentation
- Raises
ValueError – if umbrella is not an allowed value
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getStructsForWriting()¶
Get the structures from this step to write to the final Workflow file
- Return type
list of
schrodinger.structure.Structure
or str- Returns
A list of structures to write or the string constant NO_STRUCTURES to indicate that the step is intentionally returning no structures. An empty list will indicate expected structures were not found.
- getInputName()¶
Get the name of the input structure file
- Return type
str
- Returns
The input structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- finish()¶
Finish this step, including processing any output
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- class schrodinger.application.matsci.jwsteps.MacromodelConfSearchStep(*args, procs=1, tag=None, flags=None, archive=False, monitor_globs=None, full_command=None, local_files=None, input_file=None, cpu_hostname=None, gpu_hostname=None, umbrella='per_flag', splitter=False, split_index=1, split_tag='', child_stages=None, use_jc=None, tpp=1, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseStep
Step to perform a macromodel conformational search
- STEP_NAME = 'ConfSearch'¶
- JOB_BASE = 'csearch'¶
- DRIVER_PATH = 'bmin'¶
- PROGRAM_NAME = 'Macromodel Conformational Search'¶
- FLAGS = {}¶
- FLAGS_ADD_INPUT_NAME = False¶
- FLAGS_ADD_JOB_NAME = False¶
- BUILTIN_WF_FILE = 'single_stage_macromodel_conformational_search.wfw'¶
- SPLITTER = True¶
- getComUtil()¶
Get the macromodel com utility that holds the settings to write
- Return type
schrodinger.application.macromodel.utils.comUtil
- Returns
The comUtil object with settings
- writeCom()¶
Write out the Macromodel com file
- getComName()¶
Get the name of the com file for this step
- Return type
str
- Returns
The name of the com file
- writeInput(struct)¶
Override the parent method to also write the com file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless the child step is the first step of a split workflow. In that case, this is the index of the split workflow. Unused in the base class, but subclasses that split workflows may use this.
- Return type
- Returns
The structure the child step should use
- getStructsForWriting()¶
Get the structures from this step to write to the final Workflow file
- Return type
list of
schrodinger.structure.Structure
- Returns
A list of structures to write
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- CAN_CREATE_TRAJECTORY = False¶
- COMBINER = False¶
- DRIVER = None¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = False¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = False¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SUBJOB_RESOURCE = 'cpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, procs=1, tag=None, flags=None, archive=False, monitor_globs=None, full_command=None, local_files=None, input_file=None, cpu_hostname=None, gpu_hostname=None, umbrella='per_flag', splitter=False, split_index=1, split_tag='', child_stages=None, use_jc=None, tpp=1, **kwargs)¶
Create a BaseStep object
- Parameters
procs (int) – The number of processors to allocate to steps of this class
tag – str(tag) will be added to the end of the job name and step name
flags (dict) – Command line argument flags in addition to, or that override, the class FLAGS variable. Keys are flag names (“-flag”), values are values for that flag. For flags that take no value, use None as the value. To turn off (not include in the command line) a flag in the class FLAGS variable, use the DO_NOT_USE_FLAG constant as the value.
archive (bool) – If True, instead of copying the subdirectory and individual files, will tar.gz up the entire subdirectory and copy that back.
monitor_globs (list) – List of valid file globs (i.e.
["*.zip"]
) that should be monitored for and copied back to the original job directory when they appear. Note that the interaction of archive and moitor_globs is such that if both are specified, the result will be a subdirectory with the monitored files AND an archive of the entire subdirectory (including any monitored files that remain when this step completes).full_command (list) – the full command line for this step including the driver path, etc. but without $SCHRODINGER/run. The command will be used “as is” except for replacing some pre-defined tokens with job-specific strings - see the createCommand function. Each item of the list is a word of the command line invocation.
local_files (list) – A list of file paths to copy into the job subdirectory before running the command
input_file (str) – The name of the file containing the input structures/data. It is ignored if there is a parent for this step.
cpu_hostname (str) – The name of the host to run CPU processes on
gpu_hostname (str) – The name of the host to run GPU processes on
umbrella (str) – Whether to run drivers that have GPU subjobs in umbrella mode or not. Should be one of UMBRELLA_ALWAYS (always run in umbrella mode even if the flag is not provided), UMBRELLA_NEVER (never run in umbrella mode even if the flag is provided) or UMBRELLA_PER_FLAG (obey the presence or absence of the -md_umbrella flag for this step). This parameter is only used if both cpu_hostname and gpu_hostname are given - if not, UMBRELLA_ALWAYS is enforced.
splitter (bool) – True if this step splits the workflow into parallel workflows, False if it does not. Note that this keyword is ignored if the SPLITTER class constant is True.
split_index (int) – If this step STARTS a new split workflow, the 1-based index of that workflow. Otherwise, just use 1 to indicate that it is the same workflow as the parent step.
split_tag (str) – An extra tag to add to the step name to distinguish between the same stage in parallel workflows
child_stages (list) – A list of child stages that need steps to be created from them. Each item is a
jaguar_multistage_workflow_utils.StageData
instance. This list contains one StageData item for each child stage no matter how many steps will be created from that stage due to splitting the workflow. For instance, if a workflow is A-B-C-D, and B is a splitter step that splits the workflow into 3 workflows, child_stages for B should be [C], not [C, C, C].use_jc (bool) – True if the step should use job control, False if not. The default value of None defaults to the class USES_JC constant.
tpp (int) – The number of threads per process. Serial processes use 1 thread. This will be added to the step command via -TPP tpp.
See parent class for additional documentation
- Raises
ValueError – if umbrella is not an allowed value
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the input structure file
- Return type
str
- Returns
The input structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- class schrodinger.application.matsci.jwsteps.VoidStep(*args, procs=1, tag=None, flags=None, archive=False, monitor_globs=None, full_command=None, local_files=None, input_file=None, cpu_hostname=None, gpu_hostname=None, umbrella='per_flag', splitter=False, split_index=1, split_tag='', child_stages=None, use_jc=None, tpp=1, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseStep
A step for running the Distributed Voids driver
- STEP_NAME = 'Distribute voids'¶
- JOB_BASE = 'voids'¶
- DRIVER_PATH = 'distribute_voids_gui_dir/distribute_voids_driver.py'¶
- DRIVER = <module 'distribute_voids_driver' from '/scr/buildbot/savedbuilds/2024-1/NB/build-133/mmshare-v6.5/python/scripts/distribute_voids_gui_dir/distribute_voids_driver.py'>¶
- FLAGS = {'-force': None, '-void_pct': 10}¶
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- BUILTIN_WF_FILE = None¶
- CAN_CREATE_TRAJECTORY = False¶
- COMBINER = False¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = False¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = False¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'cpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, procs=1, tag=None, flags=None, archive=False, monitor_globs=None, full_command=None, local_files=None, input_file=None, cpu_hostname=None, gpu_hostname=None, umbrella='per_flag', splitter=False, split_index=1, split_tag='', child_stages=None, use_jc=None, tpp=1, **kwargs)¶
Create a BaseStep object
- Parameters
procs (int) – The number of processors to allocate to steps of this class
tag – str(tag) will be added to the end of the job name and step name
flags (dict) – Command line argument flags in addition to, or that override, the class FLAGS variable. Keys are flag names (“-flag”), values are values for that flag. For flags that take no value, use None as the value. To turn off (not include in the command line) a flag in the class FLAGS variable, use the DO_NOT_USE_FLAG constant as the value.
archive (bool) – If True, instead of copying the subdirectory and individual files, will tar.gz up the entire subdirectory and copy that back.
monitor_globs (list) – List of valid file globs (i.e.
["*.zip"]
) that should be monitored for and copied back to the original job directory when they appear. Note that the interaction of archive and moitor_globs is such that if both are specified, the result will be a subdirectory with the monitored files AND an archive of the entire subdirectory (including any monitored files that remain when this step completes).full_command (list) – the full command line for this step including the driver path, etc. but without $SCHRODINGER/run. The command will be used “as is” except for replacing some pre-defined tokens with job-specific strings - see the createCommand function. Each item of the list is a word of the command line invocation.
local_files (list) – A list of file paths to copy into the job subdirectory before running the command
input_file (str) – The name of the file containing the input structures/data. It is ignored if there is a parent for this step.
cpu_hostname (str) – The name of the host to run CPU processes on
gpu_hostname (str) – The name of the host to run GPU processes on
umbrella (str) – Whether to run drivers that have GPU subjobs in umbrella mode or not. Should be one of UMBRELLA_ALWAYS (always run in umbrella mode even if the flag is not provided), UMBRELLA_NEVER (never run in umbrella mode even if the flag is provided) or UMBRELLA_PER_FLAG (obey the presence or absence of the -md_umbrella flag for this step). This parameter is only used if both cpu_hostname and gpu_hostname are given - if not, UMBRELLA_ALWAYS is enforced.
splitter (bool) – True if this step splits the workflow into parallel workflows, False if it does not. Note that this keyword is ignored if the SPLITTER class constant is True.
split_index (int) – If this step STARTS a new split workflow, the 1-based index of that workflow. Otherwise, just use 1 to indicate that it is the same workflow as the parent step.
split_tag (str) – An extra tag to add to the step name to distinguish between the same stage in parallel workflows
child_stages (list) – A list of child stages that need steps to be created from them. Each item is a
jaguar_multistage_workflow_utils.StageData
instance. This list contains one StageData item for each child stage no matter how many steps will be created from that stage due to splitting the workflow. For instance, if a workflow is A-B-C-D, and B is a splitter step that splits the workflow into 3 workflows, child_stages for B should be [C], not [C, C, C].use_jc (bool) – True if the step should use job control, False if not. The default value of None defaults to the class USES_JC constant.
tpp (int) – The number of threads per process. Serial processes use 1 thread. This will be added to the step command via -TPP tpp.
See parent class for additional documentation
- Raises
ValueError – if umbrella is not an allowed value
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the input structure file
- Return type
str
- Returns
The input structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the structures from this step to write to the final Workflow file
- Return type
list of
schrodinger.structure.Structure
or str- Returns
A list of structures to write or the string constant NO_STRUCTURES to indicate that the step is intentionally returning no structures. An empty list will indicate expected structures were not found.
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.FreeVolumeStep(*args, procs=1, tag=None, flags=None, archive=False, monitor_globs=None, full_command=None, local_files=None, input_file=None, cpu_hostname=None, gpu_hostname=None, umbrella='per_flag', splitter=False, split_index=1, split_tag='', child_stages=None, use_jc=None, tpp=1, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseStep
A step for running the Distributed Voids driver
- STEP_NAME = 'Free volume'¶
- JOB_BASE = 'freevol'¶
- DRIVER_PATH = 'free_volume_analysis_gui_dir/free_volume_analysis_driver.py'¶
- DRIVER = <module 'free_volume_analysis_driver' from '/scr/buildbot/savedbuilds/2024-1/NB/build-133/mmshare-v6.5/python/scripts/free_volume_analysis_gui_dir/free_volume_analysis_driver.py'>¶
- BUILTIN_WF_FILE = 'single_stage_free_volume.wfw'¶
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- CAN_CREATE_TRAJECTORY = False¶
- COMBINER = False¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = False¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = False¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'cpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, procs=1, tag=None, flags=None, archive=False, monitor_globs=None, full_command=None, local_files=None, input_file=None, cpu_hostname=None, gpu_hostname=None, umbrella='per_flag', splitter=False, split_index=1, split_tag='', child_stages=None, use_jc=None, tpp=1, **kwargs)¶
Create a BaseStep object
- Parameters
procs (int) – The number of processors to allocate to steps of this class
tag – str(tag) will be added to the end of the job name and step name
flags (dict) – Command line argument flags in addition to, or that override, the class FLAGS variable. Keys are flag names (“-flag”), values are values for that flag. For flags that take no value, use None as the value. To turn off (not include in the command line) a flag in the class FLAGS variable, use the DO_NOT_USE_FLAG constant as the value.
archive (bool) – If True, instead of copying the subdirectory and individual files, will tar.gz up the entire subdirectory and copy that back.
monitor_globs (list) – List of valid file globs (i.e.
["*.zip"]
) that should be monitored for and copied back to the original job directory when they appear. Note that the interaction of archive and moitor_globs is such that if both are specified, the result will be a subdirectory with the monitored files AND an archive of the entire subdirectory (including any monitored files that remain when this step completes).full_command (list) – the full command line for this step including the driver path, etc. but without $SCHRODINGER/run. The command will be used “as is” except for replacing some pre-defined tokens with job-specific strings - see the createCommand function. Each item of the list is a word of the command line invocation.
local_files (list) – A list of file paths to copy into the job subdirectory before running the command
input_file (str) – The name of the file containing the input structures/data. It is ignored if there is a parent for this step.
cpu_hostname (str) – The name of the host to run CPU processes on
gpu_hostname (str) – The name of the host to run GPU processes on
umbrella (str) – Whether to run drivers that have GPU subjobs in umbrella mode or not. Should be one of UMBRELLA_ALWAYS (always run in umbrella mode even if the flag is not provided), UMBRELLA_NEVER (never run in umbrella mode even if the flag is provided) or UMBRELLA_PER_FLAG (obey the presence or absence of the -md_umbrella flag for this step). This parameter is only used if both cpu_hostname and gpu_hostname are given - if not, UMBRELLA_ALWAYS is enforced.
splitter (bool) – True if this step splits the workflow into parallel workflows, False if it does not. Note that this keyword is ignored if the SPLITTER class constant is True.
split_index (int) – If this step STARTS a new split workflow, the 1-based index of that workflow. Otherwise, just use 1 to indicate that it is the same workflow as the parent step.
split_tag (str) – An extra tag to add to the step name to distinguish between the same stage in parallel workflows
child_stages (list) – A list of child stages that need steps to be created from them. Each item is a
jaguar_multistage_workflow_utils.StageData
instance. This list contains one StageData item for each child stage no matter how many steps will be created from that stage due to splitting the workflow. For instance, if a workflow is A-B-C-D, and B is a splitter step that splits the workflow into 3 workflows, child_stages for B should be [C], not [C, C, C].use_jc (bool) – True if the step should use job control, False if not. The default value of None defaults to the class USES_JC constant.
tpp (int) – The number of threads per process. Serial processes use 1 thread. This will be added to the step command via -TPP tpp.
See parent class for additional documentation
- Raises
ValueError – if umbrella is not an allowed value
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the input structure file
- Return type
str
- Returns
The input structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the structures from this step to write to the final Workflow file
- Return type
list of
schrodinger.structure.Structure
or str- Returns
A list of structures to write or the string constant NO_STRUCTURES to indicate that the step is intentionally returning no structures. An empty list will indicate expected structures were not found.
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.BaseMetaJaguarWorkflowStep(*args, procs=1, tag=None, flags=None, archive=False, monitor_globs=None, full_command=None, local_files=None, input_file=None, cpu_hostname=None, gpu_hostname=None, umbrella='per_flag', splitter=False, split_index=1, split_tag='', child_stages=None, use_jc=None, tpp=1, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseStep
Base Step for MatSci workflows that themselves run Jaguar subjobs
- FLAGS_ADD_TPP = True¶
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- BUILTIN_WF_FILE = None¶
- CAN_CREATE_TRAJECTORY = False¶
- COMBINER = False¶
- DRIVER = None¶
- DRIVER_PATH = 'driver_dir/driver.py'¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- JOB_BASE = 'base'¶
- OUTPUTS_CMS = False¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = False¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- STEP_NAME = 'Base Step'¶
- SUBJOB_RESOURCE = 'cpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, procs=1, tag=None, flags=None, archive=False, monitor_globs=None, full_command=None, local_files=None, input_file=None, cpu_hostname=None, gpu_hostname=None, umbrella='per_flag', splitter=False, split_index=1, split_tag='', child_stages=None, use_jc=None, tpp=1, **kwargs)¶
Create a BaseStep object
- Parameters
procs (int) – The number of processors to allocate to steps of this class
tag – str(tag) will be added to the end of the job name and step name
flags (dict) – Command line argument flags in addition to, or that override, the class FLAGS variable. Keys are flag names (“-flag”), values are values for that flag. For flags that take no value, use None as the value. To turn off (not include in the command line) a flag in the class FLAGS variable, use the DO_NOT_USE_FLAG constant as the value.
archive (bool) – If True, instead of copying the subdirectory and individual files, will tar.gz up the entire subdirectory and copy that back.
monitor_globs (list) – List of valid file globs (i.e.
["*.zip"]
) that should be monitored for and copied back to the original job directory when they appear. Note that the interaction of archive and moitor_globs is such that if both are specified, the result will be a subdirectory with the monitored files AND an archive of the entire subdirectory (including any monitored files that remain when this step completes).full_command (list) – the full command line for this step including the driver path, etc. but without $SCHRODINGER/run. The command will be used “as is” except for replacing some pre-defined tokens with job-specific strings - see the createCommand function. Each item of the list is a word of the command line invocation.
local_files (list) – A list of file paths to copy into the job subdirectory before running the command
input_file (str) – The name of the file containing the input structures/data. It is ignored if there is a parent for this step.
cpu_hostname (str) – The name of the host to run CPU processes on
gpu_hostname (str) – The name of the host to run GPU processes on
umbrella (str) – Whether to run drivers that have GPU subjobs in umbrella mode or not. Should be one of UMBRELLA_ALWAYS (always run in umbrella mode even if the flag is not provided), UMBRELLA_NEVER (never run in umbrella mode even if the flag is provided) or UMBRELLA_PER_FLAG (obey the presence or absence of the -md_umbrella flag for this step). This parameter is only used if both cpu_hostname and gpu_hostname are given - if not, UMBRELLA_ALWAYS is enforced.
splitter (bool) – True if this step splits the workflow into parallel workflows, False if it does not. Note that this keyword is ignored if the SPLITTER class constant is True.
split_index (int) – If this step STARTS a new split workflow, the 1-based index of that workflow. Otherwise, just use 1 to indicate that it is the same workflow as the parent step.
split_tag (str) – An extra tag to add to the step name to distinguish between the same stage in parallel workflows
child_stages (list) – A list of child stages that need steps to be created from them. Each item is a
jaguar_multistage_workflow_utils.StageData
instance. This list contains one StageData item for each child stage no matter how many steps will be created from that stage due to splitting the workflow. For instance, if a workflow is A-B-C-D, and B is a splitter step that splits the workflow into 3 workflows, child_stages for B should be [C], not [C, C, C].use_jc (bool) – True if the step should use job control, False if not. The default value of None defaults to the class USES_JC constant.
tpp (int) – The number of threads per process. Serial processes use 1 thread. This will be added to the step command via -TPP tpp.
See parent class for additional documentation
- Raises
ValueError – if umbrella is not an allowed value
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the input structure file
- Return type
str
- Returns
The input structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the structures from this step to write to the final Workflow file
- Return type
list of
schrodinger.structure.Structure
or str- Returns
A list of structures to write or the string constant NO_STRUCTURES to indicate that the step is intentionally returning no structures. An empty list will indicate expected structures were not found.
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.JaguarStep(*args, keywords=None, esp_for_md=False, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseMetaJaguarWorkflowStep
A step for running a single Jaguar calculation
- STEP_NAME = 'Jaguar'¶
- JOB_BASE = 'jag'¶
- DRIVER_PATH = None¶
- DRIVER = None¶
- FLAGS_ADD_JOB_NAME = False¶
- THREADS = True¶
- __init__(*args, keywords=None, esp_for_md=False, **kwargs)¶
Create a JaguarStep instance
- Parameters
keywords (dict) – Keys are keyword names, values are keyword values. This parameter overrides the keystring argument of the base class. If keywords is not given, keystring will be used if keystring is given.
esp_for_md (bool) – After Jaguar finishes, store the ESP charges as custom forcefield charges in the .01.mae file
See parent class for additional information
- writeInput(struct)¶
Write the input file
- Type
structure.Structure or None
- Parameters
struct – The structure to write. If None it will write the input file.
- getInputName()¶
Get the name of the input structure file
- Return type
str
- Returns
The input structure file name
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output (list) – The only item in the list is the output structure
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- BUILTIN_WF_FILE = None¶
- CAN_CREATE_TRAJECTORY = False¶
- COMBINER = False¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_TPP = True¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = False¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = False¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'cpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the structures from this step to write to the final Workflow file
- Return type
list of
schrodinger.structure.Structure
or str- Returns
A list of structures to write or the string constant NO_STRUCTURES to indicate that the step is intentionally returning no structures. An empty list will indicate expected structures were not found.
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- class schrodinger.application.matsci.jwsteps.BDEStep(*args, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseMetaJaguarWorkflowStep
A step for running the Bond Dissociation Energy workflow
- KEYS = {'basis': 'MIDIXL', 'dftname': 'B3LYP', 'iaccg': 3, 'igeopt': 1, 'isymm': 0, 'maxit': 100, 'nofail': 1, 'nops_opt_switch': 10}¶
- STEP_NAME = 'BDE'¶
- JOB_BASE = 'bde'¶
- DRIVER_PATH = 'bond_dissociation_gui_dir/bond_dissociation_driver.py'¶
- DRIVER = <module 'bond_dissociation_driver' from '/scr/buildbot/savedbuilds/2024-1/NB/build-133/mmshare-v6.5/python/scripts/bond_dissociation_gui_dir/bond_dissociation_driver.py'>¶
- FLAGS = {'-allow_hx': 'no', '-bonds': None, '-states': 's0'}¶
- FLAGS_ADD_DOUBLE_DASH = True¶
- __init__(*args, **kwargs)¶
Create a BDEStep instance.
See parent class for additional documentation.
- getStructsOfType(stype)¶
A generator for structures of the given type from BDE results
- Parameters
stype (str) – The type of structure to get ‘Reactants’, ‘Reactions’, ‘Fragments’
- Return type
Iterator
- Returns
Iterator of
schrodinger.Structure
for the request type
- getStructsForWriting()¶
Get the structure to write for this step. It will be the reactant structure
- Return type
list of
schrodinger.Structure
- Returns
The reactant structure
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- BUILTIN_WF_FILE = None¶
- CAN_CREATE_TRAJECTORY = False¶
- COMBINER = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = True¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = False¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = False¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'cpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the input structure file
- Return type
str
- Returns
The input structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.HOFStep(*args, high=False, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseMetaJaguarWorkflowStep
A step for running the Heat of Formation workflow
- PROCS = 2¶
- STEP_NAME = 'HOF'¶
- JOB_BASE = 'hof'¶
- DRIVER_PATH = 'jaguar'¶
- FLAGS = {'-method_sp': 'M06-2X', '-scalfr': '0.9806', '-zpe': None, 'deltah.py': None, 'run': None}¶
- FLAGS_ADD_JOB_NAME = False¶
- HOF_PROP = 'r_j_Delta_H_of_Formation(298K)_(kcal/mol)'¶
- __init__(*args, high=False, **kwargs)¶
Create a HOFStep instance.
- Parameters
high (bool) – True if we are computing heat of formation at the high level of accuracy
See parent class for additional documentation.
- outputStructurePath()¶
Get the path to the subjob subdirectory that contains the results
- Return type
str
- Returns
The path to the subdirectory inside the subjob’s directory that holds the results.
- getInputName()¶
Get the name of the input structure file
- Return type
str
- Returns
The input structure file name
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- BUILTIN_WF_FILE = None¶
- CAN_CREATE_TRAJECTORY = False¶
- COMBINER = False¶
- DRIVER = None¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_TPP = True¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = False¶
- REQUIRES_CMS_INPUT = False¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'cpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the structures from this step to write to the final Workflow file
- Return type
list of
schrodinger.structure.Structure
or str- Returns
A list of structures to write or the string constant NO_STRUCTURES to indicate that the step is intentionally returning no structures. An empty list will indicate expected structures were not found.
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.CustomMaeStep(*args, procs=1, tag=None, flags=None, archive=False, monitor_globs=None, full_command=None, local_files=None, input_file=None, cpu_hostname=None, gpu_hostname=None, umbrella='per_flag', splitter=False, split_index=1, split_tag='', child_stages=None, use_jc=None, tpp=1, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseStep
A step for running custom scripts that output a .mae file
- STEP_NAME = 'Custom'¶
- JOB_BASE = 'custom'¶
- USES_JC = False¶
- USES_MULTI_SUBJOBS = True¶
- USES_THREADS = True¶
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- BUILTIN_WF_FILE = None¶
- CAN_CREATE_TRAJECTORY = False¶
- COMBINER = False¶
- DRIVER = None¶
- DRIVER_PATH = 'driver_dir/driver.py'¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = False¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = False¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'cpu'¶
- __init__(*args, procs=1, tag=None, flags=None, archive=False, monitor_globs=None, full_command=None, local_files=None, input_file=None, cpu_hostname=None, gpu_hostname=None, umbrella='per_flag', splitter=False, split_index=1, split_tag='', child_stages=None, use_jc=None, tpp=1, **kwargs)¶
Create a BaseStep object
- Parameters
procs (int) – The number of processors to allocate to steps of this class
tag – str(tag) will be added to the end of the job name and step name
flags (dict) – Command line argument flags in addition to, or that override, the class FLAGS variable. Keys are flag names (“-flag”), values are values for that flag. For flags that take no value, use None as the value. To turn off (not include in the command line) a flag in the class FLAGS variable, use the DO_NOT_USE_FLAG constant as the value.
archive (bool) – If True, instead of copying the subdirectory and individual files, will tar.gz up the entire subdirectory and copy that back.
monitor_globs (list) – List of valid file globs (i.e.
["*.zip"]
) that should be monitored for and copied back to the original job directory when they appear. Note that the interaction of archive and moitor_globs is such that if both are specified, the result will be a subdirectory with the monitored files AND an archive of the entire subdirectory (including any monitored files that remain when this step completes).full_command (list) – the full command line for this step including the driver path, etc. but without $SCHRODINGER/run. The command will be used “as is” except for replacing some pre-defined tokens with job-specific strings - see the createCommand function. Each item of the list is a word of the command line invocation.
local_files (list) – A list of file paths to copy into the job subdirectory before running the command
input_file (str) – The name of the file containing the input structures/data. It is ignored if there is a parent for this step.
cpu_hostname (str) – The name of the host to run CPU processes on
gpu_hostname (str) – The name of the host to run GPU processes on
umbrella (str) – Whether to run drivers that have GPU subjobs in umbrella mode or not. Should be one of UMBRELLA_ALWAYS (always run in umbrella mode even if the flag is not provided), UMBRELLA_NEVER (never run in umbrella mode even if the flag is provided) or UMBRELLA_PER_FLAG (obey the presence or absence of the -md_umbrella flag for this step). This parameter is only used if both cpu_hostname and gpu_hostname are given - if not, UMBRELLA_ALWAYS is enforced.
splitter (bool) – True if this step splits the workflow into parallel workflows, False if it does not. Note that this keyword is ignored if the SPLITTER class constant is True.
split_index (int) – If this step STARTS a new split workflow, the 1-based index of that workflow. Otherwise, just use 1 to indicate that it is the same workflow as the parent step.
split_tag (str) – An extra tag to add to the step name to distinguish between the same stage in parallel workflows
child_stages (list) – A list of child stages that need steps to be created from them. Each item is a
jaguar_multistage_workflow_utils.StageData
instance. This list contains one StageData item for each child stage no matter how many steps will be created from that stage due to splitting the workflow. For instance, if a workflow is A-B-C-D, and B is a splitter step that splits the workflow into 3 workflows, child_stages for B should be [C], not [C, C, C].use_jc (bool) – True if the step should use job control, False if not. The default value of None defaults to the class USES_JC constant.
tpp (int) – The number of threads per process. Serial processes use 1 thread. This will be added to the step command via -TPP tpp.
See parent class for additional documentation
- Raises
ValueError – if umbrella is not an allowed value
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the input structure file
- Return type
str
- Returns
The input structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the structures from this step to write to the final Workflow file
- Return type
list of
schrodinger.structure.Structure
or str- Returns
A list of structures to write or the string constant NO_STRUCTURES to indicate that the step is intentionally returning no structures. An empty list will indicate expected structures were not found.
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.BaseDesmondStep(*args, maestro_in=False, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseStep
Base class for steps that use Desmond as the main engine or produce a cms file
- OUTPUTS_CMS = True¶
- RESOURCE = 'cpu'¶
- SUBJOB_RESOURCE = 'gpu'¶
- __init__(*args, maestro_in=False, **kwargs)¶
Create a BaseDesmondStep instance
- Parameters
maestro_in (bool) – If true, the class will write a Maestro input file (.maegz) rather than a CMS (.cms) file
See parent class for additional documentation
- REQUIRES_CMS_INPUT = True¶
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- BUILTIN_WF_FILE = None¶
- CAN_CREATE_TRAJECTORY = False¶
- COMBINER = False¶
- DRIVER = None¶
- DRIVER_PATH = 'driver_dir/driver.py'¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- JOB_BASE = 'base'¶
- PROCS = 1¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- SPLITTER = False¶
- STEP_NAME = 'Base Step'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.ReplicateMakerMixin¶
Bases:
object
A mixin for built-in workflows that can optionally produce multiple structures that split the workflow
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- getOutputEnding()¶
Get the output file ending based on the command line flags
- Return type
str
- Returns
The output file ending appropriate for CMS or MAE output
- getOutputFileNamePattern()¶
A glob pattern that matches output file names
- Return type
str
- Returns
The pattern to use when globbing for output files
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
- Returns
The structure the child step should use
- getStructsForWriting()¶
Get the structures from this step to write to the final Workflow file
- Return type
list of
schrodinger.structure.Structure
- Returns
A list of structures to write
- class schrodinger.application.matsci.jwsteps.DisorderedSystemBuilderStep(*args, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.ReplicateMakerMixin
,schrodinger.application.matsci.jwsteps.BaseDesmondStep
A step that runs the Disordered System Builder.
- STEP_NAME = 'Disordered system'¶
- JOB_BASE = 'dsb'¶
- DRIVER_PATH = 'disordered_system_builder_gui_dir/disordered_system_builder_driver.py'¶
- DRIVER = <module 'disordered_system_builder_driver' from '/scr/buildbot/savedbuilds/2024-1/NB/build-133/mmshare-v6.5/python/scripts/disordered_system_builder_gui_dir/disordered_system_builder_driver.py'>¶
- FLAGS = {'-forcefield': 'S-OPLS', '-grid': None, '-pack': None, '-split_components': None}¶
- REQUIRES_CMS_INPUT = False¶
- RESOURCE = 'cpu'¶
- SUBJOB_RESOURCE = 'cpu'¶
- USES_MULTI_SUBJOBS = True¶
- BUILTIN_WF_FILE = 'single_stage_disorder_system_single_component.wfw'¶
- MAE_ENDING = '_amorphous.maegz'¶
- CMS_ENDING = '_system-out.cms'¶
- __init__(*args, **kwargs)¶
Create a DisorderedSystemBuilderStep instance
See parent class for additional documentation
- getOutputEnding()¶
Get the output file ending based on the command line flags
- Return type
str
- Returns
The output file ending appropriate for CMS or MAE output
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- CAN_CREATE_TRAJECTORY = False¶
- COMBINER = False¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- SPLITTER = False¶
- USES_JC = True¶
- USES_THREADS = False¶
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputFileNamePattern()¶
A glob pattern that matches output file names
- Return type
str
- Returns
The pattern to use when globbing for output files
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
- Returns
The structure the child step should use
- getStructsForWriting()¶
Get the structures from this step to write to the final Workflow file
- Return type
list of
schrodinger.structure.Structure
- Returns
A list of structures to write
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.PolymerBuilderStep(*args, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.ReplicateMakerMixin
,schrodinger.application.matsci.jwsteps.BaseDesmondStep
A step that runs the Polymer Builder.
- STEP_NAME = 'Polymer Builder'¶
- JOB_BASE = 'polybuild'¶
- DRIVER_PATH = 'polymer_builder_gui_dir/polymer_builder_driver.py'¶
- DRIVER = <module 'polymer_builder_driver' from '/scr/buildbot/savedbuilds/2024-1/NB/build-133/mmshare-v6.5/python/scripts/polymer_builder_gui_dir/polymer_builder_driver.py'>¶
- REQUIRES_CMS_INPUT = False¶
- FLAGS = {'-simple_input': None}¶
- RESOURCE = 'cpu'¶
- SUBJOB_RESOURCE = 'cpu'¶
- USES_MULTI_SUBJOBS = True¶
- BUILTIN_WF_FILE = 'single_stage_polymer_builder.wfw'¶
- MAE_NOCELL_ENDING = '-polymer.maegz'¶
- MAE_CELL_ENDING = '-amcell.maegz'¶
- CMS_ENDING = '_system-out.cms'¶
- __init__(*args, **kwargs)¶
Create a PolymerBuilderStep instance
See parent class for additional documentation
- getInputName()¶
Get the name of the input structure file
- Return type
str
- Returns
The input structure file name
- removeIncomingProperties(*args, **kwargs)¶
Override the parent method to do nothing since we don’t have a single simple input structure and the properties do not survive the polymer builder.
- getOutputEnding()¶
Get the output file ending based on the command line flags
- Return type
str
- Returns
The output file ending appropriate for CMS or MAE output
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- CAN_CREATE_TRAJECTORY = False¶
- COMBINER = False¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- SPLITTER = False¶
- USES_JC = True¶
- USES_THREADS = False¶
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputFileNamePattern()¶
A glob pattern that matches output file names
- Return type
str
- Returns
The pattern to use when globbing for output files
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
- Returns
The structure the child step should use
- getStructsForWriting()¶
Get the structures from this step to write to the final Workflow file
- Return type
list of
schrodinger.structure.Structure
- Returns
A list of structures to write
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.PrepForMDStep(*args, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseDesmondStep
A step that runs Prepare for MD to create a Desmond system.
- STEP_NAME = 'Prepare for MD'¶
- JOB_BASE = 'prepmd'¶
- DRIVER_PATH = 'prepare_for_md_gui_dir/prepare_for_md_driver.py'¶
- DRIVER = <module 'prepare_for_md_driver' from '/scr/buildbot/savedbuilds/2024-1/NB/build-133/mmshare-v6.5/python/scripts/prepare_for_md_gui_dir/prepare_for_md_driver.py'>¶
- FLAGS = {'-forcefield': 'S-OPLS', '-split_components': None}¶
- REQUIRES_CMS_INPUT = False¶
- RESOURCE = 'cpu'¶
- SUBJOB_RESOURCE = 'cpu'¶
- BUILTIN_WF_FILE = 'single_stage_prepare_for_md.wfw'¶
- __init__(*args, **kwargs)¶
Create a PrepForMDStep object
See parent class for documentation
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- CAN_CREATE_TRAJECTORY = False¶
- COMBINER = False¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- SPLITTER = False¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.MolecularDynamicsStep(*args, analysis=False, average=None, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseDesmondStep
A step that runs one or more Desmond MD stages
- STEP_NAME = 'Relaxation'¶
- JOB_BASE = 'relax'¶
- ANALYSIS_FRAME_PERCENT = 20¶
- CAN_CREATE_TRAJECTORY = True¶
- RESOURCE = 'gpu'¶
- SUBJOB_RESOURCE = 'gpu'¶
- __init__(*args, analysis=False, average=None, **kwargs)¶
Create a MolecularDynamicsStep object
- Parameters
analysis (bool) – Whether to perform a trajectory analysis on the last MD stage
average (int) – What percent of the final MD stage trajectory to average the cell size over
See parent class for documentation
- addVelocityIfNeeded(kwargs)¶
Add the velocity write keyword if there will be analysis done
- Parameters
kwargs (dict) – dict of current keyword/value pairs - modified if velocity is needed
- getStringers()¶
Create the stringers that define each MD stage
- Return type
list
- Returns
A list of MSJStringer objects
- writeMSJFile()¶
Write the MSJ file for this step
- writeInput(struct)¶
Write the input structure file and msj file
- Parameters
struct (structure.Structure or None) – The structure to write. If None it will write the input file.
- getMSJName()¶
Get the name of the MSJ file
- Return type
str
- Returns
The MSJ file name
- createJob()¶
Form the command line and create a job for the queue
- Return type
jobutils.RobustSubmissionJob
- Returns
The job to add to the JobDJ
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. If it evaluates to False, no processing is done. Otherwise it is unused.
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- BUILTIN_WF_FILE = None¶
- COMBINER = False¶
- DRIVER = None¶
- DRIVER_PATH = 'driver_dir/driver.py'¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- SPLITTER = False¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- class schrodinger.application.matsci.jwsteps.BaseRelaxationStep(*args, temp=300.0, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.MolecularDynamicsStep
A base class for relaxation step
- STEP_NAME = 'BaseRelaxation'¶
- JOB_BASE = 'baserelax'¶
- __init__(*args, temp=300.0, **kwargs)¶
Create a base relaxation object
- Parameters
temp (float) – Temperature for the final relaxation step
See parent class for documentation
- getStringers()¶
Create the stringers that define each MD stage
- Raises
NotImplementedError – Overwrite this method
- Return type
str
- Returns
A list of MSJStringer objects
- ANALYSIS_FRAME_PERCENT = 20¶
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- BUILTIN_WF_FILE = None¶
- CAN_CREATE_TRAJECTORY = True¶
- COMBINER = False¶
- DRIVER = None¶
- DRIVER_PATH = 'driver_dir/driver.py'¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'gpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'gpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- addVelocityIfNeeded(kwargs)¶
Add the velocity write keyword if there will be analysis done
- Parameters
kwargs (dict) – dict of current keyword/value pairs - modified if velocity is needed
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Form the command line and create a job for the queue
- Return type
jobutils.RobustSubmissionJob
- Returns
The job to add to the JobDJ
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getMSJName()¶
Get the name of the MSJ file
- Return type
str
- Returns
The MSJ file name
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. If it evaluates to False, no processing is done. Otherwise it is unused.
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input structure file and msj file
- Parameters
struct (structure.Structure or None) – The structure to write. If None it will write the input file.
- writeMSJFile()¶
Write the MSJ file for this step
- class schrodinger.application.matsci.jwsteps.MatSciMDRelaxationStep(*args, temp=300.0, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseRelaxationStep
A step that runs a MatSci MD relaxation protocol
- STEP_NAME = 'MSRelaxation'¶
- JOB_BASE = 'msrelax'¶
- getStringers()¶
Create the stringers that define each MD stage
- Return type
str
- Returns
A list of MSJStringer objects
- ANALYSIS_FRAME_PERCENT = 20¶
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- BUILTIN_WF_FILE = None¶
- CAN_CREATE_TRAJECTORY = True¶
- COMBINER = False¶
- DRIVER = None¶
- DRIVER_PATH = 'driver_dir/driver.py'¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'gpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'gpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, temp=300.0, **kwargs)¶
Create a base relaxation object
- Parameters
temp (float) – Temperature for the final relaxation step
See parent class for documentation
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- addVelocityIfNeeded(kwargs)¶
Add the velocity write keyword if there will be analysis done
- Parameters
kwargs (dict) – dict of current keyword/value pairs - modified if velocity is needed
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Form the command line and create a job for the queue
- Return type
jobutils.RobustSubmissionJob
- Returns
The job to add to the JobDJ
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getMSJName()¶
Get the name of the MSJ file
- Return type
str
- Returns
The MSJ file name
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. If it evaluates to False, no processing is done. Otherwise it is unused.
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input structure file and msj file
- Parameters
struct (structure.Structure or None) – The structure to write. If None it will write the input file.
- writeMSJFile()¶
Write the MSJ file for this step
- class schrodinger.application.matsci.jwsteps.CompressiveRelaxationStep(*args, temp=300.0, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseRelaxationStep
A step that runs a compressive relaxation protocol
- STEP_NAME = 'CompressRelaxation'¶
- JOB_BASE = 'comprelax'¶
- getStringers()¶
Create the stringers that define each MD stage
- Return type
str
- Returns
A list of MSJStringer objects
- ANALYSIS_FRAME_PERCENT = 20¶
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- BUILTIN_WF_FILE = None¶
- CAN_CREATE_TRAJECTORY = True¶
- COMBINER = False¶
- DRIVER = None¶
- DRIVER_PATH = 'driver_dir/driver.py'¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'gpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'gpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, temp=300.0, **kwargs)¶
Create a base relaxation object
- Parameters
temp (float) – Temperature for the final relaxation step
See parent class for documentation
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- addVelocityIfNeeded(kwargs)¶
Add the velocity write keyword if there will be analysis done
- Parameters
kwargs (dict) – dict of current keyword/value pairs - modified if velocity is needed
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Form the command line and create a job for the queue
- Return type
jobutils.RobustSubmissionJob
- Returns
The job to add to the JobDJ
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getMSJName()¶
Get the name of the MSJ file
- Return type
str
- Returns
The MSJ file name
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. If it evaluates to False, no processing is done. Otherwise it is unused.
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input structure file and msj file
- Parameters
struct (structure.Structure or None) – The structure to write. If None it will write the input file.
- writeMSJFile()¶
Write the MSJ file for this step
- class schrodinger.application.matsci.jwsteps.SemiCrystalRelaxation1Step(*args, temp=300.0, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseRelaxationStep
A step that runs first Semi-Crystalline relaxation protocol
- STEP_NAME = 'SemiCrystalRelaxation1'¶
- JOB_BASE = 'semicrystalrelax1'¶
- getStringers()¶
Create the stringers that define each MD stage
- Return type
str
- Returns
A list of MSJStringer objects
- ANALYSIS_FRAME_PERCENT = 20¶
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- BUILTIN_WF_FILE = None¶
- CAN_CREATE_TRAJECTORY = True¶
- COMBINER = False¶
- DRIVER = None¶
- DRIVER_PATH = 'driver_dir/driver.py'¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'gpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'gpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, temp=300.0, **kwargs)¶
Create a base relaxation object
- Parameters
temp (float) – Temperature for the final relaxation step
See parent class for documentation
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- addVelocityIfNeeded(kwargs)¶
Add the velocity write keyword if there will be analysis done
- Parameters
kwargs (dict) – dict of current keyword/value pairs - modified if velocity is needed
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Form the command line and create a job for the queue
- Return type
jobutils.RobustSubmissionJob
- Returns
The job to add to the JobDJ
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getMSJName()¶
Get the name of the MSJ file
- Return type
str
- Returns
The MSJ file name
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. If it evaluates to False, no processing is done. Otherwise it is unused.
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input structure file and msj file
- Parameters
struct (structure.Structure or None) – The structure to write. If None it will write the input file.
- writeMSJFile()¶
Write the MSJ file for this step
- class schrodinger.application.matsci.jwsteps.SemiCrystalRelaxation2Step(*args, temp=300.0, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseRelaxationStep
A step that runs second Semi-Crystalline relaxation protocol
- STEP_NAME = 'SemiCrystalRelaxation2'¶
- JOB_BASE = 'semicrystalrelax2'¶
- getStringers()¶
Create the stringers that define each MD stage
- Return type
str
- Returns
A list of MSJStringer objects
- ANALYSIS_FRAME_PERCENT = 20¶
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- BUILTIN_WF_FILE = None¶
- CAN_CREATE_TRAJECTORY = True¶
- COMBINER = False¶
- DRIVER = None¶
- DRIVER_PATH = 'driver_dir/driver.py'¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'gpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'gpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, temp=300.0, **kwargs)¶
Create a base relaxation object
- Parameters
temp (float) – Temperature for the final relaxation step
See parent class for documentation
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- addVelocityIfNeeded(kwargs)¶
Add the velocity write keyword if there will be analysis done
- Parameters
kwargs (dict) – dict of current keyword/value pairs - modified if velocity is needed
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Form the command line and create a job for the queue
- Return type
jobutils.RobustSubmissionJob
- Returns
The job to add to the JobDJ
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getMSJName()¶
Get the name of the MSJ file
- Return type
str
- Returns
The MSJ file name
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. If it evaluates to False, no processing is done. Otherwise it is unused.
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input structure file and msj file
- Parameters
struct (structure.Structure or None) – The structure to write. If None it will write the input file.
- writeMSJFile()¶
Write the MSJ file for this step
- class schrodinger.application.matsci.jwsteps.SingleMDStep(*args, params=None, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.MolecularDynamicsStep
A step that runs a single MD simulation
- STEP_NAME = 'md'¶
- JOB_BASE = 'md'¶
- STRINGER_CLASS¶
alias of
schrodinger.application.matsci.desconfig.MDMSJStringer
- __init__(*args, params=None, **kwargs)¶
Create a MatSciMDRelaxationStep object
- Parameters
temp (dict) – Keyword arguments to pass to the
STRINGER_CLASS
See parent class for documentation
- getStringers()¶
Create the stringers that define each MD stage
- Return type
list
- Returns
A list of MSJStringer objects
- ANALYSIS_FRAME_PERCENT = 20¶
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- BUILTIN_WF_FILE = None¶
- CAN_CREATE_TRAJECTORY = True¶
- COMBINER = False¶
- DRIVER = None¶
- DRIVER_PATH = 'driver_dir/driver.py'¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'gpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'gpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- addVelocityIfNeeded(kwargs)¶
Add the velocity write keyword if there will be analysis done
- Parameters
kwargs (dict) – dict of current keyword/value pairs - modified if velocity is needed
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Form the command line and create a job for the queue
- Return type
jobutils.RobustSubmissionJob
- Returns
The job to add to the JobDJ
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getMSJName()¶
Get the name of the MSJ file
- Return type
str
- Returns
The MSJ file name
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. If it evaluates to False, no processing is done. Otherwise it is unused.
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input structure file and msj file
- Parameters
struct (structure.Structure or None) – The structure to write. If None it will write the input file.
- writeMSJFile()¶
Write the MSJ file for this step
- class schrodinger.application.matsci.jwsteps.SingleBrownieStep(*args, params=None, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.SingleMDStep
A step that runs a single Brownie step
- STEP_NAME = 'brownie'¶
- JOB_BASE = 'brownie'¶
- STRINGER_CLASS¶
alias of
schrodinger.application.matsci.desconfig.BrownieMSJStringer
- ANALYSIS_FRAME_PERCENT = 20¶
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- BUILTIN_WF_FILE = None¶
- CAN_CREATE_TRAJECTORY = True¶
- COMBINER = False¶
- DRIVER = None¶
- DRIVER_PATH = 'driver_dir/driver.py'¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'gpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'gpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, params=None, **kwargs)¶
Create a MatSciMDRelaxationStep object
- Parameters
temp (dict) – Keyword arguments to pass to the
STRINGER_CLASS
See parent class for documentation
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- addVelocityIfNeeded(kwargs)¶
Add the velocity write keyword if there will be analysis done
- Parameters
kwargs (dict) – dict of current keyword/value pairs - modified if velocity is needed
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Form the command line and create a job for the queue
- Return type
jobutils.RobustSubmissionJob
- Returns
The job to add to the JobDJ
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getMSJName()¶
Get the name of the MSJ file
- Return type
str
- Returns
The MSJ file name
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStringers()¶
Create the stringers that define each MD stage
- Return type
list
- Returns
A list of MSJStringer objects
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. If it evaluates to False, no processing is done. Otherwise it is unused.
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input structure file and msj file
- Parameters
struct (structure.Structure or None) – The structure to write. If None it will write the input file.
- writeMSJFile()¶
Write the MSJ file for this step
- class schrodinger.application.matsci.jwsteps.MDCustomMSJStep(*args, msj=None, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.MolecularDynamicsStep
A step that runs MD with a custom MSJ file
- STEP_NAME = 'Customized MD'¶
- JOB_BASE = 'custom_md'¶
- CAN_CREATE_TRAJECTORY = True¶
- __init__(*args, msj=None, **kwargs)¶
Create a MSCustomMSJStep object
- Parameters
msj (str) – The of the msj file to use
See parent class for documentation
- writeMSJFile()¶
Write the MSJ file for this step
- getMSJName()¶
Get the name of the MSJ file
- Return type
str
- Returns
The MSJ file name
- ANALYSIS_FRAME_PERCENT = 20¶
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- BUILTIN_WF_FILE = None¶
- COMBINER = False¶
- DRIVER = None¶
- DRIVER_PATH = 'driver_dir/driver.py'¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'gpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'gpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- addVelocityIfNeeded(kwargs)¶
Add the velocity write keyword if there will be analysis done
- Parameters
kwargs (dict) – dict of current keyword/value pairs - modified if velocity is needed
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Form the command line and create a job for the queue
- Return type
jobutils.RobustSubmissionJob
- Returns
The job to add to the JobDJ
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStringers()¶
Create the stringers that define each MD stage
- Return type
list
- Returns
A list of MSJStringer objects
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. If it evaluates to False, no processing is done. Otherwise it is unused.
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input structure file and msj file
- Parameters
struct (structure.Structure or None) – The structure to write. If None it will write the input file.
- class schrodinger.application.matsci.jwsteps.TgStep(*args, melting=False, bilinear=False, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseDesmondStep
A step that runs a Tg calculation
- STEP_NAME = 'Tg'¶
- JOB_BASE = 'tg'¶
- DRIVER_PATH = 'thermophysical_properties_gui_dir/thermophysical_properties_driver.py'¶
- DRIVER = <module 'thermophysical_properties_driver' from '/scr/buildbot/savedbuilds/2024-1/NB/build-133/mmshare-v6.5/python/scripts/thermophysical_properties_gui_dir/thermophysical_properties_driver.py'>¶
- FLAGS = {'-density_stage_time': 20, '-frame_interval': 200.0, '-job_order': 'max_first', '-load_temp_structure': 200.0, '-max_convergence_retries': 5, '-max_temp': 600, '-min_temp': 200, '-temp_step': 25}¶
- FLAGS_INPUT_NAME_FLAG = '-icms'¶
- CAN_CREATE_TRAJECTORY = True¶
- USES_MULTI_SUBJOBS = True¶
- BUILTIN_WF_FILE = 'single_stage_Tg.wfw'¶
- __init__(*args, melting=False, bilinear=False, **kwargs)¶
Create a TgStep object
- Parameters
melting (bool) – If True, temps will run from low to high. Otherwise, (default), they will run from high to low.
bilinear (bool) – If True, the Tg fit will be done via the bilinear method. Otherwise, (default), it will be done via hyperbola
See parent class for additional documentation
- processOutput(output)¶
Process the output of a job during the finish part of the step. This computes the Tg via fit of temperature vs density.
- Parameters
output (list) – The output of the job. The first item should be the structure (Cms or Structure) that contains the density vs temperature properties.
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- COMBINER = False¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'gpu'¶
- USES_JC = True¶
- USES_THREADS = False¶
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.StressStrainStep(*args, maestro_in=False, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseDesmondStep
A step that runs a Stress-Strain calculation
- STEP_NAME = 'Stress'¶
- JOB_BASE = 'stress'¶
- DRIVER_PATH = 'stress_strain_gui_dir/stress_strain_driver.py'¶
- DRIVER = <module 'stress_strain_driver' from '/scr/buildbot/savedbuilds/2024-1/NB/build-133/mmshare-v6.5/python/scripts/stress_strain_gui_dir/stress_strain_driver.py'>¶
- CAN_CREATE_TRAJECTORY = True¶
- BUILTIN_WF_FILE = 'single_stage_stress_strain.wfw'¶
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- COMBINER = False¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'gpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, maestro_in=False, **kwargs)¶
Create a BaseDesmondStep instance
- Parameters
maestro_in (bool) – If true, the class will write a Maestro input file (.maegz) rather than a CMS (.cms) file
See parent class for additional documentation
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.DiffusionMSDStep(*args, maestro_in=False, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseDesmondStep
A step that runs a MSD Diffusion calculation
- STEP_NAME = 'Diffusion by MSD'¶
- JOB_BASE = 'diffusion_msd'¶
- DRIVER_PATH = 'diffusion_coefficient_gui_dir/diffusion_coefficient_msd_driver.py'¶
- DRIVER = <module 'diffusion_coefficient_msd_driver' from '/scr/buildbot/savedbuilds/2024-1/NB/build-133/mmshare-v6.5/python/scripts/diffusion_coefficient_gui_dir/diffusion_coefficient_msd_driver.py'>¶
- CAN_CREATE_TRAJECTORY = True¶
- BUILTIN_WF_FILE = 'single_stage_diffusion_msd.wfw'¶
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str
- Returns
The output trajectory directory name
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- COMBINER = False¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'gpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, maestro_in=False, **kwargs)¶
Create a BaseDesmondStep instance
- Parameters
maestro_in (bool) – If true, the class will write a Maestro input file (.maegz) rather than a CMS (.cms) file
See parent class for additional documentation
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.DiffusionGKStep(*args, maestro_in=False, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseDesmondStep
A step that runs a velocity autocorrelation Diffusion calculation
- STEP_NAME = 'Diffusion by GK'¶
- JOB_BASE = 'diffusion_vel'¶
- DRIVER_PATH = 'diffusion_coefficient_gui_dir/diffusion_coefficient_gk_driver.py'¶
- DRIVER = <module 'diffusion_coefficient_gk_driver' from '/scr/buildbot/savedbuilds/2024-1/NB/build-133/mmshare-v6.5/python/scripts/diffusion_coefficient_gui_dir/diffusion_coefficient_gk_driver.py'>¶
- CAN_CREATE_TRAJECTORY = True¶
- BUILTIN_WF_FILE = 'single_stage_diffusion_gk.wfw'¶
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str
- Returns
The output trajectory directory name
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- COMBINER = False¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'gpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, maestro_in=False, **kwargs)¶
Create a BaseDesmondStep instance
- Parameters
maestro_in (bool) – If true, the class will write a Maestro input file (.maegz) rather than a CMS (.cms) file
See parent class for additional documentation
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.PolymerCrosslinkStep(*args, maestro_in=False, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseDesmondStep
A step that runs a polymer crosslink calculation
- STEP_NAME = 'Crosslinking'¶
- JOB_BASE = 'xlink'¶
- FLAGS_INPUT_NAME_FLAG = '-icms'¶
- DRIVER_PATH = 'polymer_crosslink_gui_dir/polymer_crosslink_driver.py'¶
- DRIVER = <module 'polymer_crosslink_driver' from '/scr/buildbot/savedbuilds/2024-1/NB/build-133/mmshare-v6.5/python/scripts/polymer_crosslink_gui_dir/polymer_crosslink_driver.py'>¶
- BUILTIN_WF_FILE = 'single_stage_polymer_crosslink_amide_bond.wfw'¶
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- CAN_CREATE_TRAJECTORY = False¶
- COMBINER = False¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'gpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, maestro_in=False, **kwargs)¶
Create a BaseDesmondStep instance
- Parameters
maestro_in (bool) – If true, the class will write a Maestro input file (.maegz) rather than a CMS (.cms) file
See parent class for additional documentation
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.ElasticConstantsStressStep(*args, maestro_in=False, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseDesmondStep
A step that runs a stress-based elastic constants calculation
- STEP_NAME = 'Estress'¶
- JOB_BASE = 'estress'¶
- FLAGS_INPUT_NAME_FLAG = '-icms'¶
- DRIVER_PATH = 'elastic_constants_gui_dir/elastic_constants_driver2.py'¶
- DRIVER = <module 'elastic_constants_driver2' from '/scr/buildbot/savedbuilds/2024-1/NB/build-133/mmshare-v6.5/python/scripts/elastic_constants_gui_dir/elastic_constants_driver2.py'>¶
- CAN_CREATE_TRAJECTORY = True¶
- BUILTIN_WF_FILE = 'single_stage_elastic_constant_stress_based.wfw'¶
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- COMBINER = False¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'gpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, maestro_in=False, **kwargs)¶
Create a BaseDesmondStep instance
- Parameters
maestro_in (bool) – If true, the class will write a Maestro input file (.maegz) rather than a CMS (.cms) file
See parent class for additional documentation
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.ElasticConstantsStep(*args, maestro_in=False, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.ElasticConstantsStressStep
A step that runs a non-stress elastic constants calculation
- STEP_NAME = 'Elastic'¶
- JOB_BASE = 'elastic'¶
- DRIVER_PATH = 'elastic_constants_gui_dir/elastic_constants_driver.py'¶
- DRIVER = <module 'elastic_constants_driver' from '/scr/buildbot/savedbuilds/2024-1/NB/build-133/mmshare-v6.5/python/scripts/elastic_constants_gui_dir/elastic_constants_driver.py'>¶
- OUTPUTS_CMS = False¶
- USES_MULTI_SUBJOBS = True¶
- BUILTIN_WF_FILE = 'single_stage_elastic_constant_energy_based.wfw'¶
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- CAN_CREATE_TRAJECTORY = True¶
- COMBINER = False¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = '-icms'¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'gpu'¶
- USES_JC = True¶
- USES_THREADS = False¶
- __init__(*args, maestro_in=False, **kwargs)¶
Create a BaseDesmondStep instance
- Parameters
maestro_in (bool) – If true, the class will write a Maestro input file (.maegz) rather than a CMS (.cms) file
See parent class for additional documentation
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.PenetrantLoadingStep(*args, maestro_in=False, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseDesmondStep
A step that runs a Penetrant Loading calculation
- STEP_NAME = 'pload'¶
- JOB_BASE = 'pload'¶
- DRIVER_PATH = 'penetrant_loading_gui_dir/penetrant_loading_driver.py'¶
- DRIVER = <module 'penetrant_loading_driver' from '/scr/buildbot/savedbuilds/2024-1/NB/build-133/mmshare-v6.5/python/scripts/penetrant_loading_gui_dir/penetrant_loading_driver.py'>¶
- CAN_CREATE_TRAJECTORY = True¶
- BUILTIN_WF_FILE = 'single_stage_penetrant_loading.wfw'¶
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str
- Returns
The output trajectory directory name
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- COMBINER = False¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'gpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, maestro_in=False, **kwargs)¶
Create a BaseDesmondStep instance
- Parameters
maestro_in (bool) – If true, the class will write a Maestro input file (.maegz) rather than a CMS (.cms) file
See parent class for additional documentation
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.ViscosityStep(*args, maestro_in=False, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseDesmondStep
A step that runs a viscosity calculation
- STEP_NAME = 'Viscosity'¶
- JOB_BASE = 'viscosity'¶
- DRIVER_PATH = 'viscosity_gui_dir/viscosity_gk_driver.py'¶
- DRIVER = <module 'viscosity_gk_driver' from '/scr/buildbot/savedbuilds/2024-1/NB/build-133/mmshare-v6.5/python/scripts/viscosity_gui_dir/viscosity_gk_driver.py'>¶
- CAN_CREATE_TRAJECTORY = False¶
- BUILTIN_WF_FILE = 'single_stage_viscosity.wfw'¶
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- COMBINER = False¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'gpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, maestro_in=False, **kwargs)¶
Create a BaseDesmondStep instance
- Parameters
maestro_in (bool) – If true, the class will write a Maestro input file (.maegz) rather than a CMS (.cms) file
See parent class for additional documentation
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.SurfaceTensionStep(*args, maestro_in=False, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseDesmondStep
A step that runs a surface tension calculation
- STEP_NAME = 'Surface Tension'¶
- JOB_BASE = 'surface_tension'¶
- DRIVER_PATH = 'surface_tension_gui_dir/surface_tension_driver.py'¶
- DRIVER = <module 'surface_tension_driver' from '/scr/buildbot/savedbuilds/2024-1/NB/build-133/mmshare-v6.5/python/scripts/surface_tension_gui_dir/surface_tension_driver.py'>¶
- CAN_CREATE_TRAJECTORY = True¶
- BUILTIN_WF_FILE = 'single_stage_surface_tension.wfw'¶
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str
- Returns
The output trajectory directory name
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- COMBINER = False¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'gpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, maestro_in=False, **kwargs)¶
Create a BaseDesmondStep instance
- Parameters
maestro_in (bool) – If true, the class will write a Maestro input file (.maegz) rather than a CMS (.cms) file
See parent class for additional documentation
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.EvaporationStep(*args, maestro_in=False, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseDesmondStep
A step that runs an evaporation calculation
- STEP_NAME = 'Evaporation'¶
- JOB_BASE = 'evaporation'¶
- DRIVER_PATH = 'evaporation_gui_dir/evaporation_driver.py'¶
- DRIVER = <module 'evaporation_driver' from '/scr/buildbot/savedbuilds/2024-1/NB/build-133/mmshare-v6.5/python/scripts/evaporation_gui_dir/evaporation_driver.py'>¶
- CAN_CREATE_TRAJECTORY = False¶
- BUILTIN_WF_FILE = 'single_stage_evaporation.wfw'¶
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- COMBINER = False¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'gpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, maestro_in=False, **kwargs)¶
Create a BaseDesmondStep instance
- Parameters
maestro_in (bool) – If true, the class will write a Maestro input file (.maegz) rather than a CMS (.cms) file
See parent class for additional documentation
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.PolymerChainAnalysisStep(*args, maestro_in=False, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseDesmondStep
A step that runs a Polymer Chain Analysis
- STEP_NAME = 'pcan'¶
- JOB_BASE = 'pcan'¶
- DRIVER_PATH = 'polymer_chain_analysis_gui_dir/polymer_chain_analysis_driver.py'¶
- DRIVER = <module 'polymer_chain_analysis_driver' from '/scr/buildbot/savedbuilds/2024-1/NB/build-133/mmshare-v6.5/python/scripts/polymer_chain_analysis_gui_dir/polymer_chain_analysis_driver.py'>¶
- REQUIRES_TRAJECTORY_INPUT = True¶
- RESOURCE = 'cpu'¶
- SUBJOB_RESOURCE = 'cpu'¶
- BUILTIN_WF_FILE = 'single_stage_polymer_chain_analysis.wfw'¶
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- CAN_CREATE_TRAJECTORY = False¶
- COMBINER = False¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- SPLITTER = False¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, maestro_in=False, **kwargs)¶
Create a BaseDesmondStep instance
- Parameters
maestro_in (bool) – If true, the class will write a Maestro input file (.maegz) rather than a CMS (.cms) file
See parent class for additional documentation
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.StructureFactorStep(*args, maestro_in=False, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseDesmondStep
A step that runs a Structure Factor calculation
- STEP_NAME = 'sfactor'¶
- JOB_BASE = 'sfactor'¶
- DRIVER_PATH = 'structure_factor_gui_dir/structure_factor_driver.py'¶
- DRIVER = <module 'structure_factor_driver' from '/scr/buildbot/savedbuilds/2024-1/NB/build-133/mmshare-v6.5/python/scripts/structure_factor_gui_dir/structure_factor_driver.py'>¶
- FLAGS_INPUT_NAME_FLAG = '-cms_file'¶
- REQUIRES_TRAJECTORY_INPUT = True¶
- RESOURCE = 'cpu'¶
- SUBJOB_RESOURCE = 'cpu'¶
- BUILTIN_WF_FILE = 'single_stage_structure_factor.wfw'¶
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- CAN_CREATE_TRAJECTORY = False¶
- COMBINER = False¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- SPLITTER = False¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, maestro_in=False, **kwargs)¶
Create a BaseDesmondStep instance
- Parameters
maestro_in (bool) – If true, the class will write a Maestro input file (.maegz) rather than a CMS (.cms) file
See parent class for additional documentation
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.SimulationProfileStep(*args, maestro_in=False, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseDesmondStep
A step that runs a Simulation Profile calculation
- STEP_NAME = 'profile'¶
- JOB_BASE = 'profile'¶
- DRIVER_PATH = 'trajectory_density_analysis_gui_dir/trajectory_density_analysis_driver.py'¶
- DRIVER = <module 'trajectory_density_analysis_driver' from '/scr/buildbot/savedbuilds/2024-1/NB/build-133/mmshare-v6.5/python/scripts/trajectory_density_analysis_gui_dir/trajectory_density_analysis_driver.py'>¶
- FLAGS_INPUT_NAME_FLAG = '-cms_file'¶
- REQUIRES_TRAJECTORY_INPUT = True¶
- RESOURCE = 'cpu'¶
- SUBJOB_RESOURCE = 'cpu'¶
- BUILTIN_WF_FILE = 'single_stage_trajectory_density_analysis.wfw'¶
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- CAN_CREATE_TRAJECTORY = False¶
- COMBINER = False¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- SPLITTER = False¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, maestro_in=False, **kwargs)¶
Create a BaseDesmondStep instance
- Parameters
maestro_in (bool) – If true, the class will write a Maestro input file (.maegz) rather than a CMS (.cms) file
See parent class for additional documentation
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.CustomCmsStep(*args, maestro_in=False, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseDesmondStep
A step for running custom scripts that output a .cms file
- STEP_NAME = 'Custom'¶
- JOB_BASE = 'custom'¶
- USES_JC = False¶
- USES_MULTI_SUBJOBS = True¶
- USES_THREADS = True¶
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- BUILTIN_WF_FILE = None¶
- CAN_CREATE_TRAJECTORY = False¶
- COMBINER = False¶
- DRIVER = None¶
- DRIVER_PATH = 'driver_dir/driver.py'¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'gpu'¶
- __init__(*args, maestro_in=False, **kwargs)¶
Create a BaseDesmondStep instance
- Parameters
maestro_in (bool) – If true, the class will write a Maestro input file (.maegz) rather than a CMS (.cms) file
See parent class for additional documentation
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.CustomCmsToMaeStep(*args, maestro_in=False, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.CustomCmsStep
A step for running custom scripts that take in a .cms file and output .maegz
- STEP_NAME = 'Custom'¶
- JOB_BASE = 'custom'¶
- OUTPUTS_CMS = False¶
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- BUILTIN_WF_FILE = None¶
- CAN_CREATE_TRAJECTORY = False¶
- COMBINER = False¶
- DRIVER = None¶
- DRIVER_PATH = 'driver_dir/driver.py'¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- SUBJOB_RESOURCE = 'gpu'¶
- USES_JC = False¶
- USES_MULTI_SUBJOBS = True¶
- USES_THREADS = True¶
- __init__(*args, maestro_in=False, **kwargs)¶
Create a BaseDesmondStep instance
- Parameters
maestro_in (bool) – If true, the class will write a Maestro input file (.maegz) rather than a CMS (.cms) file
See parent class for additional documentation
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.CustomTrajectoryStep(*args, maestro_in=False, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.CustomCmsStep
A step for running custom scripts that output a .cms file and create trajectories
- CAN_CREATE_TRAJECTORY = True¶
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- BUILTIN_WF_FILE = None¶
- COMBINER = False¶
- DRIVER = None¶
- DRIVER_PATH = 'driver_dir/driver.py'¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- JOB_BASE = 'custom'¶
- OUTPUTS_CMS = True¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- STEP_NAME = 'Custom'¶
- SUBJOB_RESOURCE = 'gpu'¶
- USES_JC = False¶
- USES_MULTI_SUBJOBS = True¶
- USES_THREADS = True¶
- __init__(*args, maestro_in=False, **kwargs)¶
Create a BaseDesmondStep instance
- Parameters
maestro_in (bool) – If true, the class will write a Maestro input file (.maegz) rather than a CMS (.cms) file
See parent class for additional documentation
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.ClusterAnalysisStep(*args, maestro_in=False, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseDesmondStep
A step that runs a Cluster Analysis calculation
- STEP_NAME = 'cluster'¶
- JOB_BASE = 'cluster'¶
- DRIVER_PATH = 'cluster_analysis_gui_dir/cluster_analysis_driver.py'¶
- DRIVER = <module 'cluster_analysis_driver' from '/scr/buildbot/savedbuilds/2024-1/NB/build-133/mmshare-v6.5/python/scripts/cluster_analysis_gui_dir/cluster_analysis_driver.py'>¶
- FLAGS_INPUT_NAME_FLAG = '-cms_file'¶
- OUTPUTS_CMS = False¶
- RESOURCE = 'cpu'¶
- SUBJOB_RESOURCE = 'cpu'¶
- BUILTIN_WF_FILE = 'single_stage_cluster_analysis.wfw'¶
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- CAN_CREATE_TRAJECTORY = False¶
- COMBINER = False¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = True¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- SPLITTER = False¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, maestro_in=False, **kwargs)¶
Create a BaseDesmondStep instance
- Parameters
maestro_in (bool) – If true, the class will write a Maestro input file (.maegz) rather than a CMS (.cms) file
See parent class for additional documentation
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the output Maestro structure derived from the output CMS system
- Return type
list of
schrodinger.Structure
- Returns
The output Maestro structure
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- getTrajectoryName()¶
Get the name of the output trajectory directory
- Return type
str or None
- Returns
The output trajectory directory name or None if this step does not create trajectories
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.BaseNoJobStep(*args, procs=1, tag=None, flags=None, archive=False, monitor_globs=None, full_command=None, local_files=None, input_file=None, cpu_hostname=None, gpu_hostname=None, umbrella='per_flag', splitter=False, split_index=1, split_tag='', child_stages=None, use_jc=None, tpp=1, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseStep
A base class for steps that do not run a job but perform some other action.
- PROCS = 0¶
- DRIVER_PATH = None¶
- DRIVER = None¶
- USES_JC = False¶
- createCommand()¶
Create the command line
- Return type
list
- Returns
An empty list because this class does not use the command line
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
This method does nothing in the base class because it does not submit jobs to the queue
- Parameters
cmd (list) – The current command line as a list of strings
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
False
- Returns
This class does not submit jobs to the queue so cannot use umbrella mode
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
None
- Returns
This class does not use queue resources
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
None
- Returns
This class does not create a job
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- BUILTIN_WF_FILE = None¶
- CAN_CREATE_TRAJECTORY = False¶
- COMBINER = False¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- JOB_BASE = 'base'¶
- OUTPUTS_CMS = False¶
- REQUIRES_CMS_INPUT = False¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- STEP_NAME = 'Base Step'¶
- SUBJOB_RESOURCE = 'cpu'¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, procs=1, tag=None, flags=None, archive=False, monitor_globs=None, full_command=None, local_files=None, input_file=None, cpu_hostname=None, gpu_hostname=None, umbrella='per_flag', splitter=False, split_index=1, split_tag='', child_stages=None, use_jc=None, tpp=1, **kwargs)¶
Create a BaseStep object
- Parameters
procs (int) – The number of processors to allocate to steps of this class
tag – str(tag) will be added to the end of the job name and step name
flags (dict) – Command line argument flags in addition to, or that override, the class FLAGS variable. Keys are flag names (“-flag”), values are values for that flag. For flags that take no value, use None as the value. To turn off (not include in the command line) a flag in the class FLAGS variable, use the DO_NOT_USE_FLAG constant as the value.
archive (bool) – If True, instead of copying the subdirectory and individual files, will tar.gz up the entire subdirectory and copy that back.
monitor_globs (list) – List of valid file globs (i.e.
["*.zip"]
) that should be monitored for and copied back to the original job directory when they appear. Note that the interaction of archive and moitor_globs is such that if both are specified, the result will be a subdirectory with the monitored files AND an archive of the entire subdirectory (including any monitored files that remain when this step completes).full_command (list) – the full command line for this step including the driver path, etc. but without $SCHRODINGER/run. The command will be used “as is” except for replacing some pre-defined tokens with job-specific strings - see the createCommand function. Each item of the list is a word of the command line invocation.
local_files (list) – A list of file paths to copy into the job subdirectory before running the command
input_file (str) – The name of the file containing the input structures/data. It is ignored if there is a parent for this step.
cpu_hostname (str) – The name of the host to run CPU processes on
gpu_hostname (str) – The name of the host to run GPU processes on
umbrella (str) – Whether to run drivers that have GPU subjobs in umbrella mode or not. Should be one of UMBRELLA_ALWAYS (always run in umbrella mode even if the flag is not provided), UMBRELLA_NEVER (never run in umbrella mode even if the flag is provided) or UMBRELLA_PER_FLAG (obey the presence or absence of the -md_umbrella flag for this step). This parameter is only used if both cpu_hostname and gpu_hostname are given - if not, UMBRELLA_ALWAYS is enforced.
splitter (bool) – True if this step splits the workflow into parallel workflows, False if it does not. Note that this keyword is ignored if the SPLITTER class constant is True.
split_index (int) – If this step STARTS a new split workflow, the 1-based index of that workflow. Otherwise, just use 1 to indicate that it is the same workflow as the parent step.
split_tag (str) – An extra tag to add to the step name to distinguish between the same stage in parallel workflows
child_stages (list) – A list of child stages that need steps to be created from them. Each item is a
jaguar_multistage_workflow_utils.StageData
instance. This list contains one StageData item for each child stage no matter how many steps will be created from that stage due to splitting the workflow. For instance, if a workflow is A-B-C-D, and B is a splitter step that splits the workflow into 3 workflows, child_stages for B should be [C], not [C, C, C].use_jc (bool) – True if the step should use job control, False if not. The default value of None defaults to the class USES_JC constant.
tpp (int) – The number of threads per process. Serial processes use 1 thread. This will be added to the step command via -TPP tpp.
See parent class for additional documentation
- Raises
ValueError – if umbrella is not an allowed value
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the input structure file
- Return type
str
- Returns
The input structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless this step is splitting the workflow into parallel workflows, in which case it is the index of the workflow that will run this structure. Unused in the base class, but subclasses may use this parameter.
- Return type
structure.Structure, cms.Cms, or str
- Returns
The structure the child step should use. If a str is returned, it is the path to the input structure file
- getStructsForWriting()¶
Get the structures from this step to write to the final Workflow file
- Return type
list of
schrodinger.structure.Structure
or str- Returns
A list of structures to write or the string constant NO_STRUCTURES to indicate that the step is intentionally returning no structures. An empty list will indicate expected structures were not found.
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.MultipleStructSplitterStep(*args, procs=1, tag=None, flags=None, archive=False, monitor_globs=None, full_command=None, local_files=None, input_file=None, cpu_hostname=None, gpu_hostname=None, umbrella='per_flag', splitter=False, split_index=1, split_tag='', child_stages=None, use_jc=None, tpp=1, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseNoJobStep
- DRIVER_PATH = 'MultipleStructSplitterStep'¶
- PROGRAM_NAME = 'Multiple Structure Splitter'¶
- SPLITTER = True¶
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless the child step is the first step of a split workflow. In that case, this is the index of the split workflow. Unused in the base class, but subclasses that split workflows may use this.
- Return type
- Returns
The structure the child step should use
- getStructsForWriting(*args, **kwargs)¶
Override the parent method to return no structures
- getOutput(*args, **kwargs)¶
Override the parent method to do nothing
- processOutput(*args, **kwargs)¶
Override the parent method to do nothing
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- BUILTIN_WF_FILE = None¶
- CAN_CREATE_TRAJECTORY = False¶
- COMBINER = False¶
- DRIVER = None¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- JOB_BASE = 'base'¶
- OUTPUTS_CMS = False¶
- PROCS = 0¶
- REQUIRES_CMS_INPUT = False¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- STEP_NAME = 'Base Step'¶
- SUBJOB_RESOURCE = 'cpu'¶
- USES_JC = False¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, procs=1, tag=None, flags=None, archive=False, monitor_globs=None, full_command=None, local_files=None, input_file=None, cpu_hostname=None, gpu_hostname=None, umbrella='per_flag', splitter=False, split_index=1, split_tag='', child_stages=None, use_jc=None, tpp=1, **kwargs)¶
Create a BaseStep object
- Parameters
procs (int) – The number of processors to allocate to steps of this class
tag – str(tag) will be added to the end of the job name and step name
flags (dict) – Command line argument flags in addition to, or that override, the class FLAGS variable. Keys are flag names (“-flag”), values are values for that flag. For flags that take no value, use None as the value. To turn off (not include in the command line) a flag in the class FLAGS variable, use the DO_NOT_USE_FLAG constant as the value.
archive (bool) – If True, instead of copying the subdirectory and individual files, will tar.gz up the entire subdirectory and copy that back.
monitor_globs (list) – List of valid file globs (i.e.
["*.zip"]
) that should be monitored for and copied back to the original job directory when they appear. Note that the interaction of archive and moitor_globs is such that if both are specified, the result will be a subdirectory with the monitored files AND an archive of the entire subdirectory (including any monitored files that remain when this step completes).full_command (list) – the full command line for this step including the driver path, etc. but without $SCHRODINGER/run. The command will be used “as is” except for replacing some pre-defined tokens with job-specific strings - see the createCommand function. Each item of the list is a word of the command line invocation.
local_files (list) – A list of file paths to copy into the job subdirectory before running the command
input_file (str) – The name of the file containing the input structures/data. It is ignored if there is a parent for this step.
cpu_hostname (str) – The name of the host to run CPU processes on
gpu_hostname (str) – The name of the host to run GPU processes on
umbrella (str) – Whether to run drivers that have GPU subjobs in umbrella mode or not. Should be one of UMBRELLA_ALWAYS (always run in umbrella mode even if the flag is not provided), UMBRELLA_NEVER (never run in umbrella mode even if the flag is provided) or UMBRELLA_PER_FLAG (obey the presence or absence of the -md_umbrella flag for this step). This parameter is only used if both cpu_hostname and gpu_hostname are given - if not, UMBRELLA_ALWAYS is enforced.
splitter (bool) – True if this step splits the workflow into parallel workflows, False if it does not. Note that this keyword is ignored if the SPLITTER class constant is True.
split_index (int) – If this step STARTS a new split workflow, the 1-based index of that workflow. Otherwise, just use 1 to indicate that it is the same workflow as the parent step.
split_tag (str) – An extra tag to add to the step name to distinguish between the same stage in parallel workflows
child_stages (list) – A list of child stages that need steps to be created from them. Each item is a
jaguar_multistage_workflow_utils.StageData
instance. This list contains one StageData item for each child stage no matter how many steps will be created from that stage due to splitting the workflow. For instance, if a workflow is A-B-C-D, and B is a splitter step that splits the workflow into 3 workflows, child_stages for B should be [C], not [C, C, C].use_jc (bool) – True if the step should use job control, False if not. The default value of None defaults to the class USES_JC constant.
tpp (int) – The number of threads per process. Serial processes use 1 thread. This will be added to the step command via -TPP tpp.
See parent class for additional documentation
- Raises
ValueError – if umbrella is not an allowed value
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
This method does nothing in the base class because it does not submit jobs to the queue
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
False
- Returns
This class does not submit jobs to the queue so cannot use umbrella mode
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
An empty list because this class does not use the command line
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
None
- Returns
This class does not create a job
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
None
- Returns
This class does not use queue resources
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the input structure file
- Return type
str
- Returns
The input structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.ExtractClustersStep(*args, procs=1, tag=None, flags=None, archive=False, monitor_globs=None, full_command=None, local_files=None, input_file=None, cpu_hostname=None, gpu_hostname=None, umbrella='per_flag', splitter=False, split_index=1, split_tag='', child_stages=None, use_jc=None, tpp=1, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseStep
A step for running the Extract Clusters driver
- STEP_NAME = 'Extract Clusters'¶
- JOB_BASE = 'extract'¶
- DRIVER_PATH = 'extract_clusters_gui_dir/extract_clusters_driver.py'¶
- DRIVER = <module 'extract_clusters_driver' from '/scr/buildbot/savedbuilds/2024-1/NB/build-133/mmshare-v6.5/python/scripts/extract_clusters_gui_dir/extract_clusters_driver.py'>¶
- BUILTIN_WF_FILE = 'single_stage_extract_clusters.wfw'¶
- SPLITTER = True¶
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – The 1-based index of the structure to get. Should be 1 unless the child step is the first step of a split workflow. In that case, this is the index of the split workflow. Unused in the base class, but subclasses that split workflows may use this.
- Return type
- Returns
The structure the child step should use
- getStructsForWriting()¶
Get the structures from this step to write to the final Workflow file
- Return type
list of
schrodinger.structure.Structure
- Returns
A list of structures to write
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- CAN_CREATE_TRAJECTORY = False¶
- COMBINER = False¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- OUTPUTS_CMS = False¶
- PROCS = 1¶
- REQUIRES_CMS_INPUT = False¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SUBJOB_RESOURCE = 'cpu'¶
- USES_JC = True¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, procs=1, tag=None, flags=None, archive=False, monitor_globs=None, full_command=None, local_files=None, input_file=None, cpu_hostname=None, gpu_hostname=None, umbrella='per_flag', splitter=False, split_index=1, split_tag='', child_stages=None, use_jc=None, tpp=1, **kwargs)¶
Create a BaseStep object
- Parameters
procs (int) – The number of processors to allocate to steps of this class
tag – str(tag) will be added to the end of the job name and step name
flags (dict) – Command line argument flags in addition to, or that override, the class FLAGS variable. Keys are flag names (“-flag”), values are values for that flag. For flags that take no value, use None as the value. To turn off (not include in the command line) a flag in the class FLAGS variable, use the DO_NOT_USE_FLAG constant as the value.
archive (bool) – If True, instead of copying the subdirectory and individual files, will tar.gz up the entire subdirectory and copy that back.
monitor_globs (list) – List of valid file globs (i.e.
["*.zip"]
) that should be monitored for and copied back to the original job directory when they appear. Note that the interaction of archive and moitor_globs is such that if both are specified, the result will be a subdirectory with the monitored files AND an archive of the entire subdirectory (including any monitored files that remain when this step completes).full_command (list) – the full command line for this step including the driver path, etc. but without $SCHRODINGER/run. The command will be used “as is” except for replacing some pre-defined tokens with job-specific strings - see the createCommand function. Each item of the list is a word of the command line invocation.
local_files (list) – A list of file paths to copy into the job subdirectory before running the command
input_file (str) – The name of the file containing the input structures/data. It is ignored if there is a parent for this step.
cpu_hostname (str) – The name of the host to run CPU processes on
gpu_hostname (str) – The name of the host to run GPU processes on
umbrella (str) – Whether to run drivers that have GPU subjobs in umbrella mode or not. Should be one of UMBRELLA_ALWAYS (always run in umbrella mode even if the flag is not provided), UMBRELLA_NEVER (never run in umbrella mode even if the flag is provided) or UMBRELLA_PER_FLAG (obey the presence or absence of the -md_umbrella flag for this step). This parameter is only used if both cpu_hostname and gpu_hostname are given - if not, UMBRELLA_ALWAYS is enforced.
splitter (bool) – True if this step splits the workflow into parallel workflows, False if it does not. Note that this keyword is ignored if the SPLITTER class constant is True.
split_index (int) – If this step STARTS a new split workflow, the 1-based index of that workflow. Otherwise, just use 1 to indicate that it is the same workflow as the parent step.
split_tag (str) – An extra tag to add to the step name to distinguish between the same stage in parallel workflows
child_stages (list) – A list of child stages that need steps to be created from them. Each item is a
jaguar_multistage_workflow_utils.StageData
instance. This list contains one StageData item for each child stage no matter how many steps will be created from that stage due to splitting the workflow. For instance, if a workflow is A-B-C-D, and B is a splitter step that splits the workflow into 3 workflows, child_stages for B should be [C], not [C, C, C].use_jc (bool) – True if the step should use job control, False if not. The default value of None defaults to the class USES_JC constant.
tpp (int) – The number of threads per process. Serial processes use 1 thread. This will be added to the step command via -TPP tpp.
See parent class for additional documentation
- Raises
ValueError – if umbrella is not an allowed value
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
bool
- Returns
True if -md_umbrella is a known flag, False if not
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
The command line in list form
- Raises
JobCreationError – If the command cannot be created
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
jobutils.RobustSubmissionJob
- Returns
A job object that can be added to JobDJ
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
str or None
- Returns
The resource (cpu, gpu or None) this job should request
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the input structure file
- Return type
str
- Returns
The input structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getOutput(quiet=False)¶
Read in the results of the calculation
- Parameters
quiet (bool) – If True, no error messages will be printed. If False, (default) error messages will be printed. Also, if True, self.ok will not be set to False if the output file cannot be read.
- Return type
None or list
- Returns
None if the calculation failed, or a list of output structures from a successful calculation.
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(writer, props=None, hierarchy=None)¶
Add the final structure for this step to the output structure file
- Parameters
writer (schrodinger.StructureWriter) – The writer to use to write the structure
props (dict) – A dictionary of property/value pairs to add to the property dictionary of this object.
hierarchy (list) – The project group hierarchy for this result - each item is a str
- writeInput(struct)¶
Write the input file
- Parameters
struct (structure.Structure, cms.Cms, or None) – The structure to write. If None it will write the input file. If struct is a cms, only an mae will be written if this class does not require cms input.
- class schrodinger.application.matsci.jwsteps.CombinerStep(*args, procs=1, tag=None, flags=None, archive=False, monitor_globs=None, full_command=None, local_files=None, input_file=None, cpu_hostname=None, gpu_hostname=None, umbrella='per_flag', splitter=False, split_index=1, split_tag='', child_stages=None, use_jc=None, tpp=1, **kwargs)¶
Bases:
schrodinger.application.matsci.jwsteps.BaseNoJobStep
- DRIVER_PATH = 'Combiner'¶
- PROGRAM_NAME = 'Combine Steps'¶
- COMBINER = True¶
- getStructForChild(index=1)¶
Get the structure from this step to pass on to a child step
- Parameters
index (int) – Ignored in this class
- Return type
str
- Returns
The path relative to the main job directory pointing to the combined structure file
- ARCHIVED_INPUT = ['.in', '.mae', '.maegz']¶
- ARCHIVED_KEEPERS = {'.smap', '.spm', '.vib', '.vis'}¶
- BUILTIN_WF_FILE = None¶
- CAN_CREATE_TRAJECTORY = False¶
- DRIVER = None¶
- FLAGS = {}¶
- FLAGS_ADD_DOUBLE_DASH = False¶
- FLAGS_ADD_INPUT_NAME = True¶
- FLAGS_ADD_JOB_NAME = True¶
- FLAGS_ADD_TPP = False¶
- FLAGS_INPUT_NAME_FLAG = ''¶
- JOB_BASE = 'base'¶
- OUTPUTS_CMS = False¶
- PROCS = 0¶
- REQUIRES_CMS_INPUT = False¶
- REQUIRES_TRAJECTORY_INPUT = False¶
- RESOURCE = 'cpu'¶
- SPLITTER = False¶
- STEP_NAME = 'Base Step'¶
- SUBJOB_RESOURCE = 'cpu'¶
- USES_JC = False¶
- USES_MULTI_SUBJOBS = False¶
- USES_THREADS = False¶
- __init__(*args, procs=1, tag=None, flags=None, archive=False, monitor_globs=None, full_command=None, local_files=None, input_file=None, cpu_hostname=None, gpu_hostname=None, umbrella='per_flag', splitter=False, split_index=1, split_tag='', child_stages=None, use_jc=None, tpp=1, **kwargs)¶
Create a BaseStep object
- Parameters
procs (int) – The number of processors to allocate to steps of this class
tag – str(tag) will be added to the end of the job name and step name
flags (dict) – Command line argument flags in addition to, or that override, the class FLAGS variable. Keys are flag names (“-flag”), values are values for that flag. For flags that take no value, use None as the value. To turn off (not include in the command line) a flag in the class FLAGS variable, use the DO_NOT_USE_FLAG constant as the value.
archive (bool) – If True, instead of copying the subdirectory and individual files, will tar.gz up the entire subdirectory and copy that back.
monitor_globs (list) – List of valid file globs (i.e.
["*.zip"]
) that should be monitored for and copied back to the original job directory when they appear. Note that the interaction of archive and moitor_globs is such that if both are specified, the result will be a subdirectory with the monitored files AND an archive of the entire subdirectory (including any monitored files that remain when this step completes).full_command (list) – the full command line for this step including the driver path, etc. but without $SCHRODINGER/run. The command will be used “as is” except for replacing some pre-defined tokens with job-specific strings - see the createCommand function. Each item of the list is a word of the command line invocation.
local_files (list) – A list of file paths to copy into the job subdirectory before running the command
input_file (str) – The name of the file containing the input structures/data. It is ignored if there is a parent for this step.
cpu_hostname (str) – The name of the host to run CPU processes on
gpu_hostname (str) – The name of the host to run GPU processes on
umbrella (str) – Whether to run drivers that have GPU subjobs in umbrella mode or not. Should be one of UMBRELLA_ALWAYS (always run in umbrella mode even if the flag is not provided), UMBRELLA_NEVER (never run in umbrella mode even if the flag is provided) or UMBRELLA_PER_FLAG (obey the presence or absence of the -md_umbrella flag for this step). This parameter is only used if both cpu_hostname and gpu_hostname are given - if not, UMBRELLA_ALWAYS is enforced.
splitter (bool) – True if this step splits the workflow into parallel workflows, False if it does not. Note that this keyword is ignored if the SPLITTER class constant is True.
split_index (int) – If this step STARTS a new split workflow, the 1-based index of that workflow. Otherwise, just use 1 to indicate that it is the same workflow as the parent step.
split_tag (str) – An extra tag to add to the step name to distinguish between the same stage in parallel workflows
child_stages (list) – A list of child stages that need steps to be created from them. Each item is a
jaguar_multistage_workflow_utils.StageData
instance. This list contains one StageData item for each child stage no matter how many steps will be created from that stage due to splitting the workflow. For instance, if a workflow is A-B-C-D, and B is a splitter step that splits the workflow into 3 workflows, child_stages for B should be [C], not [C, C, C].use_jc (bool) – True if the step should use job control, False if not. The default value of None defaults to the class USES_JC constant.
tpp (int) – The number of threads per process. Serial processes use 1 thread. This will be added to the step command via -TPP tpp.
See parent class for additional documentation
- Raises
ValueError – if umbrella is not an allowed value
- addParentalInformationProperties(struct)¶
Add parental subdirectory properties to the structure
- Parameters
struct (schrodinger.structure.Structure) – The structure to add properties to
- addTPPIfNeeded(cmd)¶
Add, or replace, the value of TPP in the command as needed.
- Parameters
cmd (list) – The command line as a list of strings. The list is modified in-place
- adjustCommandForQueue(cmd)¶
Add subhost and umbrella flags that direct this step’s subjobs to the correct host. Modifies the given command list in place.
This method does nothing in the base class because it does not submit jobs to the queue
- Parameters
cmd (list) – The current command line as a list of strings
- archiveFiles()¶
Create a tar.gz archive of all jaguar files and then removes any files that are no longer needed.
- archiveSubDir()¶
Archive this step’s subdirectory and add it to the backend for copy back
- calcsDone()¶
Check to see if the calculation finished
If finished and the job failed, self.ok will be set to False
- Return type
bool
- Returns
True if the calculation finished, False if not
- canDriverUseUmbrella()¶
Check whether the driver for this step knows the -md_umbrella flag
- Return type
False
- Returns
This class does not submit jobs to the queue so cannot use umbrella mode
- canStart()¶
Check to see if this job can start - if the parent job(s) have finished successfully.
- Return type
bool
- Returns
True if the job can start, False if not
- createCommand()¶
Create the command line
- Return type
list
- Returns
An empty list because this class does not use the command line
- createJob()¶
Create the job command and object
- Return type
jobutils.RobustSubmissionJob
- Returns
The job object to run
- createQJobFromCommand(cmd)¶
Create the JobDJ job from the list of command line arguments. The job will be set to run in the Step subdirectory.
- Return type
None
- Returns
This class does not create a job
- determineQueueResource(cmd)¶
Determine what resource this job should request
- Parameters
cmd (list) – The command line as a list of strings
- Return type
None
- Returns
This class does not use queue resources
- finish()¶
Finish this step, including processing any output
- finishProcessingJobControlJob()¶
Override the parent method to archive the directory if requested
- getFirstOutputStructure()¶
Get the first output structure from the results
- Return type
- Returns
The structure to write to the output file
- getInput(override_uhf=True, override_solvent=True)¶
Get the JaguarInput object for this step, setting the keywords as required.
- Return type
None or jaguar_input.JaguarInput
- Returns
None if an error occured, or the jaguar_input.JaguarInput object to use for this step
- getInputName()¶
Get the name of the input structure file
- Return type
str
- Returns
The input structure file name
- getInputPath()¶
Get the full path to the input file
- Return type
str
- Returns
The full path to the input file
- getNumSplits()¶
Get the number of parallel workflows this step will create. A 1 indicates that this step does not split the workflow.
- Return type
int
- Returns
The number of parallel workflows this step creates. 1 means it does not split the workflow
- getOutput(*args, **kwargs)¶
Override the parent method to do nothing
- getOutputName()¶
Get the name of the output structure file
- Return type
str
- Returns
The output structure file name
- getParentalInformation()¶
Get information about parent and required step names, output and subdirectories.
- Return type
(ParentalPathInfo, ParentalPathInfo)
- Returns
The first item gives information about the parent job, the second item gives cumulative information about the required steps. In cases where there is multiple information, such as the parent output file names, or multiple required step names, etc, the data is provided as space-delimited strings. The subdirectory paths and output file names are relative to the overall job directory.
- getStructsForWriting()¶
Get the structures from this step to write to the final Workflow file
- Return type
list of
schrodinger.structure.Structure
or str- Returns
A list of structures to write or the string constant NO_STRUCTURES to indicate that the step is intentionally returning no structures. An empty list will indicate expected structures were not found.
- getStructure()¶
Get the starting structure for this step
Overrides the parent class to get the initial structure for this workflow if the Step has no parent.
- Return type
schrodinger.structure.Structure, None, or str
- Returns
The starting structure for this step. None if input is not a structure. str if the starting structure is actually a file structures, in which case the return value is the path to the file.
- handleFileLinkProperties(struct)¶
Fix existing Jaguar file link properties and add any new ones
- Parameters
struct (structure.Structure) – The structure with the properties
- log(msg, prefix=True, level=20)¶
Add a message to the parent workflow’s log file
- Parameters
msg (str) – The message to add
prefix (bool) – Whether to add information about the workflow and step name to the front of the message string
level (int) – A
logging
constant indicating the priority level of the message
- monitorFiles()¶
Check for any requested files that need to be copied back immediately
- noJobAction()¶
Subclasses that do not run a job can overwrite this method to perform their action when the step is run.
- property output_file_names¶
Get the names of all the output structures
- Return type
list
- Returns
Each item of the list is a the name of an output file. The step subdirectory path is NOT prepended to the file name.
- periodicMaintenance()¶
This method is periodically called while the workflow is running
- processOutput(output)¶
Process the output of a job during the finish part of the step
- Parameters
output – The output of the job. Type may vary in subclasses
- processSmapInfo()¶
Create an smap file in the subjob directory to enable Maestro’s little blue v and s buttons if the user manually imports the subjob output. Also copy smap-eligible files to the main job directory and pass back the file information needed for writing the main job smap file.
- Return type
list
- Returns
Each item of the list is a file name that should appear in the main job smap file for this step.
- removeIncomingProperties(struct)¶
Remove properties on the structure that may have come from previous steps and that we do not want to propagate through this step
- Parameters
struct (structure.Structure) – The structure to remove properties from
- setKeywords(input, keystring)¶
Set the keywords for this job
- Parameters
input (jaguar_input.JaguarInput) – The JaguarInput object to set the keywords on
keystring (str) – Space separated keyword=value pairs. Each pair must contain an equals sign
- setStructOrCMSProperty(nottaduck, prop, value)¶
Set the given property to value on nottaduck, whether nottaduck is a Structure object or CMS object
- Parameters
nottaduck (structure.Structure or cms.Cms) – The structure-like object to set the property on
prop (str) – The property to set
value – The value of the property
- setSubDir()¶
Determine the absolute path to this step’s subdirectory so that we can always access it no matter what the current directory is
- setWAMProperty(oname, structs)¶
Some workflow types set the WAM property on the structure file rather than the structure. The WAM property needs to be on the structure in order for the WAM to get passed into the final structure file.
- Parameters
oname (str) – The name of the structure file
structs (list) – Each item of the list is a Structure or Cms object that needs to have the WAM property set on it
- start()¶
Start the job - create the input and write it, adding necessary output files to make sure they get copied back
- storeFilenames()¶
Store file names associated with this job before we delete the job object
- write(*args, **kwargs)¶
Override the parent method to do nothing
- writeInput(struct)¶
Write the input file
- Type
structure.Structure or None
- Parameters
struct – The structure to write. If None it will write the input file.