top of page
Writer's pictureolivertburton

Dealing with multiple autofluorescences

Now we're getting to the tricky bit. Our samples, more often than not, contain autofluorescence (AF) that varies not only in intensity but also in aspect. At present, this is handled by extracting multiple signatures, which are identified in one manner or another as cell populations in the unstained data. All aspects of this process are done suboptimally at present, in my opinion.


To start, I highly recommend reading this commentary by Katherine Pilkington that lays out some of the challenges involved and critiques the current state of affairs.


The challenges

  1. Discovery (ease and thoroughness of finding spectra)

  2. Relevance (which and how many signatures to include)

  3. Software workflow (easy access to the extracted signatures while doing unmixing)

  4. Assessing the unmixing (is it better or worse, see point 2)


For points 2 (Relevance) and 4 (Assessment), there are no tools to help us. The closest we get is the "vetting" of AF signatures in SpectroFlo, which tells you whether the signatures can be unmixed from each other. That tells you nothing about the quality of the unmixing of the fully stained sample nor does it inform you about which AF populations affect data quality (it can't, as we'll discuss when we get to panel design).


Two additional issues I see:

  1. Reproducibility (can two people achieve the same result with the same dataset)

  2. Unmixing mathematics (how exactly we extract those signatures from the data)


What we're trying to do with all of this is improve our ability to resolve the markers that we are staining for by reducing (or eliminating) errors introduced by intrinsic cellular fluorescence signatures.



For today, let's look at how we find the different signatures


The AF explorer/finder tools are designed to help us identify different signatures. They deal with points 1 (Discovery) and 2 (Software workflow). If you're not familiar with how to use these tools, here's a link for a video for the Aurora and a paper for the ID7000.

 

From the point of view of searching for AF signatures, these tools are tedious. We need to manually search through combinations of parameters to find clusters of cells that separate. This is not reproducible from one experiment to the next unless you set the gates in exactly the same place on the same plots (no easy way to do this, as far as I know for the Aurora). This is more art than science.


Image of AF Explorer workflow


If you use this, especially with large panels, there's a high potential to get different results every time because you will be unmixing a different set of fluorophores every time. This might be fine if your experiment is completely independent of anything else, but are you really running a single experiment without replicating it? Can anyone else reproduce your exact unmixing of the data from the raw files?

 

Run 1: Extracting AF signatures from unstained mouse brain using the AF explorer in SpectroFlo


Run 2

 

Run 3: let's be a little more conservative.


Now, on to the Assessment phase. The only way of doing this at the moment is to look at the unmixed data and decide for yourself if it's better or worse. Again, ideally, you'd want to search through the NxN plots to look for errors and whether they've been corrected. That's tedious. You'd also want to have the two versions side-by-side.


A shortcut to this is to focus on the channels that matter most in your readout (prioritize your markers) and to focus on the channels that are most likely to be affected by the AF. We'll go over that in more detail when we get to AF and panel design.


This is a brain sample from a mouse that expresses a weak GFP in some cells, and I've pre-gated on scatter, singlets and viable cells. Here I'm showing channels that are affected by the AF unmixing because of spectral similarity to the AF signature(s). This means that detection of markers in those channels is impeded in the absence of AF extraction (top row) and can be improved if we extract AF well. If we try to extract too many similar AF signatures, or extract irrelevant ones, the resolution can also get worse due to twisting or bloating of the negative. Note that for the top row where there is no AF extraction, there is no AF channel. For that example, I've therefore plotted every marker against CD11b because the CD11b+ microglia are the main autofluorescent cell population in the brain.


What can we see from this?

  • Without AF extraction, the background is high in our CD3 - StarBright Violet 570, CD24 - Alexa Fluor 532 and GFP channels. We don't have good resolution.

  • The automated AF improves resolution in all these areas. The CD3 - StarBright Violet 570 still has a problem where there are obviously two populations of AF+ cells. There is also spread from AF against these channels, perhaps partly because there is more variability in the AF signature than we are accounting for with a single extraction channel. Nicely, we get the CD64+ cells (microglia) coming up as AF+, and the B and T cells being AF-.

  • With AF explorer Run 1, we get unmixing distortion between the AF channels because of spectral similarity. We've lost the AF positivity on the CD64+ cells (in all channels, not just the one shown), and the CD3 - StarBright Violet 570 has some odd issues.

  • Run 2 has serious unmixing distortion/bloating for most of these channels. We've lost resolution compared to the automated AF extraction, and for CD64, we've even lost resolution when we compare to unmixing without AF extraction.

  • In Run 3, I've backed off and only pulled out two main cell populations. This is similar to the automated AF extraction except the resolution improves for CD24, CD3 and perhaps GFP. There's a spike of uncontrolled AF in AF-P1 vs. CD3, but that may be better dealt with by gating than AF extraction. We've regained the AF positivity in the CD64+ microglia.

  • Basically, we can achieve very different results from the same input data.


The thing is, this Assessment could easily be automated. What we want is the absence of interference from the AF into the fully stained sample. That means checking for two things:

  1. Is the negative centered around zero? I.e., has the background been removed?

    1. This seems like it should be straightforward. Check the MFI in every channel.

  2. Has the variation of the negative been reduced? I.e., have those spikes of AF cells been brought in line with less autofluorescent cells?

    1. Again, simple to get a metric for this, I think. Check the CVs for every channel. This will take into account both populations that haven't been fixed and unmixing distortion due to extracting too many signatures. Maybe we'd need to do some weighting based on how much we care about one or the other. This could be distilled as a single metric for all non-AF unmixed channels in the data.



Can we do Discovery better?


The thing is, we don’t do this kind of manually sorting through 64 – 188 dimensions of flow data anymore. It’s not an efficient way of looking at the data, and we could easily miss AF populations if we don’t do a thorough job. (The folks at Cytek have done this exploration for every pairing of detectors on the Aurora and say it’s not critical to look at them all. They’re probably right because AF signatures are broad, but they question is, which types of samples have they tested and can that conclusion be extrapolated to every type of sample?) Fortunately, we have tools like tSNE and UMAP to project multi-dimensional data down into fewer dimensions for viewing all at once, so why not use these? I’m not alone in thinking this way, and two groups (Jameson et al. 2022 and Roet et al. 2024) have published workflows for AF discovery using tSNE and clustering. Now tSNE plots with colored clusters look cool and hi-tech, so I'd be surprised if this doesn't get incorporated into the AF wizard tools soon.

 

Let's look into how this works a bit. For this, I've run unstained cells gated by scatter through tSNE and FlowSOM using all 64 raw detector channels for Aurora data. I've set an arbitrary 10 clusters in FlowSOM. Arbitrary? Yes, arbitrary, which is a problem.


tSNE of unstained mouse spleen with FlowSOM clusters colored

 


SNE of unstained mouse lung with FlowSOM clusters colored



 tSNE of unstained human PBMC with FlowSOM clusters colored



And here are the normalized spectra of those clusters:


Mouse spleen


Mouse lung


Human PBMC


What are the benefits and drawbacks of using tSNE (or UMAP) to search for AF profiles? This definitely helps with the discovery of AF populations. If we can see all the data at once, we're not so likely to miss distinctive outgroups that might have different AF profiles. Clumping the cells up, which these algorithms do, may also help slightly with if we're manually setting the gates for the populations we want to use for AF signature identification. In general, though, I expect that tSNE is not going improve the reproducibility of our AF extraction. Every tSNE is different, starting from a random point, so it may well increase the variability from run to run in a panel to use this method. If we use clustering on top of the tSNE coordinates, we layer two random-seed processes in our workflow for unmixing the data.


Notice, too, that we've brought in two new problems that lack solutions: 1) data scaling for the tSNE and clustering, and 2) the number of clusters to generate. You can also quibble over whether to perform the cluster on the original parameters or the dimensionality reduction itself.


Most importantly, this approach does not appear to help us with determining which signatures are divergent or which to use for unmixing. The distance between clusters on the tSNE plots doesn't appear to have much relationship with how distinctive the spectra are on the trace plots.


I'd suggest that if we're going to use dimensionality reduction, there may actually be a better approach: PCA. Principal component analysis is linear, preserves the global structure of the data, and removes collinearity, which is a good thing. It’s reproducible and can be extrapolated to new data without workarounds. It’s also way faster. We can even directly extract the spectra from the loadings of the PCA. The first dimensions (principal components) will contain the most relevant AF signatures in the data. That is to say, you get ranking of the signatures, helping considerably with point 2 (Relevance).

 



PCA of mouse lung. These two components identify 99.85% of the variance (AF) in the data. This suggests we might be fine with two AF signatures.


Of course, PCA isn’t as “pretty” for plotting data as tSNE is.


Dimensionality reduction in of itself doesn’t help us unmix the AF signatures if they are similar to each other. That’s a problem with our thinking about what these AF signatures represent and how the unmixing is currently handled (I think, anyway), and we’ll look at that in a future post.



Some papers to read:




Gray Jay, Washington, USA

323 views4 comments

Recent Posts

See All
bottom of page