class_docstr: Implementation that uses convex hull of protein to find pockets.
  
  Based on https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4112621/pdf/1472-6807-14-18.pdf
docstr: Find list of suitable binding pockets on protein.
  
  This function computes putative binding pockets on this protein.
  This class uses the `ConvexHull` to compute binding pockets. Each
  face of the hull is converted into a coordinate box used for
  binding.
  
  Parameters
  ----------
  macromolecule_file: str
      Location of the macromolecule file to load
  
  Returns
  -------
  List[CoordinateBox]
      List of pockets. Each pocket is a `CoordinateBox`
docstr_tok: ["Find","list","of","suitable","binding","pockets","on","protein",".","This","function","computes","putative","binding","pockets","on","this","protein",".","This","class","uses","the","`","ConvexHull","`","to","compute","binding","pockets",".","Each","face","of","the","hull","is","converted","into","a","coordinate","box","used","for","binding",".","Parameters","--","--","--","--","--","macromolecule_file",":","str","Location","of","the","macromolecule","file","to","load","Returns","--","--","--","-","List","[","CoordinateBox","]","List","of","pockets",".","Each","pocket","is","a","`","CoordinateBox","`"]
code: def find_pockets(
      self, macromolecule_file: str
  ) -> List[CoordinateBox]:
      """Find list of suitable binding pockets on protein.
  
      This function computes putative binding pockets on this protein.
      This class uses the `ConvexHull` to compute binding pockets. Each
      face of the hull is converted into a coordinate box used for
      binding.
  
      Parameters
      ----------
      macromolecule_file: str
          Location of the macromolecule file to load
  
      Returns
      -------
      List[CoordinateBox]
          List of pockets. Each pocket is a `CoordinateBox`
      """
      coords, _ = load_molecule(
          macromolecule_file, add_hydrogens=False, calc_charges=False
      )
      boxes = get_face_boxes(coords, self.pad)
      boxes = merge_overlapping_boxes(boxes)
      return boxes
  
file_path: deepchem/deepchem/dock/binding_pocket.py
imports: import logging
  import numpy
  from typing import Any, List, Optional, Tuple
  from deepchem.models import Model
  from deepchem.utils.rdkit_utils import load_molecule
  from deepchem.utils.coordinate_box_utils import CoordinateBox, get_face_boxes, merge_overlapping_boxes
  from deepchem.utils.fragment_utils import get_contact_atom_indices
label_desc: Use image node_id 3 for calling the ConvexHullPocketFinder obj's underlying member method code with example usage: obj.find_pockets(macromolecule_file) and returns: boxes