public void TestBasicQueryAtomContainer() { var sp = CDK.SmilesParser; var atomContainer = sp.ParseSmiles("CC(=O)OC(=O)C"); // acetic acid anhydride var SMILESquery = sp.ParseSmiles("CC"); // acetic acid anhydride var query = QueryAtomContainerCreator.CreateBasicQueryContainer(SMILESquery); Assert.IsTrue(CDKMCS.IsSubgraph(atomContainer, query, true)); }
static void Main() { #region SmilesParser sp = new SmilesParser(); IAtomContainer atomContainer = sp.ParseSmiles("CC(=O)OC(=O)C"); // acetic acid anhydride IAtomContainer SMILESquery = sp.ParseSmiles("CC"); // acetic acid anhydride IQueryAtomContainer query = QueryAtomContainerCreator.CreateBasicQueryContainer(SMILESquery); bool isSubstructure = CDKMCS.IsSubgraph(atomContainer, query, true); #endregion }
public void TestAnyAtomAnyBondCase() { var sp = CDK.SmilesParser; var target = sp.ParseSmiles("O1C=CC=C1"); var queryac = sp.ParseSmiles("C1CCCC1"); var query = QueryAtomContainerCreator.CreateAnyAtomAnyBondContainer(queryac, false); Assert.IsTrue(CDKMCS.IsSubgraph(target, query, true), "C1CCCC1 should be a subgraph of O1C=CC=C1"); Assert.IsTrue(CDKMCS.IsIsomorph(target, query, true), "C1CCCC1 should be a isomorph of O1C=CC=C1"); }
public void TestIsIsomorph_IAtomContainer_IAtomContainer() { var ac1 = builder.NewAtomContainer(); ac1.Atoms.Add(builder.NewAtom("C")); var ac2 = builder.NewAtomContainer(); ac2.Atoms.Add(builder.NewAtom("C")); Assert.IsTrue(CDKMCS.IsIsomorph(ac1, ac2, true)); Assert.IsTrue(CDKMCS.IsSubgraph(ac1, ac2, true)); }
public void TestFirstArgumentMustNotBeAnQueryAtomContainer() { var sp = CDK.SmilesParser; var target = sp.ParseSmiles("O1C=CC=C1"); var queryac = sp.ParseSmiles("C1CCCC1"); var query = QueryAtomContainerCreator.CreateAnyAtomAnyBondContainer(queryac, false); try { CDKMCS.IsSubgraph(query, target, true); Assert.Fail("The UniversalIsomorphism should check when the first arguments is a QueryAtomContainer"); } catch (Exception) { // OK, it must Assert.fail! } }
public void Test2() { var mol = TestMoleculeFactory.MakeAlphaPinene(); var frag1 = TestMoleculeFactory.MakeCyclohexane(); // no double bond in ring AtomContainerManipulator.PercieveAtomTypesAndConfigureAtoms(mol); AtomContainerManipulator.PercieveAtomTypesAndConfigureAtoms(frag1); Aromaticity.CDKLegacy.Apply(mol); Aromaticity.CDKLegacy.Apply(frag1); if (standAlone) { Console.Out.WriteLine("Cyclohexane is a subgraph of alpha-Pinen: " + CDKMCS.IsSubgraph(mol, frag1, true)); } else { Assert.IsTrue(!CDKMCS.IsSubgraph(mol, frag1, true)); } }
public void TestItself() { var smiles = "C1CCCCCCC1CC"; var query = QueryAtomContainerCreator.CreateAnyAtomContainer(CDK.SmilesParser.ParseSmiles(smiles), true); var ac = CDK.SmilesParser.ParseSmiles(smiles); if (standAlone) { Console.Out.WriteLine("AtomCount of query: " + query.Atoms.Count); Console.Out.WriteLine("AtomCount of target: " + ac.Atoms.Count); } bool matched = CDKMCS.IsSubgraph(ac, query, true); if (standAlone) { Console.Out.WriteLine("QueryAtomContainer matched: " + matched); } if (!standAlone) { Assert.IsTrue(matched); } }
public void Test3() { var mol = TestMoleculeFactory.MakeIndole(); var frag1 = TestMoleculeFactory.MakePyrrole(); AtomContainerManipulator.PercieveAtomTypesAndConfigureAtoms(mol); AtomContainerManipulator.PercieveAtomTypesAndConfigureAtoms(frag1); var adder = CDK.HydrogenAdder; adder.AddImplicitHydrogens(mol); adder = CDK.HydrogenAdder; adder.AddImplicitHydrogens(frag1); Aromaticity.CDKLegacy.Apply(mol); Aromaticity.CDKLegacy.Apply(frag1); if (standAlone) { Console.Out.WriteLine("Pyrrole is a subgraph of Indole: " + CDKMCS.IsSubgraph(mol, frag1, true)); } else { Assert.IsTrue(CDKMCS.IsSubgraph(mol, frag1, true)); } }