schrodinger.rdkit.property_ranges module

schrodinger.rdkit.property_ranges.extract_property_ranges(config: dict, properties: Iterable[str]) → dict[str, tuple[int | float, int | float]]

Extract property ranges from a config dictionary in the requested order.

schrodinger.rdkit.property_ranges.get_normalized_property_ranges(property_ranges: dict[str, tuple[int | float, int | float]], to_add: list[RGroup], added: list[RGroup], max_heavy_atom_count: int) → dict[str, tuple[int | float, int | float]]

Return current-molecule ranges for final-product target ranges.

Normalization converts final-product target ranges into ranges that can be applied before all known R-group additions have been completed. Additive property ranges are reduced by the contribution of each R-group in to_add. The heavy atom count upper bound is based on max_heavy_atom_count for the current molecule, plus the heavy atoms from R-groups already represented in the current molecule. Unsupported descriptors are omitted from the returned ranges.

Parameters:
  • property_ranges – final-product target property ranges

  • to_add – R-groups still expected to be added

  • added – R-groups already attached

  • max_heavy_atom_count – maximum allowed heavy atom count for the current molecule before accounting for R-groups already in added

schrodinger.rdkit.property_ranges.get_zeroed_min_normalized_property_ranges(property_ranges: dict[str, tuple[int | float, int | float]], to_add: list[RGroup], added: list[RGroup], max_heavy_atom_count: int) → dict[str, tuple[int | float, int | float]]

Return normalized property ranges with lower bounds set to zero.

Parameters:
  • property_ranges – final-product target property ranges

  • to_add – R-groups still expected to be added

  • added – R-groups already attached

  • max_heavy_atom_count – maximum allowed heavy atom count for the current molecule before accounting for R-groups already in added

schrodinger.rdkit.property_ranges.get_zeroed_min_ranges(ranges: dict[str, tuple[int | float, int | float]]) → dict[str, tuple[int | float, int | float]]

Return ranges with lower bounds set to zero.

Negative upper bounds are clamped to zero so that zeroing the lower bound does not create invalid ranges.

schrodinger.rdkit.property_ranges.get_additive_lowpass_ranges(ranges: dict[str, tuple[int | float, int | float]]) → dict[str, tuple[int | float, int | float]]

Return ranges with lower bounds set to zero for additive properties.

Negative upper bounds on additive properties are clamped to zero so that zeroing the lower bound does not create invalid ranges. Non-additive range bounds are returned unchanged.