Skip to contents

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 and split_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 named CloneID 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.

Value

A vector of selected clones.

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