Could you send the structures as attachments? Gmail is mangling the lines On Mon, Oct 4, 2010 at 11:59 AM, Adel Golovin <[email protected]> wrote: > Hi Rajarshi, > > In the test example both structures have single or double bonds. > There is no aromaticity given and this particular structure (BF5) does not > have aromatic rings. > The problem is that the isomorphism test gives a positive result whether the > fingerprints are different. > The difference between the data is that in the first one bonds are ordered > by the bonds order (double go first, then single) and in the second there is > no order. > > Best regards, > Adel. > > Rajarshi Guha wrote: >> >> Hmm, does this problem get resolved if you explicitly perceive >> aromaticity? The hashed FP considers aromatic bonds and so bond >> ordering shouldn't affect the fp (but will if it only sees >> single/double bonds) >> >> On Mon, Oct 4, 2010 at 10:46 AM, Adel Golovin <[email protected]> wrote: >> >>> >>> Hi Egon, >>> thank for looking into it. >>> The example with 1FH concern the aromaticity test and I'm going to >>> investigate it further. >>> >>> Consider different fingerprints for isomorphic structures: >>> The structure is BF5: >>> >>> http://www.ebi.ac.uk/pdbe-site/pdbemotif/chem/detail.jsp?code=BF5 >>> >>> The code below has two different MDL files representing the same >>> structure. >>> I tested these structures whether they are isomorphic using the >>> following code and generate the same fingerprints. >>> The result is that they are isomorphic but generate different >>> fingerprints. >>> The only difference between them is the order of bonds. >>> >>> the code: >>> import java.io.IOException; >>> import java.io.Reader; >>> import java.io.StringReader; >>> import java.util.Arrays; >>> import java.util.BitSet; >>> import java.util.Comparator; >>> import java.util.logging.Logger; >>> >>> import org.junit.Test; >>> import org.openscience.cdk.exception.CDKException; >>> import org.openscience.cdk.fingerprint.Fingerprinter; >>> import org.openscience.cdk.isomorphism.UniversalIsomorphismTester; >>> >>> public class FingerprintsTest { >>> static final Logger log = Logger.getAnonymousLogger(); >>> String BF5_MDL2 = >>> "BF5\n" + >>> " -ISIS- 3D\n" + >>> "\n" + >>> " 26 29 0 0 0 0 0 0 0 0 1 V2000\n" + >>> " 1.3870 -0.9840 -0.0020 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 1.4580 3.3830 -1.1290 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 1.0220 0.3780 0.1280 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 0.3730 -2.0890 -0.0500 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -0.2940 0.7270 0.2360 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 1.6240 2.7830 0.2690 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 0.2990 2.8850 1.0310 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 5.4950 -1.7360 -0.3370 O 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 5.9860 0.2980 0.0110 O 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 3.0790 -2.6160 -0.2080 O 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -0.6550 2.0360 0.3820 O 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -1.0310 -1.5910 0.0620 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -1.3360 -0.2980 0.1960 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -3.2600 1.0700 -0.6250 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 5.1450 -0.5810 -0.1270 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -2.6810 0.0840 0.3000 N 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 3.3150 1.0580 0.0750 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 3.7210 -0.2520 -0.0410 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -5.4360 0.0600 -0.1210 N 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 2.7060 -1.3170 -0.0860 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 2.0030 1.3690 0.1540 N 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -3.5490 -0.4860 1.3420 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -4.8260 -1.0120 0.6780 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -6.7360 -0.3450 -0.6290 N 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -4.5480 0.4860 -1.2160 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -2.0390 -2.4900 0.0320 F 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 12 13 2 0 0 0 0\n" + >>> " 5 3 2 0 0 0 0\n" + >>> " 1 20 2 0 0 0 0\n" + >>> " 17 18 2 0 0 0 0\n" + >>> " 15 9 2 0 0 0 0\n" + >>> " 12 4 1 0 0 0 0\n" + >>> " 13 5 1 0 0 0 0\n" + >>> " 4 1 1 0 0 0 0\n" + >>> " 7 6 1 0 0 0 0\n" + >>> " 6 2 1 0 0 0 0\n" + >>> " 1 3 1 0 0 0 0\n" + >>> " 18 20 1 0 0 0 0\n" + >>> " 18 15 1 0 0 0 0\n" + >>> " 22 23 1 0 0 0 0\n" + >>> " 25 14 1 0 0 0 0\n" + >>> " 12 26 1 0 0 0 0\n" + >>> " 13 16 1 0 0 0 0\n" + >>> " 22 16 1 0 0 0 0\n" + >>> " 14 16 1 0 0 0 0\n" + >>> " 6 21 1 0 0 0 0\n" + >>> " 3 21 1 0 0 0 0\n" + >>> " 17 21 1 0 0 0 0\n" + >>> " 23 19 1 0 0 0 0\n" + >>> " 25 19 1 0 0 0 0\n" + >>> " 5 11 1 0 0 0 0\n" + >>> " 7 11 1 0 0 0 0\n" + >>> " 20 10 1 0 0 0 0\n" + >>> " 15 8 1 0 0 0 0\n" + >>> " 19 24 1 0 0 0 0\n" + >>> "M CHG 1 8 -1\n" + >>> "\n" + >>> "M END\n"; >>> >>> >>> String BF5_MDL3 = >>> "BF5\n" + >>> " -ISIS- 3D\n" + >>> "\n" + >>> " 26 29 0 0 0 0 0 0 0 0 1 V2000\n" + >>> " 1.3870 -0.9840 -0.0020 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 1.4580 3.3830 -1.1290 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 1.0220 0.3780 0.1280 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 0.3730 -2.0890 -0.0500 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -0.2940 0.7270 0.2360 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 1.6240 2.7830 0.2690 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 0.2990 2.8850 1.0310 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 5.4950 -1.7360 -0.3370 O 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 5.9860 0.2980 0.0110 O 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 3.0790 -2.6160 -0.2080 O 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -0.6550 2.0360 0.3820 O 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -1.0310 -1.5910 0.0620 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -1.3360 -0.2980 0.1960 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -3.2600 1.0700 -0.6250 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 5.1450 -0.5810 -0.1270 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -2.6810 0.0840 0.3000 N 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 3.3150 1.0580 0.0750 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 3.7210 -0.2520 -0.0410 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -5.4360 0.0600 -0.1210 N 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 2.7060 -1.3170 -0.0860 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 2.0030 1.3690 0.1540 N 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -3.5490 -0.4860 1.3420 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -4.8260 -1.0120 0.6780 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -6.7360 -0.3450 -0.6290 N 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -4.5480 0.4860 -1.2160 C 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " -2.0390 -2.4900 0.0320 F 0 0 0 0 0 0 0 0 0 0 0 >>> 0\n" + >>> " 12 26 1 0 0 0 0\n" + >>> " 12 13 2 0 0 0 0\n" + >>> " 12 4 1 0 0 0 0\n" + >>> " 13 16 1 0 0 0 0\n" + >>> " 22 16 1 0 0 0 0\n" + >>> " 14 16 1 0 0 0 0\n" + >>> " 5 11 1 0 0 0 0\n" + >>> " 7 11 1 0 0 0 0\n" + >>> " 13 5 1 0 0 0 0\n" + >>> " 6 21 1 0 0 0 0\n" + >>> " 3 21 1 0 0 0 0\n" + >>> " 17 21 1 0 0 0 0\n" + >>> " 20 10 1 0 0 0 0\n" + >>> " 5 3 2 0 0 0 0\n" + >>> " 19 24 1 0 0 0 0\n" + >>> " 23 19 1 0 0 0 0\n" + >>> " 25 19 1 0 0 0 0\n" + >>> " 15 9 2 0 0 0 0\n" + >>> " 4 1 1 0 0 0 0\n" + >>> " 15 8 1 0 0 0 0\n" + >>> " 7 6 1 0 0 0 0\n" + >>> " 6 2 1 0 0 0 0\n" + >>> " 1 3 1 0 0 0 0\n" + >>> " 1 20 2 0 0 0 0\n" + >>> " 17 18 2 0 0 0 0\n" + >>> " 18 20 1 0 0 0 0\n" + >>> " 18 15 1 0 0 0 0\n" + >>> " 22 23 1 0 0 0 0\n" + >>> " 25 14 1 0 0 0 0\n" + >>> "M CHG 1 8 -1\n" + >>> "\n" + >>> "M END\n"; >>> >>> @Test public void cdktestBF5() throws IOException, CDKException { >>> StringReader mdl1 = new StringReader(BF5_MDL3); >>> org.openscience.cdk.io.MDLReader mdl1Reader = new >>> org.openscience.cdk.io.MDLReader(mdl1); >>> StringReader mdl2 = new StringReader(BF5_MDL2); >>> org.openscience.cdk.io.MDLReader mdl2Reader = new >>> org.openscience.cdk.io.MDLReader(mdl2); >>> org.openscience.cdk.Molecule molMdl1 = new >>> org.openscience.cdk.Molecule(); >>> mdl1Reader.read(molMdl1); >>> org.openscience.cdk.Molecule molMdl2 = new >>> org.openscience.cdk.Molecule(); >>> mdl2Reader.read(molMdl2); >>> assertTrue(UniversalIsomorphismTester.isIsomorph(molMdl1, molMdl2)); >>> >>> Fingerprinter finger = new Fingerprinter(); >>> BitSet fingerprint1 = finger.getFingerprint(molMdl1); >>> finger = new Fingerprinter(); >>> BitSet fingerprint2 = finger.getFingerprint(molMdl2); >>> >>> assertEquals(fingerprint1, fingerprint2); >>> } >>> } >>> >>> Regards, >>> Adel. >>> >>> Egon Willighagen wrote: >>> >>>> >>>> On Thu, Sep 30, 2010 at 5:08 PM, Adel Golovin <[email protected]> wrote: >>>> >>>> >>>>> >>>>> cdk-1.3.4 >>>>> >>>>> >>>> >>>> Good. On the bus home I wrote four new unit tests for the >>>> fingerprinter, and using the AtomContainerAtomPermutor and >>>> AtomContainerBondPermutor on two molecules, and that showed no >>>> problems. If you send me your file I can use that for a test too >>>> (which I would upload to the repository, if you are OK with that...) >>>> >>>> Egon >>>> >>>> >>>> >>> >>> >>> ------------------------------------------------------------------------------ >>> Virtualization is moving to the mainstream and overtaking non-virtualized >>> environment for deploying applications. Does it make network security >>> easier or more difficult to achieve? Read this whitepaper to separate the >>> two and get a better understanding. >>> http://p.sf.net/sfu/hp-phase2-d2d >>> _______________________________________________ >>> Cdk-user mailing list >>> [email protected] >>> https://lists.sourceforge.net/lists/listinfo/cdk-user >>> >>> >> >> >> >> > >
-- Rajarshi Guha NIH Chemical Genomics Center ------------------------------------------------------------------------------ Virtualization is moving to the mainstream and overtaking non-virtualized environment for deploying applications. Does it make network security easier or more difficult to achieve? Read this whitepaper to separate the two and get a better understanding. http://p.sf.net/sfu/hp-phase2-d2d _______________________________________________ Cdk-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/cdk-user

