using System; using System.Collections.Generic; using System.Linq; using System.Text; using NUnit.Framework; using ChemAxon.NET.IKVM.Chemistry; using ChemAxon.NET.API; using ChemAxon.NET.IKVM.RGroupDecomposition; namespace ChemAxon.NET.UnitTest.API.Examples.Chemistry.RGroup { public class RGroupExample { public void RGroup_Example() { var targets = new List<IJChemMolecule>(); targets.Add(MainFactory.Chemistry.CreateMolecule("benzene")); targets.Add(MainFactory.Chemistry.CreateMolecule("methylpropane")); targets.Add(MainFactory.Chemistry.CreateMolecule("hexane")); IEnumerable<IJChemMolecule[]> rGroupResult = DoRGroupDecomp(targets); Console.WriteLine("R-group result:"); foreach (IJChemMolecule[] rGroupRow in rGroupResult) { foreach (IJChemMolecule molecule in rGroupRow) Console.Write(string.Format("\t{0}", molecule.Formula)); Console.WriteLine(); } } public IEnumerable<IJChemMolecule[]> DoRGroupDecomp(IEnumerable<IJChemMolecule> targets) { IRGroupDecomposition rGroup = MainFactory.Chemistry.CreateRGroupDecomposition(targets); rGroup.Options.IncludeHeader = true; rGroup.Options.IncludeNonMatchingTarget = false; IJChemMolecule query = MainFactory.Chemistry.CreateMolecule("methane"); IEnumerable<IJChemMolecule[]> rGroupResult = rGroup.Decompose(query); return rGroupResult; } } }