Acellera / moleculekit

MoleculeKit: Your favorite molecule manipulation kit
Other
203 stars 37 forks source link

Bond in mmCIF block _struct_conn is ignored #141

Open dargen3 opened 1 week ago

dargen3 commented 1 week ago

Hello,

i would like to report a potential bug. The structure used is 2pws. Although the structure in the _struct_conn block has defined a disulfide bond between the cysteines:

disulf2 disulf ? ? AND CYS 28 SG ? ? ? 1_555 AND CYS 44 SG ? ? AND CYS 29 AND CYS 45 1_555 ? ? ? ? ? ? ? 2.550 ? ?

however, the systemPrepare function adds hydrogens to their sulfur atoms.

image

Code to repeat the error:

from moleculekit import molecule as molit
from moleculekit.tools.preparation import systemPrepare

molecule = molit.Molecule("2pws.cif")
prepared_molecule = systemPrepare(molecule, pH=7, ignore_ns_errors=True)
prepared_molecule.write(f"protonated_protein.cif")
stefdoerr commented 1 week ago

systemPrepare ignores bonds in the input structure. This includes disulfide bonds. But it's not an issue for building. If you are using HTMD to build the AMBER system it will remove the hydrogens and automatically bond the cysteines together.

dargen3 commented 1 week ago

Ok, thank you for quick reply!