static void Main() { UniversalIsomorphismTester universalIsomorphismTester = new UniversalIsomorphismTester(); #region SmilesParser sp = new SmilesParser(); IAtomContainer atomContainer = sp.ParseSmiles("CC(=O)OC(=O)C"); // acetic acid anhydride IAtomContainer SMILESquery = sp.ParseSmiles("CC"); // ethylene IQueryAtomContainer query = QueryAtomContainerCreator.CreateBasicQueryContainer(SMILESquery); bool isSubstructure = universalIsomorphismTester.IsSubgraph(atomContainer, query); #endregion }
void Main() { UniversalIsomorphismTester universalIsomorphismTester = null; #region 1 SmilesParser sp = new SmilesParser(); IAtomContainer atomContainer = sp.ParseSmiles("CC(=O)OC(=O)C"); QueryAtomContainer query = SMARTSParser.Parse("C*C"); bool queryMatch = universalIsomorphismTester.IsSubgraph(atomContainer, query); #endregion #region 2 SMARTSParser parser = new SMARTSParser(new StringReader("C*C")); ASTStart start = parser.Start(); #endregion }
public void TestStrictSMARTS() { var sp = new SmilesParser(); var atomContainer = sp.ParseSmiles("CC(=O)OC(=O)C"); // acetic acid anhydride var query = new QueryAtomContainer(); var atom1 = new SymbolQueryAtom() { Symbol = "N" }; var atom2 = new SymbolQueryAtom() { Symbol = "C" }; query.Atoms.Add(atom1); query.Atoms.Add(atom2); query.Bonds.Add(new NCDK.Isomorphisms.Matchers.OrderQueryBond(atom1, atom2, BondOrder.Double)); Assert.IsFalse(uiTester.IsSubgraph(atomContainer, query)); }
public void TestIsSubgraphIAtomContainerIAtomContainer() { var mol = TestMoleculeFactory.MakeAlphaPinene(); var frag1 = TestMoleculeFactory.MakeCyclohexene(); //one double bond in ring AtomContainerManipulator.PercieveAtomTypesAndConfigureAtoms(mol); AtomContainerManipulator.PercieveAtomTypesAndConfigureAtoms(frag1); Aromaticity.CDKLegacy.Apply(mol); Aromaticity.CDKLegacy.Apply(frag1); if (standAlone) { Console.Out.WriteLine("Cyclohexene is a subgraph of alpha-Pinene: " + uiTester.IsSubgraph(mol, frag1)); } else { Assert.IsTrue(uiTester.IsSubgraph(mol, frag1)); } }