Hi Lukas, according to the source code:https://github.com/rdkit/rdkit/blob/master/External/CoordGen/CoordGen.h double coordgenScaling = 50.0;
the default scaling factor, actually more like a "shrinking factor" seems to be 50, producing bond lengths of 1A. For 1.5A bond lengths, you would need to enter a scaling factor of 50.0/1.5, maybe this should be changed internally to make it more intuitive ? The code snippet below may save you the trouble going into pymol for measurements. When getting the 50A bond lengths, depiction showed all single bonds and did not take bond orders into account, wonder whether that is intended. Best wishes,Maria from rdkit import Chemfrom rdkit.Chem import rdCoordGenfrom rdkit.Chem import rdmolopsmol = Chem.MolFromSmiles('Cc1ccccc1', sanitize=True)mol1 = Chem.MolFromSmiles('Cc1ccccc1', sanitize=True) p = rdCoordGen.CoordGenParams()p.coordgenScaling = 50.0/1.5rdCoordGen.AddCoords(mol1,p) print(Chem.MolToMolBlock(mol))print(Chem.MolToMolBlock(mol1))print(rdmolops.Get3DDistanceMatrix(mol1)) Chem.MolToMolFile(mol, 'default.sdf') # bond length 1Chem.MolToMolFile(mol1, 'scale.mol') # bond length 33.3from rdkit.Chem import rdDepictorfrom rdkit.Chem.Draw import IPythonConsole On Tuesday, 9 October 2018, 14:08:05 BST, Lukas Pravda <lpra...@ebi.ac.uk> wrote: Hi all, I’m playing with the Coordgen library inside rdkit and I have a couple of questions I could not figure out by myself. Hopefully someone more experienced will know. - [comment] The way one can pass a scaling factor to the bond size is very unintuitive. If I don’t provide any parameter a single bond length is 1.0. If I pass 1.5 as a scaling factor, I’d expect to get single bond of a length 1.5. But instead I get 33.3. (measured in pymol) Snippet: from rdkit import Chem from rdkit.Chem import rdCoordGen mol = Chem.MolFromSmiles('Cc1ccccc1', sanitize=True) mol1 = Chem.MolFromSmiles('Cc1ccccc1', sanitize=True) p = rdCoordGen.CoordGenParams() p.coordgenScaling = 1.5 rdCoordGen.AddCoords(mol) rdCoordGen.AddCoords(mol1, p) Chem.MolToMolFile(mol, 'default.sdf') # bond length 1 Chem.MolToMolFile(mol1, '1.5_scale.sdf') # bond length 33.3 Is that intended? - Is there any way to modify templates, which can be passed as the ‘templateFileDir’ parameter to match general groups and bonds as described here: http://rdkit.blogspot.com/2016/07/tuning-substructure-queries-ii.html? - By default, rdCoordGen module writes to stderr by putting ‘TEMPLATES: /path/to/templates’ line for each depiction generated. Is there any simple way of muting that piece of information without manually hijacking the stderr (rdkit.rdBase.DisableLog('rdApp.*') does not work)? Thanks for possible suggestions. Cheers, Lukas _______________________________________________ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss | | Virus-free. www.avast.com |
_______________________________________________ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss