@Override public IFingerprinter getBitFingerprinter() { return new SubstructureFingerprinter(); }
public static List<IFingerprinter> createListOfFingerprints() { return Arrays.asList( (IFingerprinter) new OpenBabelFingerprinter(), (IFingerprinter) new SubstructureFingerprinter(), (IFingerprinter) new MACCSFingerprinter(), (IFingerprinter) new PubchemFingerprinter(DefaultChemObjectBuilder.getInstance()), (IFingerprinter) new KlekotaRothFingerprinter(), (IFingerprinter) new ECFPFingerprinter() ); }
public static List<IFingerprinter> createExtendedListOfFingerprints() { return Arrays.asList( (IFingerprinter) new OpenBabelFingerprinter(), (IFingerprinter) new SubstructureFingerprinter(), (IFingerprinter) new MACCSFingerprinter(), (IFingerprinter) new PubchemFingerprinter(DefaultChemObjectBuilder.getInstance()), (IFingerprinter) new KlekotaRothFingerprinter(), (IFingerprinter) new SphericalFingerprint() ); }
public static List<IFingerprinter> createListOfAllFingerprints() { return Arrays.asList( (IFingerprinter) new OpenBabelFingerprinter(), // 55 (0..54) (IFingerprinter) new SubstructureFingerprinter(), // 307 (55..361) (IFingerprinter) new MACCSFingerprinter(),// 166 (362..527) (IFingerprinter) new PubchemFingerprinter( DefaultChemObjectBuilder.getInstance()), // 881 (528..1408) (IFingerprinter) new KlekotaRothFingerprinter(), // 4860 (1409..6269) (IFingerprinter) new SphericalFingerprint(), (IFingerprinter) new ECFPFingerprinter() ); }
private static List<IFingerprinter> getFingerprintList(ComputeOpts opts) { final List<IFingerprinter> list = new ArrayList<IFingerprinter>(); if (opts.isAll()) return Fingerprinter.createListOfAllFingerprints(); if (opts.isExtended()) return Fingerprinter.createExtendedListOfFingerprints(); if (opts.isOpenbabel()) { list.add(new OpenBabelFingerprinter()); list.add(new SubstructureFingerprinter()); } if (opts.isMaccs()) list.add(new MACCSFingerprinter()); if (opts.isPubchem()) list.add(new PubchemFingerprinter(DefaultChemObjectBuilder.getInstance())); if (opts.isKlekotha()) list.add(new KlekotaRothFingerprinter()); if (opts.isPath()) list.add(new MarcusPathFingerprinter()); if (opts.isNeighbourhood()) list.add(new NeighbourhoodFingerprinter()); if (opts.isSpherical()) list.add(new SphericalFingerprint()); if (list.size() > 0) { return list; } else { return Fingerprinter.createListOfFingerprints(); } }
public static IFingerprinter getFingerprinterByName(String name) { switch (name.toLowerCase()) { case "openbabel": return new OpenBabelFingerprinter(); case "substructure": return new SubstructureFingerprinter(); case "maccs": return new MACCSFingerprinter(); case "pubchem": return new PubchemFingerprinter(DefaultChemObjectBuilder.getInstance()); case "klekota": case "klekota_roth": return new KlekotaRothFingerprinter(); case "path": return new MarcusPathFingerprinter(); case "neighbours": return new NeighbourhoodFingerprinter(); case "spheres": return new SphericalFingerprint(); case "ecfp": return new ECFPFingerprinter(); default: throw new IllegalArgumentException("Unknown fingerprinter: " + name); } }
@Test public void testSize() throws Exception { SubstructureFingerprinter fp = new SubstructureFingerprinter(); Assert.assertEquals(307, fp.getSize()); fp = new SubstructureFingerprinter(StandardSubstructureSets.getFunctionalGroupSMARTS()); Assert.assertEquals(307, fp.getSize()); fp = new SubstructureFingerprinter(StandardSubstructureSets.getCountableMACCSSMARTS()); Assert.assertEquals(142, fp.getSize()); }
@Test public void testGetSubstructure() throws Exception { String[] smarts = {"c1ccccc1", "[CX4H3][#6]", "[CX2]#[CX2]"}; SubstructureFingerprinter printer = new SubstructureFingerprinter(smarts); Assert.assertEquals(printer.getSubstructure(1), smarts[1]); } }
public static IFingerprinter getFingerprinter(CdkFingerprintVersion.USED_FINGERPRINTS fp) { switch (fp) { case OPENBABEL: return new OpenBabelFingerprinter(); case SUBSTRUCTURE: return new SubstructureFingerprinter(); case MACCS: return new MACCSFingerprinter(); case PUBCHEM: return new PubchemFingerprinter(DefaultChemObjectBuilder.getInstance()); case KLEKOTA_ROTH: return new KlekotaRothFingerprinter(); case ECFP: return new ECFPFingerprinter(); case CLASSYFIRE_SMARTS: return new ClassyFireSmartsFingerprint(); case SHORTEST_PATH: return new ShortestPathFingerprinter(); case BIOSMARTS: return new BiosmartsFingerprinter(); case RINGSYSTEMS: return new RingsystemFingerprinter(); default: throw new IllegalArgumentException(); } }
@Test public void testCountableMACCSBinary2() throws Exception { SmilesParser parser = new SmilesParser(SilentChemObjectBuilder.getInstance()); IFingerprinter printer = new SubstructureFingerprinter(StandardSubstructureSets.getCountableMACCSSMARTS()); IAtomContainer mol; BitSet bs;
/** * @cdk.bug 2871303 * * While this test fails, Daylight says that the * SMARTS pattern used for vinylogous ester should * match benzaldehyde twice. So according to the * supplied definition this answer is actually correct. */ @Ignore("the SMARTS pattern vinylogous ester is not strict enough - we can not fix this") public void testVinylogousEster() throws Exception { String benzaldehyde = "c1ccccc1C=O"; IFingerprinter fprinter = new SubstructureFingerprinter(); SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IBitFingerprint fp = fprinter.getBitFingerprint(sp.parseSmiles(benzaldehyde)); Assert.assertFalse("Bit 136 (vinylogous ester) is set to true", fp.get(136)); }
@Test public void testCountableMACCSBinary_Rings() throws Exception { SmilesParser parser = new SmilesParser(SilentChemObjectBuilder.getInstance()); IFingerprinter printer = new SubstructureFingerprinter(StandardSubstructureSets.getCountableMACCSSMARTS()); IAtomContainer mol; BitSet bs;
@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)); }
IFingerprinter printer = new SubstructureFingerprinter(StandardSubstructureSets.getCountableMACCSSMARTS()); Assert.assertEquals(142, printer.getSize());
@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)); }
@Test public void testCountableMACCSCount2() throws Exception { SmilesParser parser = new SmilesParser(SilentChemObjectBuilder.getInstance()); IFingerprinter printer = new SubstructureFingerprinter(StandardSubstructureSets.getCountableMACCSSMARTS()); IAtomContainer mol; ICountFingerprint cfp;
@Test public void testCountableMACCSCount_Rings() throws Exception { SmilesParser parser = new SmilesParser(SilentChemObjectBuilder.getInstance()); IFingerprinter printer = new SubstructureFingerprinter(StandardSubstructureSets.getCountableMACCSSMARTS()); IAtomContainer mol; ICountFingerprint cfp;