markrobinsonuzh/cytofWorkflow

usage of computeSpillmat

Closed this issue · 1 comments

Hi Dr.Robinson!

Thanks for your time in advance. I am writing to inquire about the usage of computeSpillmat(). Now I have multiple fcs files, each one is a single stained control. My questions are:

  1. In the vignette it says "Computes a spillover matrix from priorly identified single-positive populations". are priorly identified single-positive populations equivalent of these single stained samples?
  2. To compute a spillover matrix based on these, do I import all these fcs files into a flowset, then construct a SCE, and then input this sce into computeSpillmat()?
  3. These single stained control only cover a subset of all antibodies used in the panel - how does this affect spillover matrix and the effect of compensation?

Thanks again!

  1. I would say almost, but not entirely. In theory, yes, single-positive population X = single-stained beads stained for X. However, even single-stains may be subject to spillover due to measurement sensitivity (affecting +/-1 mass channels), and one cannot be sure the staining is 100%, so there might be events that are all negative. Thus, we propose a standard debarcoding procedure (assignPrelim() -> estCutoffs() -> applyCutoffs()) to arrive at clean single-stained populations.

  2. Yes, you could read all samples into a flowSet via e.g. read.flowSet(list.files("dir", "\\.fcs$", full.names = TRUE), truncate_max_range = FALSE, transformation = FALSE); then construct the SCE using prepData. This will place all samples in a single object, with unique identifiers in cell metadata column sample_id.

  3. The most accurate answer is "it depends". We have seen that certain interactions tend to give quite notable spillover (>2%), while other do not (<0.1%). You will be given a warning about interactions where no spillover could be estimated. E.g., say you are missing single-stained beads for X100 (metal X, mass 100): The warning will say something like "Compensation might be inaccurate. Couldn't estimate spillover for X100 -> A99, B101 (+/-1); C116 (+16); D80, E120, F125 (isotopes)" - this of course depends on the the panel. Depending on which interactions are covered, the overall compensation should be okay, even when not complete, and in any case better than no compensation at all.