# HG changeset patch # User lain # Date 1670321890 0 # Node ID ce94e7a141bbf3e5fc8e12af60221d0a8845c73d # Parent 2937e72e58917aa21fba5bc432440083f6eb357a " master branch Updating" diff -r 2937e72e5891 -r ce94e7a141bb README.md --- a/README.md Tue Oct 18 12:57:28 2022 +0000 +++ b/README.md Tue Dec 06 10:18:10 2022 +0000 @@ -96,7 +96,7 @@ -------- - **@name**: XSeekerPreparator - - **@version**: 1.3.0 + - **@version**: 1.3.1 - **@authors**: Lain Pavot - **@date creation**: 15/09/2020 diff -r 2937e72e5891 -r ce94e7a141bb XSeekerPreparator.R --- a/XSeekerPreparator.R Tue Oct 18 12:57:28 2022 +0000 +++ b/XSeekerPreparator.R Tue Dec 06 10:18:10 2022 +0000 @@ -198,7 +198,7 @@ search_tree <- function(path, target) { target <- tolower(target) for (file in list.files(path)) { - if (is.dir(file)) { + if (fs::is.dir(file)) { result <- search_tree(file.path(path, file), target) if (!is.null(result)) { return(result) @@ -400,12 +400,10 @@ guess_translator <- function(header) { result <- list( - # HMDB_ID = NULL, mz = NULL, name = NULL, common_name = NULL, - formula = NULL, - # inchi_key = NULL + formula = NULL ) asked_cols <- names(result) for (asked_col in asked_cols) { @@ -471,12 +469,12 @@ process_sample_list( orm, rdata, samples, show_percent = show_percent, - file_grouping_var = options$class + file_grouping_var = options$class, + options = options ) NULL }, error = function(e) { - message(e) - e + return(e) }) if (!is.null(mzml_tmp_dir)) { unlink(mzml_tmp_dir, recursive = TRUE) @@ -484,6 +482,7 @@ if (!is.null(error)) { stop(error) } + return(!is.null(error)) } gather_mzml_files <- function(rdata) { @@ -510,7 +509,8 @@ rdata, sample_names, show_percent, - file_grouping_var = NULL + file_grouping_var = NULL, + options = list() ) { if (is.null(file_grouping_var)) { file_grouping_var <- find_grouping_var(rdata$variableMetadata) @@ -587,19 +587,6 @@ message("Parameters from previous processes extracted.") - - indices <- as.numeric(unique(var_meta[, file_grouping_var])) - if (any(is.null(names(singlefile)[indices]))) { - stop(sprintf( - paste( - "Indices defined by grouping variable %s are not all present", - "in singlefile names (%s).\nCannot continue. Indices: %s" - ), - file_grouping_var, - paste(names(singlefile), collapse = ", "), - paste(indices, collapse = ", ") - )) - } smol_xcms_set <- orm$smol_xcms_set() mz_tab_info <- new.env() g <- xcms::groups(xcms_set) @@ -623,7 +610,7 @@ smol_xcms_set_id <- smol_xcms_set$get_id() rm(smol_xcms_set) - for (no in indices) { + for (no in seq_along(names(singlefile))) { sample_name <- names(singlefile)[[no]] sample_path <- singlefile[[no]] if ( @@ -760,7 +747,6 @@ field_names <- as.list(names(orm$feature()$fields__)) field_names[field_names == "id"] <- NULL - features <- list() dummy_feature <- orm$feature() if (show_percent <- context$show_percent) { @@ -772,7 +758,10 @@ rows <- rows[1:as.integer(FAST_FEATURE_RATIO / 100.0 * length(rows))] } - cluster_row <- list() + # features <- list() + features <- as.list(rows) ## allocate all memory before processing + # cluster_row <- list() + cluster_row <- as.list(rows) ## allocate all memory before processing for (row in rows) { if (show_percent && (row / total) * 100 > percent) { percent <- percent + 1 @@ -843,7 +832,8 @@ next_align_group ) next_align_group <- next_align_group + 1 - features[[length(features) + 1]] <- as.list(dummy_feature, field_names) + features[[row]] <- as.list(dummy_feature, field_names) + # features[[length(features) + 1]] <- as.list(dummy_feature, field_names) dummy_feature$clear() } rm(var_meta) @@ -963,6 +953,7 @@ } cluster$save() feature$set_cluster(cluster) + feature$save() return(cluster) } @@ -1064,6 +1055,12 @@ help = "Display this tool's version and exits" ), optparse::make_option( + c("-V", "--verbose"), + action = "store_true", + help = "Does more verbose outputs", + default = FALSE + ), + optparse::make_option( c("-i", "--input"), type = "character", help = "The rdata path to import in XSeeker" @@ -1161,6 +1158,18 @@ load(args$options$input, rdata <- new.env()) -process_rdata(orm, rdata, args$options) +args$options$verbose <- ( + if (args$options$verbose) { + message("Verbose outputs.") + \(...) { + message(sprintf(...)) + } + } else { + \(...) { + } + } +) + +err_code <- process_rdata(orm, rdata, args$options) quit(status = err_code) diff -r 2937e72e5891 -r ce94e7a141bb XSeekerPreparator.xml --- a/XSeekerPreparator.xml Tue Oct 18 12:57:28 2022 +0000 +++ b/XSeekerPreparator.xml Tue Dec 06 10:18:10 2022 +0000 @@ -1,34 +1,26 @@ - + prepares RData file from XCMS+CAMERA for XSeeker + + 1.3.1 + 0 + operation_1812 operation_0335 - bioconductor-xcms - bioconductor-camera - git - r-blob - r-dbi - r-fst - r-optparse - r-stringr - r-purrr - r-rsqlite - r-dbmodelr - - - - - - -
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - + + + + + + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +.. class:: infomark + +**Authors** Lain Pavot (lain.pavot@inrae.fr) + +-------------------------------------- + +================== +XSeeker Preparator +================== + +----------- +Description +----------- + +A preparation tool to precalculate and reorginize data from XCMS+CAMERA for +XSeeker displayer tool to display them faster (from 30 min/some hours to some seconds). + + +----------------- +Workflow position +----------------- + +**Upstream tools** + +================ ======================== =========== =============== + Name output file format parameter +================ ======================== =========== =============== + CAMERA rdata.camera.quick rdata +================ ======================== =========== =============== + + +**Downstream tools** + +================ ======================== =========== =============== + Name output file format parameter +================ ======================== =========== =============== + XSeeker sqlite sqlite3 NA +================ ======================== =========== =============== + + + +----------- +Input files +----------- + +Takes a rdata outputed by camera (after xcms) as input. The rdata has must have +been produced using some mzml files - mxml files which must still be present +in the history when doing xseekerpreparator: +The rdata contains only some data and the paths to the original mzml files. +These mzml files contains a lot of usefull informations needed to prepare +the data for XSeeker. These files are not given as input, but are still +needed. + +---------- +Parameters +---------- +Column class name: + - the name of the column that defines classes in your sample metadata. +Sample options: + - provide mzml file names to process. Other files defined in the rdata will + not be processed, and will not be available in xseeker. +Database Options: + - provide the molecular family you want to annotate, a compound file. + - The database's model can be re-defined - only for devs users. + +------------ +Output files +------------ +An SQLite3 file is a database file that organizes data in such a way it is +easily stored, filtered, modified, retrieved. + +
diff -r 2937e72e5891 -r ce94e7a141bb format_versionning.MD --- a/format_versionning.MD Tue Oct 18 12:57:28 2022 +0000 +++ b/format_versionning.MD Tue Dec 06 10:18:10 2022 +0000 @@ -9,6 +9,14 @@ The first version (the older one) is at the bottom of this file, and the modifications provided by the newest versions are on top of the file. +Also, the changelog will be mixed to this file + + +VERSION 1.3.1 +===== +bugfix in files processing, some files were not processed due to +a missunderstanding of the meaning of a field in the rdata. + VERSION 1.3.0 ===== diff -r 2937e72e5891 -r ce94e7a141bb galaxy/tools/LC-MSMS/XSeekerPreparator.R --- a/galaxy/tools/LC-MSMS/XSeekerPreparator.R Tue Oct 18 12:57:28 2022 +0000 +++ b/galaxy/tools/LC-MSMS/XSeekerPreparator.R Tue Dec 06 10:18:10 2022 +0000 @@ -198,7 +198,7 @@ search_tree <- function(path, target) { target <- tolower(target) for (file in list.files(path)) { - if (is.dir(file)) { + if (fs::is.dir(file)) { result <- search_tree(file.path(path, file), target) if (!is.null(result)) { return(result) @@ -400,12 +400,10 @@ guess_translator <- function(header) { result <- list( - # HMDB_ID = NULL, mz = NULL, name = NULL, common_name = NULL, - formula = NULL, - # inchi_key = NULL + formula = NULL ) asked_cols <- names(result) for (asked_col in asked_cols) { @@ -471,12 +469,12 @@ process_sample_list( orm, rdata, samples, show_percent = show_percent, - file_grouping_var = options$class + file_grouping_var = options$class, + options = options ) NULL }, error = function(e) { - message(e) - e + return(e) }) if (!is.null(mzml_tmp_dir)) { unlink(mzml_tmp_dir, recursive = TRUE) @@ -484,6 +482,7 @@ if (!is.null(error)) { stop(error) } + return(!is.null(error)) } gather_mzml_files <- function(rdata) { @@ -510,7 +509,8 @@ rdata, sample_names, show_percent, - file_grouping_var = NULL + file_grouping_var = NULL, + options = list() ) { if (is.null(file_grouping_var)) { file_grouping_var <- find_grouping_var(rdata$variableMetadata) @@ -587,19 +587,6 @@ message("Parameters from previous processes extracted.") - - indices <- as.numeric(unique(var_meta[, file_grouping_var])) - if (any(is.null(names(singlefile)[indices]))) { - stop(sprintf( - paste( - "Indices defined by grouping variable %s are not all present", - "in singlefile names (%s).\nCannot continue. Indices: %s" - ), - file_grouping_var, - paste(names(singlefile), collapse = ", "), - paste(indices, collapse = ", ") - )) - } smol_xcms_set <- orm$smol_xcms_set() mz_tab_info <- new.env() g <- xcms::groups(xcms_set) @@ -623,7 +610,7 @@ smol_xcms_set_id <- smol_xcms_set$get_id() rm(smol_xcms_set) - for (no in indices) { + for (no in seq_along(names(singlefile))) { sample_name <- names(singlefile)[[no]] sample_path <- singlefile[[no]] if ( @@ -760,7 +747,6 @@ field_names <- as.list(names(orm$feature()$fields__)) field_names[field_names == "id"] <- NULL - features <- list() dummy_feature <- orm$feature() if (show_percent <- context$show_percent) { @@ -772,7 +758,10 @@ rows <- rows[1:as.integer(FAST_FEATURE_RATIO / 100.0 * length(rows))] } - cluster_row <- list() + # features <- list() + features <- as.list(rows) ## allocate all memory before processing + # cluster_row <- list() + cluster_row <- as.list(rows) ## allocate all memory before processing for (row in rows) { if (show_percent && (row / total) * 100 > percent) { percent <- percent + 1 @@ -843,7 +832,8 @@ next_align_group ) next_align_group <- next_align_group + 1 - features[[length(features) + 1]] <- as.list(dummy_feature, field_names) + features[[row]] <- as.list(dummy_feature, field_names) + # features[[length(features) + 1]] <- as.list(dummy_feature, field_names) dummy_feature$clear() } rm(var_meta) @@ -963,6 +953,7 @@ } cluster$save() feature$set_cluster(cluster) + feature$save() return(cluster) } @@ -1064,6 +1055,12 @@ help = "Display this tool's version and exits" ), optparse::make_option( + c("-V", "--verbose"), + action = "store_true", + help = "Does more verbose outputs", + default = FALSE + ), + optparse::make_option( c("-i", "--input"), type = "character", help = "The rdata path to import in XSeeker" @@ -1161,6 +1158,18 @@ load(args$options$input, rdata <- new.env()) -process_rdata(orm, rdata, args$options) +args$options$verbose <- ( + if (args$options$verbose) { + message("Verbose outputs.") + \(...) { + message(sprintf(...)) + } + } else { + \(...) { + } + } +) + +err_code <- process_rdata(orm, rdata, args$options) quit(status = err_code)