So here's a comp matrix as seen in FlowJo. It has some numbers. How do you check those numbers are right?
Here's one idea:
make a plot for each comp control, showing the control parameter vs. it's biggest spill value- so for the PE-A control (top row), I plot it vs. PE-Cy5, etc.
Then I overlay the plot with itself - except comped, dressed up with some math. Here's what that looks like, just for the PE control tube:
To get the above figure, make the two separate figs first (PE vs PeCy5 and comp-PE vs comp-PeCy5, in this example). Set both figs background "N" (transparent). Then select both and tap T (top align) and L (left align).
To get the formulas to evaluate in your textboxes, simply wrap them in {{}} brackets around the expression. You can mix FJML with regular math operations. For example, the formula for the median % error was:
{{abs(1-<fjml for uncomped median> / <fjml for comped median>) * 100 }}
and for the vertical spread error,
{{abs (1- (<fjml for SD1> + <fjml for CV1>)/(<fjml for SD2> + <fjml for CV2> ))*100 }}
These stat calculations are the interesting bit which needs some more formulation. The easy check is to line up the medians of the data before and after compensation (shown in the top textbox.)
The harder bit is to check that the vertical spread hasn't changed. In the plot above, the red and black populations should have the same footprint on the Y scale. I tried to quantitate this using SD/CV math but I get much bigger errors.. has anyone done this sort of thing systematically, I'd love to get some feedback!