5 FlowJo Hacks To Boost The Quality Of Your Flow Cytometry Analysis
Primary data analysis, that is the analysis at the sample or tube level, is where the populations of interest are identified and the necessary data is extracted for secondary analysis. Since the creation of the FCS standard, flow cytometrists have had the ability to analyze data in third party software because of the community’s agreement on the standard. The most recent standard of FCS3.1. The FCS standard divides the file into two components, the listmode file that contains the sequential data from all the detectors. The header file contains what are termed ‘keywords’. These include define keywords that are added to the file automatically, as well as terms that can be defined by the user.
These keywords are only the tip of the iceberg when it comes to performing advanced analytics. This article will focus on the power of FlowJoX (FJX) and provide some tips and tricks to improve the researchers’ analysis.
1. Embedding and using keywords.
The header information of the FCS file contains a great deal of information that is very useful to review and extract when performing quality control or troubleshooting. This information is only a right-click away in FJX.
Figure 1: Accessing FCS header information in FJX
The output from this action is shown in figure 2.
Figure 2: Header file information.
To the left is a list of all the keywords that are in the file, from the instrument the data was acquired on to who acquired it and more. Any custom defined keywords will also appear here. In fact it is highly encouraged to be adding keywords when setting up the file acquisition on the instrument. This way you are assured the correct keywords are carried forward. This can be very useful for sorting and analyzing the data later on.
In the upper right is a list of the parameters, including the voltage that each parameter was run at. Finally, the bottom right has a chart of the median of each parameter over time, which is useful for identifying if there were major issues in the acquisition, but more on that later.
If you didn’t add keywords at the beginning of your experiment, don’t despair. You can still readily add keywords in FJX using the Keyword option, which can be found on the FlowJo ribbon, as shown in figure 3
Figure 3: Adding keywords during analysis.
In this example, we are adding the keyword concentration to this file containing titration data. After selecting ‘OK, the keyword is added and will appear in the sample workspace where you can fill in the appropriate keyword. Keywords can also be added of the Workspace ribbon, which also allows you to create a series of keyword values, making labeling of the keyword easier. The results of adding the concentration values as a new keyword is shown in figure 4.
Figure 4: Concentration added using the keyword.
One common thing done with titration data is the generation of a concatenated file of the all the data so that it can be displayed on a single bivariate plot. In Figure 5, the data was sorted by concentration either low to high, or high to low, and the data concatenated.
Figure 5: Sorting data before concatenation.
Since the data can be sorted using the keyword, this allows for complex sorting/organizing of the data. . Say you have keywords for time of treatment (0 hr, 4 hr, 20 hr), type of treatment (no stim, stim 1, stim 2) and sample (PBMC, BM), you can perform complex sorting to arrange the data in a manner that makes analysis easier.
Keywords offer a lot of power for sorting and finding data when used properly. The more you can add during acquisition, the better. When adding, make sure to be consistent with naming conventions, an extra space, a missed capital letter can change the meeting of the keyword.
2. Compensation wizard.
Literature is filled with famous wizards – Merlin, Gandalf, and Dumbledore, to name a few. In flow cytometry, we have a famous wizard as well: “Compensation Wizard.” The power of this wizard is to identify the compensation controls, automatically gate for the positive and negative populations and calculate a compensation matrix.
FJX has such a powerful wizard and when you bring data into the FJX, can automatically add tubes to the Compensation group. This is done via keywords! Under preferences, the user can define specific keywords that are used in their experiments to define the compensation tubes. The default is shown below.
Figure 6: Compensation keywords
Any file that has comp or unstained in the keyword $FIL is assigned to the Compensation group.
One issue with this, is that using the $FIL unstained can drive the analysis down the path of using a universal negative, and that violates the 2nd rule of compensation, so take a moment to edit this setting to prevent that.
When you select the compensation group, the Compensation Icon is now available. Before pressing the button, take a moment to review the tubes in the group and add or remove as necessary. Since compensation is a property of the fluorochrome, not the carrier, it is easy to mix and match beads and cells for compensation – provided there is a positive and negative in each sample.
Once the Compensation Wizard is released, it will go through a process to identify the appropriate control for each detector, identify the target carrier via scatter followed by the positive and negative samples. From this, the compensation matrix will be calculated, and as quick as you can say Aparecium, the matrix complete.
Figure 7: Output of the Compensation Wizard
To the far left is a red/yellow/green icon that indicates if there is an issue with the compensation control. Hovering over the red or yellow icon pops up dialogue why there may be an issue with the control.
Next is the parameter and the name of the control being used for compensating this parameter. Further to the left is a drop down menu where the population can be changed, as well as the negative and positive samples used for calculating compensation.
Below this is a window showing the negative and positive controls as well as a histogram showing the negative and positive sample gating (blue for negative, green for positive). This is where it is important to inspect the controls to make sure the software performed it’s magic accurately.
Figure 8: Issues with the Universal Negative
As shown above, the universal negative was used for compensation and inspecting the central figure, it is clear there is some difference in the background fluorescence between the blue peak (negative) and the green negative peak. This can be corrected readily enough by double clicking on the single stained control on the far right, followed by double clicking on the gate and turning the displayed plot into a histogram Now it is possible to add a negative gate. Don’t forget to select the new negative population in the top parameter window.
Figure 9: Autocomp failures
Recalling that the CD3 control gave an error, in inspecting the data, it is clear that the scatter gating is significantly off. Again, double click and the gates can be properly edited.
If you are suspicious of the wizard, there is nothing stopping you from gating the data initially, before running the compensation wizard, so that you can select the proper gates. This is especially useful when there are super-bright events in the compensation control. These are often hidden in the histogram, and can impact the matrix calculations. Thus bivariate analysis allows you to remove these.
Figure 10: Bivariate analysis for compensation.
Make sure to check your wizards results to ensure that your compensation matrix is correctly calculated using the appropriate controls.
3. Spillover spreading matrix.
Compensation controls are useful for calculating a second matrix, the ‘spillover spreading matrix” or “SSM”. This SSM has a two fold purpose. First it can help to identify where what detectors and fluorochromes can be used to get maximal signal for those targets that you need high sensitivity. Second it helps provide quality control on and between instruments.
After calculating a compensation matrix, select the ‘View Matrix’ button, which will open up a window showing the compensation matrix. On the left above the compensation matrix will be an option SSM. Selecting that will let you either display or export the SSM.
Figure 11: Two SSM from two different instruments
Exporting the matrix as a cvs allows for importing the data into software like Excel, as shown above. In Figure 11, two different instruments are being compared based on the same fluorochromes. Using this data, it is possible to determine which instrument may have more sensitivity for a given panel
The SSM is a great tool to understand potential issues with instruments and improve panel design, and it’s easy to acquire this information.
4. FlowJo and R.
Over the last 10 years or so there has been a proliferation of flow cytometry analysis packages been written in software like R. These packages often add some interesting and exciting analysis capabilities for the data, but if you are not facile with R, trying to use them may be daunting.
FlowJo has created what they call the FlowJo portal and a way for you to bring R scripts into FlowJo. It’s a really useful tool.
Figure 12: FlowJo Exchange.
To take advantage of these plugins, you will need to install the R program (free) and make sure to point FlowJo to where it is, which is done in the preferences window, under the diagnostics. You also need to point the software to the plugin folder. This will allow you to use tools like SPACE, tSNE, FlowSom and more.
My favorite is FlowAI, and that tool automatically cleans up data by looking for anomalies and generate a good and a bad gate. This is a more advanced way to create a ‘flow stability gate’
Figure 13: FlowAI output
As can be seen here, here is a very obvious issue with the data, which can be gated out, but FlowAI identifies a few more regions that have issues. The reason this is important is that these data can increase the spread of the populations of interest, reducing the sensitivity of the analysis.
Take some time to add these new plugins into your FJX and explore how these tools can help improve the consistency and reproducibility of your data.
5. Creating tables in FlowJo.
Ultimately, after analysis of the samples, we need to extract important data (% population, median fluorescent intensities, etc) from the target populations. This can be as easy as dragging the populations of interest to the table editor. This is relatively quick to do, but results in very long names in the output file, as shown below.
Figure 14: Long names in table outputs.
In the table there is a 4th column labeled name. By entering a shorter, memorable name in this column, when the table is generated, the
Figure 15: Using names improves the labels in the table.
Another feature of the FJX table is the ability to create a formula, like the staining index, and have this as another column to be exported.
Figure 16: Formulas in FJX.
By renaming the columns, it makes writing these formulas easy. FJX will also pop up a red dialogue under the equation until it is correct, so keep an eye on that.
Figure 17: Staining index calculated in FJX
Here’s another trick that can be done in the table window: It is possible to graph the data by selecting the two rows to be the X and Y axes. This output is trying to fit the data to a regression line, but it is a quick way to make sure your data looks reasonable before continuing.
FlowJo is a powerful tool for performing and analyzing flow cytometry experiments if you know how to use it to the fullest. This includes understanding embedding and using keywords, the FlowJo compensation wizard, spillover spreading matrix, FlowJo and R, and creating tables in FlowJo. Extending your use of FJ using these hacks will help organize your data, improve analysis and make your exported data easier to understand and explain to others. Take a few moments and explore all you can do with FJ beyond just gating populations.
To learn more about the 5 FlowJo Hacks To Boost The Quality Of Your Flow Cytometry Analysis, and to get access to all of our advanced materials including 20 training videos, presentations, workbooks, and private group membership, get on the Flow Cytometry Mastery Class wait list.
ABOUT TIM BUSHNELL, PHD
Tim Bushnell holds a PhD in Biology from the Rensselaer Polytechnic Institute. He is a co-founder of—and didactic mind behind—ExCyte, the world’s leading flow cytometry training company, which organization boasts a veritable library of in-the-lab resources on sequencing, microscopy, and related topics in the life sciences.
More Written by Tim Bushnell, PhD