Skip to content

Commit

Permalink
eicWorkflow step 1: added progress bar
Browse files Browse the repository at this point in the history
  • Loading branch information
Michele Stravs committed May 3, 2024
1 parent 30c3e75 commit 6030da3
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 8 deletions.
29 changes: 22 additions & 7 deletions R/eicWorkflow.R
Original file line number Diff line number Diff line change
@@ -1,33 +1,48 @@


eicWorkflow <- function(w, mode="pH", steps=c(1:8),
settings = getOption("RMassBank")) {
eicWorkflow <- function(
w, mode="pH", steps=c(1:8),
settings = getOption("RMassBank"),
progressbar = "progressBarHook"
) {

# Step 1: acquire EIC for parent from files
if(1 %in% steps)
{

rmb_log_info("eicWorkflow: Step 1. Acquire parent EIC from files")
spectra_count <- length(w@spectra)
pb <- do.call(progressbar,
list(object=NULL, value=0, min=0, max=spectra_count))

w@spectra <- w@spectra |> as.list() |>
purrr::map2(w@files,
extractCpdParentEic,
mode=mode,
ppm=settings$filterSettings$ppmFine
ppm=settings$findMsMsRawSettings$ppmFine,
progressbar = list(hook=progressbar, pb=pb)
) |>
as("SimpleList")
do.call(progressbar, list(object=pb, close=TRUE))
}
w

}


extractCpdParentEic <- function(cpd, file, mode, ppm) {
extractCpdParentEic <- function(cpd, file, mode, ppm, progressbar = NULL) {

d <- mzR::openMSfile(file)
h <- header(d)
h <- mzR::header(d)
h <- h[h$polarity == RMassBank:::getAdductPolarity(mode),]
mz <- findMz(cpd@id, mode = mode, ppm = ppm)
eic <- findEIC(d, mz, headerCache = h)
mz <- RMassBank::findMz(cpd@id, mode = mode, ppm = ppm)
eic <- RMassBank::findEIC(d, mz, headerCache = h)
attr(cpd, "eic") <- eic
if(!is.null(progressbar)) {
value <- do.call(progressbar$hook, list(object=progressbar$pb, value=NULL))
do.call(progressbar$hook, list(object=progressbar$pb, value=value+1))
}

return(cpd)
}

Expand Down
6 changes: 5 additions & 1 deletion R/leMsMs.r
Original file line number Diff line number Diff line change
Expand Up @@ -2355,14 +2355,18 @@ recalibrate.linear <- function(rcdata)
#'
#' @author Michele Stravs, Eawag <stravsmi@@eawag.ch>
#' @export
progressBarHook <- function(object = NULL, value = 0, min = 0, max = 100, close = FALSE)
progressBarHook <- function(object = NULL, value = NULL, min = 0, max = 100, close = FALSE)
{
if(is.null(object))
{
object <- txtProgressBar(min, max, value, style=3, file=stderr())
}
if(close)
close(object)
if(is.null(value))
{
return(getTxtProgressBar(object))
}
else
{
setTxtProgressBar(object, value)
Expand Down

0 comments on commit 6030da3

Please sign in to comment.