Preparation of Flow Cytometry Figures Using FlowJo and Canvas

Part 1

This is a tutorial in three parts. This is the first one, and covers advanced uses of the FlowJo layout editor as the first step in preparing a publication/presentation quality figure incorporating a "batch" layout presenting the data from a number of samples. The second page covers subsequent "touch-up" of this figure using Canvas.

Table of Contents

Introduction

Batch analysis of multiple flow cytometry files (FCS files) can be accomplished with some extremely powerful routines in FlowJo. Over the years, the layout capabilities of FlowJo have also increased, but preparation of publication or presentation quality figures usually requires "touching up" FlowJo output in a dedicated graphics program. Many users will perform this in Microsoft PowerPoint, and recent versions of FlowJo do a much improved job of exporting data to PowerPoint. Still, I find that Canvas provides much better control and in the end is much faster for producing quality final output of flow cytometry figures. This page describes how this is done, using as an example, a data set in which intracellular cytokine staining is performed with a number of peptide pools on samples from four rhesus macaques vaccinated with vectors expressing SIV gag. This page assumes basic familiarity with FlowJo, including elementary use of its Layout Editor. More details can be found on the FlowJo website, especially in its excellent tutorials section.

The goal of this page is to teach you to prepare a figure that looks like this:

The virtues of this figure are:

  1. extraneous white space has been removed, permitting data to be displayed at a larger scale;
  2. the flow axes are labeled only once, eliminating unnecessary duplication of labels, and reducing the effort needed to interpret the data
  3. the stimulation conditions are cleanly and succinctly labeled at the top of the figure
  4. the monkeys are cleanly labeled at the right hand side.

I could have (should have?) added a line at the top indicating that the labels at the top were indeed "stimulation conditions" and a label at the right hand side indicating that the labels refer to individual monkeys, but after trying this out, I decided that this added unnecessary additional clutter to the figure.

The most efficient method of preparation of this figure involves manipulations in both FlowJo and in Canvas. You should do as much as you can in FlowJo, which will dramatically siimplify what is left to do in Canvas.

Here we go....

Preparing sample groups in FlowJo

I have prepared a sample group in FlowJo that has a total of 36 samples, with 9 samples from each of 4 monkeys. The data was collected by Megan McCausland in the laboratory of Dr. Guido Silvestri. One sample was unstimulated, six samples were stimulated with distinct gag peptide pools, one sample was stimulated with a "blank" MVA vector, and one sample was stimulated with SEB. I have deliberately prepared a FlowJo group containing all of the samples from each of the monkeys, because I am going to have FlowJo generate a layout containing all of the plots from all of the monkeys.

Gates were set on the samples in the following fashion: (1) a lymphocyte gate was set on FSC vs SSC; (2) cells within the lymphocyte gate were then plotted as CD3 vs. IFNg, and a non-rectangular gate was set on the CD3+ cells that included the CD3dim, IFNg+ cells (note that CD3 becomes downregulated on responders during the ICC stimulation period). Finally, I plot CD8 vs IFNg on the CD3+ lymphocytes.

These gates were then applied to every sample in the group, which were individually checked.

Formatting of the first plot in the layout editor

Open FlowJo's Layout Editor and drag the CD3+ population from any of the samples into a new Layout. Double click on the plot to open the "Layout Item Definition" dialog box, which looks like the following:

At this point, I already know that I want to do a number of things to every plot I'll create in the batch layout:

  1. I want the output to use "Contour Plots with Outliers", which is better for print publications.
  2. I want to strip out the "annotation box", or legend, beneath the plot.
  3. I want to strip out the axis labels. In Canvas, I'll replace these with only two labels.
  4. I want to strip out the numbers on each axis. They are relative anyway, and don't add much to the figure.

At this point, I'll leave the tick marks, but later on I'll take some of these out. The following figure guides you through how to do steps 1-4.

Here are the steps, corresponding to the red circles above:

  1. Change the "Graph Type" to "Contour Plot"
  2. Check the option to "Show Outliers"
  3. Click the "Annotate" button to switch to the "B" version of the dialog box
  4. Deselect the "Show Annotation" check box
  5. Check the boxes to "Hide Numbers" and "Hide Label" for both the X and Y Axes.

The result looks like this (but without the red circle):

Generating the Batch Layout

Now, we're ready to generate the rest of the plots. Hit the "Batch" button, circled in red above. This brings up a new dialog box, which looks like this:

You can rename the layout if you wish, but I've left it as the FlowJo-generated default, "CD8 vs IFNg-Batch", which is derived from the name of the underlying layout. I've selected the "New Layout" radio button. Finally, I have to make some choices about the "Geometry" of the layout, as indicated in the red circle. In this case, I've chosen 9 Columns (one for each of the stimulation conditions), and I've ordered the tiles (plots) "Across". This will automatically generate 4 rows, given that there are 36 samples in the group. Alternatively, I could have placed the tiles in 9 rows, ordering them "Down" instead of across, which would have given me a "Portrait" orientation instead of the "Landscape" orientation. The choice depends upon how the final plot will be used. My final result looks like this:

Massaging the Batch Layout

There are three things left to do in FlowJo before we move to Canvas:

  1. Strip the tick marks on the x-axes for all plots in rows 1-3, but not 4.
  2. Strip the tick marks on the y-axes for all plots in columns 2-9, but not 1.
  3. Increase the size of the font for the statistics. Believe me, it's much better to do this now. If you attempt to do it in Canvas, things turn messy and you make a lot of work for yourself.

Here's how we do all of this.

Strip the tick marks from the x-axes

  1. Drag-select all of the plots in rows 1-3. Make sure that you have not selected the plots in row 4.
  2. Select the "Get Info..." command from the Layout menu. This gives a dialog box that looks like this (the red circle was added for step 3 below):

  1. Check the box marked Hide: Ticks X (circled in red above)
  2. Click on "OK" to close the dialog box. The figure now looks like:

Strip the tick marks from the y-axes

  1. Unzoom the layout box so that you can see all of the plots. To do this, click on the "small mountain" icon in the lower right hand corner of the layout window, or select the appropriate "zoom" percentage from the pull down menu next to the "zoom" mountain. You can also change the shape of the layout window by dragging on the box in the lowermost right hand corner of the window.
  2. Drag-select the plots in columns 2-9, leaving the plots in column 1 unselected.
  3. Select the "Get Info..." command from the layout menu. The dialog box will look like this (again, without the red circle):

  1. Check the "Hide: Ticks" box for the y-axis, and then clik "OK" to exit the dialog box.

Increase the font size for the statistics on the plots

Now, we'll increase the size of the font for the population frequencies displayed on each plot. In some sense, this is an iterative process and involves some guesswork to determine if the font size is large enough. It might seem as if it's better to do this in Canvas than here, but it's not. If you try to increase the font sizes in Canvas, the text will become larger than the box that encloses it, and all of the text will become "wrapped", and you must "unwrap" each one individually.

Here we go....

  1. Select the "Preferences..." command from the "FlowJo" menu (located just to the right of the "Apple Menu" at the upper left hand corner of the screen.
  2. Select the "Text' button, to display the dialog box as below (without the red circles).

  1. Click on the "Stats drawn on graphs" radio button (step 1 in the figure above).
  2. Choose your desired font from the pull down menu (step 2 in the figure above). I almost always prefer "Arial" for all of my figures (this is a compromise with the Windows world).
  3. Choose your font size from the "Size" pull down menu (step 3 in the figure above). For this many plots, the best choice turns out to be either 24 or 36 (FlowJo v4.5 does not allow you to choose sizes between these).
  4. Click the "Save" button to exit the dialog box. FlowJo will take a few seconds to redraw the figure with the updated plots. If the font size does not seem appropriate to you, repeat the above, and change the font size accordingly.

Here's what a portion of the final layout looks like.

We've accomplished quite a lot from within FlowJo. The best thing is that when we now move to Canvas, we'll never have to "Ungroup" and "Regroup" any of the plots in order to selectively delete something carried over from FlowJo. This saves an enormous amount of time, frustration, and sheer agony.

Export the Layout Graphic from FlowJo

There are at least three options for exporting the resulting graphic from FlowJo and importing it into Canvas.

  1. Copy the layout to the Clipboard and paste it into an open, blank Canvas document. When I did this in Canvas 9, I could not ungroup the plots, though I could if I pasted into Canvas 8; I suspect there is a bug somewhere, but for now, I won't use this option when using Canvas 9.
  2. Save the layout to a PICT file, and open it from within Canvas.
  3. Save the layout to a PICT file and instruct FlowJo to open it from Canvas. This is settable option from within the FlowJo "Layouts/Tables" Preferences tab.

With the caveat for the problem noted in option 1 above, they are probably all equivalent, although I'm not sure. All are available as small buttons at the upper right of the Layout window, between the "Name" field and the batch button (there is also an obvious print button).

For the purposes of this tutorial, I'll use option 3 (open file with application), but you might prefer one of the other options.

Go to Part 2