SKILL.md
Version Compatibility
Reference examples tested with: flowCore 2.14+
Before using code patterns, verify installed versions match. If versions differ:
- R:
packageVersion('<pkg>')then?function_nameto verify parameters
If code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying.
Gating Analysis
"Gate my flow cytometry data to identify cell populations" → Define cell populations through manual or automated gating strategies using rectangular, polygon, or data-driven gates in a hierarchical framework.
- R:
flowWorkspace::gs_add_gating_method(),openCyto::gating()for automated gating
Manual Rectangular Gates
library(flowCore)
# Create rectangular gate
cd4_gate <- rectangleGate(filterId = 'CD4+',
'CD4' = c(500, Inf),
'CD3' = c(200, Inf))
# Apply gate
cd4_result <- filter(fcs, cd4_gate)
summary(cd4_result)
# Get cells in gate
cd4_cells <- Subset(fcs, cd4_gate)
Polygon Gates
# Define polygon vertices
vertices <- matrix(c(100, 100, # x1, y1
1000, 100, # x2, y2
1000, 1000, # x3, y3
100, 1000), # x4, y4
ncol = 2, byrow = TRUE)
colnames(vertices) <- c('FSC-A', 'SSC-A')
# Create polygon gate
poly_gate <- polygonGate(filterId = 'Lymphocytes', .gate = vertices)
# Apply
lymph <- Subset(fcs, poly_gate)
Gating Hierarchy (flowWorkspace)
library(flowWorkspace)
# Create GatingSet from flowSet
gs <- GatingSet(fs)
# Add gates to hierarchy
gs_pop_add(gs, cd4_gate, parent = 'root')
# Add child gate
cd4_cd8_gate <- rectangleGate(filterId = 'CD8+', 'CD8' = c(500, Inf))
gs_pop_add(gs, cd4_cd8_gate, parent = 'CD4+')
# View hierarchy
gs_get_pop_paths(gs)
# Recompute statistics
recompute(gs)
# Get population statistics
gs_pop_get_stats(gs)
