@Test public void testICountFingerprintComparison() throws Exception { IAtomContainer mol1 = TestMoleculeFactory.makeIndole(); IAtomContainer mol2 = TestMoleculeFactory.makeIndole(); SignatureFingerprinter fingerprinter = new SignatureFingerprinter(); ICountFingerprint fp1 = fingerprinter.getCountFingerprint(mol1); ICountFingerprint fp2 = fingerprinter.getCountFingerprint(mol2); double tanimoto = Tanimoto.calculate(fp1, fp2); Assert.assertEquals(1.0, tanimoto, 0.001); }
@Test public void compareCountFingerprintAndRawFingerprintTanimoto() throws CDKException { IAtomContainer mol1 = TestMoleculeFactory.make123Triazole(); IAtomContainer mol2 = TestMoleculeFactory.makeImidazole(); SignatureFingerprinter fingerprinter = new SignatureFingerprinter(1); ICountFingerprint countFp1 = fingerprinter.getCountFingerprint(mol1); ICountFingerprint countFp2 = fingerprinter.getCountFingerprint(mol2); Map<String, Integer> feat1 = fingerprinter.getRawFingerprint(mol1); Map<String, Integer> feat2 = fingerprinter.getRawFingerprint(mol2); float rawTanimoto = Tanimoto.calculate(feat1, feat2); double countTanimoto = Tanimoto.method1(countFp1, countFp2); Assert.assertEquals(rawTanimoto, countTanimoto, 0.001); }
@Test public void testComparingBitFingerprintAndCountBehavingAsBit() throws Exception { IAtomContainer mol1 = TestMoleculeFactory.make123Triazole(); IAtomContainer mol2 = TestMoleculeFactory.makeImidazole(); SignatureFingerprinter fingerprinter = new SignatureFingerprinter(1); ICountFingerprint countFp1 = fingerprinter.getCountFingerprint(mol1); ICountFingerprint countFp2 = fingerprinter.getCountFingerprint(mol2); countFp1.setBehaveAsBitFingerprint(true); countFp2.setBehaveAsBitFingerprint(true); IBitFingerprint bitFp1 = fingerprinter.getBitFingerprint(mol1); IBitFingerprint bitFp2 = fingerprinter.getBitFingerprint(mol2); double bitTanimoto = Tanimoto.calculate(bitFp1, bitFp2); double countTanimoto1 = Tanimoto.method1(countFp1, countFp2); double countTanimoto2 = Tanimoto.method2(countFp1, countFp2); Assert.assertEquals(countTanimoto1, countTanimoto2, 0.001); Assert.assertEquals(bitTanimoto, countTanimoto1, 0.001); } }
@Test @Override public void testGetCountFingerprint() throws Exception { SignatureFingerprinter fingerprinter = new SignatureFingerprinter(0); SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IAtomContainer mol = sp.parseSmiles("O(NC)CC"); ICountFingerprint bitFP = fingerprinter.getCountFingerprint(mol); Assert.assertNotNull(bitFP); Assert.assertNotSame(0, bitFP.size()); } }
@Test public void testCountMethod1and2() throws CDKException { ICountFingerprint fp1 = new IntArrayCountFingerprint(new HashMap<String, Integer>() { { put("A", 3); } }); ICountFingerprint fp2 = new IntArrayCountFingerprint(new HashMap<String, Integer>() { { put("A", 4); } }); Assert.assertEquals(0.923, Tanimoto.method1(fp1, fp2), 0.001); Assert.assertEquals(0.75, Tanimoto.method2(fp1, fp2), 0.001); IAtomContainer mol1 = TestMoleculeFactory.makeIndole(); IAtomContainer mol2 = TestMoleculeFactory.makeIndole(); SignatureFingerprinter fingerprinter = new SignatureFingerprinter(); fp1 = fingerprinter.getCountFingerprint(mol1); fp2 = fingerprinter.getCountFingerprint(mol2); Assert.assertEquals(1.0, Tanimoto.method1(fp1, fp2), 0.001); Assert.assertEquals(1.0, Tanimoto.method2(fp1, fp2), 0.001); }