code: def hydrophobic_interactions(atom_set_a, atom_set_b):
      
      data = namedtuple('hydroph_interaction', 'bsatom bsatom_orig_idx ligatom ligatom_orig_idx '
                                               'distance restype resnr reschain restype_l, resnr_l, reschain_l')
      pairings = []
      for a, b in itertools.product(atom_set_a, atom_set_b):
          if a.orig_idx == b.orig_idx:
              continue
          e = euclidean3d(a.atom.coords, b.atom.coords)
          if not config.MIN_DIST < e < config.HYDROPH_DIST_MAX:
              continue
          restype, resnr, reschain = whichrestype(a.atom), whichresnumber(a.atom), whichchain(a.atom)
          restype_l, resnr_l, reschain_l = whichrestype(b.orig_atom), whichresnumber(b.orig_atom), whichchain(b.orig_atom)
          contact = data(bsatom=a.atom, bsatom_orig_idx=a.orig_idx, ligatom=b.atom, ligatom_orig_idx=b.orig_idx,
                         distance=e, restype=restype, resnr=resnr,
                         reschain=reschain, restype_l=restype_l,
                         resnr_l=resnr_l, reschain_l=reschain_l)
          pairings.append(contact)
      return filter_contacts(pairings)
docs: Detection of hydrophobic pliprofiler between atom_set_a (binding site) and atom_set_b (ligand).
      Definition: All pairs of qualified carbon atoms within a distance of HYDROPH_DIST_MAX