FlowGateVR – A Discovery Tool for Flow Cytometry

 

Scatter plots, 3D gating, and exporting gated events

 Updated August 2026

 

Scatter Plots in FlowGateVR

 

Assigning markers to axes

FlowGateVR plots your events in a 3D coordinate frame. Every column in your CSV becomes available as an axis.

Use the Axis Parameter Selection pulldowns on the left controller’s Axis and Color Panel to assign a marker to each of the X, Y and Z axes. The column headers from your CSV are what appear in these menus, which is why clear header names matter.

Any numeric column can go on any axis. Assign CD3, CD4 and CD8 to X, Y and Z and you have a three-marker scatter plot you can walk around inside. Swap one axis and the population you are watching redistributes, which is the point.

Five dimensions at once

Beyond the three spatial axes, FlowGateVR maps two more parameters:

  • Point Color — activate the Point Color toggle and assign any parameter to drive color.
  • Point Brightness — assign a parameter to drive per-event brightness.

Three axes plus color plus brightness is five markers displayed simultaneously. This is the core argument for cytometry in VR: a conventional biaxial plot shows you two markers at a time, and a wide panel forces you through a sequence of gates to get anywhere. Here you see five at once and your visual system does the pattern separation.

Computed dimensions

If you added tSNE or UMAP columns to your CSV, they appear in the axis menus like any other numeric column. Map tSNE_1 and tSNE_2 to X and Y, then put a real marker on Z or Color to see which measurements actually drive the clusters your reduction produced.

Auto Scale

The Auto Scale toggle applies consistent scaling across all axes. For cytometry this is usually not what you want: independent per-axis scaling (Auto Scale off) spreads events out and makes populations separable. Consistent scaling matters when axes share units — cytometry markers generally do not.

Gating

Gating in FlowGateVR is 3D and additive: you select a region of space containing events, commit it as a gate, and then change axes to see where those same events land in a different marker combination. That last part is the capability a 2D gating tree cannot give you.

The Gate Tool

The Gate Tool is an adjustable spheroid you position in the data.

  • Retrieve it with the “Retrieve Gate Tool” button on the left controller if it is out of reach.
  • Size and shape it with the four Gate Size Control sliders on the left controller: x, y and z individually, or “All” to scale all three together for a true sphere.
  • Position it by holding the left controller trigger and moving it.
  • Events inside the tool’s bounds highlight temporarily.
  • Commit with the right controller’s “Set Gate” button. The new gate appears on the Gates Display.

The Gate Tool’s coordinates display alongside it, so it doubles as a cursor for reading values off specific events.

Two toggles modify what you capture and see while gating:

  • Invert Gate — selects points outside the gate shape instead of inside. Useful for “everything except this population.”
  • Hide Events Not Selected — hides points that are not selected (not yellow), so you can see your selection clearly in dense regions.

The two toggles compose cleanly:

  • Invert off, Hide off — selected (inside gate) points highlighted yellow; everything else normal
  • Invert on, Hide off — selected (outside gate) points highlighted yellow; everything else normal
  • Invert off, Hide on — only inside-gate points visible; rest hidden
  • Invert on, Hide on — only outside-gate points visible; rest hidden

Simple rule: yellow = what you will capture; Hide removes everything that is not yellow.

Freeform selections

For populations a spheroid cannot cleanly bound, FlowGateVR also supports freeform selection by sweeping the Gate Tool through the data:

  • Hold the left controller trigger and sweep the tool — single click includes events, double click excludes them.
  • This works both when first defining a gate and when editing an existing one.

Editing an existing gate

Enter Edit Gate mode using the button on the right controller. The background turns blue as a visual cue that you are in edit mode. Use the Gate Tool to add or remove events from the gate. Exit by pressing “Edit Gate” or “Set Gate”, which returns you to your prior view.

Gate navigation and hierarchy

  • Left thumbstick up/down (unpressed) — move between gates in the list
  • Left thumbstick left/right (unpressed) — indent or un-indent a gate (sets AND/OR relationship)
  • Left thumbstick click + up/down — reorder gates vertically in the list

Gates listed sequentially combine with OR. Indent a gate rightward beneath another to apply an AND condition. This maps directly onto how cytometrists think: drawing a CD3+ gate, then indenting a CD4+ gate beneath it, gives you CD3+ AND CD4+, the same logic as a conventional gating tree.

The displayed event count and the event cloud update live as you rearrange.

The Gates Display

A panel above the left controller tracking every gate and their relationships.

Base Gate

Created automatically when your data loads. Contains all events, drawn white. Immutable. Every other gate descends from it.

What each gate shows

Each row carries: flag characters, a colored square (full brightness = active, dimmed = inactive), the label, the event count, and the axis settings active when the gate was created.

The event count is the logical count, meaning it already reflects the AND/OR relationships you have built. Read it as “events this gate actually contributes after the hierarchy is applied.”

Axis provenance shows X, Y and Z names only. Color and brightness axes are not displayed on the row. A gate drawn with CD19 on Color will not show that fact here — it is recorded internally but not surfaced.

The provenance field matters more than it sounds. A gate drawn in a CD3/CD4/CD8 frame means something different from one drawn in a tSNE frame, and the display keeps that visible.

Managing gates

  • Toggle Gate Off/On — hide or show a gate’s events.
  • Delete Gate — removes it. A confirmation step guards against accidents.

Exporting Gated Events

Two files are written, not one. This is the answer to “why do I have two CSVs?”

  • <datafilename>-LogicallyGatedData.csv — events that pass the AND/OR hierarchy you built with gate ordering and indentation. This is normally the file you want.
  • <datafilename>-AllGatedData.csv — events by raw gate membership, without the hierarchy applied. Useful when you want each gate’s raw contents to inspect separately.

The logically-gated file respects the AND/OR relationships you defined. Stated explicitly so the row count never surprises you.

Where the files land: in the same directory as the data file you loaded. If you loaded experiment1.csv from Download/, look for experiment1-LogicallyGatedData.csv in Download/. Column structure is preserved, so files round-trip back into FlowJo or your own pipeline.

Saving and restoring gates

“Save and Restore Gates” persists gates for later sessions or to hand to a collaborator. Gate files are separate from data files: the same gates applied to the same dataset, in another person’s headset.

Labeling gates

Focus a gate, then use Label Gate to name it. Use real population names — “CD4+ effector”, not “gate 3”. Labels persist with the saved gate.

The AI Assistant

FlowGateVR includes a voice-enabled AI Assistant that understands cytometry vocabulary and the dataset currently loaded.

  • Press Ask on the AI Assistant panel — a beep plays and recording starts (up to 20 seconds)
  • Speak your question
  • Press Submit — the audio is sent for processing
  • The response plays as audio and appears as text in the log
  • In a collaborative session, the response is broadcast to all participants simultaneously

The AI understands your loaded dataset’s columns and can answer questions about marker distributions, gate populations, and gating strategy. It does not generate scientific data — it interprets and summarizes what is already loaded.

The AI Assistant is an Early Access feature and requires an internet connection. All gating and export features described above work offline.

Collaboration

Up to ten participants can share the same VR scene simultaneously.

  • Beforehand: share the data file, any gate files, and agree a room name.
  • Joining: everyone loads the same files and enters the same room name.
  • In session: avatars with head and controllers, Quest microphone and speakers for stereo voice.
  • Synchronized: axis changes, gate setting, and event positions propagate to everyone.
  • Ending: “End Collaboration”.

If collab will not connect: look at your controller tips after pressing Start Collab. A small sphere at each tip means you reached the Photon servers. No spheres means the network is blocking the connection. Spheres on both machines but still no connection is almost always institutional network segregation — lab wired segment versus guest wifi. Test with a phone hotspot on both.

Axis Step: Rapid Parameter Exploration

A feature unique to FlowGateVR. On the Axes and Color Parameter Selection panel, a column of toggle buttons labeled “Select Axis then Step with R-Grip” sits next to each axis row (X, Y, Z, Color, Brightness). The toggles are mutually exclusive — only one can be active at a time, and X is active by default.

With a toggle active:

  • Single right grip press — steps that axis forward to the next parameter in the list (wraps around)
  • Double right grip press — steps backward to the previous parameter

This lets you cycle rapidly through your dataset’s markers without opening the dropdown each time. In a collaborative session, the axis change propagates to all participants.

If no toggle is active and you press the right grip, nothing happens.

User Defined Coordinate Frames

FlowGateVR provides 4 Save/Restore slots for storing axis configurations you want to return to. Each slot saves the current X, Y, Z, Color, and Brightness axis assignments plus Auto Scale and Center state.

  • Press Save 1-4 to store the current configuration in that slot
  • Press the corresponding Restore button to return to it
  • Save files are per-dataset — each dataset has its own 4 slots, stored alongside the data file. Loading a different dataset gives you a fresh set of slots.
  • Press Restore to load and apply a saved configuration. Saves are not applied automatically — you choose when to restore.

Two-Handed Gate Tool Shaping

While positioning the Gate Tool (before pressing Set Gate), hold both grip buttons simultaneously and move your hands apart, together, or around each other to scale and rotate the Gate Tool in real time. The point of expansion or contraction is the midpoint between your two controllers — like grabbing a physical object and stretching or spinning it. This is the fastest way to fit the gate shape precisely around the population you want.

To modify an already-created gate, use the Edit Gate button on the right controller instead.

Note: in a collaborative session, two-handed scaling is blocked if another participant is currently holding the gate.

Other Controls

  • Field Scale slider — resize the whole plot.
  • Brightness Scale slider — refines luminosity when Point Brightness is on; useful for dim populations.
  • Center Events — re-centers an off-center population without flying to it.
  • Reload Data — reloads the current file.
  • Display Info — drops 2D reference material (images, tables) into the VR space from the app directory. Useful for a panel layout or a reference gating scheme during a session. Place PNG or JPG files in the app’s data directory on the headset: Android/data/com.ImmersiveScienceLLC.FlowGateVR/files/.