File: README.md

package info (click to toggle)
r-bioc-biocbaseutils 1.0.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 160 kB
  • sloc: sh: 13; makefile: 2
file content (163 lines) | stat: -rw-r--r-- 4,299 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163

# 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).