top of page

Flow and mass cytometry analysis:

the practical summary

Updated the 16th of April 2022

Mass cytometry is a powerful technique to investigate the phenotype of cells by detecting the presence of more than 40 intra and extracellular cell markers. It is a great exploratory tool (without compensation issues or fluorescence background) that we aim to explain here. It can also be used for flow cytometry data


👉🏽We created a training center for flow and mass cytometry users who would like to start analysing their own data with the free software R and stop using manual gating strategies. It is suitable for flow, mass and spectral cytometry. It has the benefit to teach how to use R, and go beyond the simple use of one package. 

👉🏽We can also provide an analysis service for your mass cytometry data. You will receive a full customised report from us within one day.  

👉🏽 Check out why mass cytometry is also made for you. We explain this technique from the staining till the data analysis including the acquisition process and why CyTOF is a good idea for your research project. You can see an overview of the metals conjugated to antibodies used by other labs.

👉🏽 Download our cheatsheet of mass and flow cytometry data analysis in R for free (you just need to sign up). 

👉🏽Check the last mass cytometry papers in cancer, blood cancer, diabetes, COVID19. that we summarised for you.


Training in mass and flow cytometry analysis
Mass cytometry analysis services

✏️ 2 choices:

1/ Train yourself on unsupervised analysis in R for flow and mass cytometry data

2/ You can directly contact us. to get your mass cytometry report done 

Summary of flow and mass cytometry analysis

Our training: a workflow for mass and flow cytometry data analysis

Mass cytometry analysis

Mass cytometry analysis is the interpretation of the FCS files acquired by mass cytometry or CyTOF and can be divided in pre-processing, clustering analysis, dimensionality reduction and visualisation. There are several ways to analyse your mass cytometry data and we present here a common and useful workflow for an efficient visualisation of cytometry data. This workflow can also be applied to flow cytometry data. Flow data analysis is often made with manual gating, but R is powerful software you can use. It is free and we explain in our training how to use it efficiently 🧑🏼‍🏭. All the following parts are explained in our training session. 

Pre-processing of the FCS files

Mass cytometry data needs to be cleaned before you can analyse it. Depending on how you stained and acquired your samples, it might be necessary to:

- Debarcode your samples

- Use the compensation matrix to remove spillover between channels. This is not a compulsory steps and first publications on CyTOF were not compensated. This step improves sample quality. 

- Apply arcsinh(5) transformation of all your samples before proceeding to further analysis. This step is explained in our training course

Quality check

First ensure that your mass cytometry process was successfully performed and you obtained a consistent staining through all your samples. 

There are several ways to ensure a better reproducibility of your data, like freezing several aliquotes of antibody mix or avoiding waiting times between your samples so the voltage of the detector stays within the same range. Some tools are available online to remove the batch effects between several experiments.


Another method to check your antibody staining quality is the Average Overlap Frequency, measuring the separation between the negative and positive peak.  

✏️ In a nutshell:

Apply compensation matrix (optional)

Pre-process your FCS files with arcsinh5 transformation

Perform a quality check by running the Average Overlap Frequency algorithm.

Clustering analysis

Cells are phenotypically analysed with more than 40 markers by mass cytometry. A pairwise combination of 40 markers would results in 780 possible pairwise combinations. This is of course not achievable and would not grab the global feature of all the markers together. Manual gating is therefore not possible. 

Clustering analysis is the best alternative to manual gating strategy and remove the user biais to automatically define subsets of cells sharing a similar phenotype. The computer itself defines the different cell populations present in all the samples. A subset or a cluster is a group of cells sharing a similar phenotype

There are many clustering analysis tools available and making your choice can be hard. The three most popular ones, according to a recent publication are SPADE, PhenoGraph and FlowSOM. However, SPADE is less and less used. DensVM has been more cited than used. FlowSOM is more and more present and can be used for flow or mass cytometry analysis. It presents a very efficient clustering strategy. In our training, we showcase a workflow to check the differences between those different algorithms among others like ClusterX for example and how to see the differences at a glance. 

If FlowSOM and PhenoGraph can be directly applied on your cytometry data, it is not the case with DensVM, for which you need to proceed to a dimensionality reduction step beforehand. 

✏️ In a nutshell:

The most used clustering analysis are PhenoGraph, FlowSOM, DensVM (all available in R and explained in our training) and SPADE.

Dimensionality reduction

Cells are phenotypically analysed with more than 40 markers by mass cytometry. To allow representation of all the samples and to visualise their differences, we would need to represent the samples in a 40-dimensional space, which is not possible. Dimensional reduction allows visualisation of the parameters studied in mass cytometry by reducing it mainly to two other parameters, enabling a two-dimensional representation. These two other parameters can be seen as a summary of the 40 studied parameters

Dimensionality reduction explanation-01.

In mass cytometry, there are mainly 3 different dimensionality reduction techniques.

Historically, PCA analysis has been performed. This has been then outperformed by tSNE (a paper cited more than 17 000 times!), preserving local similarities whereas PCA is better at preserving large distances. This means that PCA preserves global similarities and would not be able to highlight differences between quite different samples. Let's take a simple example and assume you would like to compare the Belgium, Dutch, Italian, Canadian and United States citizen based on many parameters including spoken langage, food habits, location of the country etc... PCA would probably gather the Dutch, Italian and Belgian together against the Canadian and US citizen. This is a rough comparison taking only global differences: European versus American style. t-SNE however, would make the difference between the Italian and the Dutch-speaking citizens (Dutch and Belgian being quite similar regarding italian lifestyle). In another word, t-SNE preserves local similarities.  

Dimensionality reduction for mass cytometry analysis

t-SNE has been developed by a Dutch scientist from Tilburg University and is currently a Research Director at Facebook AI Research (FAIR), leading the  FAIR’s New York site

t-SNE tool is nowadays more and more replaced by the UMAP algorithm, even though some researchers claim that UMAP does not preserve global structure any better than t-SNE. 

These three algorithms shared a similar purpose: enable the user to see patterns in their samples. On our example here, we can conclude that Canadian and the US shared similar phenotype (they are Americans) and the Dutch, Italian, and Belgian shared another one (they are Europeans). Now let's imagine one flag is one cell, you can then define populations based on their location in the t-SNE map. 

Most of these tools are available in R. t-SNE has been also improved to another level: HSNE for Hierarchical A-t-SNE (accelerated t-SNE). You can define clusters in Cytosplore, based on this algorithm. After dimensionality reduction step, it is also possible to perform the clustering analysis DensVM. 

✏️ In a nutshell:

The most historically used dimensionality reduction algorithm was PCA, which has been replaced over the time by t-SNE. Nowadays, other alternatives has been developed like HSNE (Cytosplore) or UMAP

Visualisation of mass cytometry data

All the previous tools are great but one step is missing to interpret your mass cytometry data. How to visualise the results generated so far? 

A package, Cytofast, has been developed, enabling you to draw in no time several heatmaps which allow you to visualise your flow or mass cytometry data in a qualitative (phenotype) and quantitative (abundance) point of view. The output can be divided in three different parts. 

On our example, we present the heatmap of the identified regulatory CD4+ T cells. The top blue-to-red heatmap represents the expression of different cell surface markers (per row) of the different subsets (per column). The blue or red color representing respectively the absence or the presence of the marker.

The middle green-to-purple heatmap represents the abundance of each subset (represented by a column) in every sample (represented by a row). For example, on average, "cluster Treg1" is more abundant in Group 1 than Group 2, 3 and 4. For example, a purple square on the left last row means that sample S32 is highly abundant in "Cluster Treg1". The dendrogram on the left gives an idea on how your samples cluster together.

Finally the bottom part represents the abundance of each subset per group in a bar graph. 

✏️ In a nutshell:

To visualise your flow or mass cytometry data, Cytofast is an easy tool to rapidly identify immunological patterns. 

An example of mass cytometry data analysis


This visual part gives an idea of the mass cytometry analysed. But it does not inform on any statistical significance of the represented clusters. A possible way to perform statistics on mass cytometry data could be to perform a Dunett's test. This test is very common in medical experiment, and is performed by computing a Student's t-test. Some famous papers use Dunnett's multiple comparison.

Another powerful test is the globaltest. This test was originally used in genetics and is also available in mass or flow cytometry.  

✏️ In a nutshell:

Statistics can be done in R by using the globaltest or conventional statistical tests by applying corrections for the multiple testing. All the tools explained here are meant to be used in R, a software you can learn by following our training.  

Flow data

I am working on flow or spectral cytometry, is that really different to analyse my data compared to mass cytometry?

✏️ In a nutshell:

No! Manual gating strategies you are using to interpret your flow cytometry data prevent you from extracting the most out of it. 

Manual gating strategy should be preferred to check the presence or the absence of an already known population. Manual gating should be only performed to validate previous findings but cannot be used in an exploratory manner. It is better recommended to use an unbiased approach. 

I have flow cytometry data, what should I do to analyse it like mass cytometry data? 

Flow cytometry data can be analysed similarly to mass cytometry data. The only difference relies on the pre-processing. While usually mass cytometry data are always arcsinh5 transformed, this is rarely the case in flow cytometry data. A workflow exists and is explained in our online training to pre-process flow cytometry data and make it looking like mass cytometry data. Once each marker has been specifically transformed, the same process as described above can be performed. 

✏️ In a nutshell:

Transform your mass cytometry by arcsinh5

Transform your flow cytometry data by a specific arcsinh, depending on the marker intensity. 

I have completed my mass cytometry analysis and I found an interesting subset, how to check it by flow cytometry?

If you think you found an interesting subset by mass cytometry and you would like to confirm it by flow cytometry data, you can use HyperGate, which will define the best gating strategy to isolate your population of interest. The author is the same as the UMAP implementation in mass cytometry. 

✏️ In a nutshell:

To specifically investigate a cell subset, HyperGate will define the best gating strategy. 

The 6 reasons why traditional gating strategies are not enough to analyse your cytometry data (and no: some Plug-Ins in FlowJo won't make it up). 

1. You will discover new subsets

If you define immune populations by manual gating strategies, you will always find the same phenotype of cells and the same clusters. If you subtract the total population to the sum of all the gated cells, it will result into 'ungated' cells. These cells represent the uncharted territory you are missing in your data and voluntary ignoring. With unsupervised gating strategy, there are no 'ungated' cells and you identify every single cell of your samples.

That's how, today, many scientists can claim finding new interesting subsets in their field: they released themselves from the fixed path and the pre-made gating strategies.

2. The FlowJo plug-ins: can they really make it?

FlowJo added new functions in their software, like t-SNE, UMAP or others. If this can cosmetically have an added values, these plug-ins are not the core business of such software. They cannot replace a complete unsupervised method established in R. They present significant drawbacks. Their algorithm needs to downsample your data, sometimes removing 90% of the number of cells. Their tools are computationally demanding, and in fine you won't be able to draw clinical or experimental patterns from it. There are no suitable visualisation solutions offered if you are running a multi-color panel like 20 colors (or more). Moreover, these plug-ins are all an adaptation of free algorithms available freely in R. So you better go to the source, free of charge. 

3. You will save money (for your project and yourself)

Save your money from your research projects and learn R. You can analyse your flow data in a more efficient, cheaper and easier way than the traditional gating, which is very costly. Flow cytometry analysis is not limited to FlowJo and you can try alternatives. They are free!

4. You will save time and be more efficient in your analysis. 

It's a great investment to learn how to analyse your data by yourself and be able to draw any graphs you would like from it. Moreover, once you have your data, you just need to write your script (or understand an already written script) and apply it for your data. You can always improve your pipeline. You decide how to analyse and how to represent your data. If you want a punctual analysis, you can also require our service.

5. You will always be up-to-date in cytometry analysis (and other fields)

By relying on FlowJo plug-ins, you are waiting for others to transpose already existing tools into FlowJo: you are therefore behind the novelty. You will stay at the top of research by directly going to the source: R. Moreover, R is not only used for flow cytometry analysis but for almost every data analysis. In our field, you can assess epitope prediction, RNA-sequencing, single-cell RNA-seq (mainly via the Seurat package) and much more. Find more at Bioconductor.

6. You will find patterns in your flow data in no time

What if after getting out from the flow cytometry unit or the CyTOF machine, you would just need to click on one button to analyse your data? This is now possible in R. No limited number of users, no limited period of time. Learn how by visiting our Training Centre.

✏️ In a nutshell:

To analyse your mass cytometry data, avoid gating strategies, allow yourself to find new subsets and automatise your process. Save money, time and take the most out of your data.  

Which markers can I choose for mass cytometry?

Before using a panel of markers in mass cytometry, you need to validate your panel. You can get some ideas in previous publications that we summarised for you here. We might want to check that each marker can be read by the mass cytometer. For some technical reasons, especially with chemokine receptors, the signal appears very weak. You also should pay attention whether the receptor you would like to check is intra or extracellular. For example, CTLA-4 is quickly internalised in the intracellular compartment, making it hard to be detected with CyTOF. The conjugation process is also to be taken in account. Some conjugation steps might alter the antibody binding to the receptor, and therefore changing the expression pattern. 

Do you think mass cytometry is made for my research? 

If you are wondering if mass cytometry is made for you, we introduced the world of mass cytometry. We are presenting some steps to think about before starting analysing your samples with mass cytometry and why it is often a good idea to apply CyTOF to your research. You should also know that mass cytometry technology can keep the spatial resolution of your data by analysing tissue slices using the recent HyperIon from Fluidigm. 

Conclusion on flow and mass cytometry data analysis

You now know everything about flow and mass cytometry analysis and you can even apply it to your flow data. You can train yourself with our own training and request an analysis from us. You will receive a report within 2 days, depending on the workload. We can also guide you with the online training. You will enjoy analyse your data on your own. 

Meet the team


Madeleine Frizon

Madeleine was responsible for the administration 


Dr Guillaume Beyrend-Frizon
(MD candidate, PhD )

Guillaume wrote the content of the website and created the online training


Maurits Duran

Maurits checked the website and gave his voice to the online training


Jana Vree

Jana checked the website and the videos and gave her voice to the online training

Testimonials (among 200+ members)
(you can ask to contact them or check reviews on Google)

I have taken their on-line R course for flow cytometry and I did find it very useful. It is great that it is a course dedicated to R analysis for mass cytometry and flow cytometry. Can recommend the course.

Rihad, Post-Doc, The Netherlands

I have followed the VIP course, without prior knowledge in R. A very focused training on how to use R in flow and mass cytometry analysis.  

John, PhD candidate, UK

VisuaLyte helped me identifying clusters and significant patterns I was looking for in my mass cytometry data.

bottom of page