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)

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.

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

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)

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

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_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