public PFindModification ParseModification(Dictionary <string, string> parameters)
        {
            var result = new PFindModification();

            result.StaticModification.Modification  = parameters["Fixed_modifications"];
            result.DynamicModification.Modification = parameters["Variable_modifications"];

            return(result);
        }
        protected void ModifySequence(IdentifiedPeptide mp, Dictionary <int, string> modifications, PFindModification mm)
        {
            var positions = (from m in modifications
                             where !mm.StaticModification.ModificationMap.ContainsValue(m.Value)
                             orderby m.Key descending
                             select m.Key).ToList();

            foreach (var pos in positions)
            {
                string mod = modifications[pos];
                if (this.ModificationCharMap.ContainsKey(mod))
                {
                    if (pos == mp.Sequence.Length)
                    {
                        mp.Sequence = mp.Sequence + this.ModificationCharMap[mod].ToString();
                    }
                    else
                    {
                        mp.Sequence = mp.Sequence.Insert(pos + 1, this.ModificationCharMap[mod].ToString());
                    }
                }
                else
                {
                    throw new Exception(MyConvert.Format("Cannot find dynamic modification {0} definition", mod));
                }
            }
        }
        protected void AssignModification(IIdentifiedSpectrum mph, Dictionary <int, string> modifications, PFindModification mm)
        {
            var mods = (from m in modifications
                        select m.Value).Distinct().ToArray();

            mph.Modifications = string.Join("; ", mods);
        }