
Helper functions to select clones based on various criteria
Source:R/clonalutils.R
clone_selectors.Rd
These helper functions allow for the selection of clones based on various criteria such as size, group comparison, and existence in specific groups.
Usage
top(n, groups = NULL, data = NULL)
sel(expr, groups = NULL, data = NULL)
uniq(group1, group2, ..., groups = NULL, data = NULL)
shared(group1, group2, ..., groups = NULL, data = NULL)
gt(group1, group2, include_zeros = TRUE, groups = NULL, data = NULL)
ge(group1, group2, include_zeros = TRUE, groups = NULL, data = NULL)
lt(group1, group2, include_zeros = TRUE, groups = NULL, data = NULL)
le(group1, group2, include_zeros = TRUE, groups = NULL, data = NULL)
eq(group1, group2, groups = NULL, data = NULL)
ne(group1, group2, include_zeros = TRUE, groups = NULL, data = NULL)
Arguments
- n
The number of top clones to select or the threshold size.
- groups
The column names in the meta data to group the cells. By default, it is assumed
facet_by
andsplit_by
to be in the parent frame.- data
The data frame containing clone information. Default is NULL. If NULL, it will get data from parent.frame. A typical
data
should have a column namedCloneID
and other columns for the groupings. Supposingly it should be a grouped data frame with the grouping columns. Under each grouping column, the value should be the size of the clone. By default, the data is assumed to be in the parent frame.- expr
The expression (in characters) to filter the clones (e.g. "group1 > group2" to select clones where group1 is larger than group2).
- group1
The first group to compare.
- group2
The second group to compare.
- ...
More groups to compare.
- include_zeros
Whether to include clones with zero size in the comparison. If TRUE, in a comparison (s1 > s2) for a clone to be selected, both s1 and s2 must be greater than 0. If FALSE, only the first group must be greater than the second group.
Examples
data <- data.frame(
CloneID = 1:10,
group1 = c(0, 1, 2, 3, 4, 5, 6, 7, 8, 9),
group2 = c(7, 3, 8, 2, 1, 5, 9, 4, 6, 0),
groups = c("A", "A", "A", "A", "B", "B", "B", "B", "B", "B")
)
data <- data[order(data$group1 + data$group2, decreasing = TRUE), ]
scplotter:::top(3)
#> CloneID group1 group2 groups
#> 1 7 6 9 B
#> 2 9 8 6 B
#> 3 8 7 4 B
scplotter:::top(3, groups = "groups")
#> # A tibble: 6 × 4
#> # Groups: groups [2]
#> CloneID group1 group2 groups
#> <int> <dbl> <dbl> <chr>
#> 1 3 2 8 A
#> 2 1 0 7 A
#> 3 4 3 2 A
#> 4 7 6 9 B
#> 5 9 8 6 B
#> 6 8 7 4 B
scplotter:::sel(group1 == 0 | group2 == 0)
#> CloneID group1 group2 groups
#> 1 10 9 0 B
#> 2 1 0 7 A
scplotter:::uniq(group1, group2)
#> CloneID group1 group2 groups
#> 1 10 9 0 B
scplotter:::shared(group1, group2)
#> CloneID group1 group2 groups
#> 1 7 6 9 B
#> 2 9 8 6 B
#> 3 8 7 4 B
#> 4 3 2 8 A
#> 5 6 5 5 B
#> 6 4 3 2 A
#> 7 5 4 1 B
#> 8 2 1 3 A
scplotter:::gt(group1, group2)
#> CloneID group1 group2 groups
#> 1 9 8 6 B
#> 2 8 7 4 B
#> 3 10 9 0 B
#> 4 4 3 2 A
#> 5 5 4 1 B
scplotter:::lt(group1, group2)
#> CloneID group1 group2 groups
#> 1 7 6 9 B
#> 2 3 2 8 A
#> 3 1 0 7 A
#> 4 2 1 3 A
scplotter:::le(group1, group2)
#> CloneID group1 group2 groups
#> 1 7 6 9 B
#> 2 3 2 8 A
#> 3 6 5 5 B
#> 4 1 0 7 A
#> 5 2 1 3 A
scplotter:::lt(group1, group2, include_zeros = FALSE)
#> CloneID group1 group2 groups
#> 1 7 6 9 B
#> 2 3 2 8 A
#> 3 2 1 3 A
scplotter:::eq(group1, group2)
#> CloneID group1 group2 groups
#> 1 6 5 5 B