private List order6(IAtomContainer atomContainer) { QueryAtomContainer[] queries = new QueryAtomContainer[9]; try { queries[0] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CC1CCCC1"), false); queries[1] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CC1CC(C)C1"), false); queries[2] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CC1(C)(CCC1)"), false); queries[3] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CCC1CCC1"), false); queries[4] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("C1CCCCC1"), false); queries[5] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CC1CCC1(C)"), false); queries[6] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CC1C(C)C1(C)"), false); queries[7] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CCCC1CC1"), false); queries[8] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CCC1CC1(C)"), false); } catch (InvalidSmilesException e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } return ChiIndexUtils.getFragments(atomContainer, queries); }
moleculeCounter++; if (anyAtom && !anyAtomAnyBond) { query = QueryAtomContainerCreator.createAnyAtomContainer(m, false); } else { query = AtomContainerManipulator.anonymise(m);
static boolean matches(IAtomContainer a, IAtomContainer b) throws CDKException { IQueryAtomContainer query = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(b); return new UniversalIsomorphismTester().isIsomorph(a, query); }
QueryAtomContainer qAC = QueryAtomContainerCreator.createSymbolChargeIDQueryContainer(acClone); if (new UniversalIsomorphismTester().isIsomorph(ss, qAC)) { QueryAtomContainer qAC2 = QueryAtomContainerCreator .createSymbolAndBondOrderQueryContainer(acClone); if (new UniversalIsomorphismTester().isIsomorph(ss, qAC2)) return true; QueryAtomContainer qAC = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(acClone); Aromaticity.cdkLegacy().apply(ss); if (new UniversalIsomorphismTester().isIsomorph(ss, qAC)) return true;
/** * @cdk.bug 2888845 * @throws Exception */ @Test public void testSingleAtomMatching1() throws Exception { SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IAtomContainer target = sp.parseSmiles("[H]"); IAtomContainer queryac = sp.parseSmiles("[H]"); QueryAtomContainer query = QueryAtomContainerCreator.createSymbolAndBondOrderQueryContainer(queryac); List<List<RMap>> matches = uiTester.getIsomorphMaps(target, query); Assert.assertEquals(1, matches.size()); Assert.assertEquals(1, matches.get(0).size()); RMap mapping = matches.get(0).get(0); Assert.assertEquals(0, mapping.getId1()); Assert.assertEquals(0, mapping.getId2()); List<List<RMap>> atomMappings = UniversalIsomorphismTester.makeAtomsMapsOfBondsMaps(matches, target, query); Assert.assertEquals(matches, atomMappings); }
@Test public void testGetSubgraphMap_IAtomContainer_IAtomContainer() throws Exception { String molfile = "data/mdl/decalin.mol"; String queryfile = "data/mdl/decalin.mol"; IAtomContainer mol = new AtomContainer(); IAtomContainer temp = new AtomContainer(); QueryAtomContainer query1 = null; QueryAtomContainer query2 = null; InputStream ins = this.getClass().getClassLoader().getResourceAsStream(molfile); MDLV2000Reader reader = new MDLV2000Reader(ins, Mode.STRICT); reader.read(mol); ins = this.getClass().getClassLoader().getResourceAsStream(queryfile); reader = new MDLV2000Reader(ins, Mode.STRICT); reader.read(temp); query1 = QueryAtomContainerCreator.createBasicQueryContainer(temp); SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IAtomContainer atomContainer = sp.parseSmiles("C1CCCCC1"); query2 = QueryAtomContainerCreator.createBasicQueryContainer(atomContainer); List<RMap> list = uiTester.getSubgraphMap(mol, query1); Assert.assertEquals(11, list.size()); list = uiTester.getSubgraphMap(mol, query2); Assert.assertEquals(6, list.size()); }
molecules[j] = aAtomContainer; QueryAtomContainer query = QueryAtomContainerCreator.createAnyAtomForPseudoAtomQueryContainer(molecules[1]);
QueryAtomContainer qAC = QueryAtomContainerCreator.createSymbolChargeIDQueryContainer(acClone); if (new UniversalIsomorphismTester().isIsomorph(ss, qAC)) { QueryAtomContainer qAC2 = QueryAtomContainerCreator .createSymbolAndBondOrderQueryContainer(acClone); if (new UniversalIsomorphismTester().isIsomorph(ss, qAC2)) return true; QueryAtomContainer qAC = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(acClone); Aromaticity.cdkLegacy().apply(ss); if (new UniversalIsomorphismTester().isIsomorph(ss, qAC)) return true;
/** * @cdk.bug 2888845 * @throws Exception */ @Test public void testSingleAtomMatching2() throws Exception { SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IAtomContainer target = sp.parseSmiles("CNC"); IAtomContainer queryac = sp.parseSmiles("C"); QueryAtomContainer query = QueryAtomContainerCreator.createSymbolAndBondOrderQueryContainer(queryac); List<List<RMap>> matches = uiTester.getIsomorphMaps(target, query); Assert.assertEquals(2, matches.size()); Assert.assertEquals(1, matches.get(0).size()); Assert.assertEquals(1, matches.get(1).size()); RMap map1 = matches.get(0).get(0); RMap map2 = matches.get(1).get(0); Assert.assertEquals(0, map1.getId1()); Assert.assertEquals(0, map1.getId2()); Assert.assertEquals(2, map2.getId1()); Assert.assertEquals(0, map2.getId2()); List<List<RMap>> atomMappings = UniversalIsomorphismTester.makeAtomsMapsOfBondsMaps(matches, target, query); Assert.assertEquals(matches, atomMappings); }
@Test public void testBasicQueryAtomContainer() throws Exception { SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IAtomContainer atomContainer = sp.parseSmiles("CC(=O)OC(=O)C"); // acetic acid anhydride IAtomContainer SMILESquery = sp.parseSmiles("CC"); // acetic acid anhydride QueryAtomContainer query = QueryAtomContainerCreator.createBasicQueryContainer(SMILESquery); Assert.assertTrue(uiTester.isSubgraph(atomContainer, query)); }
private List order6(IAtomContainer atomContainer) { QueryAtomContainer[] queries = new QueryAtomContainer[9]; try { queries[0] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CC1CCCC1"), false); queries[1] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CC1CC(C)C1"), false); queries[2] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CC1(C)(CCC1)"), false); queries[3] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CCC1CCC1"), false); queries[4] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("C1CCCCC1"), false); queries[5] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CC1CCC1(C)"), false); queries[6] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CC1C(C)C1(C)"), false); queries[7] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CCCC1CC1"), false); queries[8] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CCC1CC1(C)"), false); } catch (InvalidSmilesException e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } return ChiIndexUtils.getFragments(atomContainer, queries); }
/** * A unit test suite for JUnit for acetaldehyde. * Reaction: O=C-C-H => O(H)-C=C. * Automatically looks for the active centre. * * @cdk.inchi InChI=1/C2H4O/c1-2-3/h2H,1H3 * * @return The test suite */ @Test @Override public void testInitiate_IAtomContainerSet_IAtomContainerSet() throws Exception { IReactionProcess type = new AdductionProtonLPReaction(); /* initiate */ List<IParameterReact> paramList = new ArrayList<IParameterReact>(); IParameterReact param = new SetReactionCenter(); param.setParameter(Boolean.FALSE); paramList.add(param); type.setParameterList(paramList); IReactionSet setOfReactions = type.initiate(getExampleReactants(), null); Assert.assertEquals(1, setOfReactions.getReactionCount()); Assert.assertEquals(1, setOfReactions.getReaction(0).getProductCount()); IAtomContainer product = setOfReactions.getReaction(0).getProducts().getAtomContainer(0); IAtomContainer molecule2 = getExpectedProducts().getAtomContainer(0); IQueryAtomContainer queryAtom = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(product); Assert.assertTrue(uiTester.isIsomorph(molecule2, queryAtom)); }
query1.addBond(0, 4, IBond.Order.SINGLE); query1.addBond(1, 5, IBond.Order.SINGLE); QueryAtomContainer queryContainer1 = QueryAtomContainerCreator.createSymbolAndBondOrderQueryContainer(query1); Assert.assertTrue(new UniversalIsomorphismTester().isSubgraph(molecule, queryContainer1)); query2.addBond(0, 4, IBond.Order.SINGLE); query2.addBond(1, 5, IBond.Order.SINGLE); QueryAtomContainer queryContainer2 = QueryAtomContainerCreator.createSymbolAndBondOrderQueryContainer(query2); Assert.assertFalse(new UniversalIsomorphismTester().isSubgraph(molecule, queryContainer2));
if (checkAminoAcid > 1) { QueryAtomContainer aminoAcid = QueryAtomContainerCreator.createBasicQueryContainer(createAminoAcid(ac .getBuilder()));
@Test public void testItself() throws Exception { String smiles = "C1CCCCCCC1CC"; QueryAtomContainer query = QueryAtomContainerCreator.createAnyAtomContainer(new SmilesParser( DefaultChemObjectBuilder.getInstance()).parseSmiles(smiles), true); IAtomContainer ac = new SmilesParser(DefaultChemObjectBuilder.getInstance()).parseSmiles(smiles); if (standAlone) { System.out.println("AtomCount of query: " + query.getAtomCount()); System.out.println("AtomCount of target: " + ac.getAtomCount()); } boolean matched = uiTester.isSubgraph(ac, query); if (standAlone) System.out.println("QueryAtomContainer matched: " + matched); if (!standAlone) Assert.assertTrue(matched); }
private List order6(IAtomContainer atomContainer) { QueryAtomContainer[] queries = new QueryAtomContainer[6]; try { queries[0] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CC(C)(C)CCC"), false); queries[1] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CC(C)C(C)CC"), false); queries[2] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CC(C)CC(C)C"), false); queries[3] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CC(C)CCCC"), false); queries[4] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CCC(C)CCC"), false); queries[5] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CC(C)(CC)CC"), false); } catch (InvalidSmilesException e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } return ChiIndexUtils.getFragments(atomContainer, queries); } }
/** * A unit test suite for JUnit. Reaction: methoxymethane. * C[O+]!-!C => CO + [C+] * * * @return The test suite */ @Test @Override public void testInitiate_IAtomContainerSet_IAtomContainerSet() throws Exception { IReactionProcess type = new SharingChargeSBReaction(); IAtomContainerSet setOfReactants = getExampleReactants(); /* initiate */ List<IParameterReact> paramList = new ArrayList<IParameterReact>(); IParameterReact param = new SetReactionCenter(); param.setParameter(Boolean.FALSE); paramList.add(param); type.setParameterList(paramList); IReactionSet setOfReactions = type.initiate(setOfReactants, null); Assert.assertEquals(3, setOfReactions.getReactionCount()); Assert.assertEquals(2, setOfReactions.getReaction(0).getProductCount()); IAtomContainer product1 = setOfReactions.getReaction(1).getProducts().getAtomContainer(0); IAtomContainer molecule1 = getExpectedProducts().getAtomContainer(0); IQueryAtomContainer queryAtom = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(product1); Assert.assertTrue(new UniversalIsomorphismTester().isIsomorph(molecule1, queryAtom)); IAtomContainer product2 = setOfReactions.getReaction(0).getProducts().getAtomContainer(1); IAtomContainer expected2 = getExpectedProducts().getAtomContainer(0); queryAtom = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(expected2); Assert.assertTrue(new UniversalIsomorphismTester().isIsomorph(product2, queryAtom)); }
if (checkAminoAcid > 1) { QueryAtomContainer aminoAcid = QueryAtomContainerCreator.createBasicQueryContainer(createAminoAcid(ac .getBuilder()));
private List order6(IAtomContainer atomContainer) { QueryAtomContainer[] queries = new QueryAtomContainer[6]; try { queries[0] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CC(C)(C)CCC"), false); queries[1] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CC(C)C(C)CC"), false); queries[2] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CC(C)CC(C)C"), false); queries[3] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CC(C)CCCC"), false); queries[4] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CCC(C)CCC"), false); queries[5] = QueryAtomContainerCreator.createAnyAtomAnyBondContainer(sp.parseSmiles("CC(C)(CC)CC"), false); } catch (InvalidSmilesException e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } return ChiIndexUtils.getFragments(atomContainer, queries); } }
/** * A unit test suite for JUnit. Reaction: [C+]-O => C=[O+] * Automatic search of the center active. * * @return The test suite */ @Test @Override public void testInitiate_IAtomContainerSet_IAtomContainerSet() throws Exception { IReactionProcess type = new SharingLonePairReaction(); IAtomContainerSet setOfReactants = getExampleReactants(); /* initiate */ List<IParameterReact> paramList = new ArrayList<IParameterReact>(); IParameterReact param = new SetReactionCenter(); param.setParameter(Boolean.FALSE); paramList.add(param); type.setParameterList(paramList); IReactionSet setOfReactions = type.initiate(setOfReactants, null); Assert.assertEquals(1, setOfReactions.getReactionCount()); Assert.assertEquals(1, setOfReactions.getReaction(0).getProductCount()); IAtomContainer product = setOfReactions.getReaction(0).getProducts().getAtomContainer(0); /* C=[O+] */ IAtomContainer molecule2 = getExpectedProducts().getAtomContainer(0); IQueryAtomContainer queryAtom = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(product); Assert.assertTrue(new UniversalIsomorphismTester().isIsomorph(molecule2, queryAtom)); }