Name Mode Size
.github 040000
R 040000
inst 040000
man 040000
tests 040000
vignettes 040000
.gitignore 100644 1 kb
DESCRIPTION 100644 1 kb
NAMESPACE 100644 0 kb
NEWS.md 100644 0 kb
README.md 100644 4 kb
README.md
# BiocBaseUtils The `BiocBaseUtils` package provides a suite of helper functions designed to help developers. Currently, it covers three topics often encountered during the development process. 1. Assertions - Type checks for logical, character, and numeric inputs 2. Slot replacement - Replacing the value of object slots 3. `show` method - Limiting the output of internal components of a class # Installation Install the package directly from Bioconductor: ``` r if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install("BiocBaseUtils") ``` # Load Package ``` r library(BiocBaseUtils) ``` # Assertions We provide a number of functions that helps the developer establish the type of class of a particular object. These include `integer`, `numeric`, `character`, and `logical`; types often used in R / Bioconductor. ## Logical ``` r isTRUEorFALSE(TRUE) #> [1] TRUE isTRUEorFALSE(FALSE) #> [1] TRUE isTRUEorFALSE(NA, na.ok = TRUE) #> [1] TRUE ``` ## Character ``` r isScalarCharacter(LETTERS) #> [1] FALSE isScalarCharacter("L") #> [1] TRUE isCharacter(LETTERS) #> [1] TRUE isCharacter(NA_character_, na.ok = TRUE) #> [1] TRUE isZeroOneCharacter("") #> [1] FALSE isZeroOneCharacter("", zchar = TRUE) #> [1] TRUE ``` ## Numeric ``` r isScalarInteger(1L) #> [1] TRUE isScalarInteger(1) #> [1] FALSE isScalarNumber(1) #> [1] TRUE isScalarNumber(1:2) #> [1] FALSE ``` # Slot replacement This function is often used in packages that establish formal S4 classes. When updating the value of a slot, one often uses the `setSlots` function. ``` r setClass("A", representation = representation(slot1 = "numeric")) aclass <- new("A", slot1 = 1:10) aclass #> An object of class "A" #> Slot "slot1": #> [1] 1 2 3 4 5 6 7 8 9 10 ``` Now we use the `setSlots` function to update the values in the object. ``` r aclass <- setSlots(aclass, slot1 = 11:20) aclass #> An object of class "A" #> Slot "slot1": #> [1] 11 12 13 14 15 16 17 18 19 20 ``` Note that `setSlots` provides the same functionality as `BiocGenerics:::replaceSlots` but is more consistent with Bioconductor the setter and getter language. # `show` method The `selectSome` function allows the developer to display a limited amount of information from a developed class. Note that the use of the `@` here is due to the minimal implementation in the examples provided. The developer should always provide an interface to access the internal components of the class via an ‘accessor’ function. ``` r setMethod("show", signature = "A", function(object) { s1info <- getElement(object, "slot1") cat("A sequence:", selectSome(s1info)) }) aclass #> A sequence: 11 12 ... 19 20 ``` # Contributing `BiocBaseUtils` is a work in progress and we welcome contributions. There are quite a few often-used utility functions that are yet to be included in the package. We would like to keep the dependencies in this package minimal; therefore, contributions should mostly use base R. # Session Info ``` r sessionInfo() #> R version 4.2.1 (2022-06-23) #> Platform: x86_64-pc-linux-gnu (64-bit) #> Running under: Ubuntu 20.04.4 LTS #> #> Matrix products: default #> BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0 #> LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0 #> #> locale: #> [1] LC_CTYPE=C.UTF-8 LC_NUMERIC=C LC_TIME=C.UTF-8 #> [4] LC_COLLATE=C.UTF-8 LC_MONETARY=C.UTF-8 LC_MESSAGES=C.UTF-8 #> [7] LC_PAPER=C.UTF-8 LC_NAME=C LC_ADDRESS=C #> [10] LC_TELEPHONE=C LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C #> #> attached base packages: #> [1] stats graphics grDevices datasets utils methods base #> #> other attached packages: #> [1] BiocBaseUtils_0.99.10 #> #> loaded via a namespace (and not attached): #> [1] compiler_4.2.1 magrittr_2.0.3 fastmap_1.1.0 htmltools_0.5.3 #> [5] tools_4.2.1 yaml_2.3.5 codetools_0.2-18 stringi_1.7.8 #> [9] rmarkdown_2.15 knitr_1.39 stringr_1.4.0 xfun_0.32 #> [13] digest_0.6.29 rlang_1.0.4 renv_0.15.5 evaluate_0.16 ``` Please report minimally reproducible bugs at our [github issue page](https://github.com/Bioconductor/BiocBaseUtils/issues).