schrodinger.application.matsci.jobutils module

Copyright Schrodinger, LLC. All rights reserved.

class schrodinger.application.matsci.jobutils.CellRunInfo(structs, basename, replicate, multiple_cells, component=None, sequence_info=None)

Bases: object

Holds the information for the run for a single cell

class schrodinger.application.matsci.jobutils.MultijobDriver(runlist, options, args, log, remote_script, default_jobname, basename=None)

Bases: object

Resubmit the driver as subjobs

COMPOSITION_FLAG = '-composition'
COMPOSITION_FLAG_SHORT = '-c'
multijob_driver(runlist, options, args, basename, log, remote_script)

Create multiple cells in parallel running a subjob for each cell. Zip up the resulting cms files into a jobname.zip file and set it as the structure output file to be incorporated.

Parameters:
  • runlist (list of CellRunInfo) – Each item of runlist will generate a subjob and a single cell
  • options (argparse.Namespace) – The command line options
  • args (iterable) – The command line arguments as passed in by sys
  • basename (str) – The zipped .zip or . maegz filename for all job files.
  • log (function) – function(msg) writes msg to log file
  • remote_script (string) – the dir and name for driver to resubmit
remove_flag(args, flag, and_value=False)

Remove a flag from the comand line flags

Parameters:
  • args (list) – The list of command line arguments
  • flag (str) – The flag to remove
  • and_value (bool) – Also remove the value associated with the flag - it is assumed that this is the following list item
replace_value(args, old_value, new_value)

Replace the list item with value=old_value with the new value

Parameters:
  • args (list) – The list of command line arguments
  • old_value (str) – The value to replace
  • new_value (str) – The value to replace old_value with
class schrodinger.application.matsci.jobutils.StringCleaner(extra_replacement_pairs=None, separator='-')

Bases: object

Manages the cleaning of strings.

cleanAndUniquify(input_str, clear_prev=False, max_len=100)

Shorten if necessary, replace certain characters in an input string and then uniquify the string by comparing with a dictionary of previous names and number of times used.

Parameters:
  • input_str (str) – the input string we want cleaned and uniqified
  • clear_prev (bool) – specify if the dictionary of previous names should first be cleared
  • max_len (int) – maximum length of the input_str allowed, otherwise it will be shortened to the max_len value
Return type:

str

Returns:

the input string now cleaned and uniquified

schrodinger.application.matsci.jobutils.add_keyword_parser_argument(parser, arghelp=None)

Add a keyword argument to the parser

Parameters:parser (argparse.ArgumentParser) – The parser to add this argument to
schrodinger.application.matsci.jobutils.add_restart_parser_arguments(parser)

Add restart arguments to the parser

Parameters:parser (argparse.ArgumentParser) – The parser to add arguments to
schrodinger.application.matsci.jobutils.add_save_desmond_files_parser_argument(parser)

Add a SAVE_FLAG argument to the parser

Parameters:parser (argparse.ArgumentParser) – The parser to add this argument to
schrodinger.application.matsci.jobutils.archive_job_data(path, files_path)

Create a gzipped tar archive in the current directory from the provided list of file paths. All the error handling is on the caller function.

Parameters:
  • path (files_path) – Path to the new archive to be created
  • path – List of files to be archived
schrodinger.application.matsci.jobutils.check_license(panel=None, token=94, name='', as_validator=False)

Check if a valid token exists

Parameters:
  • panel (schrodinger.ui.qt.appframework.AppFramework) – panel to use to put up an error dialog if no license
  • token (schrodinger.utils.license constant) – A token type from the schrodinger.utils.license module, such as MATERIALSCIENCE_MAIN or MATERIALSCIENCE_GA
  • name (str) – The user-identifiable name for the token - used for error messages. If not provided, the string used in the license module for this token (if one exists) will be used.
  • as_validator (bool) – If True, this function will work as an AF2 validation method. Instead of posting a dialog or printing a message for a failed license check, it will return (False, error_message).
Return type:

bool or (bool, str)

Returns:

True if valid license exists. If no valid license exists, False will be returned by default, but (False, msg) will be returned if as_validator=True. Note that (False, msg) evalutes to True so must be handled by the calling routine as not a boolean if as_validator=True.

schrodinger.application.matsci.jobutils.clean_string(string, default='title')

Cleans the given string by removing special characters to make it acceptable for a file name. If the string is blank, it will be replaced by the value of default.

Parameters:
  • string (str) – The string to clean.
  • default (str) – The name to use if string is blank
Return type:

str

Returns:

A string usable as a filename

schrodinger.application.matsci.jobutils.create_restart_jobcmd(driver_path, zip_fn, restart_options, args, default_jobname)

Generate command-line list for the job restart.

Parameters:
  • driver_path (str) – Path to the driver
  • zip_fn (str) – Filename of the archive with all restart files
  • restart_options (argparse.Namespace) – The object holding all the option values
  • args (list) – List of the arguments passed to the original run
  • default_jobname (str) – Default job name
Return type:

list

@rparam: List of parameters ready for job submission

schrodinger.application.matsci.jobutils.create_restart_launcher(script, prog, input_name, output_name, zip_name, options, args)
schrodinger.application.matsci.jobutils.create_run_dir(panel, jobname)

Create a subdirectory to run a job in, asking the user and removing existing directories if needed.

Parameters:
  • panel (schrodinger.ui.qt.appframework.AppFramework) – panel to use to put up an error dialog if no license
  • jobname (str) – The name of the job. The directory will be jobname + _dir
Return type:

str or None

Returns:

The path to the directory or None if an existing directory was found and the user elected not to remove it

schrodinger.application.matsci.jobutils.escape_dollars_for_cmdline(pattern)

Make sure $ are escaped in the given pattern for command lines

Parameters:pattern (str) – A string to modify
Return type:str
Returns:pattern with a in front of $
schrodinger.application.matsci.jobutils.extract_job_data(options)

Unzip the archive in the current directory. All the error handling is on the caller function.

Parameters:options (argparse.Namespace) – The object holding all the option values
schrodinger.application.matsci.jobutils.get_jobname(default_jobname)

Return a the jobname from backend, command line (-NAMEJOB / environment), DEFAULT_JOBNAME

Parameters:default_jobname (str) – default_jobname of the current module
Return type:string

@rparam: jobname

schrodinger.application.matsci.jobutils.get_matsci_user_data_dir()

Get the absolute path to the user’s local MatSci data directory for storing custom templates, protocols, etc. Directory is created if it doesn’t exist.

Return type:str
Returns:The absolute path the Materials Science data parent directory
schrodinger.application.matsci.jobutils.get_option(options, flag)

Return the option value associated with flag

Parameters:
  • options (argparse.Namespace) – The object holding all the option values
  • flag (str) – The flag for the desired option.
Return type:

any

Returns:

The value associated with flag, or None if flag (minus any leading dashes) is not found as a property on options

schrodinger.application.matsci.jobutils.get_restart_id_filename(jobname)

For the given restart jobname, return the name of the file containing the job id.

Return type:str
Returns:The name of the restart jobid file
schrodinger.application.matsci.jobutils.get_restart_options(options)

Get the command line options from the -restart_x flags

Return type:tuple
Returns:tuple of strings (viewname, incorporation, project, host:cpu, jobname)
schrodinger.application.matsci.jobutils.get_source_path(source, existence_check=True)

Get the source path to the original job directory

Parameters:
  • source (schrodinger.structure.Structure or schrodinger.project.ProjectRow) – Either the ProjectRow or the structure to obtain the source information from. If a structure, can be either a Structure or a Cms object.
  • existence_check (bool) – If True (default), a blank string will be returned if the source path does not exist. If False, the path is returned regardless of whether it exists or not.
Return type:

str

Returns:

The original job directory or a blank string if none is found

schrodinger.application.matsci.jobutils.get_stripped_defaults(adict)

Remove dashes in the beginning of the keys. Used with ArgumentParser.

Parameters:adict (dict{string:any}) – Dictionary of defaults
Return type:dict{string:any}

@rparam: Dictionary of defaults with dashed stripped from the keys

schrodinger.application.matsci.jobutils.parse_keyword_list(options, exit_on_error=True, logger=None, validate=False)

Adds keystring and keydict properties to the argparse options object that are the list of keyword arguments turned into, respectively, a string or a dictionary. Valid keyword syntax is checked for.

Typical usage:

jobutils.add_keyword_parser_argument(parser) options = parser.parse_args(args) jobutils.parse_keyword_list(options) print options.keystring, options.keydict

Parameters:
  • options (argparse.Namespace) – The parser Namespace object with a keywords attribute
  • exit_on_error (bool) – True if the ValueError for keyword syntax should result in a message being printed and sys.exit() being called, False if the error should just be raised.
  • logger (logging.Logger) – The logger to use for recording error messages, otherwise they’ll be printed.
  • validate (bool) – Whether keywords/values not recognized by Jaguar should be considered an error.
Raises:

ValueError – If an invalid keyword pair syntax is detected and handle_error is False

:raises schrodinger.application.jaguar.validation.JaguarKeywordException
if validate=True, exit_on_error=False and an invalid Jaguar keyword/value has been used.
schrodinger.application.matsci.jobutils.parse_restart_parameters_file(path)

Parse parameters file.

Format of the file: 1st line is driver’s filename 2nd line is original arguments passed to the driver

Parameters:path (str) – Path to the file with original arguments
Return type:dict
Returns:Dictionary with parsed values
schrodinger.application.matsci.jobutils.prepare_job_spec_builder(argv, program_name, default_jobname, input_fn=None, set_driver_reserves_cores=False)

Prepare generic job specification builder. If set_driver_reserves_cores script (driver) is set to True, script is expected to use all the cores (cpus), similar to umbrella mode in multisim. For an example see stress-strain driver. For all other cases (such as in opto/hopping/amorphous) keep set_driver_reserves_cores to False.

Parameters:
  • argv (list) – The list of command line arguments, including the script name at [0], similar to that returned by sys.argv
  • program_name (str) – Program name
  • default_jobname (str) – Default job name
  • input_fn (str) – Input filename
  • set_driver_reserves_cores (bool) – If True, enable launchapi.setDriverReservesCores
Return type:

launchapi.JobSpecificationArgsBuilder

Returns:

Job specification builder object

schrodinger.application.matsci.jobutils.set_option(options, flag, value)

Set the option value associated with flag

Parameters:
  • options (argparse.Namespace) – The object holding all the option values
  • flag (str) – The flag for the desired option. If the string starts with a ‘-‘, the ‘-‘ is removed.
  • value (any) – The value to set the option.flag value to
schrodinger.application.matsci.jobutils.set_source_path(struct, backend=None, job=None)

Set the source path property to the original job directory. This is obtained from the job control Job object for this process. If no Job object is found, the current directory is used.

Parameters:
  • struct (schrodinger.structure.Structure) – The structure to set the property on. Note that property setting works properly on both Structure and Cms objects.
  • backend (schrodinger.job.jobcontrol._Backend) – The job control backend. Will be used to obtain the job object if no job is supplied. If neither backend or job are supplied, the backend will be obtained from job control (if one exists).
  • job (schrodinger.job.jobcontrol.Job) – The job control job for this process. If not supplied, will be obtained from the backend (if one exists).
Return type:

str

Returns:

The directory set as the source path. Will be either the OrigLaunchDir property of the job or the current directory if not running under job control.

schrodinger.application.matsci.jobutils.string_to_value(string)

Change a text string from a file to a value. Converts string values of special Python tokens such as True, False or None to the Python tokens. Converts numbers to int or float if possible.

Parameters:string (str) – The string to convert
Returns:string converted to, in order of preference: [True|False|None], int, float, or input type
schrodinger.application.matsci.jobutils.working_directory(*args, **kwds)

A context manager which changes the working directory to the given path, and then changes it back to its previous value on exit.

schrodinger.application.matsci.jobutils.write_idfile(jobobj)

Store the job id in a file as a signal to the GUI that a new job has been launched.

Parameters:jobobj (schrodinger.job.jobcontrol.Job) – The object holding all the option values
schrodinger.application.matsci.jobutils.write_restart_parameters_file(driver, args, outpath)

Write out original arguments to parameters file and add the file as an output file to any existing jobcontrol backend.

Parameters:
  • driver (str) – Driver’s filename
  • args (list) – Original arguments passed to driver
  • outpath (str) – Path to the parameters file to write original arguments
schrodinger.application.matsci.jobutils.zip_and_set_incorporation(zipname, filelist)

Zip up all the requested files and set the resulting archive as the job control backend structure output file (if runnning under job control).

Parameters:
  • zipname (str) – The name of the archive to create
  • filelist (list) – Each item in filelist is the name of a file to add to file zipname