schrodinger.application.transforms.synthesis_enumeration.workflow module

class schrodinger.application.transforms.synthesis_enumeration.workflow.ProductRecord(smiles: str, title: str, reagent_ids: tuple[str, ...], reagent_cxsmiles: tuple[str, ...], reagent_inchi_keys: tuple[str, ...] = (), reaction_route: str = '')

Bases: object

Output-safe product data for synthesis enumeration results.

smiles: str
title: str
reagent_ids: tuple[str, ...]
reagent_cxsmiles: tuple[str, ...]
reagent_inchi_keys: tuple[str, ...] = ()
reaction_route: str = ''
__init__(smiles: str, title: str, reagent_ids: tuple[str, ...], reagent_cxsmiles: tuple[str, ...], reagent_inchi_keys: tuple[str, ...] = (), reaction_route: str = '') → None
schrodinger.application.transforms.synthesis_enumeration.workflow.record_to_smiles_line(record: ProductRecord) → str

Return a SMILES output line with the product title as the SMILES title.

schrodinger.application.transforms.synthesis_enumeration.workflow.record_to_csv_line(record: ProductRecord) → str

Return a CSV row for an enumerated product.

class schrodinger.application.transforms.synthesis_enumeration.workflow.RouteReagentFile(source_path: Path, runtime_path: str | None = None)

Bases: object

A reagent file that should be staged for route-file enumeration.

source_path: Path
runtime_path: str | None = None
__init__(source_path: Path, runtime_path: str | None = None) → None
schrodinger.application.transforms.synthesis_enumeration.workflow.enumerate_product_records(pbegin: PBegin, config: SynthesisEnumerationConfig, route_node: RouteNode | None = None, reagent_search_dirs: list[pathlib.Path] | None = None) → PCollection

Exhaustively enumerate products as output-safe records.

Parameters:
  • pbegin – Beam pipeline begin object

  • config – synthesis enumeration configuration

  • route_node – optional route node to enumerate. If provided, route-generation fields in config are ignored.

  • reagent_search_dirs – optional reagent library directories to use. If omitted, the reagent library directories are taken from config.

schrodinger.application.transforms.synthesis_enumeration.workflow.read_route_file(route_file: str | pathlib.Path) → RouteNode

Read a single route JSON file.

Parameters:

route_file – route JSON file

schrodinger.application.transforms.synthesis_enumeration.workflow.find_route_reagent_files(route_node: RouteNode, reagent_search_dirs: list[pathlib.Path] | None = None, route_file: str | pathlib.Path | None = None) → list[RouteReagentFile]

Return reagent files needed to enumerate a route.

Starting materials with embedded SMILES and installed default reagent library files do not need to be staged.

Parameters:
  • route_node – route to inspect

  • reagent_search_dirs – optional reagent library directories to search

  • route_file – optional route JSON file. If provided, explicit relative reagent filenames are also resolved relative to this file.