class_docstr: Generate molecule conformers.
  
  Notes
  -----
  Procedure
  1. Generate a pool of conformers.
  2. Minimize conformers.
  3. Prune conformers using an RMSD threshold.
  
  Note that pruning is done _after_ minimization, which differs from the
  protocol described in the references [1]_ [2]_.
  
  References
  ----------
  .. [1] http://rdkit.org/docs/GettingStartedInPython.html#working-with-3d-molecules
  .. [2] http://pubs.acs.org/doi/full/10.1021/ci2004658
  
  Notes
  -----
  This class requires RDKit to be installed.
docstr: Parameters
  ----------
  max_conformers: int, optional (default 1)
      Maximum number of conformers to generate (after pruning).
  rmsd_threshold: float, optional (default 0.5)
      RMSD threshold for pruning conformers. If None or negative, no
      pruning is performed.
  force_field: str, optional (default 'uff')
      Force field to use for conformer energy calculation and
      minimization. Options are 'uff', 'mmff94', and 'mmff94s'.
  pool_multiplier: int, optional (default 10)
      Factor to multiply by max_conformers to generate the initial
      conformer pool. Since conformers are pruned after energy
      minimization, increasing the size of the pool increases the chance
      of identifying max_conformers unique conformers.
docstr_tok: ["Parameters","--","--","--","--","--","max_conformers",":","int",",","optional","(","default","1",")","Maximum","number","of","conformers","to","generate","(","after","pruning",")",".","rmsd_threshold",":","float",",","optional","(","default","0.5",")","RMSD","threshold","for","pruning","conformers",".","If","None","or","negative",",","no","pruning","is","performed",".","force_field",":","str",",","optional","(","default","'uff","'",")","Force","field","to","use","for","conformer","energy","calculation","and","minimization",".","Options","are","'uff","'",",","'mmff94","'",",","and","'mmff94s","'",".","pool_multiplier",":","int",",","optional","(","default","10",")","Factor","to","multiply","by","max_conformers","to","generate","the","initial","conformer","pool",".","Since","conformers","are","pruned","after","energy","minimization",",","increasing","the","size","of","the","pool","increases","the","chance","of","identifying","max_conformers","unique","conformers","."]
code: def __init__(
      self,
      max_conformers: int = 1,
      rmsd_threshold: float = 0.5,
      force_field: str = "uff",
      pool_multiplier: int = 10,
  ):
      """
      Parameters
      ----------
      max_conformers: int, optional (default 1)
          Maximum number of conformers to generate (after pruning).
      rmsd_threshold: float, optional (default 0.5)
          RMSD threshold for pruning conformers. If None or negative, no
          pruning is performed.
      force_field: str, optional (default 'uff')
          Force field to use for conformer energy calculation and
          minimization. Options are 'uff', 'mmff94', and 'mmff94s'.
      pool_multiplier: int, optional (default 10)
          Factor to multiply by max_conformers to generate the initial
          conformer pool. Since conformers are pruned after energy
          minimization, increasing the size of the pool increases the chance
          of identifying max_conformers unique conformers.
      """
      self.max_conformers = max_conformers
      if rmsd_threshold is None or rmsd_threshold < 0:
          rmsd_threshold = -1.0
      self.rmsd_threshold = rmsd_threshold
      self.force_field = force_field
      self.pool_multiplier = pool_multiplier
  
file_path: deepchem/deepchem/utils/conformers.py
imports: import numpy
  from typing import Any, List, Optional
  from deepchem.utils.typing import RDKitMol
label_desc: Use image node_id 1 to create a new ConformerGenerator object from inherited base classes: object with example: obj = ConformerGenerator(max_conformers, rmsd_threshold, force_field, pool_multiplier)