public static void PerceiveDativeBonds(IReaction reaction) { foreach (var mol in ReactionManipulator.GetAllMolecules(reaction)) { AtomContainerManipulator.PerceiveDativeBonds(mol); } }
/// <summary> /// get all Molecules object from a set of Reactions. /// </summary> /// <param name="set">The set of reaction to inspect</param> /// <returns>The IAtomContanerSet</returns> public static IChemObjectSet <IAtomContainer> GetAllMolecules(IReactionSet set) { var moleculeSet = set.Builder.NewAtomContainerSet(); foreach (var reaction in set) { var molecules = ReactionManipulator.GetAllMolecules(reaction); foreach (var ac in molecules) { bool contain = false; foreach (var atomContainer in moleculeSet) { if (atomContainer.Equals(ac)) { contain = true; break; } } if (!contain) { moleculeSet.Add(ac); } } } return(moleculeSet); }
public void TestGetAllMolecules_IReaction() { var builder = ChemObjectBuilder.Instance; IReaction reaction = builder.NewReaction(); reaction.Reactants.Add(builder.NewAtomContainer()); reaction.Reactants.Add(builder.NewAtomContainer()); reaction.Reactants.Add(builder.NewAtomContainer()); reaction.Products.Add(builder.NewAtomContainer()); reaction.Products.Add(builder.NewAtomContainer()); Assert.AreEqual(5, ReactionManipulator.GetAllMolecules(reaction).Count()); }