[Bioc-devel] BiocParallel: fine-grained progress bar

Ludwig Geistlinger Ludwig.Geistlinger at sph.cuny.edu
Sat Dec 30 22:08:44 CET 2017


I'm currently playing around with progress bars in BiocParallel - which is a great package! ;-)

For demonstration, I'm using the example code from DESeq2::DESeq.


f <- function(mu)
    cnts <- matrix(rnbinom(n=1000, mu=mu, size=1/0.5), ncol=10)
    cond <- factor(rep(1:2, each=5))

    # object construction
        dds <- DESeqDataSetFromMatrix(cnts, DataFrame(cond), ~ cond)
        dds <- DESeq(dds)
    res <- results(dds)


and apply 'f' to a range of 'mu' values using 'bplapply'.

mu.grid <- 90:120
x <- bplapply(mu.grid, f)

Now, switching to serial execution and verbosing progress

bp <- registered()$SerialParam
bpprogressbar(bp) <- TRUE

x <- bplapply(mu.grid, f)

gives me somehow no progress bar at all.

Furthermore, switching to multi-core execution (2 cores) and verbosing progress

bp <- registered()$MulticoreParam
bpprogressbar(bp) <- TRUE

x <- bplapply(mu.grid, f)
 |                                                                                                                                           |                                                                      |===================================                                   |                                                                      |======================================================================| 100%

gives me only a very coarse-grained progress bar (updates when 50% of the job is done, and when the complete job = 100% is done).

What I actually want to have is a fine-grained progress bar that updates whenever f finishes execution on an element of the vector I am applying over.

In "normal" serial R execution, the desired behavior can be illustrated via

pb <- txtProgressBar(90, 120, style=3, width=length(mu.grid))
r <- vector(mode="list", length=length(mu.grid))
for(i in mu.grid)
    setTxtProgressBar(pb, i)
    r[[i-89]] <- f(i)

Is there a way to obtain something similar using BiocParallel?


Dr. Ludwig Geistlinger
CUNY School of Public Health

> sessionInfo()
R version 3.4.2 (2017-09-28)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS High Sierra 10.13.1

Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib

[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] parallel  stats4    stats     graphics  grDevices utils     datasets
[8] methods   base

other attached packages:
 [1] BiocParallel_1.12.0        DESeq2_1.18.1
 [3] SummarizedExperiment_1.8.0 DelayedArray_0.4.1
 [5] matrixStats_0.52.2         Biobase_2.38.0
 [7] GenomicRanges_1.30.0       GenomeInfoDb_1.14.0
 [9] IRanges_2.12.0             S4Vectors_0.16.0
[11] BiocGenerics_0.24.0

loaded via a namespace (and not attached):
 [1] genefilter_1.60.0       locfit_1.5-9.1          splines_3.4.2
 [4] lattice_0.20-35         colorspace_1.3-2        htmltools_0.3.6
 [7] base64enc_0.1-3         blob_1.1.0              survival_2.41-3
[10] XML_3.98-1.9            rlang_0.1.4             DBI_0.7
[13] foreign_0.8-69          bit64_0.9-7             RColorBrewer_1.1-2
[16] GenomeInfoDbData_0.99.1 plyr_1.8.4              stringr_1.2.0
[19] zlibbioc_1.24.0         munsell_0.4.3           gtable_0.2.0
[22] htmlwidgets_0.9         memoise_1.1.0           latticeExtra_0.6-28
[25] knitr_1.17              geneplotter_1.56.0      AnnotationDbi_1.40.0
[28] htmlTable_1.9           Rcpp_0.12.14            acepack_1.4.1
[31] xtable_1.8-2            scales_0.5.0            backports_1.1.1
[34] checkmate_1.8.5         Hmisc_4.0-3             annotate_1.56.1
[37] XVector_0.18.0          bit_1.1-12              gridExtra_2.3
[40] ggplot2_2.2.1           digest_0.6.12           stringi_1.1.6
[43] grid_3.4.2              tools_3.4.2             bitops_1.0-6
[46] magrittr_1.5            RSQLite_2.0             lazyeval_0.2.1
[49] RCurl_1.95-4.8          tibble_1.3.4            Formula_1.2-2
[52] cluster_2.0.6           Matrix_1.2-12           data.table_1.10.4-3
[55] rpart_4.1-11            nnet_7.3-12             compiler_3.4.2

	[[alternative HTML version deleted]]

More information about the Bioc-devel mailing list