> Essentially I'm taking the result of a Gaussian optimization (for a radical); > constructing an SDF file with OpenBabel (via cclib), and then trying to read > the result in RDKit. > I have the SMILES string of the radical, but the connectivity is lost in the > gaussian output file. So the SDF that gets created by OpenBabel has to assume > bond orders based on distances that it sometimes gets wrong.
As someone who uses similar workflows, my suggestion is to save the original SMILES or SDF file, and merely update the coordinates. That is, if you use OB or RDKit to generate an initial 3D structure, save a SDF with the bond valence information (and in this case, presumably the M RAD record). Then you read the Gaussian output with Open Babel or cclib. Since the atom order should be the same from Gaussian as your original SDF, you merely have to copy over the coordinates after reading the Gaussian file. You can, in principal, also save the SMILES string as the "title" line in a Gaussian or other quantum chemistry program if you don't want to keep duplicate files (i.e., when reading the output with Pybel you can use mol.title to get the SMILES string back). Suffice to say the main thing is to keep the original bond/valence information, don't throw it away. ;-) Cheers, -Geoff --- Prof. Geoffrey Hutchison Department of Chemistry University of Pittsburgh tel: (412) 648-0492 email: geo...@pitt.edu twitter: @ghutchis web: https://hutchison.chem.pitt.edu/ _______________________________________________ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss