TreeSummarizedExperiment
column-wise or row-wise based on grouping variableR/splitOn.R
splitOn.Rd
Split TreeSummarizedExperiment
column-wise or row-wise based on
grouping variable
splitOn(x, ...)
# S4 method for class 'SummarizedExperiment'
splitOn(x, group = f, f = NULL, ...)
# S4 method for class 'SingleCellExperiment'
splitOn(x, group = f, f = NULL, ...)
# S4 method for class 'TreeSummarizedExperiment'
splitOn(
x,
group = f,
f = NULL,
update.tree = update_rowTree,
update_rowTree = FALSE,
...
)
unsplitOn(x, ...)
# S4 method for class 'list'
unsplitOn(x, update.tree = update_rowTree, update_rowTree = FALSE, ...)
# S4 method for class 'SimpleList'
unsplitOn(x, update.tree = update_rowTree, update_rowTree = FALSE, ...)
# S4 method for class 'SingleCellExperiment'
unsplitOn(
x,
altexp = altExpNames,
altExpNames = names(altExps(x)),
keep.dimred = keep_reducedDims,
keep_reducedDims = FALSE,
...
)
Arguments passed to agglomerateByVariable
function for
SummarizedExperiment
objects and other functions.
See agglomerateByVariable
for more
details.
use.names
: Logical scalar
. Specifies whether to name
elements of
list by their group names. (Default: TRUE
)
Character scalar
, character vector
or
factor vector
. A column name from rowData(x)
or
colData(x)
or alternatively a vector specifying how the merging is
performed. If vector, the value must be the same length as
nrow(x)/ncol(x)
. Rows/Cols corresponding to the same level will be
merged. If length(levels(group)) == nrow(x)/ncol(x)
, x
will be
returned unchanged. If group
matches with both dimensions,
by
must be specified. (Default: NULL
)
Deprecated. Use group
instead.
Logical scalar
. Should
rowTree()
also be merged? (Default: FALSE
)
Deprecated. Use update.tree
instead.
Character vector
. Specify the alternative experiments
to be unsplit. (Default: names(altExps(x))
)
Deprecated. Use altexp
instead.
Logical scalar
. Should the
reducedDims(x)
be transferred to the result? Please note, that this
breaks the link between the data used to calculate the reduced dims.
(Default: FALSE
)
Deprecated. Use keep.dimred
instead.
For splitOn
: SummarizedExperiment
objects in a
SimpleList
.
For unsplitOn
: x
, with rowData
and assay
data replaced by the unsplit data. colData
of x is kept as well
and any existing rowTree
is dropped as well, since existing
rowLinks
are not valid anymore.
splitOn
split data based on grouping variable. Splitting can be done
column-wise or row-wise. The returned value is a list of
SummarizedExperiment
objects; each element containing members of each
group.
data(GlobalPatterns)
tse <- GlobalPatterns
# Split data based on SampleType.
se_list <- splitOn(tse, group = "SampleType")
# List of SE objects is returned.
se_list
#> List of length 9
#> names(9): Soil Feces Skin Tongue ... Ocean Sediment (estuary) Mock
# Create arbitrary groups
rowData(tse)$group <- sample(1:3, nrow(tse), replace = TRUE)
colData(tse)$group <- sample(1:3, ncol(tse), replace = TRUE)
# Split based on rows
# Each element is named based on their group name. If you don't want to name
# elements, use use_name = FALSE. Since "group" can be found from rowdata and
# colData you must use `by`.
se_list <- splitOn(tse, group = "group", use.names = FALSE, by = 1)
# When column names are shared between elements, you can store the list to
# altExps
altExps(tse) <- se_list
#> Warning: 'names(value)' is NULL, replacing with 'unnamed'
altExps(tse)
#> List of length 3
#> names(3): unnamed1 unnamed2 unnamed3
# If you want to split on columns and update rowTree, you can do
se_list <- splitOn(tse, group = colData(tse)$group, update.tree = TRUE)
# If you want to combine groups back together, you can use unsplitBy
unsplitOn(se_list)
#> class: TreeSummarizedExperiment
#> dim: 19216 26
#> metadata(0):
#> assays(1): counts
#> rownames(19216): 549322 522457 ... 200359 271582
#> rowData names(8): Kingdom Phylum ... Species group
#> colnames(26): CL3 M11Fcsw ... NP2 TS28
#> colData names(8): X.SampleID Primer ... Description group
#> reducedDimNames(0):
#> mainExpName: NULL
#> altExpNames(0):
#> rowLinks: a LinkDataFrame (19216 rows)
#> rowTree: 1 phylo tree(s) (19216 leaves)
#> colLinks: NULL
#> colTree: NULL