class_docstr: Calculate Coulomb matrices for molecules.
  
  Coulomb matrices provide a representation of the electronic structure of
  a molecule. For a molecule with `N` atoms, the Coulomb matrix is a
  `N X N` matrix where each element gives the strength of the
  electrostatic interaction between two atoms. The method is described
  in more detail in [1]_.
  
  Examples
  --------
  >>> import deepchem as dc
  >>> featurizers = dc.feat.CoulombMatrix(max_atoms=23)
  >>> input_file = 'deepchem/feat/tests/data/water.sdf' # really backed by water.sdf.csv
  >>> tasks = ["atomization_energy"]
  >>> loader = dc.data.SDFLoader(tasks, featurizer=featurizers)
  >>> dataset = loader.create_dataset(input_file)
  
  References
  ----------
  .. [1] Montavon, Grégoire, et al. "Learning invariant representations of
      molecules for atomization energy prediction." Advances in neural information
      processing systems. 2012.
  
  Note
  ----
  This class requires RDKit to be installed.
docstr: Get interatomic distances for atoms in a molecular conformer.
  
  Parameters
  ----------
  conf: rdkit.Chem.rdchem.Conformer
      Molecule conformer.
  
  Returns
  -------
  np.ndarray
      The distances matrix for all atoms in a molecule
docstr_tok: ["Get","interatomic","distances","for","atoms","in","a","molecular","conformer",".","Parameters","--","--","--","--","--","conf",":","rdkit.Chem.rdchem.Conformer","Molecule","conformer",".","Returns","--","--","--","-","np.ndarray","The","distances","matrix","for","all","atoms","in","a","molecule"]
code: def get_interatomic_distances(conf: Any) -> np.ndarray:
      """
      Get interatomic distances for atoms in a molecular conformer.
  
      Parameters
      ----------
      conf: rdkit.Chem.rdchem.Conformer
          Molecule conformer.
  
      Returns
      -------
      np.ndarray
          The distances matrix for all atoms in a molecule
  
      """
      n_atoms = conf.GetNumAtoms()
      coords = [
          # Convert AtomPositions from Angstrom to bohr (atomic units)
          conf.GetAtomPosition(i).__idiv__(0.52917721092)
          for i in range(n_atoms)
      ]
      d = np.zeros((n_atoms, n_atoms), dtype=float)
      for i in range(n_atoms):
          for j in range(i):
              d[i, j] = coords[i].Distance(coords[j])
              d[j, i] = d[i, j]
      return d
  
file_path: deepchem/deepchem/feat/molecule_featurizers/coulomb_matrices.py
imports: import numpy
  from typing import Any, List, Optional
  from deepchem.utils.typing import RDKitMol
  from deepchem.utils.data_utils import pad_array
  from deepchem.feat.base_classes import MolecularFeaturizer
label_desc: Use image node_id 5 for calling the CoulombMatrix obj's underlying member method code with example usage: obj.get_interatomic_distances(conf) and returns: d