Mercurial > repos > tomnl > deconrank
diff lcms-interval-scheduling.R @ 1:defa57c7775e draft
planemo upload for repository https://github.com/computational-metabolomics/dma-tools-galaxy commit 6c48bd51987a28401de6cf5e49b1b30e5e73fe16-dirty
author | tomnl |
---|---|
date | Tue, 27 Mar 2018 07:18:42 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lcms-interval-scheduling.R Tue Mar 27 07:18:42 2018 -0400 @@ -0,0 +1,109 @@ +library(XCMSwrapper) +library(optparse) + +option_list <- list( + + make_option(c("-s", "--sample_peaklist"), type="character"), + make_option(c("-b", "--blank_peaklist"), type="character"), + make_option(c("-t", "--topn"), type="character"), + make_option(c("-o", "--out_dir"), type="character", default=getwd(), + help="Output folder for resulting files [default = %default]" + ), + make_option("--method", type="character"), + make_option("--maxms2", type="numeric"), + make_option("--widthFactor", type="numeric"), + make_option("--minWidth", type="numeric"), + make_option("--ilimit", type="numeric"), + make_option("--shift", type="numeric"), + make_option("--samplelistNm", type="numeric"), + make_option("--overlappingP", type="numeric"), + make_option("--fullpw", action="store_true"), + make_option("--b_widthFactor", type="numeric"), + make_option("--b_shift", type="numeric"), + make_option("--b_exclu_limit", type="numeric"), + make_option("--b_minWidth", type="numeric"), + make_option("--polarity", type="character"), + make_option("--fillgaps", type="character"), + make_option("--dmaNearline", action="store_true"), + make_option("--blankClass", type="character"), + make_option("--intensityCN", type="character"), + make_option("--sortCN", type="character"), + make_option("--filterS", type="character") +) + +# store options +opt<- parse_args(OptionParser(option_list=option_list)) + +print(sessionInfo()) +print(opt) + +if(is.null(opt$fullpw)){ + fullpw = FALSE +}else{ + fullpw = TRUE +} + +if(is.null(opt$fillgaps)){ + fillgaps = FALSE +}else{ + fillgaps = TRUE +} + + +# Nearline processing +# nearline parameters (sample and blank) +params <- list( + nl.method = opt$method, + nl.maxms2 = opt$maxms2, # only used for simple nearline + nl.widthFactor = opt$widthFactor, + nl.minWidth = opt$minWidth, # 5 seconds + nl.ilimit = opt$ilimit, # only used for simple nearline + nl.shift = opt$shift, + nl.samplelist_nm = opt$samplelistNm, + nl.overlappingP = opt$overlappingP, + nl.fullpw = fullpw, + nl.fillgaps = fillgaps, # only used for metshot nearline + #nearline blank parameters + nl.b_widthFactor = opt$b_widthFactor, # increase the width + nl.b_minWidth = opt$b_minWidth, + nl.b.shift = opt$b_shift, + nl.exclu_limit = opt$b_exclu_limit, + temp_dir='.', + intensityCN=opt$intensityCN, + sortCN=opt$sortCN # column of the sample peaklist to use for + +) + + + +# ################################## +# # Perform Nearline optimisation +# ################################## +s_peaklist <- read.table(opt$sample_peaklist, header = TRUE, sep='\t', stringsAsFactors = FALSE) +b_peaklist <- read.table(opt$blank_peaklist, header = TRUE, sep='\t', stringsAsFactors = FALSE) + +if(!is.null(opt$dmaNearline)){ + # have to do some additional filtering if part of the dma nearline workflow + blank_class_name <- gsub('-', '.', opt$blankClass) + b_peaklist = b_peaklist[which(b_peaklist[,paste(blank_class_name, '_valid', sep='')]==1),] + s_peaklist = s_peaklist[s_peaklist[,opt$filterS]==0,] +} + + + +topn <- read.table(opt$topn, header = TRUE, sep='\t', stringsAsFactors = FALSE, check.names=FALSE) +topn[is.na(topn)] <- "" +# colnames(topn) <- c('Mass [m/z]', 'Formula [M]', 'Formula type', 'Species', 'CS [z]', 'Polarity', 'Start [min]', 'End [min]','Comment') +# colnames(topn) <- gsub('\\.', ' ', colnames(topn)) +print(head(topn)) + +# #Generate inclusions lists for DDA-MS/MS and store in list +incl.lists = nearline_main(pm = params, peaklist_xcms=s_peaklist, pol=opt$polarity, merge_peaklists=FALSE, peaklist_post=NA) + +# #Generate exclusion lists for each class being analysed +nearline_main_blank(pm = params, + plist = b_peaklist, + incl_list_pos = incl.lists, + pol = opt$polarity, + topn = topn) +#