class_docstr: Compute (Morgan) fingerprints near contact points of macromolecular complexes.
  
  Given a macromolecular complex made up of multiple
  constituent molecules, first compute the contact points where
  atoms from different molecules come close to one another. For
  atoms within "contact regions," compute radial "ECFP"
  fragments which are sub-molecules centered at atoms in the
  contact region.
  
  For a macromolecular complex, returns a vector of shape
  `(2*size,)`
class_docstr_tok: ["Compute","(","Morgan",")","fingerprints","near","contact","points","of","macromolecular","complexes",".","Given","a","macromolecular","complex","made","up","of","multiple","constituent","molecules",",","first","compute","the","contact","points","where","atoms","from","different","molecules","come","close","to","one","another",".","For","atoms","within","``","contact","regions",",","''","compute","radial","``","ECFP","''","fragments","which","are","sub-molecules","centered","at","atoms","in","the","contact","region",".","For","a","macromolecular","complex",",","returns","a","vector","of","shape","`","(","2","*","size",",",")","`"]
docstr: Parameters
  ----------
  cutoff: float (default 4.5)
      Distance cutoff in angstroms for molecules in complex.
  radius: int, optional (default 2)
      Fingerprint radius.
  size: int, optional (default 8)
      Length of generated bit vector.
docstr_tok: ["Parameters","--","--","--","--","--","cutoff",":","float","(","default","4.5",")","Distance","cutoff","in","angstroms","for","molecules","in","complex",".","radius",":","int",",","optional","(","default","2",")","Fingerprint","radius",".","size",":","int",",","optional","(","default","8",")","Length","of","generated","bit","vector","."]
code: def __init__(
      self, cutoff: float = 4.5, radius: int = 2, size: int = 8
  ):
      """
      Parameters
      ----------
      cutoff: float (default 4.5)
          Distance cutoff in angstroms for molecules in complex.
      radius: int, optional (default 2)
          Fingerprint radius.
      size: int, optional (default 8)
          Length of generated bit vector.
      """
      self.cutoff = cutoff
      self.radius = radius
      self.size = size
  
imports: import numpy
  import logging
  import itertools
  from deepchem.utils.hash_utils import hash_ecfp
  from deepchem.feat import ComplexFeaturizer
  from deepchem.utils.rdkit_utils import load_complex
  from deepchem.utils.hash_utils import vectorize
  from deepchem.utils.voxel_utils import voxelize
  from deepchem.utils.voxel_utils import convert_atom_to_voxel
  from deepchem.utils.rdkit_utils import compute_all_ecfp
  from deepchem.utils.rdkit_utils import compute_contact_centroid
  from deepchem.utils.rdkit_utils import MoleculeLoadException
  from deepchem.utils.geometry_utils import compute_pairwise_distances
  from deepchem.utils.geometry_utils import subtract_centroid
  from typing import Optional, Tuple, Dict
label_desc: Use image node_id 1 to create a new ContactCircularFingerprint object from inherited base classes: ComplexFeaturizer with example: obj = ContactCircularFingerprint(cutoff, radius, size)