Пример #1
0
        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);
                        }
                    }
                }
            }
        }
Пример #2
0
        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);
        }