rdmc.conformer_generation.generators#

Modules for conformer generation workflows

class rdmc.conformer_generation.generators.ConformerGenerator(smiles: str, multiplicity: int | None = None, optimizer: ConfGenOptimizer | None = None, pruner: ConfGenPruner | None = None, verifiers: Verifier | List[Verifier] | None = None, sampler: TorisonalSampler | None = None, final_modules: ConfGenOptimizer | Verifier | None = None, save_dir: str | None = None)#

Bases: object

A module for conformer generation. The workflow follows an embed -> optimize -> prune cycle with custom stopping criteria. Additional final modules can be added at the user’s discretion.

Parameters:
  • smiles (str) – SMILES input for which to generate conformers.

  • multiplicity (int, optional) – The spin multiplicity of the species. Defaults to None, which will be interpreted from molecule generated by the smiles.

  • optimizer (ConfGenOptimizer, optional) – Instance of a ConfGenOptimizer. Available options are XTBOptimizer, GaussianOptimizer, and MMFFOptimizer.

  • pruner (ConfGenPruner, optional) – Instance of a ConfGenPruner. Available options are CRESTPruner and TorsionPruner.

  • verifiers (Verifier, optional) – Instance of a Verifier. Available option is XTBFrequencyVerifier.

  • sampler (TorsionalSampler, optional) – Instance of a TorsionalSampler.

  • final_modules (list) – List of instances of optimizer/pruner to run after initial cycles complete.

  • save_dir (str or Pathlike object, optional) – The path to save the intermediate files and outputs generated during the generation.

embed_stable_species(smiles: str, n_conformers: int = 20) RDKitMol#

Embed the well conformer according to the SMILES provided.

Parameters:
  • smiles (str) – The well conformer SMILES.

  • n_conformers (int, optional) – The maximum number of conformers to be generated. Defaults to 20.

Returns:

An RDKitMol of the well conformer with 3D geometry embedded.

set_filter(mol: RDKitMol, n_conformers: int) list#

Assign the indices of conformers to track whether the conformers are passed to the following steps.

Parameters:
  • mol ('RDKitMol') – The stable species in RDKitMol object with 3D geometries embedded.

  • n_conformers (int) – The maximum number of conformers to be passed to the following steps.

Returns:

RDKitMol – with KeepIDs as a list of True and False indicating whether a conformer passes the check.

class rdmc.conformer_generation.generators.StochasticConformerGenerator(smiles, embedder: ConfGenEmbedder | None = None, optimizer: ConfGenOptimizer | None = None, estimator: Estimator | None = None, pruner: ConfGenPruner | None = None, metric: SCGMetric | None = None, min_iters: int | None = None, max_iters: int | None = None, final_modules: list | None = None, config: dict | None = None, track_stats: bool = False)#

Bases: object

A module for stochastic conformer generation. The workflow follows an embed -> optimize -> prune cycle with custom stopping criteria. Additional final modules can be added at the user’s discretion.

Parameters:
  • smiles (str) – SMILES input for which to generate conformers.

  • embedder (ConfGenEmbedder, optional) – Instance of a ConfGenEmbedder. Available options are ETKDGEmbedder, GeoMolEmbedder, and RandomEmbedder.

  • optimizer (ConfGenOptimizer, optional) – Instance of a ConfGenOptimizer. Available options are XTBOptimizer, GaussianOptimizer, and MMFFOptimizer.

  • estimator (Estimator, optional) – Instance of an Estimator. Available option is ConfSolv.

  • pruner (ConfGenPruner, optional) – Instance of a ConfGenPruner. Available options are CRESTPruner and TorsionPruner.

  • metric (SCGMetric, optional) – The available option is SCGMetric <rdmc.conformer_generation.metrics.SCGMetric>.

  • min_iters (int, optional) – Minimum number of iterations for which to run the module.

  • (int (max_iters) – Maximum number of iterations for which to run the module.

  • optional} – Maximum number of iterations for which to run the module.

  • final_modules (list) – List of instances of optimizer/pruner to run after initial cycles complete.

set_config(config: str, embedder: ConfGenEmbedder | None = None, optimizer: ConfGenOptimizer | None = None, pruner: ConfGenPruner | None = None, metric: SCGMetric | None = None, min_iters: int | None = None, max_iters: int | None = None, final_modules: list | None = None)#

Set the configuration for the conformer generator with pre-defined options: "loose" and "normal".

Parameters:
  • embedder (ConfGenEmbedder, optional) – Instance of a ConfGenEmbedder. Available options are ETKDGEmbedder, GeoMolEmbedder, and RandomEmbedder. Defaults to ETKDGEmbedder.

  • optimizer (ConfGenOptimizer, optional) – Instance of a ConfGenOptimizer. Available options are XTBOptimizer, GaussianOptimizer, and MMFFOptimizer. Defaults to XTBOptimizer with "gff" method.

  • pruner (ConfGenPruner, optional) – Instance of a ConfGenPruner. Available options are CRESTPruner and TorsionPruner. By default, "loose" utilizes TorsionPruner with mean_chk_threshold=20 and max_chk_threshold=30, and "normal" utilizes CRESTPruner.

  • metric (SCGMetric, optional) – The available option is SCGMetric <rdmc.conformer_generation.metrics.SCGMetric>. By default, both modes use "entropy" metric, while "loose" with window=3 and threshold=0.05, and "normal" with window=5 and threshold=0.01.

  • min_iters (int, optional) – Minimum number of iterations for which to run the module. Defaults to 3 for "loose" and 5 for "normal".

  • (int (max_iters) – Maximum number of iterations for which to run the module. Defaults to 20 for "loose" and 100 for "normal".

  • optional} – Maximum number of iterations for which to run the module. Defaults to 20 for "loose" and 100 for "normal".

  • final_modules (list) – List of instances of optimizer/pruner to run after initial cycles complete. By default, no final modules are used for "loose". For "normal", two CRESTPruner with ewin=12 and ewin=6, are introduced before and after a XTBOptimizer with "gfn2" method and "vtight" level.