FCOM Background and Usage

 

FCOM is a calculated parameter that can be used to classify events based on combinations of selected gates. It is commonly used in phenotypic analysis. You can create FCOM parameters using the Add New Parameters dialog box, accessed from the Edit Listmode File Data Source dialog box.

 

To understand how this powerful function works, you must first understand something about binary numbers. A binary number is represented with only two digits: 0 and 1. A binary number is formatted similarly to a decimal number using powers of 2 instead of powers of 10. An example of a binary number is 1110. The decimal equivalent to this number is 0 + 2 + 4 + 8 = 14

 

The lowest four digit binary number is 0000 (0 decimal) and the highest four digit binary number is 1111 (15 decimal). Thus, a four digit binary number can encode 16 different numbers (0,1,...15). The number of encoded different numbers (n) is related to the number of binary digits (d) by the function n=2 to the d power. Thus, for this example, d=4 and n=16.

 

What does this all have to do with the FCOM parameter? Plenty! Since an event is either inside or outside a gate, its state can be represented by a single digit, 0=outside and 1=inside. Suppose we have two gates, G1 and G2. We can represent all possible combinations of gate states by simply forming a binary number where the first digit represents the state of G1 and the second digit represents the state of G2. Thus if we have two gates, then the binary number 01 represents an event outside G1 and inside G2. Similarly, 11 represents an event inside G1 and inside G2. The FCOM function assigns each event a decimal number reflecting the gate combination for that event. Thus, in the case of 2 gates, G1 and G2, FCOM will return a value of 0, 1, 2, or 3 depending on the particular gate combination satisfied.

 

If we multiply this FCOM number by a scaling value and we display the result as a single parameter histogram in WinList, we will see a number of spikes with the FCOM parameter on the X-axis. The height of each spike tells us how many events satisfy that particular gate state. Typically, we add a small random number to each FCOM number (e.g. FRND(10)), so that instead of spikes we see Gaussian distributions which are more familiar to us.

 

How do you know what combination corresponds to each peak? Easy! You just count in reverse binary, which is to say evaluate from left to right.” Let's do a three gate example (e.g. FCOM(G1,G2,G3)).

 

G1

G2

G3

FCOM Derivation

Calculated FCOM value

0

0

0

0 + 0 + 0 =

0

1

0

0

1 + 0 + 0 =

1

0

1

0

0 + 2 + 0 =

2

1

1

0

1 + 2 + 0 =

3

0

0

1

0 + 0 + 4 =

4

1

0

1

1 + 0 + 4 =

5

0

1

1

0 + 2 + 4 =

6

1

1

1

1 + 2 + 4 =

7

 

OK, that's not so easy after all.  It would be better if the program figured out which population was which and labeled them for us.  This is something that the Create Region Array command does nicely.  There's an example of that in the tutorial Using FCOM to enumerate phenotyptes.

 

You can create additional FCOM calculated parameters with different gate combinations to display two parameter dot plots. With some creativity on your part, you can readily visualize and analyze complex phenotypes with relatively little effort.