HelenaLC / CATALYST

Cytometry dATa anALYsis Tools
67 stars 30 forks source link

Not recognising markers in the panel #315

Closed Tregwiz closed 1 year ago

Tregwiz commented 1 year ago

Hi, Thanks for providing a great pipeline! I've been regularly using catalyst for a while now, however whilst analysing my current dataset I've encountered an error I haven't seen before. Catalyst appears to not be including specific markers (fcs_colname) in my single cell experiment. I have created the panel spreadsheet as normal and read it into R: panel <- read_excel("panel1.xlsx") Then I have checked all of the fcs_colname are in the flowset: all(panel$fcs_colname %in% colnames(GO_fs)) , which returns TRUE. However, plotExprHeatmap(sce, features = type_markers(sce), bin_anno = FALSE, row_anno = TRUE, row_clust = FALSE) returns a heatmap with only 5 of the 9 type markers. Most likely I have made a silly mistake at some point , but I currently can't figure out where. Do you have any thoughts?

HelenaLC commented 1 year ago

Hm, so if we rule out a panel/data discrepancy, this most likely happens because some channels are marked as non-mass by prepData, and moved to the internal metadata (int_colData). You could check head(int_colData(sce)) and see if they are indeed there. If so, I'd suggest setting FACS = TRUE, which skips the mass- vs. non-mass channel check and will retain anything, no matter how channel names are formatted.

To avoid confusion: The motivation behind the current implementation is to remove channels such as time, event length etc. from the primary measurement data, as we wouldn't want these transformed/clustered/... This distinction is done based on regular expression matching on the channel names. However, in FACS, there are no masses to identify "special" channels in the first place, so setting FACS = TRUE will skip this step and just retain all channels (unless the panel or features argument say otherwise).

Tregwiz commented 1 year ago

Hi Helena, Yes this solved the problem! Thanks ever so much. I'm slightly confused however by what has led to these markers being assigned to non-mass. This has never happened previously with my experiments and I'm a little unsure what has led to specific markers in this experiment being assigned to this whilst others havent? Will disregarding this check potentially aberrantly affect downstream clustering? Thanks ever so much for your help.

HelenaLC commented 1 year ago

Yay, glad it worked; sure thing, happy to help. If you could perhaps post your full panel data.frame here I hope I can explain in more detail.