## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----echo=T, eval=F----------------------------------------------------------- # # Install LipidMS # install.packages("LipidMS", dependencies = c("Depends", "Imports")) # # # load library # library(LipidMS) # ## ----echo=T, eval=F----------------------------------------------------------- # # load LipidMS library # library(LipidMS) # # # Example data files can be downloaded from: # # # # # get mzXML files from your working directory # files <- dir()[grepl(".mzXML", dir())] # # # set the processing parameters # acquisitionmode <- c("DIA", "DDA", "MS", "MS", "MS", "DIA") # polarity <- "negative" # dmzagglom <- 15 # drtagglom <- 500 # drtclust <- c(100, 200) # minpeak <- c(5, 4) # drtgap <- 5 # drtminpeak <- 15 # drtmaxpeak <- c(100, 200) # recurs <- c(5, 10) # sb <- c(3, 2) # sn <- c(3, 2) # minint <- c(500, 100) # weight <- c(2, 3) # dmzIso <- 5 # drtIso <- 5 # # # for single file processing, only samples acquired in DIA or DDA will be processed # files <- files[acquisitionmode %in% c("DIA", "DDA")] # acquisitionmode <- acquisitionmode[acquisitionmode %in% c("DIA", "DDA")] # # # run the dataProcessing function to obtain the requires msobjects # msobjects <- list() # # for (f in 1:length(files)){ # msobjects[[f]] <- dataProcessing(file = files[f], # polarity = polarity, # dmzagglom = dmzagglom, # drtagglom = drtagglom, # drtclust = drtclust, # minpeak = minpeak, # drtgap = drtgap, # drtminpeak = drtminpeak, # drtmaxpeak = drtmaxpeak, # recurs = recurs, # sb = sb, # sn = sn, # minint = minint, # weight = weight, # dmzIso = dmzIso, # drtIso = drtIso) # } ## ----echo=T, eval=F----------------------------------------------------------- # # set annotation parameters # dmzprecursor <- 5 # dmzproducts <- 10 # rttol <- 5 # coelcutoff <- 0.8 # # # Annotate lipids # ## If polarity is positive # if (polarity == "positive"){ # for (m in 1:length(msobjects)){ # msobjects[[m]] <- idPOS(msobjects[[m]], # ppm_precursor = dmzprecursor, # ppm_products = dmzproducts, # rttol = rttol, # coelCutoff = coelcutoff) # } # } # # ## If polarity is negative # if (polarity == "negative"){ # for (m in 1:length(msobjects)){ # msobjects[[m]] <- idNEG(msobjects[[m]], # ppm_precursor = dmzprecursor, # ppm_products = dmzproducts, # rttol = rttol, # coelCutoff = coelcutoff) # } # } # ## ----echo=T, eval=F----------------------------------------------------------- # # example code for idPEpos function # pe <- idPEpos(msobject, # ppm_precursor = ppm_precursor, # ppm_products = ppm_products, rttol = 6, # chainfrags_sn1 = c("mg_M+H-H2O", "lysope_M+H-H2O"), # chainfrags_sn2 = c("fa_M+H-H2O", "mg_M+H-H2O"), # intrules = c("mg_sn1/mg_sn2", "lysope_sn1/lysope_sn2"), # rates = c("3/1", "3/1"), intrequired = c(T), # dbs = dbs, coelCutoff = 0.8) # # # additional information about how to change rules is given in the documentation # # of the following functions: chainFrags , checkClass, checkIntensityRules, # # coelutingFrags, ddaFrags, combineChains and organizeResults. These functions # # could be also empoyed to build customized identification functions. ## ----echo=T, eval=F----------------------------------------------------------- # msobject <- idPOS(msobject) # msobject <- plotLipids(msobject) # # # display the first plot # msobject$plots[[1]] # msobject$plots[["yourpeakIDofinterest"]] # # # save all plot to a pdf file # pdf("plotresults.pdf") # for (p in 1:length(msobject$plots)){ # print(msobject$plots[[p]]) # } # dev.off() ## ----echo=T, eval=F----------------------------------------------------------- # # load LipidMS library # library(LipidMS) # # # Example data files can be downloaded from: # # # # # csv file with 3 columns: sample (mzXML file names), acquisitionmode # # (MS, DIA or DDA) and sampletype (QC, group1, group2, etc.) # metadata <- read.csv("Matadata.csv", sep=",", dec = ".") # # #==============================================================================# # # Set processing parameters # #==============================================================================# # # ################### # # Peak-picking # polarity <- "positive" # 6550 abrir hasta 50 ppm, con el orbi dejar en 15-20 ppm # dmzagglom <- 15 # drtagglom <- 500 # drtclust <- c(100, 200) # minpeak <- c(8, 5) # drtgap <- 5 # drtminpeak <- 15 # drtmaxpeak <- 200 # recurs <- c(5, 10) # sb <- c(3,2) # sn <- c(3,2) # minint <- c(5000, 1000) # weight <- c(2, 3) # dmzIso <- 5 # drtIso <- 5 # # #==============================================================================# # # Processing # #==============================================================================# # # ################### # # Peak-picking # msbatch <- batchdataProcessing(metadata = metadata, # polarity = polarity, # dmzagglom = dmzagglom, # drtagglom = drtagglom, # drtclust = drtclust, # minpeak = minpeak, # drtgap = drtgap, # drtminpeak = drtminpeak, # drtmaxpeak = drtmaxpeak, # recurs = recurs, # sb = sb, # sn = sn, # minint = minint, # weight = weight, # dmzIso = dmzIso, # drtIso = drtIso, # parallel = parallel, # ncores = ncores) # # save(msbatch, file="msbatch.rda.gz", compress = TRUE) ## ----echo=T, eval=F----------------------------------------------------------- # #==============================================================================# # # Set parameters # #==============================================================================# # # ################### # # Batch processing # dmzalign <- 5 # drtalign <- 30 # span <- 0.4 # minsamplesfracalign <- 0.75 # dmzgroup <- 5 # drtagglomgroup <- 30 # drtgroup <- 15 # minsamplesfracgroup <- 0.25 # parallel <- TRUE # ncores <- 2 # # #==============================================================================# # # Processing # #==============================================================================# # # ################### # # Alignment # msbatch <- alignmsbatch(msbatch, dmz = dmzalign, drt = drtalign, span = span, # minsamplesfrac = minsamplesfracalign, # parallel = parallel, ncores = ncores) # # # rt deviation plot # rtdevplot(msbatch) # rtdevplot(msbatch, colorbygroup = FALSE) # # # tic plot # plotticmsbatch(msbatch) # plotticmsbatch(msbatch, colorbygroup = FALSE) # # ################### # # Grouping # msbatch <- groupmsbatch(msbatch, dmz = dmzgroup, drtagglom = drtagglomgroup, # drt = drtgroup, minsamplesfrac = minsamplesfracgroup, # parallel = parallel, ncores = ncores) # # # ##################### # # Fill missing peaks # msbatch <- fillpeaksmsbatch(msbatch) # # # # Now we have a data matrix with all samples and features. # View(msbatch$features) ## ----echo=T, eval=F----------------------------------------------------------- # #==============================================================================# # # Lipid annotation # #==============================================================================# # # ################### # # Lipid Annotation # msbatch <- annotatemsbatch(msbatch) # # # # Make plots for identified lipids # for (m in 1:length(msbatch$msobjects)){ # if (msbatch$msobjects[[m]]$metaData$generalMetadata$acquisitionmode %in% c("DIA", "DDA")){ # msbatch$msobjects[[m]] <- plotLipids(msbatch$msobjects[[m]]) # } # } # # print(msbatch$msobjects[[1]]$annotation$plots[[1]]) # ## ----echo=T, eval=F----------------------------------------------------------- # ################### # # features # peaklist <- msbatch$features # peaklistNoIso <- peaklist[peaklist$isotope %in% c("", "[M+0]"),] # # View(peaklistNoIso) # # write.csv(peaklist, file="peaklist.csv") # write.csv(peaklistNoIso, file="peaklistNoIso.csv") # # ################### # # annotations # # # results # for (i in 1:length(msbatch$msobjects)){ # if (msbatch$msobjects[[i]]$metaData$generalMetadata$acquisitionmode %in% c("DIA", "DDA")){ # fileName <- gsub(".mzXML", "_summaryResults.csv" , # msbatch$msobjects[[i]]$metaData$generalMetadata$file[i]) # write.csv(msbatch$msobjects[[i]]$annotation$results, fileName, row.names = FALSE) # } # } # # # Annotated Peaklists # for (i in 1:length(msbatch$msobjects)){ # if (msbatch$msobjects[[i]]$metaData$generalMetadata$acquisitionmode %in% c("DIA", "DDA")){ # fileName <- gsub(".mzXML", "_annotatedPeaklist.csv" , # msbatch$msobjects[[i]]$metaData$generalMetadata$file[i]) # write.csv(msbatch$msobjects[[i]]$annotation$annotatedPeaklist, fileName, row.names = FALSE) # } # } # # ################### # # plots # # pdf("RTdevplot.pdf") # rtdevplot(msbatch) # rtdevplot(msbatch, colorbygroup = FALSE) # dev.off() # # pdf("TIC.pdf", height = 7, width = 10) # plotticmsbatch(msbatch) # plotticmsbatch(msbatch, colorbygroup = FALSE) # dev.off() # # # lipid id plots # for (s in 1:length(msbatch$msobjects)){ # if (msbatch$msobjects[[s]]$metaData$generalMetadata$acquisitionmode %in% c("DIA", "DDA")){ # print(s) # if (msbatch$msobjects[[s]]$metaData$generalMetadata$acquisitionmode == "DIA"){ # height <- 7 # } else { # height <- 9 # } # pdf(file = gsub(".mzXML", "_plots.pdf", msbatch$msobjects[[s]]$metaData$generalMetadata$file), # width = 8, height = height) # for ( pl in 1:length(msbatch$msobjects[[s]]$annotation$plots)){ # print(msbatch$msobjects[[s]]$annotation$plots[[pl]]) # } # dev.off() # } # } ## ----echo=T, eval=F----------------------------------------------------------- # # To run LipidMS shiny app execute: # LipidMSapp() ## ----echo=T, eval=F----------------------------------------------------------- # fas <- c("8:0", "10:0", "12:0", "14:0", "14:1", "15:0", "16:0", "16:1", # "17:0", "18:0", "18:1", "18:2", "18:3", "18:4", "20:0", "20:1", "20:2", # "20:3", "20:4", "20:5", "22:0", "22:1", "22:2", "22:3", "22:4", "22:5", # "22:6", "24:0", "24:1", "26:0") # sph <- c("16:0", "16:1", "18:0", "18:1") # dbs <- createLipidDB(lipid = "all", chains = fas, chains2 = sph) # # # to use for identification function two additional data frames need to be added # dbs$adductsTable <- LipidMS::adductsTable # dbs$nlsphdb <- LipidMS::nlsphdb ## ----echo=T, eval=F----------------------------------------------------------- # fas <- c("8:0", "10:0", "12:0", "14:0", "14:1", "15:0", "16:0", "16:1", # "17:0", "18:0", "18:1", "18:2", "18:3", "18:4", "19:0", "20:0", "20:1", # "20:2", "20:3", "20:4", "20:5", "22:0", "22:1", "22:2", "22:3", "22:4", # "22:5", "22:6", "24:0", "24:1", "26:0") # newfadb <- createLipidDB(lipid = "FA", chains = fas) # dbs <- assignDB() # This function loads all DBs required # dbs$fadb <- newfadb$fadb # Then, you can modify some of these DBs ## ----echo=T, eval=F----------------------------------------------------------- # adductsTable <- LipidMS::adductsTable # adductsTable <- data.frame(adduct = c(adductsTable$adduct, "M+X"), # mdiff = c(adductsTable$mdiff, 52.65), # charge = c(adductsTable$charge, 1), # n = c(adductsTable$n, 1), # stringsAsFactors = F) ## ----echo=T, eval=F----------------------------------------------------------- # # The new adductsTable has to be also uploaded in the dbs list. # dbs <- assignDB() # dbs$adductsTable <- adductsTable # # idPCpos(msobject = LipidMSdata2::msobjectDIApos, # adducts = c("M+H", "M+Na", "M+X"), dbs = dbs)