private IEnumerable <IList <char> > FindPeptides(double mass, char[] ignoreAA) { int index = (int)(mass / Precision); string[] combinations = emptyArray; if (Dictionary.ContainsKey(index)) { combinations = Dictionary[index].Split(','); } foreach (string comb in combinations) { bool keepIt = true; foreach (char c in comb) { if (ignoreAA.Contains(c)) { keepIt = false; } } if (keepIt) { double SeqMass = AminoAcidMasses.GetMass(comb); if (Math.Abs(SeqMass - mass) < Precision) { foreach (IList <char> str in new Permutations <char>(new List <char>(comb), GenerateOption.WithoutRepetition)) { yield return(str); } } } } }
public List <string> GetPermutations(double mass) { List <string> results = new List <string>(); int index = (int)(mass / Precision); string[] combinations = emptyArray; if (Dictionary.ContainsKey(index)) { combinations = Dictionary[index].Split(','); } foreach (string comb in combinations) { double SeqMass = AminoAcidMasses.GetMass(comb); if (Math.Abs(SeqMass - mass) < Precision) { foreach (IList <char> str in new Permutations <char>(new List <char>(comb), GenerateOption.WithoutRepetition)) { results.Add(string.Concat(str)); } } } return(results); }