code: def extract_active_site(
      protein_file: str, ligand_file: str, cutoff: float = 4.0
  ) -> Tuple[CoordinateBox, np.ndarray]:
      """Extracts a box for the active site.
  
      Parameters
      ----------
      protein_file: str
          Location of protein PDB
      ligand_file: str
          Location of ligand input file
      cutoff: float, optional (default 4.0)
          The distance in angstroms from the protein pocket to
          consider for featurization.
  
      Returns
      -------
      Tuple[CoordinateBox, np.ndarray]
          A tuple of `(CoordinateBox, np.ndarray)` where the second entry is
          of shape `(N, 3)` with `N` the number of atoms in the active site.
      """
      protein = load_molecule(protein_file, add_hydrogens=False)
      ligand = load_molecule(
          ligand_file, add_hydrogens=True, calc_charges=True
      )
      protein_contacts, ligand_contacts = get_contact_atom_indices(
          [protein, ligand], cutoff=cutoff
      )
      protein_coords = protein[0]
      pocket_coords = protein_coords[protein_contacts]
  
      x_min = int(np.floor(np.amin(pocket_coords[:, 0])))
      x_max = int(np.ceil(np.amax(pocket_coords[:, 0])))
      y_min = int(np.floor(np.amin(pocket_coords[:, 1])))
      y_max = int(np.ceil(np.amax(pocket_coords[:, 1])))
      z_min = int(np.floor(np.amin(pocket_coords[:, 2])))
      z_max = int(np.ceil(np.amax(pocket_coords[:, 2])))
      box = CoordinateBox(
          (x_min, x_max), (y_min, y_max), (z_min, z_max)
      )
      return box, pocket_coords
  
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 1 for calling a global function with example usage: extract_active_site(protein_file, ligand_file, cutoff) and returns: box,  pocket_coords