Mercurial > repos > tomnl > deconrank
diff cameradims.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 | b37f97bda760 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cameradims.R Tue Mar 27 07:18:42 2018 -0400 @@ -0,0 +1,104 @@ +library(optparse) +library(cameraDIMS) + +option_list <- list( + make_option(c("-i", "--in_file"), type="character"), + make_option(c("-o", "--out_dir"), type="character"), + make_option("--ppm_iso", default=5), + make_option("--ppm_adduct", default=5), + make_option("--maxiso", default=4), + make_option("--mzabs_iso", default=0.015), + make_option("--mzabs_adduct", default=0.015), + make_option("--maxcharge", default=3), + make_option("--maxmol", default=3), + make_option("--polarity", default='pos'), + make_option("--rule_path"), + make_option("--rule_type"), + make_option("--export_ruleset", action="store_true"), + make_option("--intensity_filter", default=0) +) + + +# store options +opt<- parse_args(OptionParser(option_list=option_list)) + +print(sessionInfo()) +print(opt) + +df <- read.table(opt$in_file, header = TRUE, sep='\t', stringsAsFactors=FALSE) + +print('IN DATA') +print(nrow(df)) +print(head(df)) + +devppm_adduct <- opt$ppm_adduct / 1000000 +devppm_iso <- opt$ppm_iso / 1000000 + +paramiso <- list("ppm"=opt$ppm_iso, + "filter"=TRUE, + "maxcharge"=opt$maxcharge, + "maxiso"=opt$maxiso, + "mzabs"=opt$mzabs_iso, + "intval"='maxo', + "minfrac"=0.5, + 'IM'=NULL, + 'devppm'=devppm_iso) + +paramadduct <- list("maxCharge"= opt$maxcharge, + "maxMol"= opt$maxmol, + 'devppm'=devppm_adduct, + "mzabs"=opt$mzabs_adduct, + 'IM'=NULL, + "filter"=TRUE, + 'ppm'=opt$ppm_adduct, + "quasimolion"= c(1, 6, 8), + 'polarity'=opt$polarity) + + + + +if(is.null(opt$export_ruleset)){ + rule_export <- FALSE +}else{ + rule_export <- TRUE +} + +df$mz <- as.numeric(df$mz) + +print(head(df$mz)) + +if ('intensity' %in% colnames(df)){ + colnames(df)[colnames(df)=='intensity'] = 'i' +} + +if (!'peakID' %in% colnames(df)){ + df <- cbind('peakID'=1:nrow(df), df) +} + +df$i <- as.numeric(df$i) + +df <- df[df$i>opt$intensity_filter,] + +cameraOut <- cameraDIMS(data=df, + params_iso=paramiso, + params_adduct=paramadduct, + rule_type=opt$rule_type, + rule_pth=opt$rule_path, + rule_sep='\t', + rule_export=rule_export) + + +print(head(cameraOut[[1]])) +print(head(cameraOut[[2]])) + + +out_file1 <- file.path(opt$out_dir, 'camera_annotated_peaklist.txt') +out_file2 <- file.path(opt$out_dir, 'camera_annotated_map.txt') +out_file3 <- file.path(opt$out_dir, 'ruleset.txt') + +write.table(cameraOut[[1]], out_file1, row.names=FALSE, sep='\t') +write.table(cameraOut[[2]], out_file2, row.names=FALSE, sep='\t') + +if (rule_export){ + write.table(cameraOut[[3]], out_file3, row.names=FALSE, sep='\t') +}