v0.7.0 — per-gate coordinate space, arcsinh fluorescence, and a reliable navigate drag
Gates carry the space they were drawn in
Every gate now records its own coordinate space and the transforms it was recorded under, and each is evaluated against its own columns. A workspace can hold gates of both kinds at once, which is what happens as soon as you open a FlowJo workspace alongside your own.
Gates you draw in GateLab are stored in raw channel values, so nothing you do to a display control moves an event in or out of one. FlowJo and Gating-ML 2.0 both treat a polygon as straight lines in whatever space the axis is showing, so under those rules the gate changes when the view does. Neither is wrong, but they differ, and GateLab now says which it is using on every gate rather than leaving you to assume.
New
- Arcsinh as an alternative to logicle on fluorescence channels, with the cofactor on a slider. The cofactor is what makes the axis differ from a log scale: raise it to pack the near-zero noise tighter, lower it to spread it out.
- Two letters on each gate label naming the space of its x and y axes: R raw, A arcsinh, L logicle, B FlowJo biex, N linear. A star means the axis you are looking at is not the one the gate was drawn in.
- FlowJo's biex and log transforms, ported from cytolib and checked against populations FlowJo exported itself, so imported gates land where FlowJo evaluates them.
- Gating-ML export declares the transform each gate's vertices are actually straight in. Import reads
transformation-refthe way the specification means it. - The checked files are the whole selection; the separate active row is gone. Files whose panel differs are refused for pooling rather than narrowed to shared channels.
Fixed
- Shift-drag to stretch was unreliable. Two pan implementations were running on the same drag and disagreeing about what Shift meant; one has been removed. Shift is also read from key events now, so pressing it without moving the mouse works.
- Gate labels could be lost off the plot, and the axis fit followed them there, which shrank whole datasets into a corner. A label that would fall outside now returns to its default position, and no label can drag the axis out to reach it.
- The plot canvas drew at CSS pixel resolution, so on a Retina screen every event was rendered at half the resolution available.
- Arcsinh axis ticks vanished at high cofactors, leaving an axis labelled with a lone zero.
- The exported scales file recorded a cofactor only for scatter, so an arcsinh fluorescence channel went out with nothing a reader could reproduce its axis from.
- The x-axis channel picker opened downward off the bottom of the screen.
- Importing into an empty workspace asked whether to merge or replace, which were the same thing.
- Changing an axis transform flashed a misshapen gate before the plot settled.
- A FlowJo workspace could load its files and no gating hierarchy, with no explanation.
CytoML, a separate implementation by different authors, agrees with GateLab on all eighteen populations of a published workspace with no event differing.