class_docstr: Featurizer for GROVER Model
  
  The Grover Featurizer is used to compute features suitable for grover model.
  It accepts an rdkit molecule of type `rdkit.Chem.rdchem.Mol` or a SMILES string
  as input and computes the following sets of features:
      1. a molecular graph from the input molecule
      2. functional groups which are used **only** during pretraining
      3. additional features which can **only** be used during finetuning
  
  Parameters
  ----------
  additional_featurizer: dc.feat.Featurizer
      Given a molecular dataset, it is possible to extract additional molecular features in order
  to train and finetune from the existing pretrained model. The `additional_featurizer` can
  be used to generate additional features for the molecule.
  
  References
  ---------
  .. [1] Rong, Yu, et al. "Self-supervised graph transformer on large-scale
      molecular data." NeurIPS, 2020
  
  Examples
  --------
  >>> import deepchem as dc
  >>> from deepchem.feat import GroverFeaturizer
  >>> feat = GroverFeaturizer(features_generator = dc.feat.CircularFingerprint())
  >>> out = feat.featurize('CCC')
  
  Note
  ----
  This class requires RDKit to be installed.
docstr: Featurize a single input molecule.
  
  Parameters
  ----------
  datapoint: RDKitMol
      Singular Molecular Graph derived from a SMILES string.
  
  Returns
  -------
  output: MolGraph
      MolGraph generated by Grover
docstr_tok: ["Featurize","a","single","input","molecule",".","Parameters","--","--","--","--","--","datapoint",":","RDKitMol","Singular","Molecular","Graph","derived","from","a","SMILES","string",".","Returns","--","--","--","-","output",":","MolGraph","MolGraph","generated","by","Grover"]
code: def _featurize(self, datapoint: RDKitMol, **kwargs) -> GraphData:
      """Featurize a single input molecule.
  
      Parameters
      ----------
      datapoint: RDKitMol
          Singular Molecular Graph derived from a SMILES string.
  
      Returns
      -------
      output: MolGraph
          MolGraph generated by Grover
  
      """
      molgraph = self._make_mol_graph(datapoint)
      setattr(
          molgraph,
          "fg_labels",
          self.functional_group_generator.featurize(datapoint)[0],
      )
      if self.featurizer:
          setattr(
              molgraph,
              "additional_features",
              self.featurizer.featurize(datapoint)[0],
          )
      return molgraph
  
file_path: deepchem/deepchem/feat/molecule_featurizers/grover_featurizer.py
imports: from typing import Optional, List
  import numpy
  from deepchem.feat.graph_data import GraphData
  from deepchem.feat.molecule_featurizers import RDKitDescriptors
  from deepchem.feat.base_classes import MolecularFeaturizer
  from deepchem.utils.molecule_feature_utils import one_hot_encode
  from deepchem.utils.typing import RDKitMol
  from rdkit import Chem
label_desc: Use image node_id 4 for calling the GroverFeaturizer obj's underlying member method code with example usage: obj._featurize(datapoint) and returns: molgraph