Menu

#483 UniversalIsomorphismTester fails on simple molecules

closed
5
2012-10-08
2007-04-26
No

UniversalIsomorphismTester.getSubgraphMappings() is return matching bonds for C-?-C matching C-C-N. A junit test has been added.

Discussion

  • Kai Hartmann

    Kai Hartmann - 2007-04-26

    Logged In: YES
    user_id=743500
    Originator: YES

    The OrderQueryBond just checks for the correct order of the bonds. It does not check whether the connected atoms match. The behaviour is correct.

     
  • Jiao

    Jiao - 2007-04-30

    Logged In: YES
    user_id=1769786
    Originator: NO

    In the UniversalIsomorphismTest, line 690 - 700, there is code checking for atom matching, after matching the bonds. It seems the IQueryBond instance is not supposed to be responsible for matching the atoms.

    The "or" in line 696 seems to cause this problem when one of the atom is "Any".

     
  • Kai Hartmann

    Kai Hartmann - 2007-05-02

    Logged In: YES
    user_id=743500
    Originator: YES

    Thanks for bringing this issue up again. In an OrderQueryBond, it should be checked that the bond order
    and the Atom objects are matching. At first I thought only the bond order has to match ...

    I don't think the code section you described is the problem. The nodes
    are constructed if bonds match either way, no matter in which order the
    atoms are. There is no defined order for the Atom objects in a Bond object.

    I made a fix to the arcConstructor that checks for matches of all atoms if the second AtomContainer is a QueryAtomContainer. This way, the correct order of the atoms of two connected bonds is checked.