schrodinger.application.combinatorial_explorer.driver_utils module¶
Provides supporting functionality for combinatorial_explorer_driver.py.
Copyright Schrodinger LLC, All Rights Reserved.
- class schrodinger.application.combinatorial_explorer.driver_utils.RouteSourceType¶
Bases:
Enum
- list = 1¶
- zip = 2¶
- dir = 3¶
- invalid = 4¶
- schrodinger.application.combinatorial_explorer.driver_utils.add_build_args(parser)¶
Adds arguments for TASK_BUILD.
- Parameters:
parser (argparse.ArgumentParser) – Argument parser object.
- schrodinger.application.combinatorial_explorer.driver_utils.add_describe_args(parser)¶
Adds arguments for TASK_DESCRIBE.
- Parameters:
parser (argparse.ArgumentParser) – Argument parser object.
- schrodinger.application.combinatorial_explorer.driver_utils.add_reactants_to_database(reactants, reactant_class, smiles_name, fp_generator, db)¶
Helper function that computes fingerprints/properties for the subset of the supplied reactants that aren’t already in the database, and then adds the resulting reactants to the database.
- Parameters:
reactants (list[phase.RfpReactant]) – The reactants to add. Each reactant is expected to contain a dummy fingerprint and dummy properties, which will be replaced by an actual fingerprint and, optionally, actual properties if the reactant is not already in the database.
reactant_class (str) – The class to which all supplied reactants belong
smiles_name (list[tuple(str, str)]) – Reactant SMILES, name tuples used to identify reactants which are already in the database
fp_generator (canvas.ChmProfiler) – Fingerprint and property generator, configured to generate properties only if storing properties in database
db (phase.RfpDatabase) – The database to which reactants are to be added
- schrodinger.application.combinatorial_explorer.driver_utils.add_screen_args(parser)¶
Adds arguments for TASK_SCREEN.
- Parameters:
parser (argparse.ArgumentParser) – Argument parser object.
- schrodinger.application.combinatorial_explorer.driver_utils.build_database(args, logger=None)¶
Adds records to a reactant fingerprint database. Creates a new database if args.new is True.
- Parameters:
args (argparse.Namespace) – Command line arguments
logger (logging.Logger) – Logger to which messages are to be written
- Raise:
RuntimeError if problems are encountered while building database
- schrodinger.application.combinatorial_explorer.driver_utils.describe_database(args)¶
Returns a string containing a description of the reactant fingerprint database.
- Parameters:
args (argparse.Namespace) – Command line arguments
- Returns:
Database description
- Return type:
str
- schrodinger.application.combinatorial_explorer.driver_utils.extract_route_files(zip_archive, dest_dir=None, look_dir=None)¶
Extracts JSON route files from a Zip archive and returns the sorted names of the route files.
- Parameters:
zip_archive (str) – Zip archive with JSON files at any level
dest_dir (str) – The directory to which route files are to be extracted. The default is CWD.
look_dir (str) – Look in this directory for extracted route files. This parameter would normally be supplied if extracting to the CWD and one knows that the subdirectory look_dir will be created.
- Returns:
The sorted names of the extracted route files
- Return type:
list[str]
- schrodinger.application.combinatorial_explorer.driver_utils.filter_routes(route_files, min_depth, max_depth, db_path)¶
Given a list of route files, this function returns the subset whose reaction depths lie within the specified range and for which all required reactants are found in the reactant fingerprint database.
- Parameters:
route_files (list[str]) – The route files to check
min_depth (int) – Minimum reaction depth
max_depth (int) – Maximum reaction depth
db_path (str) – Reactant fingerprint database file
- Returns:
Subset of route_files satisfying aforementioned conditions
- Return type:
list[str]
- schrodinger.application.combinatorial_explorer.driver_utils.get_depth_limits(depth)¶
Given a depth specification of the form <min>:<max>, this function returns the minimum and maximum depth.
- Parameters:
depth (str) – min and max reaction depths separated by ‘:’
- Returns:
tuple of min and max values
- Return type:
tuple[int, int]
- Raise:
ValueError if specification is invalid
- schrodinger.application.combinatorial_explorer.driver_utils.get_distributed_screen_commands(args, nsub)¶
Returns subjob commands for running a distributed screen.
- Parameters:
args (argparse.Namespace) – Command line arguments
nsub (int) – Number of subjobs
- Returns:
List of subjob commands
- Return type:
list[list[str]]
- schrodinger.application.combinatorial_explorer.driver_utils.get_filter_properties(filter_file)¶
Returns a sorted, unique list of properties utilized in the provided property filter file.
- Parameters:
filter_file (str) – Name of property filter file
- Returns:
Sorted unique property names
- Return type:
list[str]
- schrodinger.application.combinatorial_explorer.driver_utils.get_jobname(db_path, task)¶
Determines the job name from SCHRODINGER_JOBNAME or from the base name of the reactant fingerprint database file.
- Parameters:
db_path (str) – Reactant fingerprint database file
task (str) – The task being performed
- Returns:
Job name
- Return type:
str
- schrodinger.application.combinatorial_explorer.driver_utils.get_parser()¶
Creates argparse.ArgumentParser with supported command line options.
- Returns:
Argument parser object
- Return type:
argparse.ArgumentParser
- schrodinger.application.combinatorial_explorer.driver_utils.get_pfx_files(args)¶
Returns the names of PathFinder reactant files if they are expected to exist on the current host. Does not actually check for the presence of the files.
- Parameters:
args (argparse.Namespace) – Command line arguments
- Returns:
List of file names or empty list
- Return type:
list[str]
- schrodinger.application.combinatorial_explorer.driver_utils.get_reactant_classes_from_routes(db_path, source)¶
Given a reactant fingerprint database and a valid source of route files, this function returns a dictionary that maps each route file basename to the reactant classes utilized in that route. Ignores routes that contain any reactant classes not present in the database.
- Parameters:
db_path (str) – Reactant fingerprint database file
source (str) – Valid source of route files
- Returns:
Dictionary of route file basename to list of reactant classes
- Return type:
dict
- schrodinger.application.combinatorial_explorer.driver_utils.get_route_files_from_zip(zip_archive)¶
Given a Zip archive purported to contain synthetic route files, this function returns a sorted list of the names of any JSON files in the archive.
- Parameters:
zip_archive (str) – Name of Zip archive
- Returns:
Sorted list of any JSON files in the archive
- Return type:
list[str]
- schrodinger.application.combinatorial_explorer.driver_utils.get_route_input_files(source)¶
Given a valid source of synthetic route files, this function returns the sorted names of the the associated input files for the job. For a source that consists of a comma-separated list or a directory path, a list of JSON files is returned; for a Zip file, a list containing the name of the Zip file is returned.
- Parameters:
source (str) – Valid source of route files
- Returns:
Sorted list of JSON files or Zip file
- Return type:
list[str]
- schrodinger.application.combinatorial_explorer.driver_utils.get_route_source_type(source)¶
Given the source of synthetic route files, this function determines whether it’s a comma-separated list of JSON files, a Zip archive, a directory or invalid.
- Parameters:
source (str) – Source of route files
- Returns:
Route source type
- Return type:
- schrodinger.application.combinatorial_explorer.driver_utils.locate_pfx_files(args)¶
Determines whether PathFinder reactant files must exist and, if so, the directory in which they should be located. Does not actually check for the presence of the files.
- Parameters:
args (argparse.Namespace) – Command line arguments
- Returns:
tuple of whether files must exist and path to files
- Return type:
tuple[bool, str]
- schrodinger.application.combinatorial_explorer.driver_utils.log_build_progress(logger, nproc, db)¶
Writes a build database progress message to the supplied logger if it exists.
- Parameters:
logger (logging.Logger or NoneType) – Logger to which progress message is to be written
nproc (int) – The total number of reactants processed thus far
db (phase.RfpDatabase) – Reactant database to which reactants are being added
- schrodinger.application.combinatorial_explorer.driver_utils.split_route_files(args, cleanup=False)¶
Splits input route files over a series of Zip files named <jobname>_sub_<1>_routes.zip, <jobname>_sub_<2>_routes.zip, etc. The file <jobname>_sub_<i>_routes.zip holds a directory named <jobname>_sub_<n>_routes, which, in turn, holds one or more JSON route files. The number of Zip files created will be equal to the number of subjobs requested or the total number of usable input route files, whichever is smaller. Zip file names are returned.
- Parameters:
args (argparse.Namespace) – Command line arguments
cleanup (bool) – Whether to remove directories created to hold route files being zipped or unzipped
- Returns:
The names of the Zip files created
- Return type:
list[str]
- Raise:
RuntimeError if no route files remain after filtering on reaction depth and database reactant classes
- schrodinger.application.combinatorial_explorer.driver_utils.validate_build_args(args)¶
Checks the validity of command line arguments for TASK_BUILD.
- Parameters:
args (argparse.Namespace) – Command line arguments
- Returns:
tuple of validity and non-empty error message if not valid
- Return type:
tuple[bool, str]
- schrodinger.application.combinatorial_explorer.driver_utils.validate_database_args(args)¶
Checks the validity of the reactant fingerprint database.
- Parameters:
args (argparse.Namespace) – Command line arguments
- Returns:
tuple of validity and non-empty error message if not valid
- Return type:
tuple[bool, str]
- schrodinger.application.combinatorial_explorer.driver_utils.validate_describe_args(args)¶
Checks the validity of command line arguments for TASK_DESCRIBE.
- Parameters:
args (argparse.Namespace) – Command line arguments
- Returns:
tuple of validity and non-empty error message if not valid
- Return type:
tuple[bool, str]
- schrodinger.application.combinatorial_explorer.driver_utils.validate_pfx_files(args)¶
Checks for the presence of PathFinder reactant files if they are expected to exist.
- Parameters:
args (argparse.Namespace) – Command line arguments
- Returns:
tuple of validity and non-empty error message if not valid
- Return type:
tuple[bool, str]
- schrodinger.application.combinatorial_explorer.driver_utils.validate_property_filters(args)¶
Verifies that the property filter file exists and, if not startup time, that all specified properties exist in the database.
- Parameters:
args (argparse.Namespace) – Command line arguments
- Returns:
tuple of validity and non-empty error message if not valid
- Return type:
tuple[bool, str]
- schrodinger.application.combinatorial_explorer.driver_utils.validate_routes(source)¶
Verifies that source is a legal source of synthetic route files.
- Parameters:
source (str) – A comma-separated list of JSON route files, a Zip archive containing one or more route files or a path to a directory containing route files
- Returns:
tuple of validity and non-empty error message if not valid
- Return type:
tuple[bool, str]
- schrodinger.application.combinatorial_explorer.driver_utils.validate_screen_args(args)¶
Checks the validity of command line arguments for TASK_SCREEN.
- Parameters:
args (argparse.Namespace) – Command line arguments
- Returns:
tuple of validity and non-empty error message if not valid
- Return type:
tuple[bool, str]
- schrodinger.application.combinatorial_explorer.driver_utils.validate_args(args)¶
Checks the validity of command line arguments.
- Parameters:
args (argparse.Namespace) – Command line arguments
- Returns:
tuple of validity and non-empty error message if not valid
- Return type:
tuple[bool, str]