Re: [Rdkit-discuss] bond length in 2D structure drawing
Open-Source Cheminformatics and Machine Learning
Brought to you by:
glandrum
From: Axel P. <axe...@gm...> - 2016-09-19 16:48:20
|
Hi Greg, thanks a lot. That is exactly what I was looking for! RDKit rules! Kind regards, Axel On 19.09.2016 09:35, Greg Landrum wrote: > Hi Axel, > > It's probably most straightforward to use the function > AllChem.TransformMol() to scale the coordinates. > Here's an example of applying the function to scale all the > coordinates by a factor of 2: > > In [1]: from rdkit import Chem > > In [2]: from rdkit.Chem import rdMolTransforms > > In [5]: from rdkit.Chem import AllChem > > In [6]: import numpy > > In [7]: tm = numpy.zeros((4,4),numpy.double) > > In [8]: for i in range(3): tm[i,i] = 2. > > In [9]: tm[3,3] = 1. > > In [10]: m = Chem.MolFromSmiles('C1CCC1') > > In [11]: AllChem.Compute2DCoords(m) > Out[11]: 0 > > In [12]: print(Chem.MolToMolBlock(m)) > > RDKit 2D > > 4 4 0 0 0 0 0 0 0 0999 V2000 > 1.0607 -0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 > -0.0000 -1.0607 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 > -1.0607 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 > 0.0000 1.0607 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 > 1 2 1 0 > 2 3 1 0 > 3 4 1 0 > 4 1 1 0 > M END > > > In [13]: AllChem.TransformMol(m,tm) > > In [14]: print(Chem.MolToMolBlock(m)) > > RDKit 2D > > 4 4 0 0 0 0 0 0 0 0999 V2000 > 2.1213 -0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 > -0.0000 -2.1213 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 > -2.1213 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 > 0.0000 2.1213 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 > 1 2 1 0 > 2 3 1 0 > 3 4 1 0 > 4 1 1 0 > M END > > > In your case, assuming that the bond length in the drawings is 1.0A, > you would use a scale factor of 1.5 (that's on line [8] above). > > Best, > -greg > > > On Mon, Sep 19, 2016 at 8:41 AM, Axel Pahl <axe...@gm... > <mailto:axe...@gm...>> wrote: > > Dear fellow RDKitters, > > I have an SD file with 2D molecules generated by another > Cheminformatics > toolkit (yes, there are others! ;-) ). > When I depict them with RDKit (with Draw.MolToImage()) they look very > condensed with too short bonds and just appear not right. > When I re-generate the coordinates by using Compute2DCoord(), the > structure drawings do look great, but RDkit re-calculates all > coordinates and the orientation of the whole molecule is > completely changed. > Can I avoid this, keep the original orientation of the molecules and > just do something like "apply drawing settings" or "use standard bond > lengths" to a molecule? > > Many thanks in advance. > > Kind regards, > Axel > > > ------------------------------------------------------------------------------ > _______________________________________________ > Rdkit-discuss mailing list > Rdk...@li... > <mailto:Rdk...@li...> > https://lists.sourceforge.net/lists/listinfo/rdkit-discuss > <https://lists.sourceforge.net/lists/listinfo/rdkit-discuss> > > |