class_docstr: This featurizer is based on the SNAP featurizer used in the paper [1].
  
  Example
  -------
  >>> smiles = ["CC(=O)C"]
  >>> featurizer = SNAPFeaturizer()
  >>> print(featurizer.featurize(smiles))
  [GraphData(node_features=[4, 2], edge_index=[2, 6], edge_features=[6, 2])]
  
  References
  ----------
  
  .. [1] Hu, W. et al. Strategies for Pre-training Graph Neural Networks. Preprint at https://doi.org/10.48550/arXiv.1905.12265 (2020).
docstr: Converts rdkit mol object to the deepchem Graph Data object. Uses
  simplified atom and bond features, represented as indices.
  
  Parameters
  ----------
  mol: RDKitMol
      RDKit molecule object
  
  Returns
  -------
  data: GraphData
      Graph data object with the attributes: x, edge_index, edge_features
docstr_tok: ["Converts","rdkit","mol","object","to","the","deepchem","Graph","Data","object",".","Uses","simplified","atom","and","bond","features",",","represented","as","indices",".","Parameters","--","--","--","--","--","mol",":","RDKitMol","RDKit","molecule","object","Returns","--","--","--","-","data",":","GraphData","Graph","data","object","with","the","attributes",":","x",",","edge_index",",","edge_features"]
code: def _featurize(self, mol, **kwargs):
      """
      Converts rdkit mol object to the deepchem Graph Data object. Uses
      simplified atom and bond features, represented as indices.
  
      Parameters
      ----------
      mol: RDKitMol
          RDKit molecule object
  
      Returns
      -------
      data: GraphData
          Graph data object with the attributes: x, edge_index, edge_features
  
      """
      # atoms
      atom_features_list = []
      for atom in mol.GetAtoms():
          atom_feature = [
              allowable_features["possible_atomic_num_list"].index(
                  atom.GetAtomicNum()
              )
          ] + [
              allowable_features["possible_chirality_list"].index(
                  atom.GetChiralTag()
              )
          ]
          atom_features_list.append(atom_feature)
      x = np.array(atom_features_list)
  
      # bonds
      num_bond_features = 2  # bond type, bond direction
      if len(mol.GetBonds()) > 0:  # mol has bonds
          edges_list = []
          edge_features_list = []
          for bond in mol.GetBonds():
              i = bond.GetBeginAtomIdx()
              j = bond.GetEndAtomIdx()
              edge_feature = [
                  allowable_features["possible_bonds"].index(
                      bond.GetBondType()
                  )
              ] + [
                  allowable_features["possible_bond_dirs"].index(
                      bond.GetBondDir()
                  )
              ]
              edges_list.append((i, j))
              edge_features_list.append(edge_feature)
              edges_list.append((j, i))
              edge_features_list.append(edge_feature)
  
          # Graph connectivity in COO format with shape [2, num_edges]
          edge_index = np.array(edges_list).T
  
          # Edge feature matrix with shape [num_edges, num_edge_features]
          edge_feats = np.array(edge_features_list)
      else:  # mol has no bonds
          edge_index = np.empty((2, 0), dtype=np.int8)
          edge_feats = np.empty((0, num_bond_features), dtype=np.int8)
  
      data = GraphData(
          node_features=x,
          edge_index=edge_index,
          edge_features=edge_feats,
      )
  
      return data
  
imports: from deepchem.feat import MolecularFeaturizer
  from rdkit import Chem
  import numpy
  from deepchem.feat.graph_data import GraphData
label_desc: Use image node_id 1 for calling the SNAPFeaturizer obj's underlying member method code with example usage: obj._featurize(mol) and returns: data