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