s:SPONGE.pre_build_net_cleanup
t:pre_build_net_cleanup_cmds{
  kill $q $H
  sel part 2 4 6 8 10 12
  kill sel
  sel -a
  sel -i $M $I $Br $Cl
  kill sel
  sel -a
  part 0 11
  sponge.fix_mu
}

s:SPONGE.post_build_net_cleanup
t:post_build_net_cleanup_cmds{
  delins acta
  ata.lock $M $X
  anis $M $X
  fix uiso 0.08 $*,M,X
  spy.sponge.refine_to_converge(10, 0.01, 10)
  free uiso $*,M,X
  anis
  hadd
  spy.sponge.refine_to_converge(20, 0.01, 5)
}

s:SPONGE.post_fit_ligand_cleanup
t:post_fit_ligand_cleanup_cmds{
  ata.lock $M $X
  anis $M $X
  delins acta
  fix uiso 0.08 $*,M,X
  refine 10
  kill where atom.uiso > 0.2
  spy.SPONGE.refine_to_converge(10, 0.01, 5)
  free uiso $*,M,X
  anis
  hadd
  spy.SPONGE.refine_to_converge(15, 0.01, 5)
}

s:SPONGE.pre_fit_ligand_cleanup
t:pre_fit_ligand_cleanup_cmds{
  kill $q $H
  sel part 2 4 6 8 10 12
  kill
  sel -a
  part 0 11
  sponge.fix_mu
}

s:SPONGE.finish_substitute_solution
t:SPONGE.finish_substitute_solution_cmds{
  kill $h
  sel -a
  afix 0
  hadd
  sel -a
  anis
}



# == FIT LIGAND ===========================================================================
s:SPONGE.fit_ligands
t:SPONGE.fit_ligands_gui{
<table width="100%%" cellpadding="0" cellspacing="0">
  <tr>
    <td width='10%%'>
      <b>Ligand</b>
    </td>
    <td width='25%%' align='centre'>
      $+
        html.Snippet(
        "gui/snippets/input-combo",
        "items=spy.gui.GetItemsFromPhilChoices(sponge.fit_ligands.ligand_source)",
        "name=LIGAND_SOURCE",
        "value=spy.GetParam(sponge.fit_ligands.ligand_source)",
        "onchange=spy.SetParam(sponge.fit_ligands.ligand_source,html.GetValue(~name~))",
        "onchangealways=True",
        "manage=True"
        )
      $-    
    </td>
    <td width='25%%' align='right'>
      Pre-fit clean-up
    </td>
    <td width='10%%' align='centre'>
      $+
        html.Snippet(
        "gui/snippets/input-checkbox",
        "checked=spy.GetParam(sponge.fit_ligands.pre_cleanup)",
        "onclick=spy.SetParam(sponge.fit_ligands.pre_cleanup,html.GetState(~name~))",
        "name=AC_FIT_LIGANDS_PRE_CLEANUP",
        "manage=True"
        )
      $-    
    </td>
    <td width='25%%' align='right'>
      Post-fit clean-up
    </td>
    <td width='10%%' align='centre'>
      $+
        html.Snippet(
        "gui/snippets/input-checkbox",
        "checked=spy.GetParam(sponge.fit_ligands.post_cleanup)",
        "onclick=spy.SetParam(sponge.fit_ligands.post_cleanup,html.GetState(~name~))",
        "name=AC_FIT_LIGANDS_POST_CLEANUP",
        "manage=True"
        )
      $-    
    </td>
  </tr>
</table>
}


# == BUILD NET ===========================================================================
s:SPONGE.build_net
t:SPONGE.build_net_gui{
<table width="100%%" cellpadding="0" cellspacing="0">
  <tr>
  <td width='10%%'>
      <b>Ligand</b>
    </td>
    <td width='25%%' align='centre'>
      $+
        html.Snippet(
        "gui/snippets/input-combo",
        "items=spy.gui.GetItemsFromPhilChoices(sponge.build_net.ligand_source)",
        "name=LIGAND_SOURCE",
        "value=spy.GetParam(sponge.build_net.ligand_source)",
        "onchange=spy.SetParam(sponge.build_net.ligand_source,html.GetValue(~name~))",
        "onchangealways=True",
        "manage=True"
        )
      $-    
    </td>
    <td width='25%%' align='right'>
      Pre-net clean-up
    </td>
    <td width='10%%' align='centre'>
      $+
        html.Snippet(
        "gui/snippets/input-checkbox",
        "checked=spy.GetParam(sponge.build_net.pre_cleanup)",
        "onclick=spy.SetParam(sponge.build_net.pre_cleanup,html.GetState(~name~))",
        "name=AC_BUILD_NET_PRE_CLEANUP",
        "manage=True"
        )
      $-    
    </td>
    <td width='25%%' align='right'>
      Post-net clean-up
    </td>
    <td width='10%%' align='centre'>
      $+
        html.Snippet(
        "gui/snippets/input-checkbox",
        "checked=spy.GetParam(sponge.build_net.post_cleanup)",
        "onclick=spy.SetParam(sponge.build_net.post_cleanup,html.GetState(~name~))",
        "name=AC_BUILD_NET_POST_CLEANUP",
        "manage=True"
        )
      $-    
    </td>
  </tr>
</table>
}


# == SOLVE WITH SUBSTITUTION ============================================================
s:SPONGE.solve_with_substitution
t:SPONGE.solve_with_substitution_gui{
<table width="100%%" cellpadding="0" cellspacing="0">
  <tr>
    <td width='17%%'>
      Tolerance (%%)
    </td>
    <td width='10%%' align='centre'>
      $+
        html.Snippet(
        "gui/snippets/input-combo",
        "items=1;2;5;10;20;30",
        "name=PROTO_TOLERANCE",
        "value=spy.GetParam(proto.tolerance)",
        "onchange=spy.SetParam(proto.tolerance,html.GetValue(~name~))",
        "manage=True"
        )
      $-    
    </td>
    <td width='8%%' align='right'>
      Class
    </td >
    <td width='13%%'>
      $+
        html.Snippet(
        "gui/snippets/input-combo",
        "items=ZnCl;ZnBr;ZnI;any;auto",
        "name=PROTO_CLASS",
        "value=auto",
        "onchange=spy.SetParam(proto.class,html.GetValue(~name~))",
        "onchangealways=True",
        "manage=True"
        )
      $-    
    </td>
    <td width='8%%' align='right'>
      SG
    </td >
    <td width='13%%'>
      $+
        html.Snippet(
        "gui/snippets/input-combo",
        "items=C2;C2/c;P21;P21/c;any;auto",
        "name=PROTO_SG",
        "value=auto",
        "onchange=spy.SetParam(proto.sg, html.GetValue(~name~))",
        "onchangealways=True",
        "manage=True"
        )
      $-    
    </td>
    <td width='10%%' align='right'>
      L.S.
    </td >
    <td width='10%%'>
      $+
        html.Snippet(
        "gui/snippets/input-combo",
        "items=0;1;2;5;10;20",
        "value=spy.GetParam(proto.AC_evaluate)",
        "onchange=spy.SetParam(proto.AC_evaluate,html.GetValue(~name~))",
        "name=PROTO_AC_EVALUATE",
        "manage=True"
        )
      $-    
    </td>
    <td width='10%%' align='right'>
      Finish
    </td >
    <td width='8%%'>
      $+
        html.Snippet(
        "gui/snippets/input-checkbox",
        "checked=spy.GetParam(proto.AC_finish)",
        "onclick=spy.SetParam(proto.AC_finish,html.GetState(~name~))",
        "name=PROTO_AC_FINISH",
        "manage=True"
        )
      $-    
    </td>
  </tr>
</table>
}
