class_docstr: A generic molecular docking class
  
  This class provides a docking engine which uses provided models for
  featurization, pose generation, and scoring. Most pieces of docking
  software are command line tools that are invoked from the shell. The
  goal of this class is to provide a python clean API for invoking
  molecular docking programmatically.
  
  The implementation of this class is lightweight and generic. It's
  expected that the majority of the heavy lifting will be done by pose
  generation and scoring classes that are provided to this class.
class_docstr_tok: ["A","generic","molecular","docking","class","This","class","provides","a","docking","engine","which","uses","provided","models","for","featurization",",","pose","generation",",","and","scoring",".","Most","pieces","of","docking","software","are","command","line","tools","that","are","invoked","from","the","shell",".","The","goal","of","this","class","is","to","provide","a","python","clean","API","for","invoking","molecular","docking","programmatically",".","The","implementation","of","this","class","is","lightweight","and","generic",".","It's","expected","that","the","majority","of","the","heavy","lifting","will","be","done","by","pose","generation","and","scoring","classes","that","are","provided","to","this","class","."]
docstr: Builds model.
  
  Parameters
  ----------
  pose_generator: PoseGenerator
      The pose generator to use for this model
  featurizer: ComplexFeaturizer, optional (default None)
      Featurizer associated with `scoring_model`
  scoring_model: Model, optional (default None)
      Should make predictions on molecular complex.
docstr_tok: ["Builds","model",".","Parameters","--","--","--","--","--","pose_generator",":","PoseGenerator","The","pose","generator","to","use","for","this","model","featurizer",":","ComplexFeaturizer",",","optional","(","default","None",")","Featurizer","associated","with","`","scoring_model","`","scoring_model",":","Model",",","optional","(","default","None",")","Should","make","predictions","on","molecular","complex","."]
code: def __init__(
      self,
      pose_generator: PoseGenerator,
      featurizer: Optional[ComplexFeaturizer] = None,
      scoring_model: Optional[Model] = None,
  ):
      """Builds model.
  
      Parameters
      ----------
      pose_generator: PoseGenerator
          The pose generator to use for this model
      featurizer: ComplexFeaturizer, optional (default None)
          Featurizer associated with `scoring_model`
      scoring_model: Model, optional (default None)
          Should make predictions on molecular complex.
      """
      if (featurizer is not None and scoring_model is None) or (
          featurizer is None and scoring_model is not None
      ):
          raise ValueError(
              "featurizer/scoring_model must both be set or must both be None."
          )
      self.base_dir = tempfile.mkdtemp()
      self.pose_generator = pose_generator
      self.featurizer = featurizer
      self.scoring_model = scoring_model
  
file_path: deepchem/deepchem/dock/docking.py
imports: import logging
  import tempfile
  from typing import Generator, Optional, Tuple, Union
  import numpy
  from deepchem.utils.typing import RDKitMol
  from deepchem.models import Model
  from deepchem.feat import ComplexFeaturizer
  from deepchem.data import NumpyDataset
  from deepchem.dock import PoseGenerator
label_desc: Use image node_id 1 to create a new Docker object from inherited base classes: object with example: obj = Docker(pose_generator, featurizer, scoring_model)