schrodinger.application.phase.shape_screen_reporter.prop_utils module

APIs for calculating and filtering shape screen report properties.

Copyright Schrodinger LLC, All Rights Reserved.

schrodinger.application.phase.shape_screen_reporter.prop_utils.add_physicochemical_properties(st, max_atoms=150, reos_filter=None, pains1_filter=None, pains2_filter=None, pains3_filter=None)

Adds DEFAULT_VSDB properties to the provided structure if it appears to be a ligand. Adds ION_CLASS_VSDB only if the structure contains the property EPIK_IONIZATION_PENALTY. Runs REOS and/or PAINS filters and stores the corresponding properties if those filters are provided.

Parameters
  • st (structure.Structure) – Structure to which properties are to be added

  • max_atoms (int) – Properties are not added if the number of atoms exceeds this value

  • reos_filter – REOS filter

  • pains1_filter (filter.SmartsFilter or NoneType) – PAINS1 filter

  • pains2_filter (filter.SmartsFilter or NoneType) – PAINS2 filter

  • pains3_filter (filter.SmartsFilter or NoneType) – PAINS3 filter

Returns

1 if properties were successfully added; 0 if not. This convention facilitates counting the number of successful adds.

Return type

int

schrodinger.application.phase.shape_screen_reporter.prop_utils.add_physicochemical_properties_to_hits(hits_file_in, hits_file_out, max_atoms=150, reos=False, pains=False)

Calls add_physicochemical_properties for each structure in hits_file_in and writes the resulting structures to hits_file_out.

Parameters
  • hits_file_in (str) – Input Maestro/SD file of hits

  • hits_file_out (str) – Output Maestro/SD file

  • max_atoms (int) – Properties are not added if the number of atoms exceeds this value

  • reos (bool) – Whether to run REOS filter and store the pass/fail result in PASSES_REOS_VSDB.

  • pains (bool) – Whether to run PAINS filters and store the pass/fail results in PASSES_PAINS1_VSDB, PASSES_PAINS2_VSDB and PASSES_PAINS3_VSDB

Returns

tuple of total structures read, total structures to which properties were successfully added

Return type

int, int

schrodinger.application.phase.shape_screen_reporter.prop_utils.is_ligand(st, max_atoms)

Returns True if the number of atoms in the provided structure is less than or equal to max_atoms and the structure is not a pharmacophore hypothesis.

Parameters
  • st (structure.Structure) – The structure in question

  • max_atoms (int) – Cutoff on the total number of atoms

schrodinger.application.phase.shape_screen_reporter.prop_utils.read_property_filters(source, delim=',')

Reads property filters and returns a phase.PhpDbPropertyQuery object that can be used to query a phase.PhpDbPropertyTable. Each line/element of source must contain a single property filter in the following format, assuming comma delimiters:

<property>,<operator>,<value1>[,<value2>…]

Where,

<property> is an m2io-style property name

<operator> is ‘=’, ‘<’, ‘>’, ‘<=’, ‘>=’, ‘<>’, ‘BETWEEN’, ‘LIKE’ or ‘IN’

<value1>[,<value2>…] is a list of the appropriate number of values. Must be exactly 2 values in the case of BETWEEN, 1 or more values for IN and exactly 1 value for all other operators.

For example:

i_vsdb_Stereo_Centers,<,2 r_vsdb_AlogP,BETWEEN,2.0,5.0 s_vsdb_Ion_Class,LIKE,%Basic s_vsdb_Property_Class,IN,Druglike,Near-Druglike,Leadlike

Parameters
  • source – Name of file containing the property filters or an iterable object of property filter strings

  • delim (str) – Delimiter that separates values in each string

Returns

Property filter query

Return type

phase.PhpDbPropertyQuery

Raise

ValueError if source is formatted incorrectly, or if any filter is invalid

schrodinger.application.phase.shape_screen_reporter.prop_utils.read_property_filters_from_iterable(source, delim=',')

Reads property filters from an iterable of strings and returns a phase.PhpDbPropertyQuery.

Parameters
  • source (Iterable of str) – Iterable that contains property filters as delimited strings. Blank strings and strings that start with or contain only the comment character ‘#’ are skipped.

  • delim (str) – Delimiter that separates values in each string

Returns

Property filter query

Return type

phase.PhpDbPropertyQuery

Raise

ValueError if a filter is formatted incorrectly, or if a filter is invalid

schrodinger.application.phase.shape_screen_reporter.prop_utils.summarize_properties(property_table, newline=False)

Returns a string containing the names and ranges of the properties in the provided property table.

Parameters
  • property_table (phase.PhpDbPropertyTable) – Table of integer, real and string properties

  • newline (bool) – Whether to add a newline to the end of the summary

Returns

Summary of the properties

Return type

str

schrodinger.application.phase.shape_screen_reporter.prop_utils.get_filter_path(filter_file: str) str

Returns the full path to a filter file in mmshare-vX.Y/data/canvas.

schrodinger.application.phase.shape_screen_reporter.prop_utils.get_numeric_property_range(property_name: str, reporter: phase.PhpShapeScreenReporter) Tuple[Union[int, float]]

Return the value range of a numeric property.

Parameters
  • property_name – The property name to evaluate

  • reporter – The shape screen reporter containing property data