-
Notifications
You must be signed in to change notification settings - Fork 164
Open
Description
When ParmEd tries to apply a patch to a residue, it checks to see if the net charge of the patched residue is integral:
ParmEd/parmed/modeller/residue.py
Lines 505 to 509 in f1b07c9
| # Check that the net charge is integral. | |
| net_charge = residue.net_charge | |
| is_integral = (round(net_charge, precision) - round(net_charge)) == 0.0 | |
| if not is_integral: | |
| raise IncompatiblePatchError(f'Patch is not compatible with residue due to non-integral charge (charge was {net_charge}).') |
This is incompatible with the CHARMM36 nucleic acid force field, as I found when trying to convert it to OpenMM FFXML format. Specifically, applying terminal patches to the residues at the ends of a chain of nucleic acids can yield patched residues with non-integral net charges, even though the final chain will have an integral net charge.
I hacked around this for our conversion by removing the check, but it's not clear if that's a good idea in general, so maybe an option to disable it if desired would be better?
Metadata
Metadata
Assignees
Labels
No labels