Mercurial > repos > computational-metabolomics > mspurity_frag4feature
diff combineAnnotations.R @ 0:85bc606fd219 draft default tip
"planemo upload for repository https://github.com/computational-metabolomics/mspurity-galaxy commit 2579c8746819670348c378f86116f83703c493eb"
author | computational-metabolomics |
---|---|
date | Thu, 04 Mar 2021 12:22:55 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/combineAnnotations.R Thu Mar 04 12:22:55 2021 +0000 @@ -0,0 +1,123 @@ +library(optparse) +library(msPurity) +print(sessionInfo()) + +# Get the parameter +option_list <- list( + make_option(c("-s", "--sm_resultPth"), type = "character"), + make_option(c("-m", "--metfrag_resultPth"), type = "character"), + make_option(c("-c", "--sirius_csi_resultPth"), type = "character"), + make_option(c("-p", "--probmetab_resultPth"), type = "character"), + make_option(c("-l", "--ms1_lookup_resultPth"), type = "character"), + + make_option("--ms1_lookup_checkAdducts", action = "store_true"), + make_option("--ms1_lookup_keepAdducts", type = "character", default = NA), + make_option("--ms1_lookup_dbSource", type = "character", default = "hmdb"), + + make_option("--sm_weight", type = "numeric"), + make_option("--metfrag_weight", type = "numeric"), + make_option("--sirius_csi_weight", type = "numeric"), + make_option("--probmetab_weight", type = "numeric"), + make_option("--ms1_lookup_weight", type = "numeric"), + make_option("--biosim_weight", type = "numeric"), + + make_option("--summaryOutput", action = "store_true"), + + make_option("--create_new_database", action = "store_true"), + make_option("--outdir", type = "character", default = "."), + + make_option("--compoundDbType", type = "character", default = "sqlite"), + make_option("--compoundDbPth", type = "character", default = NA), + make_option("--compoundDbHost", type = "character", default = NA) +) +opt <- parse_args(OptionParser(option_list = option_list)) + +print(opt) + +if (!is.null(opt$create_new_database)) { + sm_resultPth <- file.path(opt$outdir, "combined_annotations.sqlite") + file.copy(opt$sm_resultPth, sm_resultPth) +}else{ + sm_resultPth <- opt$sm_resultPth +} + +if (is.null(opt$ms1_lookup_checkAdducts)) { + opt$ms1_lookup_checkAdducts <- FALSE +} +if (!is.null(opt$ms1_lookup_keepAdducts)) { + opt$ms1_lookup_keepAdducts <- gsub("__ob__", "[", opt$ms1_lookup_keepAdducts) + opt$ms1_lookup_keepAdducts <- gsub("__cb__", "]", opt$ms1_lookup_keepAdducts) + ms1_lookup_keepAdducts <- strsplit(opt$ms1_lookup_keepAdducts, ",")[[1]] +} + +weights <- list("sm" = opt$sm_weight, + "metfrag" = opt$metfrag_weight, + "sirius_csifingerid" = opt$sirius_csi_weight, + "probmetab" = opt$probmetab_weight, + "ms1_lookup" = opt$ms1_lookup_weight, + "biosim" = opt$biosim_weight + ) +print(weights) + +if (is.null(opt$probmetab_resultPth)) { + opt$probmetab_resultPth <- NA +} + +if (round(!sum(unlist(weights), 0) == 1)) { + stop(paste0("The weights should sum to 1 not ", sum(unlist(weights)))) +} + +if (is.null(opt$summaryOutput)) { + summaryOutput <- FALSE +}else{ + summaryOutput <- TRUE +} + +if (opt$compoundDbType == "local_config") { + # load in compound config + # Soure local function taken from workflow4metabolomics + source_local <- function(fname) { + argv <- commandArgs(trailingOnly = FALSE) + base_dir <- dirname(substring(argv[grep("--file=", argv)], 8)) + source(paste(base_dir, fname, sep = "/")) + } + source_local("dbconfig.R") +}else{ + compoundDbPth <- opt$compoundDbPth + compoundDbType <- opt$compoundDbType + compoundDbName <- NA + compoundDbHost <- NA + compoundDbPort <- NA + compoundDbUser <- NA + compoundDbPass <- NA +} + +summary_output <- msPurity::combineAnnotations( + sm_resultPth = sm_resultPth, + compoundDbPth = compoundDbPth, + metfrag_resultPth = opt$metfrag_resultPth, + sirius_csi_resultPth = opt$sirius_csi_resultPth, + probmetab_resultPth = opt$probmetab_resultPth, + ms1_lookup_resultPth = opt$ms1_lookup_resultPth, + ms1_lookup_keepAdducts = ms1_lookup_keepAdducts, + ms1_lookup_checkAdducts = opt$ms1_lookup_checkAdducts, + + compoundDbType = compoundDbType, + compoundDbName = compoundDbName, + compoundDbHost = compoundDbHost, + compoundDbPort = compoundDbPort, + compoundDbUser = compoundDbUser, + compoundDbPass = compoundDbPass, + weights = weights, + summaryOutput = summaryOutput) +if (summaryOutput) { + write.table(summary_output, + file.path(opt$outdir, "combined_annotations.tsv"), + sep = "\t", row.names = FALSE) +} + +write.table(summary_output, + file.path(opt$outdir, "combined_annotations.tsv"), + sep = "\t", row.names = FALSE) + +closeAllConnections()