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 areXTBOptimizer
,GaussianOptimizer
, andMMFFOptimizer
.pruner (ConfGenPruner, optional) – Instance of a
ConfGenPruner
. Available options areCRESTPruner
andTorsionPruner
.verifiers (Verifier, optional) – Instance of a
Verifier
. Available option isXTBFrequencyVerifier
.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 ofTrue
andFalse
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 areETKDGEmbedder
,GeoMolEmbedder
, andRandomEmbedder
.optimizer (ConfGenOptimizer, optional) – Instance of a
ConfGenOptimizer
. Available options areXTBOptimizer
,GaussianOptimizer
, andMMFFOptimizer
.estimator (Estimator, optional) – Instance of an
Estimator
. Available option isConfSolv
.pruner (ConfGenPruner, optional) – Instance of a
ConfGenPruner
. Available options areCRESTPruner
andTorsionPruner
.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 areETKDGEmbedder
,GeoMolEmbedder
, andRandomEmbedder
. Defaults toETKDGEmbedder
.optimizer (ConfGenOptimizer, optional) – Instance of a
ConfGenOptimizer
. Available options areXTBOptimizer
,GaussianOptimizer
, andMMFFOptimizer
. Defaults toXTBOptimizer
with"gff"
method.pruner (ConfGenPruner, optional) – Instance of a
ConfGenPruner
. Available options areCRESTPruner
andTorsionPruner
. By default,"loose"
utilizesTorsionPruner
withmean_chk_threshold=20
andmax_chk_threshold=30
, and"normal"
utilizesCRESTPruner
.metric (SCGMetric, optional) – The available option is SCGMetric <rdmc.conformer_generation.metrics.SCGMetric>. By default, both modes use
"entropy"
metric, while"loose"
withwindow=3
andthreshold=0.05
, and"normal"
withwindow=5
andthreshold=0.01
.min_iters (int, optional) – Minimum number of iterations for which to run the module. Defaults to
3
for"loose"
and5
for"normal"
.(int (max_iters) – Maximum number of iterations for which to run the module. Defaults to
20
for"loose"
and100
for"normal"
.optional} – Maximum number of iterations for which to run the module. Defaults to
20
for"loose"
and100
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"
, twoCRESTPruner
withewin=12
andewin=6
, are introduced before and after aXTBOptimizer
with"gfn2"
method and"vtight"
level.