public int numberOfFingerprints() { int s=0; for (IFingerprinter f : fingerprinters) s += f.getSize(); return s; }
public boolean[] fingerprintsToBooleans(BitSet[] bitSets) { int n=0; for (BitSet b : bitSets) n += b.size(); int fpn = 0; for (IFingerprinter f : fingerprinters) fpn += f.getSize(); final boolean[] bits = new boolean[fpn]; int j=0; for (int i=0; i < bitSets.length; ++i) { final BitSet b = bitSets[i]; final int N = fingerprinters.get(i).getSize(); for (int k = 0; k < N; ++k) { if (b.get(k)) bits[j] = true; ++j; } } return bits; }
public String fingerprintsToString(BitSet[] bitSets) { int n=0; for (BitSet b : bitSets) n += b.size(); final StringBuilder buffer = new StringBuilder(n); for (int i=0; i < bitSets.length; ++i) { final BitSet b = bitSets[i]; final int N = fingerprinters.get(i).getSize(); for (int k = 0; k < N; ++k) { if (b.get(k)) buffer.append('1'); else buffer.append('0'); } } return buffer.toString(); }
public BitSet[] computeFingerprints(IAtomContainer mol) throws CDKException { final BitSet[] fingerprints = new BitSet[fingerprinters.size()]; int k=0; for (IFingerprinter fp : fingerprinters) { fingerprints[k] = fp.getBitFingerprint(mol).asBitSet(); assert (fingerprints[k].size() >= fp.getSize() && fingerprints[k].length() <= fp.getSize()); ++k; } return fingerprints; }
public ExtendedFingerprintVersion(IFingerprinter... extendedFingerprinters) { this.extensions = extendedFingerprinters; this.offsets = new int[extendedFingerprinters.length]; this.underlyingFpVersion = CdkFingerprintVersion.getDefault(); offsets[0] = underlyingFpVersion.size(); this.sizes = new int[extendedFingerprinters.length]; int n=0; for (int k=0; k < extendedFingerprinters.length; ++k) { sizes[k] = extendedFingerprinters[k].getSize(); if (k +1 < extendedFingerprinters.length) offsets[k+1] = offsets[k]+sizes[k]; n += sizes[k]; } this.size = n+offsets[0]; this.properties = new MolecularProperty[this.size]; }
public void restoreFingerprints(Fingerprinter fingerprinter, boolean[] completeFp, MolecularFormula formula) { int offset = 0; for (IFingerprinter f : fingerprinter.getFingerprinters()) { if (f instanceof MACCSFingerprinter || f instanceof FixedMACCSFingerprinter) { restoreMACCS(completeFp, formula, offset); } else if (f instanceof PubchemFingerprinter) { restorePubchem(completeFp, formula, offset); } else if (f instanceof KlekotaRothFingerprinter) { restoreKlekotha(completeFp, formula, offset); } offset += f.getSize(); } }
public void removeFingerprintBitsFrom(Fingerprinter fingerprinter, Mask mask) { int offset = 0; for (IFingerprinter f : fingerprinter.getFingerprinters()) { if (f instanceof MACCSFingerprinter || f instanceof FixedMACCSFingerprinter) { for (int index : MACCS) { mask.disableFingerprint(offset + index); } } else if (f instanceof PubchemFingerprinter) { for (int i=0; i < PUBCHEM_FSIZE; ++i) { mask.disableFingerprint(offset + i); } } else if (f instanceof KlekotaRothFingerprinter) { for (int index : KLEKOTHA_ROTH) { mask.disableFingerprint(offset + index); } } offset += f.getSize(); } }
@Test public void testGetSize() throws Exception { IFingerprinter printer = getBitFingerprinter(); Assert.assertEquals(4860, printer.getSize()); }
@Test public void testGetSize() throws Exception { IFingerprinter printer = new EStateFingerprinter(); Assert.assertEquals(79, printer.getSize()); }
@Test public void testGetSize() throws java.lang.Exception { IFingerprinter fingerprinter = new ShortestPathFingerprinter(512); Assert.assertNotNull(fingerprinter); Assert.assertEquals(512, fingerprinter.getSize()); }
@Test public void getsize() throws Exception { IFingerprinter printer = new MACCSFingerprinter(SilentChemObjectBuilder.getInstance()); Assert.assertEquals(166, printer.getSize()); }
@Test public void testGetSize() throws java.lang.Exception { IFingerprinter fingerprinter = new Fingerprinter(512); Assert.assertNotNull(fingerprinter); Assert.assertEquals(512, fingerprinter.getSize()); }
@Test public void testGetSize() throws java.lang.Exception { IFingerprinter fingerprinter = new ExtendedFingerprinter(512); Assert.assertNotNull(fingerprinter); Assert.assertEquals(512, fingerprinter.getSize()); }
@Test public void testGetSize() throws Exception { IFingerprinter fingerprinter = new LingoFingerprinter(); Assert.assertNotNull(fingerprinter); Assert.assertEquals(-1, fingerprinter.getSize()); }
@Test public void testGetSize() throws Exception { IFingerprinter fingerprinter = new SignatureFingerprinter(); Assert.assertNotNull(fingerprinter); Assert.assertEquals(-1, fingerprinter.getSize()); }
@Test public void testGetSize() throws Exception { IFingerprinter printer = new PubchemFingerprinter(DefaultChemObjectBuilder.getInstance()); Assert.assertEquals(881, printer.getSize()); }
@Test public void testFingerprint() throws Exception { SmilesParser parser = new SmilesParser(SilentChemObjectBuilder.getInstance()); IFingerprinter printer = getBitFingerprinter(); BitSet bs1 = printer.getBitFingerprint(parser.parseSmiles("C=C-C#N")).asBitSet(); BitSet bs2 = printer.getBitFingerprint(parser.parseSmiles("C=CCC(O)CC#N")).asBitSet(); Assert.assertEquals(4860, printer.getSize()); Assert.assertTrue(FingerprinterTool.isSubset(bs2, bs1)); } }
@Test public void testFunctionalGroupsBinary() throws Exception { IFingerprinter printer = new SubstructureFingerprinter(); Assert.assertEquals(307, printer.getSize()); SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IAtomContainer mol1 = sp.parseSmiles("c1ccccc1CCC"); IBitFingerprint fp = printer.getBitFingerprint(mol1); Assert.assertNotNull(fp); Assert.assertTrue(fp.get(273)); Assert.assertTrue(fp.get(0)); Assert.assertTrue(fp.get(1)); Assert.assertFalse(fp.get(100)); }
@Test public void testFingerprint() throws Exception { SmilesParser parser = new SmilesParser(SilentChemObjectBuilder.getInstance()); IFingerprinter printer = new EStateFingerprinter(); IBitFingerprint bs1 = printer.getBitFingerprint(parser.parseSmiles("C=C-C#N")); IBitFingerprint bs2 = printer.getBitFingerprint(parser.parseSmiles("C=CCC(O)CC#N")); Assert.assertEquals(79, printer.getSize()); Assert.assertTrue(bs1.get(7)); Assert.assertTrue(bs1.get(10)); Assert.assertTrue(FingerprinterTool.isSubset(bs2.asBitSet(), bs1.asBitSet())); }
@Test public void testUserFunctionalGroups() throws Exception { String[] smarts = {"c1ccccc1", "[CX4H3][#6]", "[CX2]#[CX2]"}; IFingerprinter printer = new SubstructureFingerprinter(smarts); Assert.assertEquals(3, printer.getSize()); SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IAtomContainer mol1 = sp.parseSmiles("c1ccccc1CCC"); IBitFingerprint fp = printer.getBitFingerprint(mol1); Assert.assertNotNull(fp); Assert.assertTrue(fp.get(0)); Assert.assertTrue(fp.get(1)); Assert.assertFalse(fp.get(2)); mol1 = sp.parseSmiles("C=C=C"); fp = printer.getBitFingerprint(mol1); Assert.assertNotNull(fp); Assert.assertFalse(fp.get(0)); Assert.assertFalse(fp.get(1)); Assert.assertFalse(fp.get(2)); }