The code currently relies on the g_k values in the input xml files. These are assumed to be at the right value to produce the desired target weights.
The user can override the g_k values (current approach) using driver.import_gk_values, but it would be more foolproof to standardize the input files to be for equal πs, and have the code adjust to target πs instead of manually adjusting g_k.
We could also automate that by for
- Amino acids pick the pi based on pKa
- For ligands record epik target weights in ligand xml per pH in each state block.
I would propose a format that adds a line such as
<Weight pH="7.4" log_pi="-1.3"/> to each state in the protons xml file. That way we could also in the future encode multiple pHs in one xml file.