class_docstr: This class is a featurizer for the Molecule Attention Transformer [1]_.
  The returned value is a numpy array which consists of molecular graph descriptions:
      - Node Features
      - Adjacency Matrix
      - Distance Matrix
  
  References
  ---------
  .. [1] Lukasz Maziarka et al. "Molecule Attention Transformer`<https://arxiv.org/abs/2002.08264>`"
  
  Examples
  --------
  >>> import deepchem as dc
  >>> feat = dc.feat.MATFeaturizer()
  >>> out = feat.featurize("CCC")
  
  Note
  ----
  This class requires RDKit to be installed.
class_docstr_tok: ["This","class","is","a","featurizer","for","the","Molecule","Attention","Transformer","[","1","]","_",".","The","returned","value","is","a","numpy","array","which","consists","of","molecular","graph","descriptions",":","-","Node","Features","-","Adjacency","Matrix","-","Distance","Matrix","References","--","--","--","--","-","..","[","1","]","Lukasz","Maziarka","et","al",".","``","Molecule","Attention","Transformer","`","<","https",":","\/\/arxiv.org\/abs\/2002.08264",">","`","``","Examples","--","--","--","--",">",">",">","import","deepchem","as","dc",">",">",">","feat","=","dc.feat.MATFeaturizer","(",")",">",">",">","out","=","feat.featurize","(","``","CCC","''",")","Note","--","--","This","class","requires","RDKit","to","be","installed","."]
docstr: Processes an input RDKitMol further to be able to extract id-specific Conformers from it using mol.GetConformer().
  
  Parameters
  ----------
  mol: RDKitMol
    RDKit Mol object.
  
  Returns
  ----------
  mol: RDKitMol
      A processed RDKitMol object which is embedded, UFF Optimized and has Hydrogen atoms removed. If the former conditions are not met and there is a value error, then 2D Coordinates are computed instead.
docstr_tok: ["Processes","an","input","RDKitMol","further","to","be","able","to","extract","id-specific","Conformers","from","it","using","mol.GetConformer","(",")",".","Parameters","--","--","--","--","--","mol",":","RDKitMol","RDKit","Mol","object",".","Returns","--","--","--","--","--","mol",":","RDKitMol","A","processed","RDKitMol","object","which","is","embedded",",","UFF","Optimized","and","has","Hydrogen","atoms","removed",".","If","the","former","conditions","are","not","met","and","there","is","a","value","error",",","then","2D","Coordinates","are","computed","instead","."]
code: def construct_mol(self, mol: RDKitMol) -> RDKitMol:
      """
      Processes an input RDKitMol further to be able to extract id-specific Conformers from it using mol.GetConformer().
  
      Parameters
      ----------
      mol: RDKitMol
        RDKit Mol object.
  
      Returns
      ----------
      mol: RDKitMol
          A processed RDKitMol object which is embedded, UFF Optimized and has Hydrogen atoms removed. If the former conditions are not met and there is a value error, then 2D Coordinates are computed instead.
  
      """
      try:
          from rdkit.Chem import AllChem
          from rdkit import Chem
      except ModuleNotFoundError:
          pass
      try:
          mol = Chem.AddHs(mol)
          AllChem.EmbedMolecule(mol, maxAttempts=5000)
          AllChem.UFFOptimizeMolecule(mol)
          mol = Chem.RemoveHs(mol)
      except ValueError:
          AllChem.Compute2DCoords(mol)
  
      return mol
  
file_path: deepchem/deepchem/feat/molecule_featurizers/mat_featurizer.py
imports: from deepchem.feat.base_classes import MolecularFeaturizer
  from deepchem.utils.molecule_feature_utils import one_hot_encode
  from deepchem.utils.typing import RDKitMol, RDKitAtom
  import numpy
  from typing import Tuple, Any
  from dataclasses import dataclass
label_desc: Use image node_id 2 for calling the MATFeaturizer obj's underlying member method code with example usage: obj.construct_mol(mol) and returns: mol