Egon,

Many thanks!

Egon Willighagen <[EMAIL PROTECTED]> wrote:

> On Friday 27 April 2007, Nina Jeliazkova wrote:
> > Here is the story.
> > 1) Create (somehow) a structure as IMolecule   (e.g. benzene with
> > alternating single/double bonds)
> > 2) Run HueckelAromaticityDetector to perceive aromaticity
> > 3) Write the structure into CML
> > 4) Read the structure back from CML into a new IMolecule
> > 5) Now the new IMolecule has bond orders 1.5 , while the origin one as in
> > 1) has bond orders 1.0 and 2.0
> 
> Ah... that sounds like a bug. CDK in the early days used 1.5 bond order ==
an 
> aromatic bond, but drop that in favour of 

this was a surprise indeed

> IBond.setFlag(CDKConstancs.ISAROMATIC). Seems that the CMLReader has not
been 
> updated.
> 
> > This doesn't break isomorphism test and fingerprints, but does break atom
> > types recognition as per HybridizationStateATMatcher.  In this example,
> > atom types of the original molecule will be C.sp2,  while in the new
> > molecule will be Caromatic.sp2.
> 
> Atom type perception is a tricky thing indeed. What suprises me that the
first
> 
> type is not aromatic too! Because you did do atomiticity detection.
Actually, 
> since the atom type list contains the the concept of aromaticity, it must be

> done prior to calling the perception tool. Maybe a second bug?
> 

I guess this is due to atom type configurations - maxBondOrder will be 2.0 for
alternating single/double bonds and 1.5 for aromatic bonds.
(/src/org/openscience/cdk/config/data/hybridization_atomtypes.xml from SVN).
It seems we'll never get aromatic atom type recognized if not using 1.5 bond
order. Any ideas how configuration should be updated?

    <atomType id="C.sp2">
        <atom elementType="C" formalCharge="0">
            <scalar dataType="xsd:double"
dictRef="cdk:maxBondOrder">2.0</scalar>
            <scalar dataType="xsd:double"
dictRef="cdk:bondOrderSum">4.0</scalar>
            <scalar dataType="xsd:integer"
dictRef="cdk:formalNeighbourCount">3</scalar>
        </atom>
        <scalar dataType="xsd:string" dictRef="cdk:hybridization">sp2</scalar>
    </atomType>

  <atomType id="Caromatic.sp2">
    <atom elementType="C" formalCharge="0">
      <scalar dataType="xsd:double" dictRef="cdk:maxBondOrder">1.5</scalar>
      <scalar dataType="xsd:double" dictRef="cdk:bondOrderSum">4.0</scalar>
      <scalar dataType="xsd:integer"
dictRef="cdk:formalNeighbourCount">3</scalar>
    </atom>


Best regards,
Nina

> > Not sure this breaks anything else than my atom environments code, but I
am
> > wondering what's the best way to handle the issue.
> >
> > Attached is JUnit test.
> 
> Thanx! I have filed it in the bug track system, so that it can soon be fixed

> (by the first who has time for it).
> 
> Egon





-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Cdk-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/cdk-user

Reply via email to