OrgMassSpecR
is a package for organic/biological mass
spectrometry. This vignette demonstrates some of the functions in a
larger context than the help file examples.
First, load the package.
Loading required package: grid
The functions MonoisotopicMass
and
IsotopicDistribution
assist in identifying unknown mass
spectra, or in confirming peak identities in known spectra. The
monoisotopic mass of DDE, a breakdown product of the pesticide DDT, is
calculated as follows.
[1] 315.938
The monoisotopic masses due to successive losses of chlorine, which
are observed in the electron impact mass spectrum of DDE, are calculated
by repeated calls to MonoisotopicMass
.
[1] 280.9692
[1] 246.0003
The monoisotopic mass of 13C12 labeled DDE (an
internal/surrogate standard for the quantification of DDE) is calculated
using the list component x
.
[1] 327.9783
The isotopic distribution of DDE is simulated using
IsotopicDistribution
. This function uses a binning approach
based on sample
, where the probabilities are the natural
abundances of the isotopes. The output of this function is a table, but
it is often helpful to plot the distribution.
mz intensity percent
1 315.94 2850 78.77
2 316.94 414 11.44
3 317.94 3618 100.00
4 318.94 596 16.47
5 319.93 1766 48.81
6 320.94 269 7.44
7 321.93 393 10.86
8 322.93 59 1.63
9 323.93 30 0.83
10 324.93 5 0.14
# plot
library(lattice)
print(xyplot(percent ~ mz,
data = dde.dist,
type = "h",
xlab = "m/z",
ylab = "intensity (%)",
main = "Isotopic Distribution, DDE")
)
The similarity between two mass spectra can be examined using
SpectrumSimilarity
. This function makes a head-to-tail plot
of the spectra and calculates a mass spectral similarity score based on
the dot product of the two mass-aligned intensity vectors. See the help
file for an example.
The following functions assist in setting up multiple reaction monitoring (MRM) assays for the quantification of proteins. These assays require the selection of “signature peptides” (1,2).
Peptides resulting from a protein digestion with trypsin or pepsin
can be prediced using Digest
.
peptide start stop mc mz1 mz2 mz3
1 DAHK 1 4 0 470.236 235.622 157.417
2 SEVAHR 5 10 0 698.358 349.683 233.458
3 FK 11 12 0 294.181 147.594 98.732
4 DLGEENFK 13 20 0 951.442 476.225 317.819
5 ALVLIAFAQYLQQCPFEDHVK 21 41 0 2490.285 1245.646 830.767
6 LVNEVTEFAK 42 51 0 1149.615 575.311 383.877
Next, peptides between 5 and 12 amino acids are selected (the range is somewhat arbitrary; small peptides may not be specific to the target protein, large peptides may have low sensitivity).
peptide start stop mc mz1 mz2 mz3
2 SEVAHR 5 10 0 698.358 349.683 233.458
4 DLGEENFK 13 20 0 951.442 476.225 317.819
6 LVNEVTEFAK 42 51 0 1149.615 575.311 383.877
8 SLHTLFGDK 65 73 0 1017.536 509.272 339.850
9 LCTVATLR 74 81 0 933.519 467.263 311.844
10 ETYGEMADCCAK 82 93 0 1434.533 717.770 478.849
The filtered table can be used to screen a digest for the presence of
these peptides by operating the triple quadrupole instrument in Q1
selected ion mode with Q2 and Q3 open. Assuming peptides YLYEIAR and
AEFAEVSK are found (the number is kept small for this example), the next
step is to determine their most intense MRM transitions. The b- and
y-ions of the peptides are calculated using
FragmentPeptide
.
ms1seq ms1z1 ms1z2 ms1z3 ms2seq ms2type ms2mz
1 YLYEIAR 927.493 464.25 309.836 Y [b1]1+ 164.071
2 YLYEIAR 927.493 464.25 309.836 YL [b2]1+ 277.155
3 YLYEIAR 927.493 464.25 309.836 YLY [b3]1+ 440.218
4 YLYEIAR 927.493 464.25 309.836 YLYE [b4]1+ 569.261
5 YLYEIAR 927.493 464.25 309.836 YLYEI [b5]1+ 682.345
6 YLYEIAR 927.493 464.25 309.836 YLYEIA [b6]1+ 753.382
This table can be used to screen the MRM transitions. The table is formatted to facilitate easy selection of the appropriate precursor ion and product ion charge states.
Note: both Digest
and FragmentPepetide
by
default use IAA=TRUE
, specifying iodoacetylated
cysteine.
Once the signature peptides for the target protein have been determined, MRM transitions for the internal standard peptides must be set up. Generally, either synthetic 13C-labeled peptides or 15N-labeled proteins are used. 15N-labeled proteins are added prior to the digestion to yield 15N-labeled peptides.
The MRM transitions for YLYEIAR with the terminal arginine 13C-labeled are calculated as follows.
c13.labeled <- FragmentPeptide("YLYEIAr", custom = list(code = "r",
mass = MonoisotopicMass(formula = list(C=6, H=12, N=4, O=1),
isotopes = list(C=13.0033548378))))
head(c13.labeled)
ms1seq ms1z1 ms1z2 ms1z3 ms2seq ms2type ms2mz
1 YLYEIAr 933.514 467.26 311.843 Y [b1]1+ 164.071
2 YLYEIAr 933.514 467.26 311.843 YL [b2]1+ 277.155
3 YLYEIAr 933.514 467.26 311.843 YLY [b3]1+ 440.218
4 YLYEIAr 933.514 467.26 311.843 YLYE [b4]1+ 569.261
5 YLYEIAr 933.514 467.26 311.843 YLYEI [b5]1+ 682.345
6 YLYEIAr 933.514 467.26 311.843 YLYEIA [b6]1+ 753.382
The MRM transitions for fully 15N-labeled YLYEIAR are
calculated as follows. Note that FragmentPeptide
and
Digest
do not label the nitrogens incorporated into the
peptide due to iodoacetamide treatment (when IAA = TRUE and 15N =
TRUE).
ms1seq ms1z1 ms1z2 ms1z3 ms2seq ms2type ms2mz
1 YLYEIAR 937.464 469.236 313.159 Y [b1]1+ 165.068
2 YLYEIAR 937.464 469.236 313.159 YL [b2]1+ 279.149
3 YLYEIAR 937.464 469.236 313.159 YLY [b3]1+ 443.209
4 YLYEIAR 937.464 469.236 313.159 YLYE [b4]1+ 573.249
5 YLYEIAR 937.464 469.236 313.159 YLYEI [b5]1+ 687.330
6 YLYEIAR 937.464 469.236 313.159 YLYEIA [b6]1+ 759.364
An acquired full-scan peptide spectrum can be plotted using
PeptideSpectrum
. The peptide sequence must be known to
determine the fragment ion identities (i.e., the function does not
sequence the peptide de novo). This function was created to
catalog full-scan mass spectra and double check that the most intense
ions observed by MRM screens correspond to the most intense ions
observed in full scan mode. See the help file for an example.
Before use as an internal standard, the 15N incorporation in the expressed protein should be measured. The incorporation should be high enough that the isotopic envelop of the internal standard signature peptide does not overlap with that of the corresponding unlabeled signature peptide.
The isotopic distribution of 15N labeled peptides is
calculated using IsotopicDistributionN
.
theoretical.dist <- IsotopicDistributionN("YEVQGEVFTKPQLWP", incorp = 0.99)
print(xyplot(percent ~ mz,
data = theoretical.dist,
type = "h",
xlab = "m/z",
ylab = "intensity (%)",
main = "Theoretical Isotopic Distribution,\n YEVQGEVFTKPQLWP, 99% 15N")
)
The theoretical distribution is compared to the measured
distribution. In this example, visual inspection shows the incorporation
in the peptide, and by extension the protein, is about 99% (although in
a real experiment more than one peptide should be measured to confirm
the results). See the IsotopicDistributionN
help file for
an example calculating and plotting a range of 15N
incorporations.