Dear everyone I am trying to do an optimization while constraining the distance between two atoms on two separate non-connected fragments, using the open babel python bindings with MMFF94 and conjugate gradients, with and without a preliminary random rotor search. If this distance in the input structure is close (~0.1Å) to the constraint requirement, things turn out fine, but things go badly wrong when it's not close; the molecule basically blows up, and other curiosities occur, such as the CG optimization being both instantaneous and independent of changing the number of steps from 5000 to 12000.
I have attached the python script and two initial structures, one that works and one that fails. Any help or testimonies of similar experiences would be greatly appreciated, as I am completely out of ideas at this point. Best regards, Kasper Thofte University of Copenhagen
from openbabel import *
conv=OBConversion()
conv.SetInAndOutFormats('xyz','xyz')
mol=OBMol()
conv.ReadFile(mol,'AmideR.xyz')
cnstr=OBFFConstraints()
cnstr.AddDistanceConstraint(1,10,3.4)
FF=OBForceField.FindForceField("MMFF94")
FF.Setup(mol,cnstr)
#FF.SetConstraints(cnstr)
#FF.RandomRotorSearch(100,5000)
FF.ConjugateGradients(10000)
FF.GetCoordinates(mol)
for atom in OBMolAtomIter(mol):
print atom.GetAtomicNum(), atom.GetX(), atom.GetY(), atom.GetZ()
conv.WriteFile(mol,'AmideRopt.xyz')
AmideRfail.xyz
Description: Protein Databank data
AmideRworks.xyz
Description: Protein Databank data
------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________ OpenBabel-discuss mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openbabel-discuss
