Skip to content

Commit

Permalink
Skyline: Add TMTpro reporter ions up to 18-plex (#2768)
Browse files Browse the repository at this point in the history
  • Loading branch information
brendanx67 authored Nov 2, 2023
1 parent 379c4cb commit 614b6d4
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 7 deletions.
37 changes: 31 additions & 6 deletions pwiz_tools/Skyline/Properties/Settings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2553,25 +2553,50 @@ public sealed class MeasuredIonList : SettingsList<MeasuredIon>
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<MeasuredIon> GetDefaults(int revisionIndex)
{
var listDefaults = new List<MeasuredIon>(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;
}

Expand Down
17 changes: 16 additions & 1 deletion pwiz_tools/Skyline/Test/MeasuredIonTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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);
}
}
}

0 comments on commit 614b6d4

Please sign in to comment.