Mercurial > repos > workflow4metabolomics > ms2snoop
comparison MS2snoop.R @ 6:77abacd33c31 draft
planemo upload commit 1f791337b9b8f08326c01bf4799f50493ef54f80
author | workflow4metabolomics |
---|---|
date | Fri, 30 Sep 2022 16:18:56 +0000 |
parents | 78d5a12406c2 |
children | 2a1f120a6874 |
comparison
equal
deleted
inserted
replaced
5:78d5a12406c2 | 6:77abacd33c31 |
---|---|
1 #' | |
2 #' read and process mspurity W4M files | 1 #' read and process mspurity W4M files |
3 #' create a summary of fragment for each precursor and a graphics of peseudo | 2 #' create a summary of fragment for each precursor and a graphics of peseudo |
4 #' spectra + correlation on which checking of fragment is based on | 3 #' spectra + correlation on which checking of fragment is based on |
5 #' V3 try to identify and process multiple files for 1 precursor which may | 4 #' V3 try to identify and process multiple files for 1 precursor which may |
6 #' occur if different collision energy are used | 5 #' occur if different collision energy are used |
52 ######################################################################## | 51 ######################################################################## |
53 | 52 |
54 get_formulas <- function( | 53 get_formulas <- function( |
55 mzref, | 54 mzref, |
56 spectra, | 55 spectra, |
57 nominal_mz_list, | |
58 processing_parameters, | 56 processing_parameters, |
59 background = !TRUE | 57 background = !TRUE |
60 ) { | 58 ) { |
61 if (is.vector(mzref) && length(mzref) > 1) { | 59 if (is.vector(mzref) && length(mzref) > 1) { |
62 return(lapply( | 60 return(lapply( |
63 mzref, | 61 mzref, |
64 function(mz) { | 62 function(mz) { |
65 return(get_formulas( | 63 return(get_formulas( |
66 mzref = mz, | 64 mzref = mz, |
67 spectra = spectra, | 65 spectra = spectra, |
68 nominal_mz_list = nominal_mz_list, | |
69 processing_parameters = processing_parameters, | 66 processing_parameters = processing_parameters, |
70 background = background | 67 background = background |
71 )) | 68 )) |
72 } | 69 } |
73 )) | 70 )) |
152 ) | 149 ) |
153 file_content <- sprintf( | 150 file_content <- sprintf( |
154 "%s\n\n>collision\n%s", | 151 "%s\n\n>collision\n%s", |
155 file_content, | 152 file_content, |
156 paste( | 153 paste( |
157 sprintf("%s %s", spectra$mz, spectra$intensities), | 154 paste(spectra$mz, spectra$intensities), |
158 collapse = "\n" | 155 collapse = "\n" |
159 ) | 156 ) |
160 ) | 157 ) |
161 cat(file_content, file = path, append = FALSE) | 158 cat(file_content, file = path, append = FALSE) |
162 } | 159 } |
234 if (delta_unit == "ppm") { | 231 if (delta_unit == "ppm") { |
235 filter <- abs(sirius_results$ppm) <= delta | 232 filter <- abs(sirius_results$ppm) <= delta |
236 fine <- which(filter) | 233 fine <- which(filter) |
237 not_fine <- which(!filter) | 234 not_fine <- which(!filter) |
238 catf( | 235 catf( |
239 paste("[KO] fragment %s (m/z=%s) eleminated because ppm=%s is greater", | 236 paste( |
237 "[KO] fragment %s (m/z=%s) eleminated because ppm=%s is greater", | |
240 "than delta=%s\n" | 238 "than delta=%s\n" |
241 ), | 239 ), |
242 sirius_results[not_fine, ]$formula, | 240 sirius_results[not_fine, ]$formula, |
243 sirius_results[not_fine, ]$mz, | 241 sirius_results[not_fine, ]$mz, |
244 sirius_results[not_fine, ]$ppm, | 242 sirius_results[not_fine, ]$ppm, |
414 if (do_sirius) { | 412 if (do_sirius) { |
415 verbose_catf("Everything is ok, preparing for sirius.\n") | 413 verbose_catf("Everything is ok, preparing for sirius.\n") |
416 formulas <- get_formulas( | 414 formulas <- get_formulas( |
417 mzref = processing_parameters$mzref, | 415 mzref = processing_parameters$mzref, |
418 spectra = data.frame(mz = meaned_mz, intensities = sum_int[-1]), | 416 spectra = data.frame(mz = meaned_mz, intensities = sum_int[-1]), |
419 nominal_mz_list = vmz, | |
420 processing_parameters = processing_parameters | 417 processing_parameters = processing_parameters |
421 ) | 418 ) |
422 if (nrow(formulas) == 0) { | 419 if (nrow(formulas) == 0) { |
423 catf("No formula found.\n") | 420 catf("No formula found.\n") |
424 } else { | 421 } else { |
436 cp_res <- data.frame( | 433 cp_res <- data.frame( |
437 rep(processing_parameters$c_name, cp_res_length), | 434 rep(processing_parameters$c_name, cp_res_length), |
438 rep(processing_parameters$inchikey, cp_res_length), | 435 rep(processing_parameters$inchikey, cp_res_length), |
439 rep(processing_parameters$elemcomposition, cp_res_length), | 436 rep(processing_parameters$elemcomposition, cp_res_length), |
440 formulas, | 437 formulas, |
441 vmz, | 438 meaned_mz, |
442 ppm, | 439 ppm, |
443 rep(fid, cp_res_length), | 440 rep(fid, cp_res_length), |
444 cor_abs_int, | 441 cor_abs_int, |
445 sum_int[-1], | 442 sum_int[-1], |
446 rel_int, | 443 rel_int, |