/** * Generates a fingerprint of the default size for the given AtomContainer. * *@param container The AtomContainer for which a Fingerprint is generated */ @Override public IBitFingerprint getBitFingerprint(IAtomContainer container) throws CDKException { return getBitFingerprint(container, null); }
/** * * @param container * @throws CDKException */ public Fragment(IAtomContainer container) throws CDKException { if (container == null) { throw new CDKException("NULL container not supported"); } this.container = container; this.fingerprint = new Fingerprinter().getBitFingerprint(container).asBitSet(); this.fingerprintAsLong = convert(this.fingerprint); }
/** * * @param container * @throws CDKException */ public Fragment(IAtomContainer container) throws CDKException { if (container == null) { throw new CDKException("NULL container not supported"); } this.container = container; this.fingerprint = new Fingerprinter().getBitFingerprint(container).asBitSet(); this.fingerprintAsLong = convert(this.fingerprint); }
@Test public void testBondPermutation() throws CDKException { IAtomContainer pamine = makePropylAmine(); Fingerprinter fp = new Fingerprinter(); IBitFingerprint bs1 = fp.getBitFingerprint(pamine); AtomContainerBondPermutor acp = new AtomContainerBondPermutor(pamine); while (acp.hasNext()) { IAtomContainer container = acp.next(); IBitFingerprint bs2 = fp.getBitFingerprint(container); assertTrue(bs1.equals(bs2)); } }
@Test public void testAtomPermutation2() throws CDKException { IAtomContainer pamine = TestMoleculeFactory.makeCyclopentane(); Fingerprinter fp = new Fingerprinter(); IBitFingerprint bs1 = fp.getBitFingerprint(pamine); AtomContainerAtomPermutor acp = new AtomContainerAtomPermutor(pamine); while (acp.hasNext()) { IAtomContainer container = acp.next(); IBitFingerprint bs2 = fp.getBitFingerprint(container); assertTrue(bs1.equals(bs2)); } }
@Test public void testCalculate_BitFingerprint() throws java.lang.Exception { IAtomContainer mol1 = TestMoleculeFactory.makeIndole(); IAtomContainer mol2 = TestMoleculeFactory.makePyrrole(); Fingerprinter fp = new Fingerprinter(1024, 8); double similarity = Tanimoto.calculate(fp.getBitFingerprint(mol1), fp.getBitFingerprint(mol2)); Assert.assertEquals(0.3939, similarity, 0.01); }
@Test public void testAtomPermutation() throws CDKException { IAtomContainer pamine = makePropylAmine(); Fingerprinter fp = new Fingerprinter(); IBitFingerprint bs1 = fp.getBitFingerprint(pamine); AtomContainerAtomPermutor acp = new AtomContainerAtomPermutor(pamine); while (acp.hasNext()) { IAtomContainer container = acp.next(); IBitFingerprint bs2 = fp.getBitFingerprint(container); assertTrue(bs1.equals(bs2)); } }
@Test public void testBondPermutation2() throws CDKException { IAtomContainer pamine = TestMoleculeFactory.makeCyclopentane(); Fingerprinter fp = new Fingerprinter(); IBitFingerprint bs1 = fp.getBitFingerprint(pamine); AtomContainerBondPermutor acp = new AtomContainerBondPermutor(pamine); while (acp.hasNext()) { IAtomContainer container = acp.next(); IBitFingerprint bs2 = fp.getBitFingerprint(container); assertTrue(bs1.equals(bs2)); } }
@Test public void testTanimoto2() throws java.lang.Exception { IAtomContainer mol1 = TestMoleculeFactory.makeIndole(); IAtomContainer mol2 = TestMoleculeFactory.makeIndole(); Fingerprinter fingerprinter = new Fingerprinter(); BitSet bs1 = fingerprinter.getBitFingerprint(mol1).asBitSet(); BitSet bs2 = fingerprinter.getBitFingerprint(mol2).asBitSet(); float tanimoto = Tanimoto.calculate(bs1, bs2); if (standAlone) System.out.println("Tanimoto: " + tanimoto); if (!standAlone) Assert.assertEquals(1.0, tanimoto, 0.001); }
@Test public void testTanimoto1() throws java.lang.Exception { IAtomContainer mol1 = TestMoleculeFactory.makeIndole(); IAtomContainer mol2 = TestMoleculeFactory.makePyrrole(); Fingerprinter fingerprinter = new Fingerprinter(1024, 8); BitSet bs1 = fingerprinter.getBitFingerprint(mol1).asBitSet(); BitSet bs2 = fingerprinter.getBitFingerprint(mol2).asBitSet(); float tanimoto = Tanimoto.calculate(bs1, bs2); if (standAlone) System.out.println("Tanimoto: " + tanimoto); if (!standAlone) Assert.assertEquals(0.3939, tanimoto, 0.01); }
@Test public void testIsSubset_BitSet_BitSet() throws java.lang.Exception { Fingerprinter fingerprinter = new Fingerprinter(); IAtomContainer mol = TestMoleculeFactory.makeIndole(); BitSet bs = fingerprinter.getBitFingerprint(mol).asBitSet(); IAtomContainer frag1 = TestMoleculeFactory.makePyrrole(); BitSet bs1 = fingerprinter.getBitFingerprint(frag1).asBitSet(); assertTrue(FingerprinterTool.isSubset(bs, bs1)); }
@Test public void testFingerprinterBitSetSize() throws Exception { Fingerprinter fingerprinter = new Fingerprinter(1024, 7); Assert.assertNotNull(fingerprinter); IAtomContainer mol = TestMoleculeFactory.makeIndole(); BitSet bs = fingerprinter.getBitFingerprint(mol).asBitSet(); Assert.assertEquals(994, bs.length()); // highest set bit Assert.assertEquals(1024, bs.size()); // actual bit set size }
@Test(expected = CDKException.class) @Category(SlowTest.class) public void testbug2917084() throws Exception { String filename1 = "data/mdl/boronBuckyBall.mol"; logger.info("Testing: " + filename1); InputStream ins1 = this.getClass().getClassLoader().getResourceAsStream(filename1); MDLV2000Reader reader = new MDLV2000Reader(ins1, Mode.STRICT); IChemFile chemFile = reader.read(new ChemFile()); Assert.assertNotNull(chemFile); IAtomContainer mol = ChemFileManipulator.getAllAtomContainers(chemFile).get(0); Fingerprinter fingerprinter = new Fingerprinter(1024, 8); Assert.assertNotNull(fingerprinter.getBitFingerprint(mol)); }
/** * @cdk.bug 2819557 * @throws org.openscience.cdk.exception.CDKException */ @Test public void testBug2819557() throws CDKException { IAtomContainer butane = makeButane(); IAtomContainer propylAmine = makePropylAmine(); Fingerprinter fp = new Fingerprinter(); BitSet b1 = fp.getBitFingerprint(butane).asBitSet(); BitSet b2 = fp.getBitFingerprint(propylAmine).asBitSet(); Assert.assertFalse("butane should not be a substructure of propylamine", FingerprinterTool.isSubset(b2, b1)); }
@Test public void testFingerprinter() throws java.lang.Exception { Fingerprinter fingerprinter = new Fingerprinter(); Assert.assertNotNull(fingerprinter); IAtomContainer mol = TestMoleculeFactory.makeIndole(); BitSet bs = fingerprinter.getBitFingerprint(mol).asBitSet(); IAtomContainer frag1 = TestMoleculeFactory.makePyrrole(); BitSet bs1 = fingerprinter.getBitFingerprint(frag1).asBitSet(); assertTrue(FingerprinterTool.isSubset(bs, bs1)); }
@Test public void testRegression() throws Exception { IAtomContainer mol1 = TestMoleculeFactory.makeIndole(); IAtomContainer mol2 = TestMoleculeFactory.makePyrrole(); Fingerprinter fingerprinter = new Fingerprinter(1024, 8); IBitFingerprint bs1 = fingerprinter.getBitFingerprint(mol1); Assert.assertEquals( "Seems the fingerprint code has changed. This will cause a number of other tests to fail too!", 33, bs1.cardinality()); IBitFingerprint bs2 = fingerprinter.getBitFingerprint(mol2); Assert.assertEquals( "Seems the fingerprint code has changed. This will cause a number of other tests to fail too!", 13, bs2.cardinality()); }
@Test public void testFingerprinter_int() throws java.lang.Exception { Fingerprinter fingerprinter = new Fingerprinter(512); Assert.assertNotNull(fingerprinter); IAtomContainer mol = TestMoleculeFactory.makeIndole(); BitSet bs = fingerprinter.getBitFingerprint(mol).asBitSet(); IAtomContainer frag1 = TestMoleculeFactory.makePyrrole(); BitSet bs1 = fingerprinter.getBitFingerprint(frag1).asBitSet(); assertTrue(FingerprinterTool.isSubset(bs, bs1)); }
@Test public void testFingerprinter_int_int() throws java.lang.Exception { Fingerprinter fingerprinter = new Fingerprinter(1024, 7); Assert.assertNotNull(fingerprinter); IAtomContainer mol = TestMoleculeFactory.makeIndole(); BitSet bs = fingerprinter.getBitFingerprint(mol).asBitSet(); IAtomContainer frag1 = TestMoleculeFactory.makePyrrole(); BitSet bs1 = fingerprinter.getBitFingerprint(frag1).asBitSet(); assertTrue(FingerprinterTool.isSubset(bs, bs1)); }
/** * @cdk.bug 1851202 */ @Test public void testBug1851202() throws Exception { String filename1 = "data/mdl/0002.stg01.rxn"; logger.info("Testing: " + filename1); InputStream ins1 = this.getClass().getClassLoader().getResourceAsStream(filename1); MDLRXNV2000Reader reader = new MDLRXNV2000Reader(ins1, Mode.STRICT); IReaction reaction = (IReaction) reader.read(new Reaction()); Assert.assertNotNull(reaction); IAtomContainer reactant = reaction.getReactants().getAtomContainer(0); IAtomContainer product = reaction.getProducts().getAtomContainer(0); Fingerprinter fingerprinter = new Fingerprinter(64 * 26, 8); Assert.assertNotNull(fingerprinter.getBitFingerprint(reactant)); Assert.assertNotNull(fingerprinter.getBitFingerprint(product)); }
@Test public void testgetBitFingerprint_IAtomContainer() throws java.lang.Exception { Fingerprinter fingerprinter = new Fingerprinter(); IAtomContainer mol = TestMoleculeFactory.makeIndole(); IBitFingerprint bs = fingerprinter.getBitFingerprint(mol); Assert.assertNotNull(bs); Assert.assertEquals(fingerprinter.getSize(), bs.size()); }