From 614b6d441830982a6128439ca298b7ffba0b5203 Mon Sep 17 00:00:00 2001 From: Brendan MacLean Date: Thu, 2 Nov 2023 11:35:39 -0700 Subject: [PATCH] Skyline: Add TMTpro reporter ions up to 18-plex (#2768) --- pwiz_tools/Skyline/Properties/Settings.cs | 37 ++++++++++++++++++---- pwiz_tools/Skyline/Test/MeasuredIonTest.cs | 17 +++++++++- 2 files changed, 47 insertions(+), 7 deletions(-) diff --git a/pwiz_tools/Skyline/Properties/Settings.cs b/pwiz_tools/Skyline/Properties/Settings.cs index 43432ee68e..7cefe7930a 100644 --- a/pwiz_tools/Skyline/Properties/Settings.cs +++ b/pwiz_tools/Skyline/Properties/Settings.cs @@ -2553,25 +2553,50 @@ public sealed class MeasuredIonList : SettingsList public static readonly MeasuredIon TMT_130_L = CreateMeasuredIon(@"TMT-130L", @"C5C'3H16N'"); public static readonly MeasuredIon TMT_130_H = CreateMeasuredIon(@"TMT-130H", @"C4C'4H16N"); public static readonly MeasuredIon TMT_131 = CreateMeasuredIon(@"TMT-131", @"C4C'4H16N'"); + // TMTpro reporter ion chemical formulas from Phil Remes and the following papers + // https://pubs.acs.org/doi/full/10.1021/acs.analchem.9b04474 + // https://www.nature.com/articles/s41592-020-0781-4 + public static readonly MeasuredIon TMT_131_L = CreateMeasuredIon(@"TMT-131L", @"C4C'4H16N'"); + public static readonly MeasuredIon TMT_131_H = CreateMeasuredIon(@"TMT-131H", @"C3C'5H16N"); + public static readonly MeasuredIon TMT_132_L = CreateMeasuredIon(@"TMT-132L", @"C3C'5H16N'"); + public static readonly MeasuredIon TMT_132_H = CreateMeasuredIon(@"TMT-132H", @"C2C'6H16N"); + public static readonly MeasuredIon TMT_133_L = CreateMeasuredIon(@"TMT-133L", @"C2C'6H16N'"); + public static readonly MeasuredIon TMT_133_H = CreateMeasuredIon(@"TMT-133H", @"C1C'7H16N"); + public static readonly MeasuredIon TMT_134_L = CreateMeasuredIon(@"TMT-134L", @"C1C'7H16N'"); + // https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8210943/ + public static readonly MeasuredIon TMT_134_H = CreateMeasuredIon(@"TMT-134H", @"C'8H16N"); + public static readonly MeasuredIon TMT_135 = CreateMeasuredIon(@"TMT-135", @"C'8H16N'"); private static MeasuredIon CreateMeasuredIon(string name, string formula) { return new MeasuredIon(name, formula, null, null, Adduct.M_PLUS); } - public override int RevisionIndexCurrent { get { return 1; } } + public override int RevisionIndexCurrent { get { return 2; } } public override IEnumerable GetDefaults(int revisionIndex) { var listDefaults = new List(new[] {NTERM_PROLINE, CTERM_GLU_ASP}); if (revisionIndex < 1) return listDefaults; - - listDefaults.AddRange(new[] + if (revisionIndex == 1) { - ITRAQ_114, ITRAQ_115, ITRAQ_116, ITRAQ_117, - TMT_126, TMT_127_L, TMT_127_H, TMT_128_L, TMT_128_H, TMT_129_L, TMT_129_H, TMT_130_L, TMT_130_H, TMT_131 - }); + listDefaults.AddRange(new[] + { + ITRAQ_114, ITRAQ_115, ITRAQ_116, ITRAQ_117, + TMT_126, TMT_127_L, TMT_127_H, TMT_128_L, TMT_128_H, TMT_129_L, TMT_129_H, TMT_130_L, TMT_130_H, TMT_131 + }); + } + else + { + listDefaults.AddRange(new[] + { + ITRAQ_114, ITRAQ_115, ITRAQ_116, ITRAQ_117, + TMT_126, TMT_127_L, TMT_127_H, TMT_128_L, TMT_128_H, TMT_129_L, TMT_129_H, TMT_130_L, TMT_130_H, + TMT_131_L, TMT_131_H, TMT_132_L, TMT_132_H, TMT_133_L, TMT_133_H, TMT_134_L, TMT_134_H, TMT_135 + }); + + } return listDefaults; } diff --git a/pwiz_tools/Skyline/Test/MeasuredIonTest.cs b/pwiz_tools/Skyline/Test/MeasuredIonTest.cs index 1dcad98da6..cf2fe495cd 100644 --- a/pwiz_tools/Skyline/Test/MeasuredIonTest.cs +++ b/pwiz_tools/Skyline/Test/MeasuredIonTest.cs @@ -39,7 +39,7 @@ public void TestMeasuredIonRoundTrip() // Verify that the masses of the TMT ions are the same as published in: // https://assets.thermofisher.com/TFS-Assets/LSG/manuals/MAN0015866_2162600_TMT_MassTagging_UG.pdf - const double delta = .000001; + double delta = .000001; Assert.AreEqual(126.127726, MeasuredIonList.TMT_126.SettingsCustomIon.MonoisotopicMassMz, delta); Assert.AreEqual(127.124761, MeasuredIonList.TMT_127_L.SettingsCustomIon.MonoisotopicMassMz, delta); Assert.AreEqual(127.131081, MeasuredIonList.TMT_127_H.SettingsCustomIon.MonoisotopicMassMz, delta); @@ -50,6 +50,21 @@ public void TestMeasuredIonRoundTrip() Assert.AreEqual(130.134825, MeasuredIonList.TMT_130_L.SettingsCustomIon.MonoisotopicMassMz, delta); Assert.AreEqual(130.141145, MeasuredIonList.TMT_130_H.SettingsCustomIon.MonoisotopicMassMz, delta); Assert.AreEqual(131.138180, MeasuredIonList.TMT_131.SettingsCustomIon.MonoisotopicMassMz, delta); + // Verify TMT pro masses the same as publications + // https://pubs.acs.org/doi/full/10.1021/acs.analchem.9b04474 + // https://www.nature.com/articles/s41592-020-0781-4 + Assert.AreEqual(131.138180, MeasuredIonList.TMT_131_L.SettingsCustomIon.MonoisotopicMassMz, delta); + delta *= 100; // Published m/z's don't agree with Skyline until 4th decimal place rounding + Assert.AreEqual(131.14450, MeasuredIonList.TMT_131_H.SettingsCustomIon.MonoisotopicMassMz, delta); + Assert.AreEqual(132.14150, MeasuredIonList.TMT_132_L.SettingsCustomIon.MonoisotopicMassMz, delta); + Assert.AreEqual(132.14785, MeasuredIonList.TMT_132_H.SettingsCustomIon.MonoisotopicMassMz, delta); + Assert.AreEqual(133.14488, MeasuredIonList.TMT_133_L.SettingsCustomIon.MonoisotopicMassMz, delta); + Assert.AreEqual(133.15120, MeasuredIonList.TMT_133_H.SettingsCustomIon.MonoisotopicMassMz, delta); + Assert.AreEqual(134.14824, MeasuredIonList.TMT_134_L.SettingsCustomIon.MonoisotopicMassMz, delta); + // https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8210943/ + delta /= 10; // Agree at 5th decimal place for 18-plex ions + Assert.AreEqual(134.154557, MeasuredIonList.TMT_134_H.SettingsCustomIon.MonoisotopicMassMz, delta); + Assert.AreEqual(135.151592, MeasuredIonList.TMT_135.SettingsCustomIon.MonoisotopicMassMz, delta); } } }