code: def refine_hbonds_ldon(self, all_hbonds, salt_lneg, salt_pneg):
          
          i_set = {}
          for hbond in all_hbonds:
              i_set[hbond] = False
              for salt in salt_pneg:
                  protidx, ligidx = [at.idx for at in salt.negative.atoms], [at.idx for at in salt.positive.atoms]
                  if hbond.d.idx in ligidx and hbond.a.idx in protidx:
                      i_set[hbond] = True
              for salt in salt_lneg:
                  protidx, ligidx = [at.idx for at in salt.positive.atoms], [at.idx for at in salt.negative.atoms]
                  if hbond.d.idx in ligidx and hbond.a.idx in protidx:
                      i_set[hbond] = True
  
          # Allow only one hydrogen bond per donor, select interaction with larger donor angle
          second_set = {}
          hbls = [k for k in i_set.keys() if not i_set[k]]
          for hbl in hbls:
              if hbl.d.idx not in second_set:
                  second_set[hbl.d.idx] = (hbl.angle, hbl)
              else:
                  if second_set[hbl.d.idx][0] < hbl.angle:
                      second_set[hbl.d.idx] = (hbl.angle, hbl)
          return [hb[1] for hb in second_set.values()]
docs: Refine selection of hydrogen bonds. Do not allow groups which already form salt bridges to form H-Bonds.