Mercurial > repos > computational-metabolomics > mspurity_createdatabase
view purityA.R @ 10:f5043704dd62 draft
planemo upload for repository https://github.com/computational-metabolomics/mspurity-galaxy commit f10386dee95f3b1fbc8d1eeec52d450381ba89c5
author | computational-metabolomics |
---|---|
date | Fri, 13 Sep 2024 12:27:15 +0000 |
parents | efd14b326007 |
children |
line wrap: on
line source
library(msPurity) library(optparse) print(sessionInfo()) option_list <- list( make_option(c("-o", "--out_dir"), type = "character"), make_option("--mzML_files", type = "character"), make_option("--galaxy_names", type = "character"), make_option("--minOffset", type = "numeric"), make_option("--maxOffset", type = "numeric"), make_option("--ilim", type = "numeric"), make_option("--iwNorm", default = "none", type = "character"), make_option("--exclude_isotopes", action = "store_true"), make_option("--isotope_matrix", type = "character"), make_option("--mostIntense", action = "store_true"), make_option("--plotP", action = "store_true"), make_option("--nearest", action = "store_true"), make_option("--cores", default = 4), make_option("--ppmInterp", default = 7) ) opt <- parse_args(OptionParser(option_list = option_list)) print(opt) if (opt$iwNorm == "none") { iwNorm <- FALSE iwNormFun <- NULL } else if (opt$iwNorm == "gauss") { iwNorm <- TRUE if (is.null(opt$minOffset) || is.null(opt$maxOffset)) { print("User has to define offsets if using Gaussian normalisation") } else { iwNormFun <- msPurity::iwNormGauss( minOff = -as.numeric(opt$minOffset), maxOff = as.numeric(opt$maxOffset) ) } } else if (opt$iwNorm == "rcosine") { iwNorm <- TRUE if (is.null(opt$minOffset) || is.null(opt$maxOffset)) { print("User has to define offsets if using R-cosine normalisation") } else { iwNormFun <- msPurity::iwNormRcosine( minOff = -as.numeric(opt$minOffset), maxOff = as.numeric(opt$maxOffset) ) } } else if (opt$iwNorm == "QE5") { iwNorm <- TRUE iwNormFun <- msPurity::iwNormQE.5() } filepaths <- trimws(strsplit(opt$mzML_files, ",")[[1]]) filepaths <- filepaths[filepaths != ""] if (is.null(opt$minOffset) || is.null(opt$maxOffset)) { offsets <- NA } else { offsets <- as.numeric(c(opt$minOffset, opt$maxOffset)) } if (is.null(opt$mostIntense)) { mostIntense <- FALSE } else { mostIntense <- TRUE } if (is.null(opt$nearest)) { nearest <- FALSE } else { nearest <- TRUE } if (is.null(opt$plotP)) { plotP <- FALSE plotdir <- NULL } else { plotP <- TRUE plotdir <- opt$out_dir } if (is.null(opt$isotope_matrix)) { im <- NULL } else { im <- read.table(opt$isotope_matrix, header = TRUE, sep = "\t", stringsAsFactors = FALSE ) } if (is.null(opt$exclude_isotopes)) { isotopes <- FALSE } else { isotopes <- TRUE } pa <- msPurity::purityA(filepaths, cores = opt$cores, mostIntense = mostIntense, nearest = nearest, offsets = offsets, plotP = plotP, plotdir = plotdir, interpol = "linear", iwNorm = iwNorm, iwNormFun = iwNormFun, ilim = opt$ilim, mzRback = "pwiz", isotopes = isotopes, im = im, ppmInterp = opt$ppmInterp ) if (!is.null(opt$galaxy_names)) { galaxy_names <- trimws(strsplit(opt$galaxy_names, ",")[[1]]) galaxy_names <- galaxy_names[galaxy_names != ""] names(pa@fileList) <- galaxy_names } print(pa) save(pa, file = file.path(opt$out_dir, "purityA_output.RData")) pa@puritydf$filename <- sapply(as.character(pa@puritydf$fileid), function(x) names(pa@fileList)[as.integer(x)]) print(head(pa@puritydf)) write.table(pa@puritydf, file.path(opt$out_dir, "purityA_output.tsv"), row.names = FALSE, sep = "\t")