Nothing
#' Inverted versions of in, is.null and is.na
#'
#' @noRd
#'
#' @examples
#' 1 %not_in% 1:10
#' not_null(NULL)
`%not_in%` <- Negate(`%in%`)
not_null <- Negate(is.null)
not_na <- Negate(is.na)
"%!in%" <- function(x, y) !(x %in%
y)
#' Removes the null from a vector
#'
#' @noRd
#'
#' @example
#' drop_nulls(list(1, NULL, 2))
drop_nulls <- function(x) {
x[!sapply(x, is.null)]
}
#' If x is `NULL`, return y, otherwise return x
#'
#' @param x,y Two elements to test, one potentially `NULL`
#'
#' @noRd
#'
#' @examples
#' NULL %||% 1
"%||%" <- function(x, y) {
if (is.null(x)) {
y
} else {
x
}
}
#' If x is `NA`, return y, otherwise return x
#'
#' @param x,y Two elements to test, one potentially `NA`
#'
#' @noRd
#'
#' @examples
#' NA %|NA|% 1
"%|NA|%" <- function(x, y) {
if (is.na(x)) {
y
} else {
x
}
}
#' Typing reactiveValues is too long
#'
#' @inheritParams reactiveValues
#' @inheritParams reactiveValuesToList
#'
#' @noRd
rv <- function(...) shiny::reactiveValues(...)
rvtl <- function(...) shiny::reactiveValuesToList(...)
#' Check parameters in 3. are properly selected
#' @description **Internal function.** Not intended for direct use. Exported only for
#' `shinymeta` report rendering via `::` access. Use [run_app()] instead.
#' A function to perform PCA over a FBM object.
#' @keywords internal
#' @export
#' @examples
#' \donttest{
#' # Internal function exported for shinymeta :: access during report rendering.
#' # Requires a live Shiny reactive context and real AIRR-seq data.
#' # Use run_app() as the user-facing entry point.
#' }
validate_before_run <- function(work_as_categories, use_sharedVDJ, VJ_included,
VDJ_maximize_clones, clonal_group) {
if ((use_sharedVDJ) && (work_as_categories)) {
if (length(VJ_included)==0) {
showNotification("Select minimum a VJ combination", type = "error")
return(FALSE)
}
if ((VDJ_maximize_clones) && length(clonal_group)==0) {
showNotification("Create a clonal definition", type = "error")
return(FALSE)
}
}
TRUE
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.