-
Notifications
You must be signed in to change notification settings - Fork 3
Description
Currently all rules are combined with AND, but there might be cases where OR is useful.
Motivation
Use-case 1: For example, markers a1 and a2 might have nice but imperfect overlap, and both mark cell type A. If A has subtypes it may well be we'd want to set the subtype's parent to either a1 OR a2. For this, introducing a group called "A" as a kind of virtual class (no own rules) would help.
Use-case 2: for plotting, we might want to have all myeloid cells in the same colors. Introducing the "myeloid" class could achieve this:
obj %>%
rule("mono", "CD14", .1) %>%
rule("DC", "CD1C", .1) %>%
group_classes("myeloid"=c("mono","DC") %>%
rule("T", "CD3E", .1) %>%
plot_classes( c("myeloid", "T"))
Since mono and DC have no common parent, this can not be achieved without the group_classes function.
How to implement
obj$classes currently has "class" and "parent" columns. parent is either a class name or the special key word "..root..". I propose to create the second key word "..group.." and the slot obj$class_groups; this could be a named list (name is group name, elements are classes belonging to the group.