Skip to contents




Introduction

This document demonstrates the identification of the intact monoclonal antibody Bevacizumab using LC-HRMS data. The files consist of a triplicate QC and a triplicate sample to be identified.

basename(files)
[1] "20240815_67_BVCZ_1.d"     "20240815_67_BVCZ_2.d"    
[3] "20240815_67_BVCZ_3.d"     "QC_BVCZ_1608_2_5mgmL_1.d"
[5] "QC_BVCZ_1608_2_5mgmL_2.d" "QC_BVCZ_1608_2_5mgmL_3.d"

Processing Engine

The StreamFind package provides a flexible and powerful framework for processing mass spectrometry data. In this example, we will use the MassSpecEngine class to handle the LC-HRMS data. The engine will be initialized with the raw files, and we will specify that the data should be centroided and processed at level 1. Note that The msconvert from ProteoWizard was used in the background to convert the files to the open format mzML.

# Starts engine for identification
ms <- StreamFind::MassSpecEngine$new(
  metadata = list(name = "Identification of Bevacizumab"),
  analyses = files,
  centroid = TRUE,
  levels = 1
)

# Assign analysis replicate groups
ms$Analyses$replicates <- c(
  rep("Sample", 3),
  rep("QC_2.5", 3)
)

ms$Analyses$info[, c(1:2, 4, 5)]
                 analysis replicate   type polarity
                   <char>    <char> <char>   <char>
1:     20240815_67_BVCZ_1    Sample     MS positive
2:     20240815_67_BVCZ_2    Sample     MS positive
3:     20240815_67_BVCZ_3    Sample     MS positive
4: QC_BVCZ_1608_2_5mgmL_1    QC_2.5     MS positive
5: QC_BVCZ_1608_2_5mgmL_2    QC_2.5     MS positive
6: QC_BVCZ_1608_2_5mgmL_3    QC_2.5     MS positive

Workflow

# Load Total Ion Chromatograms (TIC) for detecting the API
ms$run(MassSpecMethod_LoadChromatograms_native(chromatograms = "TIC"))

# Smooth TIC chromatograms
ms$run(MassSpecMethod_SmoothChromatograms_movingaverage(windowSize = 5))
ms$plot_chromatograms(colorBy = "replicates")
# Find peaks in the TIC chromatograms
ms$run(
  MassSpecMethod_FindChromPeaks_LocalMaxima(
    minWidth = 5,
    maxWidth = 10,
    minHeight = 10E6
  )
)
ms$plot_chromatograms_peaks(colorBy = "replicates+targets")
# Load spectra based on integrated chromatograms
ms$run(
  MassSpecMethod_LoadSpectra_chrompeaks(
    mzmin = 2500,
    mzmax = 3700,
    levels = 1,
    minIntensity = 1000
  )
)
# plots only the spectra of the first analysis
plot_spectra(ms$Spectra, analyses = 1, interactive = FALSE)

plot-spectra-static

# Calculate spectra charges for de-clustering and deconvolution
ms$run(
  MassSpecMethod_CalculateSpectraCharges_native(
    onlyTopScans = TRUE,
    topScans = 6,
    roundVal = 25,
    relLowCut = 0.2,
    absLowCut = 0,
    top = 10
  )
)
# Deconvolute spectra to obtain mass values
ms$run(
  MassSpecMethod_DeconvoluteSpectra_native(
    clustVal = 0.001,
    window = 25
  )
)

# Smooth deconvoluted spectra
ms$run(
  MassSpecMethod_SmoothSpectra_savgol(
    fl = 141,
    forder = 4,
    dorder = 0
  )
)
plot_spectra(ms$Spectra, analyses = 1, interactive = FALSE)

plot-spectra-static-deconvoluted

# Find spectra peaks to verify mass values and evaluate identity
ms$run(
  MassSpecMethod_FindSpectraMaxima_native(
    minWidth = 10,
    maxWidth = 60,
    minHeight = 50000
  )
)
# Plot spectra peaks for the first analysis
plot_spectra_peaks(
  ms$Spectra,
  analyses = 1,
  colorBy = "analyses+targets",
  interactive = FALSE
)

plot-spectra-static-maxima