/// <summary>
 ///    Returns the distinct name of all well defined molecules that enable a process (Enzyme, Transport or Protein name)
 /// </summary>
 public virtual IEnumerable <string> AllEnablingMoleculeNames()
 {
     return(AllProcessSelectionGroups.SelectMany(x => x.AllEnablingMoleculeNames()).Distinct());
 }
 public virtual IEnumerable <IReactionMapping> AllEnabledProcesses()
 {
     return(AllProcessSelectionGroups.SelectMany(x => x.AllEnabledProcesses()));
 }
 /// <summary>
 ///    returns the name of all molecules that will be created due to the active processes defined for a given protein
 /// </summary>
 public virtual IEnumerable <string> AllInducedMoleculeNames(IndividualMolecule molecule)
 {
     return(AllProcessSelectionGroups.SelectMany(x => x.AllInducedMoleculeNames(molecule)).Distinct());
 }