Hi Michal, Which version of the RDKit are you using? This should already be working. Here's an example demonstrating that:
In [16]: m = Chem.AddHs(Chem.MolFromSmiles('c1ccccc1.N')) In [17]: AllChem.EmbedMolecule(m) Out[17]: 0 In [18]: fs = Chem.GetMolFrags(m,asMols=True) In [19]: print(Chem.MolToMolBlock(fs[0])) RDKit 3D 12 12 0 0 0 0 0 0 0 0999 V2000 0.7943 -1.1490 0.0150 C 0 0 0 0 0 0 0 0 0 0 0 0 1.3607 0.1298 -0.0022 C 0 0 0 0 0 0 0 0 0 0 0 0 0.5898 1.2681 -0.0170 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.7866 1.1450 -0.0149 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.3413 -0.1124 0.0019 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.5806 -1.2656 0.0170 C 0 0 0 0 0 0 0 0 0 0 0 0 1.4026 -2.0428 0.0267 H 0 0 0 0 0 0 0 0 0 0 0 0 2.4183 0.2113 -0.0036 H 0 0 0 0 0 0 0 0 0 0 0 0 1.0075 2.2686 -0.0304 H 0 0 0 0 0 0 0 0 0 0 0 0 -1.4182 2.0293 -0.0265 H 0 0 0 0 0 0 0 0 0 0 0 0 -2.4222 -0.2172 0.0037 H 0 0 0 0 0 0 0 0 0 0 0 0 -1.0241 -2.2652 0.0304 H 0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 0 2 3 1 0 3 4 2 0 4 5 1 0 5 6 2 0 6 1 1 0 1 7 1 0 2 8 1 0 3 9 1 0 4 10 1 0 5 11 1 0 6 12 1 0 M END In [20]: print(Chem.MolToMolBlock(fs[1])) RDKit 3D 4 3 0 0 0 0 0 0 0 0999 V2000 -0.0066 -0.0099 0.2620 N 0 0 0 0 0 0 0 0 0 0 0 0 -0.4136 0.8845 -0.0859 H 0 0 0 0 0 0 0 0 0 0 0 0 -0.5574 -0.8197 -0.0901 H 0 0 0 0 0 0 0 0 0 0 0 0 0.9775 -0.0549 -0.0860 H 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 0 1 3 1 0 1 4 1 0 M END In [21]: print(Chem.MolToMolBlock(m)) RDKit 3D 16 15 0 0 0 0 0 0 0 0999 V2000 0.7943 -1.1490 0.0150 C 0 0 0 0 0 0 0 0 0 0 0 0 1.3607 0.1298 -0.0022 C 0 0 0 0 0 0 0 0 0 0 0 0 0.5898 1.2681 -0.0170 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.7866 1.1450 -0.0149 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.3413 -0.1124 0.0019 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.5806 -1.2656 0.0170 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.0066 -0.0099 0.2620 N 0 0 0 0 0 0 0 0 0 0 0 0 1.4026 -2.0428 0.0267 H 0 0 0 0 0 0 0 0 0 0 0 0 2.4183 0.2113 -0.0036 H 0 0 0 0 0 0 0 0 0 0 0 0 1.0075 2.2686 -0.0304 H 0 0 0 0 0 0 0 0 0 0 0 0 -1.4182 2.0293 -0.0265 H 0 0 0 0 0 0 0 0 0 0 0 0 -2.4222 -0.2172 0.0037 H 0 0 0 0 0 0 0 0 0 0 0 0 -1.0241 -2.2652 0.0304 H 0 0 0 0 0 0 0 0 0 0 0 0 -0.4136 0.8845 -0.0859 H 0 0 0 0 0 0 0 0 0 0 0 0 -0.5574 -0.8197 -0.0901 H 0 0 0 0 0 0 0 0 0 0 0 0 0.9775 -0.0549 -0.0860 H 0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 0 2 3 1 0 3 4 2 0 4 5 1 0 5 6 2 0 6 1 1 0 1 8 1 0 2 9 1 0 3 10 1 0 4 11 1 0 5 12 1 0 6 13 1 0 7 14 1 0 7 15 1 0 7 16 1 0 M END Best, -greg On Mon, Feb 25, 2019 at 5:54 AM Michal Krompiec <michal.kromp...@gmail.com> wrote: > Hello, > Let mol be a molecule with a conformer with 3D coordinates, consisting of > 2 fragments. Chem.GetMolFrags(mol, asMols=true) returns these fragments as > Molecule objects, but the 3D coordinates are lost. Is there any way to > preserve them? > Best, > Michal > _______________________________________________ > Rdkit-discuss mailing list > Rdkit-discuss@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/rdkit-discuss >
_______________________________________________ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss