Opening data

Bring FCS files into a workspace, organize them into groups, describe the experimental design, and mark the controls.

What CytoWeave opens

FileOpens as
.fcs, .lmdSamples. FCS 2.0, 3.0, 3.1 and 3.2; integer, float, double and ASCII data. A file with several data sets becomes one sample per data set.
A folderIts FCS files, as a sample group named after the folder
.cwzA CytoWeave workspace
.acs, .zipAn Archival Cytometry Standard container: a workspace with its FCS files
.wspA FlowJo 10 workspace; see FlowJo, FACSDiva and Gating-ML
.flowjoA FlowJo 11 workbench; see FlowJo 11 workbenches
.ExptA SpectroFlo experiment: its reference controls, set up in the Spectral view; see The workflow
.xmlGating-ML 2.0 gates and compensation, or a FACSDiva experiment exported as XML (FACSDiva experiments)
.csv, .tsv, .txtEvents, a row per event and a column per channel (below); or, when the first column names samples, sample annotations: the other columns become fields; or a plate layout, by well (Plates)
.svg, .png, .pdfA figure CytoWeave exported: where it came from, what changed since, and a rebuild; see Opening an exported figure

Drag files onto the window, use the + button of the sample list (Add FCS files…, Add a folder of FCS files…), press ⌘O, or name them on the command line.

The program keeps one copy of each FCS file in your library, under its SHA-256 checksum, so the workspace keeps working when the originals are moved or renamed. See Workspaces.

Events in CSV files

The Import events dialog for a CSV exported from FlowJo: 3,000 events in 22 columns, each column with a box to import it, its marker, kind and scale, its range of values and a check; the event number column is left outThe Import events dialog for a CSV exported from FlowJo: 3,000 events in 22 columns, each column with a box to import it, its marker, kind and scale, its range of values and a check; the event number column is left out
A CSV exported from FlowJo, its columns checked before import.

A CSV of events (a row per event, a column per channel, numbers in every column including the first), as FlowJo's Export CSV, FCS Express, R, Python and some instruments write it, opens in a dialog that checks every column before anything is imported:

Each file becomes a sample, stored in the library as an FCS file of 32-bit floats (as FCS files hold values; about seven significant digits), so it is checksummed, saved and analyzed like any other. Rows with an empty or non-numeric value in an imported column are left out and counted. Several files with the same columns are imported together. The validation suite reads CytoWeave's own CSV export and FlowJo's format back exactly, and a damaged file's faults are each reported. The cell-cycle example comes with a CSV of a third culture to try.

Files that bend the standard

FCS files from real instruments often bend the standard, and CytoWeave reads them anyway. Every repair is listed in the Sample section of the inspector, so nothing is silently changed:

The index-sort example's presort file has a DATA offset one byte off; its inspector shows the repair.

Files that cannot be read are refused with a message saying why. Spillover is read from $SPILLOVER, SPILL, $SPILL or $COMP. All keywords in the inspector shows every keyword of the file.

Selecting and grouping samples

Click a sample to show it. ⌘-click adds samples to a selection and ⇧-click selects a range; the ⋯ menu of the sample list then acts on the selection:

Annotating the design

Annotations describe the experimental design, and CytoWeave uses them everywhere: comparisons group samples by them and pair them by subject, CytoNorm reads the batch from them, and the methods paragraph describes them.

  1. Select the samples, then choose Annotate selection… from the sample list's menu.
  2. Click Suggest from file names. Each part of the names that differs between samples becomes a field (condition, subject, batch, timepoint…) filled with its values. Check and correct them.
  3. Type into any cell, or click Add field for your own (donor, dose, tissue…), then Save.

The suggested fields are condition, subject, batch, timepoint, tissue, treatment, replicate, plate and well. To annotate many samples at once from a spreadsheet, save it as CSV or TSV with the sample or file name in the first column and open it like any other file (or Workspace → Sample annotations (CSV)…). The PBMC example comes with such a table, of its donors' age, sex and CMV status.

Use subject for paired designs. When the same donor appears in each group, Compare pairs samples by the subject field and chooses a paired test.

Marking controls

Every sample has a role. Controls (unstained, single stain, FMO, isotype, beads) are listed under their own chips, left out of QC, tables and comparisons unless you include them, and used where they belong. Reference samples are analyzed like samples and also anchor batch normalization:

RoleUsed by
Single stain, BeadsCompensation from controls and reference spectra
UnstainedThe negative reference of compensation, and autofluorescence in spectral unmixing
FMO, IsotypeSetting gates: overlay them on a sample's plot
ReferenceAnchor samples for batch normalization

The examples come with their roles set. With your own files, select the controls and use Set role; the Compensate and Spectral views then let you choose each single-stain control's stained channel.

Where to go next