Mercurial > repos > recetox > ramclustr
diff ramclustr_wrapper.R @ 0:cb0b83b330fd draft
"planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/ramclustr commit c69f8d9772bdb9fb3cc9473651397cd6bb877020"
author | recetox |
---|---|
date | Wed, 28 Jul 2021 08:42:02 +0000 |
parents | |
children | 69e0da4703b5 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ramclustr_wrapper.R Wed Jul 28 08:42:02 2021 +0000 @@ -0,0 +1,164 @@ +store_output <- function( + ramclustr_obj, + output_filename, + output_method_metadata, + output_merge_msp, + output_spec_abundance) { + save(ramclustr_obj, file = output_filename) + RAMClustR::write.methods(ramclustr_obj, output_method_metadata) + RAMClustR::write.msp(ramclustr_obj, one.file = output_merge_msp) + write.csv(ramclustr_obj$SpecAbund, file = output_spec_abundance, row.names = TRUE) +} + +read_metadata <- function(filename) { + data <- read.csv(filename, header = TRUE, stringsAsFactors = FALSE) + + if (!"qc" %in% colnames(data)) { + if ("sampleType" %in% colnames(data)) { + data$qc <- ifelse(data$sampleType == "qc", TRUE, FALSE) + } + } + + if (!"order" %in% colnames(data)) { + if ("injectionOrder" %in% colnames(data)) { + names(data)[names(data) == "injectionOrder"] <- "order" + } + } + + return(data) +} + +ramclustr_xcms <- function( + input_xcms, + sr, + deep_split, + block_size, + mult, + hmax, + collapse, + use_pheno, + qc_inj_range, + normalize, + min_module_size, + linkage, + mzdec, + cor_method, + rt_only_low_n, + replace_zeros, + st = NULL, + maxt = NULL, + fftempdir = NULL, + metadata_file = NULL +) { + obj <- load(input_xcms) + + batch <- NULL + order <- NULL + qc <- NULL + + if (!is.null(metadata_file)) { + metadata <- read_metadata(metadata_file) + batch <- metadata$batch + order <- metadata$order + qc <- metadata$qc + } + + x <- RAMClustR::ramclustR( + xcmsObj = xdata, + st = st, + maxt = maxt, + sr = sr, + deepSplit = deep_split, + blocksize = block_size, + mult = mult, + hmax = hmax, + collapse = collapse, + usePheno = use_pheno, + mspout = FALSE, + qc.inj.range = qc_inj_range, + normalize = normalize, + minModuleSize = min_module_size, + linkage = linkage, + mzdec = mzdec, + cor.method = cor_method, + rt.only.low.n = rt_only_low_n, + fftempdir = fftempdir, + replace.zeros = replace_zeros, + batch = batch, + order = order, + qc = qc + ) + return(x) +} + +ramclustr_csv <- function( + ms, + idmsms, + sample_name_column, + feature_delimiter, + retention_time_column, + sr, + deep_split, + block_size, + mult, + hmax, + collapse, + use_pheno, + qc_inj_range, + normalize, + min_module_size, + linkage, + mzdec, + cor_method, + rt_only_low_n, + replace_zeros, + st = NULL, + maxt = NULL, + fftempdir = NULL, + metadata_file = NULL +) { + if (!file.exists(idmsms)) + idmsms <- NULL + + batch <- NULL + order <- NULL + qc <- NULL + + if (!is.null(metadata_file)) { + metadata <- read_metadata(metadata_file) + batch <- metadata$batch + order <- metadata$order + qc <- metadata$qc + } + + x <- RAMClustR::ramclustR( + ms = ms, + idmsms = idmsms, + featdelim = feature_delimiter, + timepos = retention_time_column, + sampNameCol = sample_name_column, + st = st, + maxt = maxt, + sr = sr, + deepSplit = deep_split, + blocksize = block_size, + mult = mult, + hmax = hmax, + collapse = collapse, + usePheno = use_pheno, + mspout = FALSE, + qc.inj.range = qc_inj_range, + normalize = normalize, + minModuleSize = min_module_size, + linkage = linkage, + mzdec = mzdec, + cor.method = cor_method, + rt.only.low.n = rt_only_low_n, + fftempdir = fftempdir, + replace.zeros = replace_zeros, + batch = batch, + order = order, + qc = qc + ) + return(x) +}