Hi!

I am experiencing a problem trying to kekulise a set of molecules with
aromatic rings and atoms with formal charge defined.

I use CDK 1.5.5 to read and process a set molecules (SDF/Mol). I would like
to kekulise all the aromatic rings in order to transform those bonds which
are specified (mis)using bond order = 4 to an alternate set of bonds with
order 1 and 2. In order to do this I use the tool 'FixBondOrdersTool'.

I use the same piece of code specified in
http://blueobelisk.shapado.com/questions/detect-aromatic-rings-using-bond-order-4-in-a-sdf-file-with-cdk#answer52299d9597cfef16df00952f

        String input = "C:\\Users\\Oscar\\Desktop\\problem.sdf";

        String output = "C:\\Users\\Oscar\\Desktop\\problem2.sdf";

        IChemObjectBuilder builder = SilentChemObjectBuilder.getInstance();

        IteratingSDFReader sdfr = new IteratingSDFReader(new
FileReader(input),
                builder);

        SDFWriter sdfw = new SDFWriter(new FileWriter(output));

        FixBondOrdersTool fbot = new FixBondOrdersTool();

        while (sdfr.hasNext()) {
            IAtomContainer container = sdfr.next();

            AtomContainerManipulator
                    .percieveAtomTypesAndConfigureAtoms(container);

            container = fbot.kekuliseAromaticRings(container);
            sdfw.write(container);
        }

        sdfr.close();

        sdfw.close();


It works fine in most cases. But I have found that when one of the atoms of
the ring has a formal charge specified in the input SDF/Mol, the
transformation is not performed correctly. Example:

Input molecule:

  7  7  0  0  0  0            999 V2000
   -0.2947    3.3589    0.0000 N   0  3  0  0  0  0  0  0  0  0  0  0
    0.4198    2.9464    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    0.4198    2.1214    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
   -0.2947    1.7089    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
   -1.0091    2.1214    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
   -1.0091    2.9464    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
   -0.2947    4.1839    0.0000 O   0  5  0  0  0  0  0  0  0  0  0  0
  1  2  4  0  0  0  0
  1  6  4  0  0  0  0
  2  3  4  0  0  0  0
  3  4  4  0  0  0  0
  4  5  4  0  0  0  0
  5  6  4  0  0  0  0
  1  7  1  0  0  0  0
M  CHG  2   1   1   7  -1
M  END
$$$$

Processed molecule (using FixBondOrdersTool):


  CDK     0426141124

  7  7  0  0  0  0  0  0  0  0999 V2000
   -0.2947    3.3589    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0
    0.4198    2.9464    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    0.4198    2.1214    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
   -0.2947    1.7089    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
   -1.0091    2.1214    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
   -1.0091    2.9464    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
   -0.2947    4.1839    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
  1  2  0  0  0  0  0
  1  6  0  0  0  0  0
  2  3  0  0  0  0  0
  3  4  0  0  0  0  0
  4  5  0  0  0  0  0
  5  6  0  0  0  0  0
  1  7  1  0  0  0  0
M  CHG  1   1   1
M  CHG  1   7  -1
M  END
> <cdk:Title>
null

> <cdk:Remark>
null

$$$$

As you can see the bond type of the bonds which belong to the ring are
specified with bond order = 0.

Am I doing something wrong ? How could I manage these cases in order to
obtain a kekulised structure ?

I have attached both SDF files.

Thanks in advance

Oscar

Attachment: INPUT.sdf
Description: Binary data

Attachment: PROCESSED.sdf
Description: Binary data

------------------------------------------------------------------------------
Start Your Social Network Today - Download eXo Platform
Build your Enterprise Intranet with eXo Platform Software
Java Based Open Source Intranet - Social, Extensible, Cloud Ready
Get Started Now And Turn Your Intranet Into A Collaboration Platform
http://p.sf.net/sfu/ExoPlatform
_______________________________________________
Cdk-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/cdk-user

Reply via email to