public static ParseModificationLine ( string line ) : int>>.IEnumerable |
||
line | string | |
Résultat | 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");
}
}
}
}
/// <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); }