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