Utility functions to check the existence of specific elements in a TreeSummarizedExperiment that are compulsory when using certain panels.

.check_all_panels(se, initial)

.check_panel(se, initial, panel.class, panel.fun, wtext)

Arguments

se

a SummarizedExperiment object.

initial

Panel vector. A list of panel objects to check.

panel.class

Character vector. A list of panel names corresponding to panel objects in initial.

panel.fun

Function scalar. The element of se whose existance should be checked.

wtext

Character scalar. Text of the warning message returned if panel.fun does not exist or is empty.

Value

.check_panel returns the input initial list of panels excluding the checked panel if panel.fun is NULL or empty. .check_all_panels applies .check_panel to multiple panels and returns the a filtered version of initial.

Examples

# Import libraries
library(mia)
library(TreeSummarizedExperiment)

# Import TreeSE
data("Tengeler2020", package = "mia")
tse <- Tengeler2020

# Create list of panels
initial <- c(RowTreePlot(), ColumnTreePlot())
# If RowTreePlot is in initial, check whether rowLinks is defined
initial <- .check_panel(tse, initial, "RowTreePlot", rowLinks)
# If ColumnTreePlot is in initial, check whether colLinks is defined
initial <- .check_panel(tse, initial, "ColumnTreePlot", colLinks)
#> Warning: no valid colLinks fields for ColumnTreePlot

# View filtered list of panels
initial
#> [[1]]
#> Panel object of class RowTreePlot
#>   Get or set individual parameters with ‘[[’ 
#>   Available parameters:
#>     DataBoxOpen: FALSE
#>     PanelHeight: 500
#>     PanelId: NA
#>     PanelWidth: 4
#>     RowSelectionDynamicSource: FALSE
#>     RowSelectionRestrict: FALSE
#>     RowSelectionSource: ---
#>     SelectionBoxOpen: FALSE
#>     VersionInfo: list of length 1
#>     add.legend: TRUE
#>     add.node.lab: FALSE
#>     add.tip.lab: FALSE
#>     branch.length: FALSE
#>     collapse: NA
#>     colour_parameters: NA
#>     edge.colour.by: NA
#>     edge.size.by: NA
#>     layout: fan
#>     node.colour.by: NA
#>     node.shape.by: NA
#>     node.size.by: NA
#>     open.angle: 0
#>     order.tree: FALSE
#>     rotate.angle: 0
#>     shape_parameters: NA
#>     size_parameters: NA
#>     tip.colour.by: NA
#>     tip.shape.by: NA
#>     tip.size.by: NA
#>     visual_parameters: NA
#>