Mercurial > repos > computational-metabolomics > mspurity_createmsp
view purityA.R @ 7:8512923bdd37 draft
"planemo upload for repository https://github.com/computational-metabolomics/mspurity-galaxy commit e3b17490a958d80ebe78ef1bebebef48948e1240"
author | computational-metabolomics |
---|---|
date | Tue, 08 Feb 2022 13:56:27 +0000 |
parents | d25273689e04 |
children | b91b9492a4bf |
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(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")