When specifying espextraconflist, the current ReadCoordinates function reads len(espextraconflist) replicates of the structure=foo.sdf specified in the poltype.ini file instead of using the extra conformer coordinates.
A suggested fix, (in STEP 1):
def ReadCoordinates(self,filename):
"""
Intent: Read coordinates from .mol file generated by GenerateExtendedConformer, then save in dictionary to later be used by QM geometry optimization
Input: .mol filename
Output: Dictionary of atomic index to coordinates
Referenced By: GenerateExtendedConformer
Description:
1. Read in .mol file to openbabel mol object
2. Iterate over mol object atoms
3. Save atom index and coordinates in dictionary
"""
# STEP 1
indextocoordinates={}
obConversion = openbabel.OBConversion()
mol = openbabel.OBMol()
inFormat = obConversion.FormatFromExt(filename) # self.molstructfname)
obConversion.SetInFormat(inFormat)
obConversion.ReadFile(mol, filename) # self.molstructfname)
# STEP 2
iteratombab = openbabel.OBMolAtomIter(mol)
for atm in iteratombab:
atmindex=atm.GetIdx()
coords=[atm.GetX(),atm.GetY(),atm.GetZ()]
# STEP 3
indextocoordinates[atmindex-1]=coords
return indextocoordinates
With the fix in place, here's an example output from the fitting logfile for a species with 23 conformers, which now correctly uses the extra conformers.
When specifying espextraconflist, the current ReadCoordinates function reads
len(espextraconflist)
replicates of thestructure=foo.sdf
specified in the poltype.ini file instead of using the extra conformer coordinates.A suggested fix, (in STEP 1):
With the fix in place, here's an example output from the fitting logfile for a species with 23 conformers, which now correctly uses the extra conformers.