# HG changeset patch # User tomnl # Date 1524477768 14400 # Node ID e5f627fd21e8f13a87f199b946122e08e9a1cf50 # Parent faba6cd56875a46c9e5ef3b61784f4ec1c0312b9 planemo upload for repository https://github.com/computational-metabolomics/mspurity-galaxy commit afee93a926072b534bb3541e1524f1ad6a7decb9 diff -r faba6cd56875 -r e5f627fd21e8 anticipated_purity_dims.R --- a/anticipated_purity_dims.R Wed Apr 04 16:59:55 2018 -0400 +++ b/anticipated_purity_dims.R Mon Apr 23 06:02:48 2018 -0400 @@ -14,7 +14,7 @@ make_option("--sim", action="store_true"), make_option("--remove_nas", action="store_true"), make_option("--iwNorm", default="none", type="character"), - make_option("--dimspy_file_num", default=1), + make_option("--file_num_dimspy", default=1), make_option("--exclude_isotopes", action="store_true"), make_option("--isotope_matrix", type="character") ) @@ -25,7 +25,11 @@ print(sessionInfo()) print(opt) -if (opt$dimspy){ +if (is.null(opt$dimspy)){ + + df <- read.table(opt$peaks_file, header = TRUE, sep='\t') + filename = NA +}else{ indf <- read.table(opt$peaks_file, header = TRUE, sep='\t', stringsAsFactors = FALSE) filename = colnames(indf)[8:ncol(indf)][opt$dimspy_file_num] @@ -49,9 +53,8 @@ df$mz <- as.numeric(df$mz) -}else{ - df <- read.table(opt$peaks_file, header = TRUE, sep='\t') - filename = NA + + } if (!is.null(opt$remove_nas)){ diff -r faba6cd56875 -r e5f627fd21e8 create_msp.R --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/create_msp.R Mon Apr 23 06:02:48 2018 -0400 @@ -0,0 +1,183 @@ +suppressWarnings(suppressPackageStartupMessages(require(optparse,quietly = T))) +suppressWarnings(suppressPackageStartupMessages(require(msPurity))) +print(sessionInfo()) +# Get the parameter +option_list <- list( + make_option(c("-i","--purity"),type="character"), + make_option(c("-p","--ppm"),type="numeric"), + make_option(c("-m","--mode"),type="character") +) +opt <- parse_args(OptionParser(option_list=option_list)) + +print(opt) + +load(opt$purity) + +grped_df <- pa@grped_df + +msms <- pa@grped_ms2 + +puritydf <- pa@puritydf + + + + + +grped_df$fileid <- sapply(grped_df$filename, function(x) which(basename(pa@fileList)==x)) + +puritydf$fileid <- sapply(puritydf$filename, function(x) which(basename(pa@fileList)==x)) + +selfrag <- as.numeric(unique(grped_df$grpid)) + +of <- file(description = "outfile.msp", open = "w+a") + +write.msp <- function(name,precmz,prectype,spectra,ofile){ + + cat(paste("NAME: ", name, "\r\n", sep = ""), file = ofile) + + cat(paste("PRECURSORMZ: ", precmz , "\r\n", sep = ""), file = ofile) + + #cat(paste("PRECURSORTYPE: ", prectype, "\r\n", sep = ""), file = ofile) # No adducts? Annotation + + cat("Comment:\r\n", file = ofile) + + cat(paste("Num Peaks: ", nrow(spectra), "\r\n", sep = ""), file = ofile) + + cat(paste(paste(spectra[,1], spectra[,2], sep = "\t"), sep = "\r\n"), sep = "\r\n", file = ofile) + + cat("\r\n", file = ofile) +} + +for(i in selfrag){ + + j <- which(grped_df$grpid==i) + + spec <- msms[[as.character(i)]] + + if (length(j)>1){ + + grpd <- grped_df[j,] + + if (opt$mode=="all"){ + + for(jj in 1:length(j)){ + + idj <- paste(i,jj,sep=".") + + specj <- spec[[jj]] + + grpdj <- grpd[jj,] + + name = paste(i, grpdj$sample, grpdj$pid, sep='-') + + write.msp(name,grpdj$precurMtchMZ,"",specj,of) + } + + }else{ + + prec_int <- sapply(grpd$precurMtchID, function(x) puritydf[ which(puritydf$seqNum==x & puritydf$fileid==grpd$fileid[1]), "precursorIntensity"] ) + + if (opt$mode=="max"){ + + idx <- which(prec_int==max(prec_int)) + + grpd <- grpd[idx,] + name = paste(i, grpd$sample, grpd$pid, sep='-') + write.msp(name,grpd$precurMtchMZ,"",specj[[idx]], of) + } + + if (opt$mode=="average"){ + + file_weights <- prec_int/prec_int[which(prec_int==min(prec_int))] # spectra of the most intense precursor, largest weight + + merged_msms <- do.call("rbind", spec) + + colnames(merged_msms) <- c("mz","int") + + file_weights <-rep(file_weights,sapply(spec,nrow)) + + merged_msms <- data.frame(cbind(merged_msms,file_weights)) + + umzs <- sort(merged_msms$mz,index.return=T)$ix + + merged_msms <- merged_msms[umzs,] + + umzs <- merged_msms$mz + + mz_groups <- list() # mz windows to bind + + mz_grouped <- c() # used mzs + + ppm <- opt$ppm # ppm level to bind mzs + + for(y in 1:length(umzs)){ # spectra averaging + + z <- umzs[y] + + if(!(z %in% mz_grouped)){ + + mz_range <- z*(ppm/1e6) + + mz_range <- c(z-mz_range,z+mz_range) + + mz_group <- which(umzs>mz_range[1] & umzs1){ + + zz <- umzs[max(mz_group)] + + mz_range <- zz*(ppm/1e6) + + mz_range <- c(zz-mz_range,zz+mz_range) + + mz_group2 <- which(umzs>mz_range[1] & umzs