Skip to contents
# load libraries
library(isoorbi) # for Orbitrap functions
library(dplyr) # for data wrangling

Model Peptide (MRFA)

This is an example for shot-noise analysis from Kantnerová et al. (2023).

Data

Load data

# load and process data
data <- 
  # load file included in isoorbi package
  system.file(package = "isoorbi", "extdata", "testfile_shotnoise.isox") |>
  orbi_read_isox() |>
  # check data for satellite peaks
  orbi_flag_satellite_peaks() |>
  # make sure isotopocules are present in (almost) all scans, otherwise
  # shot noise analyses can be inaccurate
  orbi_flag_weak_isotopocules(min_percent = 90) |> 
  # see if there are any AGC outliers
  orbi_flag_outliers(agc_fold_cutoff = 2)
 [153ms] orbi_read_isox() loaded 1931 peaks for 4 compounds (Alanine,
Arginine, Methionine, and Phenylalanine) with 6 isotopocules (M0, 15N, 13C, 2H,
33S, and 34S) from testfile_shotnoise.isox
 [225ms] orbi_read_isox() read .isox data from 1 file
 [65ms] orbi_flag_satellite_peaks() flagged 33/1931 peaks in 3 isotopocules
("M0", "15N", "13C") as satellite peaks (1.7%)
 [35ms] orbi_flag_weak_isotopocules() flagged 3 of 18 isotopocules as weak
because they were NOT present in at least 90% of scans in each of the 18 data
groups (based on filename, compound, and isotopocule) → use
orbi_plot_isotopocule_coverage() to visualize them
 [27ms] orbi_flag_outliers() confirmed that none of the 114 scans are outliers
based on 2 fold AGC cutoff, i.e. based on scans below 1/2 and above 2 times the
average number of ions tic * it.ms in the Orbitrap analyzer

This indicates that there were a few satellite peaks and weak isotopocules but no outliers.

Visualize isotopocule coverage

Show the isotopocule coverage for the different amino acids, thus highlighting which isotopocules were detected in which scans. Note that 2H was highlighted as weak for Alanine, Arginine, and Phenylalanine. This is because of the high cutoff (90%) in orbi_flag_weak_isotopocules() which is appropriate for shot-noise analyses but simply for inspecting ratios it would be reasonable to examine the 2H signal at least for Alanine.

Isotopocule coverage

Isotopocule coverage

Visualize satellite peaks

Show peaks that were flagged as satellite peaks.

Satellite peaks

Satellite peaks

Visualize intensity vs time

data |> orbi_plot_raw_data(
  isotopocules = "M0", 
  y = intensity,
  y_scale = "log"
)
Isotopocule intensity for M0 ion

Isotopocule intensity for M0 ion

Shot noise

Calculations

# calculate ratios vs basepeak
data_w_bp <- 
  data |>
  orbi_define_basepeak("M0")
 [40ms] orbi_define_basepeak() set M0 as the ratio denominator and calculated
1458 ratios for 5 isotopocules/base peak (15N, 13C, 2H, 33S, and 34S)
# calculate shot noise
shot_noise <-
  data_w_bp |>
  orbi_analyze_shot_noise()
 [19ms] orbi_analyze_shot_noise() analyzed the shot noise for 1254 peaks
(excluding 204 flagged peaks)
# export shot noise to an Excel file
shot_noise |>
  orbi_export_data_to_excel("shot_noise.xlsx") 
 [286ms] orbi_export_data_to_excel() exported dataset (1254 rows, 33 columns)
to shot_noise.xlsx

Table

# example of the first few rows of the shot-noise calculations
shot_noise |>
  arrange(compound, isotopocule, scan.no) |>
  select(compound, scan.no, time.min, isotopocule,
         ratio, ratio_rel_se.permil, shot_noise.permil) |>
  head(10) |>
  knitr::kable()
compound scan.no time.min isotopocule ratio ratio_rel_se.permil shot_noise.permil
Alanine 1 0.059 15N 0.0062453 NaN 73.71127
Alanine 2 0.102 15N 0.0060919 12.43207 52.42764
Alanine 3 0.146 15N 0.0068807 37.74616 42.08467
Alanine 4 0.189 15N 0.0059526 32.61878 36.78579
Alanine 5 0.233 15N 0.0060549 26.57095 32.90351
Alanine 6 0.277 15N 0.0055040 29.99353 30.32862
Alanine 7 0.320 15N 0.0060244 25.50106 28.18264
Alanine 8 0.364 15N 0.0065182 23.43771 26.31067
Alanine 9 0.408 15N 0.0064846 21.36449 24.76418
Alanine 10 0.451 15N 0.0061980 19.10467 23.50447

Visualize ratios vs time

data_w_bp |> orbi_plot_raw_data(y = ratio)
Isotopocule ratios vs M0

Isotopocule ratios vs M0

Visualize shot noise

shot_noise |> orbi_plot_shot_noise()
amino acids shotnoise

amino acids shotnoise