I am using the SMILES string OC1=CC(O)=C2C[C@@H](OC(=O)C3=CC(O)=C(O)C(O)=C3)[C@H](OC2=C1)C1=CC(O)=C(O)C(O )=C1
with the following 3.0 OBNET code: Dim smiles As String = "OC1=CC(O)=C2C[C@@H](OC(=O)C3=CC(O)=C(O)C(O)=C3)[C@H](OC2=C1)C1=CC(O)=C(O)C( O)=C1" Dim OBConv As New OBConversion OBConv.SetInAndOutFormats("smi", "sdf") Dim Mol, Mol1 As New OBMol Dim builder As New OBBuilder OBConv.ReadString(Mol, smiles) builder.Build(Mol) Mol.AddHydrogens(False, False). Mol.SetDimension(3) s = OBConv.WriteString(Mol) and saving to SDF. OpenBabel04182011513D 35 38 0 0 1 0 0 0 0 0999 V2000 0.9315 -0.0676 -0.0272 O 0 0 0 0 0 0 0 0 0 0 0 0 2.3515 -0.0676 -0.0272 C 0 0 0 0 0 0 0 0 0 0 0 0 3.0541 -1.2734 0.0215 C 0 0 0 0 0 0 0 0 0 0 0 0 4.4472 -1.2550 0.0293 C 0 0 0 0 0 0 0 0 0 0 0 0 5.1682 -2.4768 0.0898 O 0 0 0 0 0 0 0 0 0 0 0 0 5.1338 -0.0525 -0.0216 C 0 0 0 0 0 0 0 0 0 0 0 0 6.6397 -0.1061 -0.0083 C 0 0 0 0 0 0 0 0 0 0 0 0 7.2289 1.2176 -0.4902 C 0 0 1 0 0 0 0 0 0 0 0 0 8.2866 1.2227 -0.3282 H 0 0 0 0 0 0 0 0 0 0 0 0 6.9787 1.3868 -1.8777 O 0 0 0 0 0 0 0 0 0 0 0 0 7.3818 2.5887 -2.5176 C 0 0 0 0 0 0 0 0 0 0 0 0 7.1878 2.7408 -3.7644 O 0 0 0 0 0 0 0 0 0 0 0 0 8.0451 3.6934 -1.7113 C 0 0 0 0 0 0 0 0 0 0 0 0 8.0111 4.9998 -2.1563 C 0 0 0 0 0 0 0 0 0 0 0 0 8.5868 5.9671 -1.4595 C 0 0 0 0 0 0 0 0 0 0 0 0 8.5377 7.2984 -1.9510 O 0 0 0 0 0 0 0 0 0 0 0 0 9.2065 5.7235 -0.3169 C 0 0 0 0 0 0 0 0 0 0 0 0 9.8040 6.7943 0.3994 O 0 0 0 0 0 0 0 0 0 0 0 0 9.2794 4.4397 0.1881 C 0 0 0 0 0 0 0 0 0 0 0 0 9.9468 4.1867 1.4157 O 0 0 0 0 0 0 0 0 0 0 0 0 8.6921 3.4009 -0.5194 C 0 0 0 0 0 0 0 0 0 0 0 0 6.5778 2.3548 0.3051 C 0 0 2 0 0 0 0 0 0 0 0 0 6.6304 2.1479 1.3536 H 0 0 0 0 0 0 0 0 0 0 0 0 5.1197 2.4752 -0.1344 O 0 0 0 0 0 0 0 0 0 0 0 0 4.4350 1.1348 -0.0735 C 0 0 0 0 0 0 0 0 0 0 0 0 3.0440 1.1210 -0.0753 C 0 0 0 0 0 0 0 0 0 0 0 0 7.3073 3.6590 0.0276 C 0 0 0 0 0 0 0 0 0 0 0 0 6.6537 4.8532 0.2570 C 0 0 0 0 0 0 0 0 0 0 0 0 7.2513 6.0091 0.0141 C 0 0 0 0 0 0 0 0 0 0 0 0 6.5462 7.2178 0.2556 O 0 0 0 0 0 0 0 0 0 0 0 0 8.4892 6.0656 -0.4480 C 0 0 0 0 0 0 0 0 0 0 0 0 9.0917 7.3289 -0.6875 O 0 0 0 0 0 0 0 0 0 0 0 0 9.2029 4.9100 -0.7004 C 0 0 0 0 0 0 0 0 0 0 0 0 10.5315 4.9794 -1.1968 O 0 0 0 0 0 0 0 0 0 0 0 0 8.6050 3.6810 -0.4629 C 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 0 0 0 0 2 3 2 0 0 0 0 2 26 1 0 0 0 0 3 4 1 0 0 0 0 4 5 1 0 0 0 0 4 6 2 0 0 0 0 6 7 1 0 0 0 0 6 25 1 0 0 0 0 7 8 1 0 0 0 0 8 22 1 1 0 0 0 8 10 1 0 0 0 0 8 9 1 0 0 0 0 10 11 1 0 0 0 0 11 12 2 0 0 0 0 11 13 1 0 0 0 0 13 14 2 0 0 0 0 13 21 1 0 0 0 0 14 15 1 0 0 0 0 15 16 1 0 0 0 0 15 17 2 0 0 0 0 17 18 1 0 0 0 0 17 19 1 0 0 0 0 19 20 1 0 0 0 0 19 21 2 0 0 0 0 22 23 1 1 0 0 0 22 24 1 0 0 0 0 22 27 1 0 0 0 0 24 25 1 0 0 0 0 25 26 2 0 0 0 0 27 28 2 0 0 0 0 27 35 1 0 0 0 0 28 29 1 0 0 0 0 29 30 1 0 0 0 0 29 31 2 0 0 0 0 31 32 1 0 0 0 0 31 33 1 0 0 0 0 33 34 1 0 0 0 0 33 35 2 0 0 0 0 M END $$$$ However, if you view the 3D molecule in Pymol, you can see one of the hydroxyl units protruding through the middle of one of the gallate rings. I also commented out adding hydrogens, and it didn't matter - the mangling in 3D still occurred. When I convert this SMILES string to SDF using the OB 3.0 GUI, with "3D Coordinates" selected, this mangling does not occur. Is there anything you can see in the code that would cause this? You should be able to reproduce this using OBNET to confirm what is going on.
_______________________________________________ OpenBabel-discuss mailing list OpenBabel-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbabel-discuss