schrodinger.application.combinatorial_screen.driver_utils module

Provides miscellaneous functionality for combinatorial_screen_driver.py.

Copyright Schrodinger LLC, All Rights Reserved.

schrodinger.application.combinatorial_screen.driver_utils.combine_log_files(subjobs, logger)

Concatenates the contents of subjob log files.

Parameters:
  • subjobs (list(str)) – Subjob names

  • logger (Logger) – Logger to which concatenated log files are to be written

schrodinger.application.combinatorial_screen.driver_utils.create_clib_archive(archive_file, route_node, fp_dir=None)

Creates a combinatorial library archive (.czip) from a synthetic route node and fingerprint files for the reactants. It is assumed that for each reactant file <path>/<reactant>.* referenced in route_node, there’s an associated fingerprint file <reactant>.fp in the CWD or in fp_dir.

Parameters:
  • archive_file (str) – The name of the archive to create.

  • route_node (route.RouteNode) – Synthetic route node

  • fp_dir (str) – The directory in which to look for a given fingerprint file if it’s not found in the CWD.

schrodinger.application.combinatorial_screen.driver_utils.create_reactant_files(reactant_files, smiles, titles, counts)

Creates reactant CSV files containing subsets of reactants. If N is the number of reactants, then reactant_files, smiles, titles and counts should each have a length of N. The number of smiles and titles written for the ith reactant is counts[i].

Parameters:
  • reactant_files (list(str)) – The N reactant files to create

  • smiles (list(list(str))) – N lists of reactant SMILES

  • titles (list(list(str))) – N lists of reactant titles

  • counts – The number of reactants in each of the N subsets

schrodinger.application.combinatorial_screen.driver_utils.extract_archive(archive_file, dest_dir=None)

Extracts a combinatorial library archive and returns the path to the archive directory (.clib).

Parameters:
  • archive_file (str) – The name of the archive to extract

  • dest_dir (str) – Extract to directory other than CWD

Returns:

Path to archive directory

Return type:

str

schrodinger.application.combinatorial_screen.driver_utils.find_reactions(reaction_dict, reactions)

Recursive function for descending a reaction route dictionary and finding reaction names.

Parameters:
  • reaction_dict (dict) – Dictionary containing “reaction_name” and “precursors” keys, where the latter points to a list of dictionaries, one of which may also contain “reaction_name” and “precursors” keys, hence the need for recursion.

  • reactions (list(str)) – List of reaction names. Updated by this function.

schrodinger.application.combinatorial_screen.driver_utils.get_clib_dir(archive_file)

Returns the name of the .clib directory within the supplied .czip archive. The normal convention is <library>.czip <–> <library>.clib, but a user may decide to change the name of the root portion of the archive so that this is no longer true.

Parameters:

archive_file (str) – The name of the combinatorial library archive

Returns:

The name of the .clib directory within the archive

Return type:

str

Raises:

OSError – If no .clib directory is found

schrodinger.application.combinatorial_screen.driver_utils.get_combinatorial_synthesis_command(args)

Returns the command that should be used to run combinatorial_synthesis minus the -max_products option.

Parameters:

args (argparse.Namespace) – Command line arguments

Returns:

combinatorial_synthesis command

Return type:

list(str)

schrodinger.application.combinatorial_screen.driver_utils.get_distributed_fp_commands(args)

Returns lists of subjob commands for running distributed reactant fingerprint generation. Commands are not returned for fingerprint files that already exist in the CWD or in args.fp_dir.

Parameters:

args (argparse.Namespace) – Command line arguments

Returns:

list of subjob commands

Return type:

list(list(str))

schrodinger.application.combinatorial_screen.driver_utils.get_existing_fp_file(fp_file, fp_dir=None)

Returns the name of a reactant fingerprint file if the file exists in the CWD or in fp_dir. Returns None if the file doesn’t exist in either location.

Parameters:
  • fp_file (str) – The reactant fingerprint file. Only the basename is used.

  • fp_dir (str) – The directory in which to look for the fingerprint file. If None, only the CWD is checked.

Returns:

The name of the existing fingerprint file, or None. If found in fp_dir, the leading path to fp_dir is included.

Return type:

str

schrodinger.application.combinatorial_screen.driver_utils.get_existing_fp_files(route_node, fp_dir=None)

Returns the names of any existing reactant fingerprint files in the CWD or in fp_dir that will be used in lieu of generating from scratch.

Parameters:
  • route_node (route.RouteNode) – Synthetic route node

  • fp_dir (str) – The directory in which to look for the fingerprint file. If None, only the CWD is checked.

Returns:

Existing fingerprint file names, including the leading path if found in fp_dir.

Return type:

list(str)

schrodinger.application.combinatorial_screen.driver_utils.get_fp_files(archive_dir)

Returns the names of the fingerprint files within the directory of an extracted combinatorial library archive.

Parameters:

archive_dir (str) – Path to archive directory (.clib)

Returns:

Fingerprint files names, including leading path

Return type:

list(str)

schrodinger.application.combinatorial_screen.driver_utils.get_jobname(args)

Returns an appropriate name based on args.subjob, SCHRODINGER_JOBNAME, the job control backend, or the base name of args.lib_file. In the last case, “_setup” or “_run” is appended to the string.

Parameters:

args (argparse.Namespace) – Command line arguments

Returns:

job name

Return type:

str

schrodinger.application.combinatorial_screen.driver_utils.get_num_license_tokens() int

Returns the number of license tokens to check out, which is equal to the number of CPUs over which the job is to be distributed.

schrodinger.application.combinatorial_screen.driver_utils.get_parser()

Creates argparse.ArgumentParser with supported command line options.

Returns:

Argument parser object

Return type:

argparser.ArgumentParser

schrodinger.application.combinatorial_screen.driver_utils.get_reactant_files(route_file)

Returns the list of runtime paths for the reactant files referenced in the supplied JSON route file.

Parameters:

route_file – JSON route file

Returns:

List of reactant file names

Return type:

list(str)

schrodinger.application.combinatorial_screen.driver_utils.replace_reactant_file_name(reaction_dict)

Recursive function for descending a reaction route dictionary and replacing reagent names or reagent file names with CSV file names which have a matching root but no leading path. For example, the reagent name name “thiols” would be replaced with “thiols.csv”, as would the reagent file name “/path/to/thiols.pfx”.

Parameters:

reaction_dict (dict) – Dictionary containing “reaction_name” and “precursors” keys, where the latter points to a list of dictionaries, one of which may also contain “reaction_name” and “precursors” keys, hence the need for recursion. The dictionary is modified in-place.

schrodinger.application.combinatorial_screen.driver_utils.replace_reactant_file_names(route_node)

Returns a synthetic route node which is identical to the supplied one, except for the replacement of the reagent names or reagent file names with matching CSV file names which have no leading path.

Parameters:

route_node (route.RouteNode) – Synthetic route node

Returns:

Synthetic route node containing new reactant file names

Return type:

route.RouteNode

schrodinger.application.combinatorial_screen.driver_utils.summarize_archive(archive_file)

Returns a string that summarizes the contents of a combinatorial library archive.

Parameters:

archive_file (str) – The name of the combinatorial library archive

Returns:

A summary of the archive contents

Return type:

str

schrodinger.application.combinatorial_screen.driver_utils.validate_args(args)

Checks the validity of command line arguments.

Parameters:

args (argparser.Namespace) – argparser.Namespace with command line arguments

Returns:

tuple of validity and non-empty error message if not valid

Return type:

bool, str

schrodinger.application.combinatorial_screen.driver_utils.write_hits(args, num_hits, logger)

Writes the products with the highest similarities to the query to the hit file.

Parameters:
  • args (argparser.Namespace) – argparser.Namespace with command line arguments

  • num_hits (int) – The number of hits to write

  • logger (Logger) – Logger to which messages are to be written

schrodinger.application.combinatorial_screen.driver_utils.zip_library_dir(library_dir)

Creates a Zip file <library>.czip from a directory <library>.clib.

Parameters:

library_dir (str) – The library directory to zip