public PeptideModificationState GetTrueModifications(HashSet <string> labelModificationSet) { PeptideModificationState result = GetFreshCopy(Length); result.SetNTermModification(GetNTermModification()); result.SetCTermModification(GetCTermModification()); for (int i = 0; i < Length; i++) { ushort m = GetModificationAt(i); if (m == ushort.MaxValue || labelModificationSet.Contains(Tables.modificationList[m].Title)) { result.SetModificationAt(i, ushort.MaxValue); } else { result.SetModificationAt(i, GetModificationAt(i)); } } return(result); }
public PeptideModificationState GetLabelModifications(ushort[] fixedMods, string sequence, HashSet <string> labelModificationSet) { PeptideModificationState result = GetFreshCopy(Length); for (int i = 0; i < Length; i++) { ushort m = GetModificationAt(i); if (m != ushort.MaxValue && labelModificationSet.Contains(Tables.modificationList[m].Title)) { result.SetModificationAt(i, GetModificationAt(i)); } else { result.SetModificationAt(i, ushort.MaxValue); } } foreach (ushort fixMod in fixedMods) { if (labelModificationSet.Contains(Tables.modificationList[fixMod].Title)) { Modification mod = Tables.modificationList[fixMod]; for (int j = 0; j < mod.AaCount; j++) { char c = mod.GetAaAt(j); for (int i = 0; i < Length; i++) { if (sequence[i] == c) { result.SetModificationAt(i, mod.Index); } } } } } return(result); }