CSMSL.IO.OMSSA.OmssaModification.ParseModificationLine C# (CSharp) Method

ParseModificationLine() public static method

public static ParseModificationLine ( string line ) : int>>.IEnumerable
line string
return int>>.IEnumerable
        public static IEnumerable<Tuple<Modification, int>> ParseModificationLine(string line)
        {
            foreach (Tuple<string, int> mod in SplitModificationLine(line))
            {
                string modName = mod.Item1;
                Modification groupedMod;
                if (GroupedModifications.TryGetValue(modName, out groupedMod))
                {
                    yield return new Tuple<Modification, int>(groupedMod, mod.Item2);
                }
                else
                {
                    OmssaModification modification;
                    if (TryGetModification(modName, out modification))
                    {
                        yield return new Tuple<Modification, int>(modification, mod.Item2);
                    }
                    else
                    {
                        throw new KeyNotFoundException("Modification: " + mod.Item1 + " is not found in the modification dictionary");
                    }
                }
            }
        }

Usage Example

Example #1
0
        /// <summary>
        /// Parse and apply an omssa modification line to this current amino acid polymer
        /// </summary>
        /// <param name="aap"></param>
        /// <param name="omssaModificationLine"></param>
        /// <returns></returns>
        public static AminoAcidPolymer SetModifications(this AminoAcidPolymer aap, string omssaModificationLine)
        {
            if (string.IsNullOrEmpty(omssaModificationLine))
            {
                return(aap);
            }

            foreach (Tuple <Modification, int> modPosition in OmssaModification.ParseModificationLine(omssaModificationLine))
            {
                int pos = modPosition.Item2;
                if (pos == 0)
                {
                    aap.NTerminusModification = modPosition.Item1;
                }
                else if (pos == aap.Length + 1)
                {
                    aap.CTerminusModification = modPosition.Item1;
                }
                else
                {
                    aap.SetModification(modPosition.Item1, pos);
                }
            }

            return(aap);
        }
All Usage Examples Of CSMSL.IO.OMSSA.OmssaModification::ParseModificationLine