public static IEnumerable <IHashableFeature> GetNFlankAny1AndNTermEAny2(NEC nec, string nflankAny, string nTermEAny) { NFlank nFlankFeature = NFlank.GetInstance(); string nFlankRegion = nFlankFeature.FeatureFunction(nec); if (-1 == nFlankRegion.IndexOfAny(nflankAny.ToCharArray())) { yield break; } NTermE nTermEFeature = NTermE.GetInstance(); string nTermERegion = nTermEFeature.FeatureFunction(nec); if (-1 == nTermERegion.IndexOfAny(nTermEAny.ToCharArray())) { yield break; } AnyIn anyFeature1 = AnyIn.GetInstance(nflankAny, nFlankFeature); AnyIn anyFeature2 = AnyIn.GetInstance(nTermEAny, nTermEFeature); And andFeature = And.GetInstance(anyFeature1, anyFeature2); Debug.Assert((bool)andFeature.Evaluate(nec)); // real assert - must only generate true features yield return(andFeature); }
public static IEnumerable <IHashableFeature> GetAndNFlankNotNTermEEnumeration(NEC nec) { NFlank nFlankFeature = NFlank.GetInstance(); string nFlankRegion = nFlankFeature.FeatureFunction(nec); Set <string> aaSeqSet = Set <string> .GetInstance(SpecialFunctions.SubstringEnumeration(nFlankRegion, 1)); foreach (string aaSeq in aaSeqSet) { Not notFeature = Not.GetInstance(In.GetInstance(aaSeq, NTermE.GetInstance())); //Only generate the feature when the amino acid is not in NTermE if ((bool)notFeature.Evaluate(nec)) { In inFeature = In.GetInstance(aaSeq, nFlankFeature); And andFeature = And.GetInstance(inFeature, notFeature); Debug.Assert((bool)andFeature.Evaluate(nec)); // real assert - must only generate true features yield return(andFeature); } } }