gDRstyle 1.10.0
A style guide for the gdrplatform organization.
if ( over if(1 == 1 over 1==1if (1 == 1) {} over if (1=1){}[ , subset] over [, subset]<- over =validated_se <- validate_SE() over validate_se <- validate_SE()function(a = "A") over function(a="A")function(big_matrix) over function(bigMatrix)compute_metrics_SE over metrics_SE.get*, setters should start with set*, boolean checkers should start with is* # Good
fun <- function(param1,
param2,
param_with_dir_for_st_important = get_st_important_dir()) {
# Code is indented by two spaces.
...
}
# Bad
fun <- function(param1, param2, param_with_dir_for_st_important = file.path(system.file(paste(param1, "SE", "rds", sep = "."), package = "important_package"))) {
...
}
<- over = to differentiate function arguments assignments from function assignments myFunction <- function() over myFunction = function()assert tests for their parametersvapply over sapply (or lapply + unlist() if predefining FUN.VALUE is difficult)apply on data.frame(s) (mapply is good for row-wise operations) # Good.
foo <- function() {
# Do stuff.
x
}
# Bad.
foo <- function() {
# Do stuff.
return(x)
}
if and else statements should be surrounded by curly braces on the same lineif (TRUE) {
NULL
} else {
NULL
}
## NULL
what_is_going_on <- if (is_check()) {
flog <- "it's getting hot..."
} else if (is_mate()) {
flog <- "Oh noooo..."
} else {
flog <- "there is a hope..."
}
R/ (R/assays => tests/testthat/test-assays.R)package.Rpackage.R
checkmate, SummarizedExperiment, etc.expect_equal(obs, exp) over expect_equal(exp, obs)^ over ** for exponentiation like 2 ^ 3 over 2**3.0’s in front of decimals like 0.1 over .1df[, "alias"] <- df[, "celllinename"] over df[, 1] <- df[, 2]df[, fxn_that_returns_idx(x):length(x)] <- NA over df[, 2:length(x)] <- NA# Good.
idx <- foo()
if (length(idx) == 1) {
f <- c(f[idx], f[-idx])
}
# Bad.
if (length(foo()) == 1) {
f <- c(f[foo()], f[foo()])
}
usethis::use_package_doc()#' @note To learn more about functions start with `help(package = "{pkgname}")`
#' @keywords internal
#' @return package help page
"_PACKAGE"
## [1] "_PACKAGE"
Roxygen: list(markdown = TRUE)@import or @importFrom always in one place - file package.Rnamespace::function_namegDRstyle::checkPackage() (use bioc_check = TRUE to verify
if the requirements for Bioconductor are also met)<type>: <description> where type can be one of:
fix: for bugfixes;feat: for new features;docs: for documentation changes;style: for formatting changes that do not affect the meaning of the code;test: for adding missing tests or correcting existing tests;refactor: for code changes that neither fixes a bug nor adds a featureci: for changes to CI configurationPATCH version;MINOR version.
Exceptions: All public packages - as to-be-released on Bioconductor have version 0.99.x.MINOR version regardless of the nature of the changes.sessionInfo()
## R version 4.6.0 RC (2026-04-17 r89917)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 24.04.4 LTS
##
## Matrix products: default
## BLAS: /home/biocbuild/bbs-3.23-bioc/R/lib/libRblas.so
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.0 LAPACK version 3.12.0
##
## locale:
## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=en_GB LC_COLLATE=C
## [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
##
## time zone: America/New_York
## tzcode source: system (glibc)
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] gDRstyle_1.10.0 BiocStyle_2.40.0
##
## loaded via a namespace (and not attached):
## [1] cli_3.6.6 knitr_1.51 rlang_1.2.0
## [4] xfun_0.57 rex_1.2.2 otel_0.2.0
## [7] jsonlite_2.0.0 glue_1.8.1 backports_1.5.1
## [10] htmltools_0.5.9 sass_0.4.10 rmarkdown_2.31
## [13] evaluate_1.0.5 jquerylib_0.1.4 fastmap_1.2.0
## [16] yaml_2.3.12 lifecycle_1.0.5 bookdown_0.46
## [19] BiocManager_1.30.27 compiler_4.6.0 lintr_3.3.0-1
## [22] digest_0.6.39 R6_2.6.1 bslib_0.10.0
## [25] tools_4.6.0 xml2_1.5.2 cachem_1.1.0
## [28] desc_1.4.3