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

Data

Load data

# load and process data
data <- 
  # load file included in isoorbi package
  system.file(package = "isoorbi", "extdata", "testfile_flow.isox") |>
  orbi_read_isox() |>
  orbi_simplify_isox() |>
  # define data block where signal is stable (plateau)
  orbi_define_block_for_flow_injection(start_time.min = 0.1, end_time.min = 0.9) |>
  # flag extreme TICxIT values
  orbi_flag_outliers(agc_fold_cutoff = 2)
 [158ms] orbi_read_isox() loaded 6449 peaks for 1 compound (HSO4-) with 5
isotopocules (M0, 33S, 17O, 34S, and 18O) from testfile_flow.isox
 [223ms] orbi_read_isox() read .isox data from 1 file
 [5ms] orbi_simplify_isox() kept columns filepath, filename, scan.no,
time.min, compound, isotopocule, ions.incremental, tic, and it.ms
 [158ms] orbi_define_block_for_flow_injection() added a new block (0.1 to 0.9
min) to 3 files
 [68ms] orbi_flag_outliers() confirmed that none of the 1290 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, in 6
data groups (based on filename, block, and segment)

Calculations

Ratios

# basepeak & ratios
data_w_basepeak <- 
  data |>
  orbi_define_basepeak("M0")
 [67ms] orbi_define_basepeak() set M0 as the ratio denominator and calculated
5159 ratios for 4 isotopocules/base peak (33S, 17O, 34S, and 18O)
# ratio summaries
data_summary <- 
  data_w_basepeak |>
  orbi_summarize_results(ratio_method = "sum")
 [95ms] orbi_summarize_results() summarized ratios from 4139 peaks (excluding
0 flagged peaks; excluding 1020 unused peaks) using the sum method and grouping
the data by filename, compound, basepeak, isotopocule, block, sample_name,
segment, data_group, and data_type

Figures

Visualize data

orbi_plot_raw_data(data, y = ions.incremental, y_scale = "log")
Ions of isotopocules in time

Ions of isotopocules in time

Raw ratios

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

Isotopocule ratios vs M0

Ratios for 18O

fig <- 
  data_summary |>
  filter(isotopocule == "18O") |>
  # plot
  ggplot() +
  aes(
    x = filename,
    y = ratio, ymin = ratio - ratio_sem, ymax = ratio + ratio_sem,
    color = filename, shape = filename
  ) +
  geom_pointrange() +
  scale_color_brewer(palette = "Dark2") +
  # theme definitions
  theme_bw() +
  theme(
    text = element_text(size = 16),
    panel.grid = element_blank()
  ) +
  # labels
  labs(
    y = expression("ratio ("^18*O/M0*")")
  )
fig
Isotopocule ratios 18O vs M0

Isotopocule ratios 18O vs M0