You can now create a gate that is a Boolean combination of any existing gates using all the Boolean functions, including OR. To create or edit Boolean gates, select the parent subset in the Workspace and then select the menu item Boolean gates... under the Platforms menu.
In this example, we have chosen the T Cells subpopulation within the Lymphocytes gate as the parent. When the tool pictured below opens, give a name to the new subset you are creating...
- The specification of the new gate will be created in this window.
- Select the first subset of the boolean gate from a drop-down list including positions relative to the chosen subset in the gating hierarchy. That list looks like this:
- Select the first subset in relation to the population at the sample level, its absolute position. That list looks like this:
- Choose the boolean function by clicking one of the Insert function... buttons.
Finally, select a second subset to complete the specification of the gate as shown at #1 above.
Click Create. The Boolean gate will be displayed in the workspace window as part of the gating hierarchy.
Relative vs. Absolute Gate Specification
You can choose the gate's position from either of the two drop-down menus. The results are the same for this particular gate. But if you wish to distribute this gate to other populations, it is essential that you select the appropriate parent for the gate. With relative boolean gates, the gates to which the boolean operators refer will be different after dragging and dropping -- FlowJo now looks for new gates in the destination hierarchy. On the other hand, with absolute references, the gates refered to don't change. Here's an example:
If you add a boolean gate to Subset A which is Subset X OR Subset Y with relative paths, and then drag that boolean gate to Subset B, the boolean gate will now change to refer to the gates Subset X and Subset Y that are under the Subset B tree. With absolute reference, they would still refer to the ones under the Subset A gate--which is probably not what you wanted.
But there are times when you want absolute references. Consider a gate that you want to add to Subset A which is something like Subset X AND Subset Y AND NOT Monos (i.e., you want events that are both in Subset X and Subset Y but want to exclude Monos). In relative terms, this is specified as /Subset X AND /Subset Y AND NOT ///Monos -- i.e., have to go up three levels to get to Monos. If you now dragged this gate to the LiveGate under Subset C, then the references to Subset X AND Subset Y work just fine (because those exist at the relative level under Subset C--but it won't find the Monos gate because that one is now one more level up the hierarchy. Here, what you would want to do is to specify SubsetX AND SubsetY as relative, and Monos as absolute path--so that the Monos references would be correct no matter where in the heirarchy the Boolean gate is dragged.
So, use absolute specification if you need to move the boolean gates and they refer to gates that are at different levels. Otherwise, you would almost always want to use relative specification.
Boolean gates are "live", meaning that they will reflect any changes you make to the gates on which they depend. Boolean expressions can be arbitrarily complex; you can use parentheses to associate the expression properly. For example: Live AND (CD4 or CD8) AND NOTGammaDelta will create a gate that includes cells in the predefined Live gate, GammaDelta gate, and either the CD4 or CD8 gates.
Note that the Boolean expression you specify is applied to the cells in the subset to which you are adding the Boolean gate. For example, if you add a Boolean expression to the Lymphocyte gate, then only lymphocytes can be part of the gate (no matter what the Boolean expression is you can't include a Monocytes gate)-if you specify NOT Lymphocytes in the expression then you would get no cells! In this case, you probably want to add the Boolean gate at the sample level.
Because all parent gates are automatically part of the final gate (from FlowJo's standard hierarchical approach), they will not appear in the popup menu of possible subsets to include in the expression.
FlowJo can also automatically create a series of Boolean gates that represent all combinations (plus and minus) of a set of gates. For example, if you have a sample which was stained for CD8 and CD4, you can automatically create 8 gates that represent all combinations of expression of the cytokines (e.g., CD4+CD8+, CD4+CD8-, CD4-CD8-) using FlowJo's Boolean Combination option.