code: def load_complex(
      molecular_complex: OneOrMany[str],
      add_hydrogens: bool = True,
      calc_charges: bool = True,
      sanitize: bool = True,
  ) -> List[Tuple[np.ndarray, RDKitMol]]:
      """Loads a molecular complex.
  
      Given some representation of a molecular complex, returns a list of
      tuples, where each tuple contains (xyz coords, rdkit object) for
      that constituent molecule in the complex.
  
      For now, assumes that molecular_complex is a tuple of filenames.
  
      Parameters
      ----------
      molecular_complex: list or str
          If list, each entry should be a filename for a constituent
          molecule in complex. If str, should be the filename of a file that
          holds the full complex.
      add_hydrogens: bool, optional
          If true, add hydrogens via pdbfixer
      calc_charges: bool, optional
          If true, add charges via rdkit
      sanitize: bool, optional
          If true, sanitize molecules via rdkit
  
      Returns
      -------
      List of tuples (xyz, mol)
  
      Note
      ----
      This function requires RDKit to be installed.
      """
      if isinstance(molecular_complex, str):
          molecular_complex = [molecular_complex]
      fragments: List = []
      for mol in molecular_complex:
          loaded = load_molecule(
              mol,
              add_hydrogens=add_hydrogens,
              calc_charges=calc_charges,
              sanitize=sanitize,
          )
          if isinstance(loaded, list):
              fragments += loaded
          else:
              fragments.append(loaded)
      return fragments
  
imports: import os
  import logging
  import itertools
  import numpy
  from io import StringIO
  from deepchem.utils.pdbqt_utils import pdbqt_to_pdb
  from deepchem.utils.pdbqt_utils import convert_mol_to_pdbqt
  from deepchem.utils.pdbqt_utils import convert_protein_to_pdbqt
  from deepchem.utils.geometry_utils import compute_pairwise_distances
  from deepchem.utils.geometry_utils import compute_centroid
  from deepchem.utils.fragment_utils import MolecularFragment
  from deepchem.utils.fragment_utils import MoleculeLoadException
  from typing import Any, List, Sequence, Tuple, Set, Optional, Dict, Union
  from deepchem.utils.typing import OneOrMany, RDKitMol
label_desc: Use image node_id 5 for calling a global function with example usage: load_complex(molecular_complex, add_hydrogens, calc_charges, sanitize) and returns: fragments