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

Reply via email to