Dear Users,

I would like to read a SDF file using IteratingSDFReader. The SDF file
is generated by jmol (see below).

U:/research/project_opas/Code/MVC_OPAS/build/check.sdf
__Jmol-14_11161922023D 1   1.00000     0.00000     0
Jmol version 14.9.1  2017-02-18 13:47 EXTRACT: ({0:43})
 22 22  0  0  0  0  1 V2000
 -10.26842  21.30587  -2.02430 N   0  0  0  0  0  0
 -11.14109  20.23272  -2.39821 C   0  0  0  0  0  0
 -10.84018  18.85777  -1.92734 C   0  0  0  0  0  0
 -11.60011  17.94142  -2.23013 O   0  0  0  0  0  0
 -12.38167  20.49262  -3.21797 C   0  0  0  0  0  0
 -12.66761  21.93940  -3.49472 C   0  0  0  0  0  0
 -13.73838  22.56509  -3.02287 C   0  0  0  0  0  0
 -11.88128  22.81522  -4.30956 N   0  0  0  0  0  0
 -12.65747  24.01784  -4.21934 C   0  0  0  0  0  0
 -13.70560  23.88527  -3.49217 N   0  0  0  0  0  0
  -9.64144  18.61510  -1.15438 N   0  0  0  0  0  0
  -6.47461  15.46647   0.53840 C   0  0  0  0  0  0
  -5.16207  15.52031  -0.21484 C   0  0  0  0  0  0
  -4.06313  15.41673   0.72449 N   0  0  0  0  0  0
  -9.80464  17.44463  -0.29800 C   0  0  0  0  0  0
  -8.64600  16.48725  -0.41087 C   0  0  0  0  0  0
  -8.90795  15.33022  -1.01563 C   0  0  0  0  0  0
  -7.33993  16.68411   0.28862 C   0  0  0  0  0  0
  -7.04245  17.86578   0.93854 O   0  0  0  0  0  0
  -6.07225  18.51085   0.19546 C   0  0  0  0  0  0
  -6.39116  19.21376  -0.74531 O   0  0  0  0  0  0
  -4.69541  18.41611   0.56612 N   0  0  0  0  0  0
  2  1  1  0  0  0
  2  3  1  0  0  0
  3 11  1  0  0  0
  4  3  2  0  0  0
  5  2  1  0  0  0
  6  5  1  0  0  0
  6  7  2  0  0  0
  8  9  1  0  0  0
  8  6  1  0  0  0
  9 10  2  0  0  0
 10  7  1  0  0  0
 13 12  1  0  0  0
 13 14  1  0  0  0
 15 16  1  0  0  0
 16 17  2  0  0  0
 16 18  1  0  0  0
 18 19  1  0  0  0
 19 20  1  0  0  0
 20 21  2  0  0  0
 20 22  1  0  0  0
 11 15  1  0  0  0
 12 18  1  0  0  0
M  END
$$$$
U:/research/project_opas/Code/MVC_OPAS/build/check.sdf
__Jmol-14_11161922023D 1   1.00000     0.00000     0
Jmol version 14.9.1  2017-02-18 13:47 EXTRACT: ({0:43})
 22 22  0  0  0  0  1 V2000
 -10.34994  21.23775  -2.14993 N   0  0  0  0  0  0
 -11.34250  20.30777  -2.59501 C   0  0  0  0  0  0
 -11.13198  18.85018  -2.50356 C   0  0  0  0  0  0
 -12.03183  18.12532  -2.90109 O   0  0  0  0  0  0
 -12.62336  20.72709  -3.26233 C   0  0  0  0  0  0
 -12.81469  22.18660  -3.49445 C   0  0  0  0  0  0
 -13.85760  22.84610  -3.01911 C   0  0  0  0  0  0
 -11.99766  23.01098  -4.32672 N   0  0  0  0  0  0
 -12.72729  24.24473  -4.23861 C   0  0  0  0  0  0
 -13.77078  24.16132  -3.50354 N   0  0  0  0  0  0
  -9.86955  18.26965  -2.15583 N   0  0  0  0  0  0
  -7.30122  16.52601   0.75455 C   0  0  0  0  0  0
  -5.96259  17.25681   0.80966 C   0  0  0  0  0  0
  -4.87734  16.30636   0.66950 N   0  0  0  0  0  0
 -12.83689  15.52634  -0.85527 C   0  0  0  0  0  0
 -11.62686  16.04439  -1.46833 N   0  0  0  0  0  0
 -11.00919  14.97258  -2.22952 C   0  0  0  0  0  0
 -10.70605  16.47306  -0.42756 C   0  0  0  0  0  0
  -9.83868  17.64207  -0.85262 C   0  0  0  0  0  0
  -8.72671  18.07421   0.02162 C   0  0  0  0  0  0
  -8.09045  19.06942  -0.28779 O   0  0  0  0  0  0
  -8.35385  17.36976   1.15010 O   0  0  0  0  0  0
  2  1  1  0  0  0
  2  3  1  0  0  0
  3 11  1  0  0  0
  4  3  2  0  0  0
  5  2  1  0  0  0
  6  5  1  0  0  0
  6  7  2  0  0  0
  8  9  1  0  0  0
  8  6  1  0  0  0
  9 10  2  0  0  0
 10  7  1  0  0  0
 13 12  1  0  0  0
 13 14  1  0  0  0
 15 16  1  0  0  0
 16 17  1  0  0  0
 16 18  1  0  0  0
 18 19  1  0  0  0
 19 20  1  0  0  0
 20 21  2  0  0  0
 20 22  1  0  0  0
 11 19  1  0  0  0
 12 22  1  0  0  0
M  END
$$$$

I am using CDK 1.5.8 (I have to stick to this version for
compatibility issues). I am trying to read the SDF file using the
below snippet

public static List<IAtomContainer> readFragments(String fileName)
throws IOException, CDKException {

        List<IAtomContainer> frags = new ArrayList<>();

        File sdfFile = new File(fileName);
                
       IteratingSDFReader sdfReader = new IteratingSDFReader(new
FileInputStream(sdfFile),DefaultChemObjectBuilder.getInstance());

                while (sdfReader.hasNext()) {

                    IAtomContainer molecule = (IAtomContainer)sdfReader.next();

                    frags.add(molecule);

                }
                sdfReader.close();

        return frags;
    }

The function works perfectly fine for sdf files genrated by CDK and
Openbabel and returns null for Jmol generated sdf file. I am pretty
sure it is the problem with the sdf file generated by Jmol. But I am
able to open the sdf file in the molecule viewer (Jmol, Discovery
Studio) without any errors.  I tried all variations by manually
editing the file like the headers and the end of the file, but to no
avail. I tried to read it using MDLV2000 reader but no improvements.
Is there any other reader I can use or which part of the sdf file (is
problematic) I have to edit, so that I can read it using
IteratingSDFReader? Any insights in the right direction is highly
appreciated. Thank you.

Regards
Vinothkumar Mohanakrishnan
_______________________________________________
Cdk-user mailing list
Cdk-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cdk-user

Reply via email to