--- tags: Source --- # 1.3. PeakPicking_preBW.R ``` #load libraries library(xcms) library(CMSITools) library(tidyverse) library(stringi) library(StatTools) register(bpstart(MulticoreParam(12))) #in BIANCA, in Windows SnowParam source('/tmp/src/getFilesMAX.R') # Summary: # This scripts performs Peak Picking using xcms, based on IPO fitted parameters # Inputs: # mzml files location LCMS_filepath <- "" #based on parameters optimized using PeakPicking_wIPO.R peakwidth <- c(8.05,61.11) ppm <- 20.68 mzdiff <- 0.00174353 prefilter <- c(3,1000) noise <- 500 # Outputs: # directory path to the peak picking file PP_filepath <- "" # name of the peak picking file filename <- "" # Before in pipeline: # - PeakPicking_wIPO.R # Next in pipeline: # - IPO_RTcorrection.R #to optimize several parameters for alignment using Obiwarp method. #Otherwise, use PeakGroup method in # - BWalignment.R #to align peaks based on multiple bandwidth values filepath <- file.path(filepath, filename) LCMS_data <- getFilesMAX(files_location) #----------------------------------define groups------------------------------------------------------------------------- LCMS_data$group <- rep(NA,nrow(LCMS_data)) LCMS_data$group[LCMS_data$sample %>% grep("sQC",.)] <- "sQC" LCMS_data$group[LCMS_data$sample %>% grep("ltQC",.)] <- "ltQC" LCMS_data$group[-c(LCMS_data$sample %>% grep("sQC",.), LCMS_data$sample %>% grep("ltQC",.))] <- "sample" LCMS_data_names <- LCMS_data %>% extractNames() #----------------------------------peakpicking--------------------------------------------------------------------------- pd <- data.frame( sample_name = sub(basename(LCMS_data_names), pattern = ".mzML", replacement = "", fixed = TRUE), sample_group = LCMS_data$group, stringsAsFactors = FALSE) # TEAM: not sure if the rt parameter here should be changed raw_data <- readMSData(files = LCMS_data_names, pdata = new("NAnnotatedDataFrame", pd), mode = "onDisk") %>% filterRt(.,rt = c(0, 630)) #for HILIC and c(0,930) for RP, or depending on the length of the column #if there is any missing spectra raw_data <- filterEmptySpectra(raw_data) #if necessary to filter based on the Mz, too raw_data <- filterMz(raw_data, c(0, 1000)) # runs the peak picking cwp <- CentWaveParam(peakwidth=peakwidth,ppm=ppm, mzdiff=mzdiff, prefilter=prefilter, noise=noise) xdata <- findChromPeaks(raw_data, param = cwp) saveRDS(xdata, file=filepath) ``` version 1.1 - Stef - Dec 2, 2021