diff purityA.R @ 0:f52287a06c02 draft

"planemo upload for repository https://github.com/computational-metabolomics/mspurity-galaxy commit cb903cd93f9378cfb5eeb68512a54178dcea7bbc-dirty"
author computational-metabolomics
date Wed, 27 Nov 2019 13:44:58 -0500
parents
children 600a866a510c
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/purityA.R	Wed Nov 27 13:44:58 2019 -0500
@@ -0,0 +1,121 @@
+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", default=0.5),
+  make_option("--maxOffset", default=0.5),
+  make_option("--ilim", default=0.05),
+  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)
+
+minOffset = as.numeric(opt$minOffset)
+maxOffset = as.numeric(opt$maxOffset)
+
+if (opt$iwNorm=='none'){
+    iwNorm = FALSE
+    iwNormFun = NULL
+}else if (opt$iwNorm=='gauss'){
+    iwNorm = TRUE
+    iwNormFun = msPurity::iwNormGauss(minOff=-minOffset, maxOff=maxOffset)
+}else if (opt$iwNorm=='rcosine'){
+    iwNorm = TRUE
+    iwNormFun = msPurity::iwNormRcosine(minOff=-minOffset, maxOff=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')
+
+# removed_peaks <- data.frame(removed_peaks)
+# write.table(data.frame('ID'=rownames(removed_peaks),removed_peaks),
+#         file.path(opt$out_dir, 'removed_peaks.txt'), row.names=FALSE, sep='\t')