library(microbenchmark)
suppressMessages(devtools::load_all())
# initial load (only reads meta data)
microbenchmark(cf.s3 <- load_cytoframe_from_h5("https://mike-h5.s3.amazonaws.com/bcell.h5"
                                            # , cred = list(AWS_ACCESS_KEY_ID = ""
                                            #               ,AWS_SECRET_ACCESS_KEY = ""
                                            #               , AWS_REGION ="us-west-1")
                                            )
               ,cf.local <- load_cytoframe_from_h5("/home/wjiang2/Downloads/bcell.h5")
               , times = 5)
## Unit: milliseconds
##                                                                          expr
##  cf.s3 <- load_cytoframe_from_h5("https://mike-h5.s3.amazonaws.com/bcell.h5")
##        cf.local <- load_cytoframe_from_h5("/home/wjiang2/Downloads/bcell.h5")
##          min          lq       mean      median        uq        max neval
##  1387.802668 1439.014948 1529.50770 1490.484747 1651.4217 1678.81443     5
##     4.700441    8.068343   13.05872    9.445247   15.6447   27.43485     5
dim(cf.s3)
##     events parameters 
##      81638         10
# verify it by load meta
microbenchmark(cf_load_meta(cf.s3), times = 5)
## Unit: seconds
##                 expr      min       lq     mean   median       uq      max
##  cf_load_meta(cf.s3) 1.247491 1.293581 1.363913 1.367484 1.433447 1.477562
##  neval
##      5
#subset events data by channels --- s3
microbenchmark(a = exprs(cf.s3[, 1])
               , b = exprs(cf.s3[, 1:5])
               , c = exprs(cf.s3)
               , times = 5
              )
## Unit: milliseconds
##  expr       min        lq      mean    median        uq      max neval
##     a  902.0661  948.3393  971.9846  980.4334  983.5414 1045.543     5
##     b 1718.7703 1848.1345 1959.6850 1950.6453 2071.8036 2209.071     5
##     c 2747.9917 2942.9335 3174.4539 3113.5937 3494.0789 3573.672     5
#subset events data by channels -- local
microbenchmark(a = exprs(cf.local[, 1])
               , b = exprs(cf.local[, 1:5])
               , c = exprs(cf.local)
               , times = 5
)
## Unit: milliseconds
##  expr      min       lq     mean   median       uq       max neval
##     a 3.520324 3.553624 3.875400 3.592005 3.787346  4.923701     5
##     b 5.163081 7.279636 7.638718 8.028719 8.030144  9.692011     5
##     c 5.299498 5.813901 8.026444 7.543575 7.853522 13.621722     5