def METHOD_NAME(residue_contacts,
                                   pdb_hierarchy,
                                   out=sys.stdout):
  from mmtbx.refinement.print_statistics import make_header
  summary = extract_closest_contacting_residues(residue_contacts,
    pdb_hierarchy.atoms())
  make_header("Crystal contacts by residue", out=out)
  print("  %-16s %-16s %-16s %-16s" % ("residue", "closest contact",
    "symop", "distance (A)"), file=out)
  print("-"*72, file=out)
  for (residue_key, contact_key, sym_op, distance) in summary :
    (chain_id, resname, resid, altloc) = residue_key
    id_str = "%s%5s %3s %s" % (chain_id, resid, resname, altloc)
    if (contact_key is None):
      print("  %-16s %-16s %-16s %-4s" % (id_str, "*","*","*"), file=out)
    else :
      (chain_id, resname, resid, altloc) = contact_key
      id_str_2 = "%s%5s %3s %s" % (chain_id, resid, resname, altloc)
      print("  %-16s %-16s %-16s %-4.2f" % (id_str, id_str_2, sym_op,
        distance), file=out)