public void WriteModification(IMass modification, ModificationSites sites, bool fixedModification = true) { if (CurrentStage != Stage.SearchSummary) { throw new ArgumentException("You must be in the Search Summary stage to write modifications"); } foreach (ModificationSites singleSite in sites.GetActiveSites()) { double basemass = 0; if (singleSite >= ModificationSites.NPep) { _writer.WriteStartElement("terminal_modification"); if (singleSite.HasFlag(ModificationSites.NPep) || singleSite.HasFlag(ModificationSites.NProt)) { _writer.WriteAttributeString("terminus", "N"); basemass += AminoAcidPolymer.DefaultNTerminus.MonoisotopicMass; } else { _writer.WriteAttributeString("terminus", "C"); basemass += AminoAcidPolymer.DefaultCTerminus.MonoisotopicMass; } _writer.WriteAttributeString("protein_terminus", (singleSite.HasFlag(ModificationSites.NProt) || singleSite.HasFlag(ModificationSites.ProtC)) ? "Y" : "N"); } else { string letter = Enum.GetName(typeof(ModificationSites), singleSite); AminoAcid aa = AminoAcid.GetResidue(letter); _writer.WriteStartElement("aminoacid_modification"); _writer.WriteAttributeString("aminoacid", letter); basemass += aa.MonoisotopicMass; } double massshift = modification.MonoisotopicMass; _writer.WriteAttributeString("variable", (fixedModification) ? "N" : "Y"); _writer.WriteAttributeString("mass", (basemass + massshift).ToString()); _writer.WriteAttributeString("massdiff", massshift.ToString()); _writer.WriteAttributeString("description", modification.ToString()); _writer.WriteEndElement(); } }
static void Main(string[] args) { Loaders.LoadElements("ok.txt"); List <char> aminoAcidsToConsider = new List <char>() { 'G', 'A', 'S', 'P', 'V', 'T', 'C', 'I', 'L', 'N', 'D', 'Q', 'K', 'E', 'M', 'H', 'F', 'R', 'Y', 'W' }; List <Tuple <AminoAcid, AminoAcid, double> > tuples = new List <Tuple <AminoAcid, AminoAcid, double> >(); foreach (var ok in aminoAcidsToConsider) { var aa1 = AminoAcid.GetResidue(ok); foreach (var ok2 in aminoAcidsToConsider) { var aa2 = AminoAcid.GetResidue(ok2); var diff = aa2.MonoisotopicMass - aa1.MonoisotopicMass; var tuple = new Tuple <AminoAcid, AminoAcid, double>(aa1, aa2, diff); tuples.Add(tuple); } } // IGNORE ALL ZERO MASSES AND SUBSTITUTIONS TO ISOLEUCINE tuples = tuples.OrderBy(b => b.Item3).Where(b => b.Item3 != 0).ToList(); Console.WriteLine("FOR EXCEL"); double prevDiff = double.MinValue; foreach (var ok in tuples) { if (prevDiff > ok.Item3 - tol && prevDiff < ok.Item3 + tol) { Console.Write(" or " + ok.Item1.Name + "->" + ok.Item2.Name); } else { Console.Write("\n" + ok.Item3 + ";" + ok.Item1.Name + "->" + ok.Item2.Name); prevDiff = ok.Item3; } } Console.WriteLine("\n\nFOR PTMLIST"); foreach (var ok in tuples) { Console.WriteLine("ID " + ok.Item1.Name + "->" + ok.Item2.Name); Console.WriteLine("FT MOD_RES"); Console.WriteLine("TG " + ok.Item1.Name); Console.WriteLine("PP Anywhere"); Console.WriteLine("MM " + ok.Item3); Console.WriteLine("//"); } Console.WriteLine("\n\nFOR EXCEL"); aminoAcidsToConsider.Reverse(); foreach (var ok in aminoAcidsToConsider) { var aa1 = AminoAcid.GetResidue(ok); Console.WriteLine(-aa1.MonoisotopicMass + ";" + aa1.Name + " not here"); } Console.WriteLine("\n\nFOR PTMLIST"); foreach (var ok in aminoAcidsToConsider) { var aa1 = AminoAcid.GetResidue(ok); Console.WriteLine("ID " + aa1.Name + " not here"); Console.WriteLine("FT MOD_RES"); Console.WriteLine("TG " + aa1.Name); Console.WriteLine("PP Anywhere"); Console.WriteLine("MM -" + aa1.MonoisotopicMass); Console.WriteLine("//"); } Console.Read(); }
public void GetResidueBy3LetterSymbol() { AminoAcid aa = AminoAcid.GetResidue("Ala"); Assert.AreEqual(aa.Name, "Alanine"); }
public void GetResidueByName() { AminoAcid aa = AminoAcid.GetResidue("Alanine"); Assert.AreEqual(aa.Name, "Alanine"); }
public void GetResidueByCharacterString() { AminoAcid aa = AminoAcid.GetResidue("A"); Assert.AreEqual(aa.Name, "Alanine"); }