Mercurial > repos > workflow4metabolomics > ms2snoop
comparison MS2snoop.R @ 3:c68c94865667 draft
planemo upload commit 09540e3a13b630b078a35afd3e129bc18c9953f0
author | workflow4metabolomics |
---|---|
date | Wed, 22 Jun 2022 13:07:01 +0000 |
parents | df2672c37732 |
children | 856001213966 |
comparison
equal
deleted
inserted
replaced
2:a35fde23940e | 3:c68c94865667 |
---|---|
13 #' | 13 #' |
14 #' @import optparse | 14 #' @import optparse |
15 #' | 15 #' |
16 | 16 |
17 | 17 |
18 assign("MS2SNOOP_VERSION", "1.0.1") | 18 assign("MS2SNOOP_VERSION", "1.1.0") |
19 lockBinding("MS2SNOOP_VERSION", globalenv()) | 19 lockBinding("MS2SNOOP_VERSION", globalenv()) |
20 | 20 |
21 assign("MISSING_PARAMETER_ERROR", 1) | 21 assign("MISSING_PARAMETER_ERROR", 1) |
22 lockBinding("MISSING_PARAMETER_ERROR", globalenv()) | 22 lockBinding("MISSING_PARAMETER_ERROR", globalenv()) |
23 | 23 |
200 mzref, | 200 mzref, |
201 rtref, | 201 rtref, |
202 c_name, | 202 c_name, |
203 min_number_scan, | 203 min_number_scan, |
204 mzdecimal, | 204 mzdecimal, |
205 r_threshold=DEFAULT_EXTRACT_FRAGMENTS_R_THRESHOLD, | 205 r_threshold = DEFAULT_EXTRACT_FRAGMENTS_R_THRESHOLD, |
206 seuil_ra=DEFAULT_EXTRACT_FRAGMENTS_SEUIL_RA, | 206 seuil_ra = DEFAULT_EXTRACT_FRAGMENTS_SEUIL_RA, |
207 tolmz=DEFAULT_EXTRACT_FRAGMENTS_TOLMZ, | 207 tolmz = DEFAULT_EXTRACT_FRAGMENTS_TOLMZ, |
208 tolrt=DEFAULT_EXTRACT_FRAGMENTS_TOLRT | 208 tolrt = DEFAULT_EXTRACT_FRAGMENTS_TOLRT |
209 ) { | 209 ) { |
210 ## filter precursor in the precursors file based on mz and rt in the | 210 ## filter precursor in the precursors file based on mz and rt in the |
211 ## compound list | 211 ## compound list |
212 cat("processing ", c_name, "\n") | 212 cat("processing ", c_name, "\n") |
213 selected_precursors <- which( | 213 selected_precursors <- which( |
250 ## creation of cross table row=scan col=mz X=ra | 250 ## creation of cross table row=scan col=mz X=ra |
251 vmz <- levels(as.factor(sfrgtfil$mznominal)) | 251 vmz <- levels(as.factor(sfrgtfil$mznominal)) |
252 | 252 |
253 if (global_verbose) { | 253 if (global_verbose) { |
254 cat(" fragments :", vmz) | 254 cat(" fragments :", vmz) |
255 cat("\n") | |
255 } | 256 } |
256 | 257 |
257 ## mz of precursor in data precursor to check correlation with | 258 ## mz of precursor in data precursor to check correlation with |
258 mz_prec <- paste0("mz", round(mean(sprec$mz), mzdecimal)) | 259 mz_prec <- paste0("mz", round(mean(sprec$mz), mzdecimal)) |
259 | 260 |
370 cat(" non detected in fragments file \n") | 371 cat(" non detected in fragments file \n") |
371 } | 372 } |
372 if (!is.null(res_comp_by_file)) { | 373 if (!is.null(res_comp_by_file)) { |
373 res_comp <- rbind(res_comp, res_comp_by_file) | 374 res_comp <- rbind(res_comp, res_comp_by_file) |
374 } | 375 } |
375 if (global_verbose) { | |
376 cat("\n") | |
377 } | |
378 dev.off() | 376 dev.off() |
379 } | 377 } |
380 } else { | 378 } else { |
381 res_comp <- NULL | 379 res_comp <- NULL |
382 cat(" non detected in precursor file \n") | 380 cat(" non detected in precursor file \n") |
623 MISSING_INPUT_FILE_ERROR | 621 MISSING_INPUT_FILE_ERROR |
624 ) | 622 ) |
625 } | 623 } |
626 } | 624 } |
627 | 625 |
626 get_csv_or_tsv <- function( | |
627 path, | |
628 sep_stack = c("\t", ",", ";"), | |
629 header = TRUE, | |
630 quote = "\"" | |
631 ) { | |
632 sep <- sep_stack[1] | |
633 result <- tryCatch({ | |
634 read.table( | |
635 file = path, | |
636 sep = sep, | |
637 header = header, | |
638 quote = quote | |
639 ) | |
640 }, error = function(e) { | |
641 return(data.frame()) | |
642 }) | |
643 if (length(sep_stack) == 1) { | |
644 return(result) | |
645 } | |
646 # if ( | |
647 # ncol(result) == 0 || ## failed | |
648 # ncol(result) == 1 ## only one row, suspicious, possible fail # nolint | |
649 # ) { | |
650 new_result <- get_csv_or_tsv( | |
651 path, | |
652 sep_stack = sep_stack[-1], | |
653 header = header, | |
654 quote = quote | |
655 ) | |
656 if (ncol(new_result) > ncol(result)) { | |
657 return(new_result) | |
658 } | |
659 # } | |
660 return(result) | |
661 } | |
662 | |
628 main <- function(args) { | 663 main <- function(args) { |
629 if (args$version) { | 664 if (args$version) { |
630 cat(sprintf("%s\n", MS2SNOOP_VERSION)) | 665 cat(sprintf("%s\n", MS2SNOOP_VERSION)) |
631 base::quit(status = 0) | 666 base::quit(status = 0) |
632 } | 667 } |
637 } | 672 } |
638 if (args$verbose) { | 673 if (args$verbose) { |
639 set_verbose() | 674 set_verbose() |
640 } | 675 } |
641 ## MSpurity precursors file | 676 ## MSpurity precursors file |
642 precursors <- read.table( | 677 precursors <- get_csv_or_tsv(args$precursors) |
643 file = args$precursors, | |
644 header = TRUE, | |
645 sep = "\t", | |
646 quote = "\"" | |
647 ) | |
648 ## MSpurity fragments file | 678 ## MSpurity fragments file |
649 fragments <- read.table( | 679 fragments <- get_csv_or_tsv(args$fragments) |
650 file = args$fragments, | |
651 header = TRUE, | |
652 sep = "\t", | |
653 quote = "\"" | |
654 ) | |
655 ## list of compounds : col1=Name of molecule, col2=m/z, col3=retention time | 680 ## list of compounds : col1=Name of molecule, col2=m/z, col3=retention time |
656 compounds <- read.table( | 681 compounds <- get_csv_or_tsv(args$compounds) |
657 file = args$compounds, | |
658 sep = "\t", | |
659 quote = "\"", | |
660 header = TRUE | |
661 ) | |
662 | 682 |
663 res_all <- NULL | 683 res_all <- NULL |
664 for (i in seq_len(nrow(compounds))) { | 684 for (i in seq_len(nrow(compounds))) { |
665 ## loop execution for all compounds in the compounds file | 685 ## loop execution for all compounds in the compounds file |
666 res_cor <- NULL | 686 res_cor <- NULL |