bio-flow-cytometry-gating-analysis — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited bio-flow-cytometry-gating-analysis (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Reference examples tested with: flowCore 2.14+
Before using code patterns, verify installed versions match. If versions differ:
packageVersion('<pkg>') then ?function_name to verify parametersIf code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying.
"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.
flowWorkspace::gs_add_gating_method(), openCyto::gating() for automated gatinglibrary(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)# 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)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)library(flowDensity)
# Data-driven gate based on density
cd4_gate <- deGate(fcs, channel = 'CD4', use.upper = TRUE)
# Get threshold
cd4_threshold <- cd4_gate@min
# Apply
cd4_pos <- flowDensity(fcs, channels = 'CD4', position = c(TRUE))
cd4_cells <- getflowFrame(cd4_pos)Goal: Apply a reproducible, template-driven gating strategy that automatically identifies cell populations across all samples.
Approach: Define a CSV gating template specifying parent-child hierarchy, channel combinations, and gating algorithms (flowClust, singletGate, mindensity, quadrantGate), then apply the template to a GatingSet for batch processing.
library(openCyto)
# Define gating template
gating_template <- fread('
alias,pop,parent,dims,gating_method,gating_args
nonDebris,+,root,FSC-A,flowClust,K=2
singlets,+,nonDebris,"FSC-A,FSC-H",singletGate,
lymph,+,singlets,"FSC-A,SSC-A",flowClust,K=3
cd3,+,lymph,CD3,mindensity,
cd4,+,cd3,"CD4,CD8",quadrantGate,
')
# Apply template
gt <- gatingTemplate(gating_template)
gs <- GatingSet(fs)
gating(gt, gs)# Create quadrant gate
quad_gate <- quadGate(filterId = 'CD4_CD8_quad',
'CD4' = 500,
'CD8' = 500)
# Results in 4 populations:
# CD4+CD8-, CD4-CD8+, CD4+CD8+, CD4-CD8-# Combine gates with logic
cd4_not_cd8 <- cd4_gate & !cd8_gate
# Alternative using GatingSet
gs_pop_add(gs,
booleanFilter(CD4+CD8- = CD4+ & !CD8+),
parent = 'lymph')# Get data for specific population
cd4_data <- gh_pop_get_data(gs[[1]], 'CD4+')
# Get indices
cd4_indices <- gh_pop_get_indices(gs[[1]], 'CD4+')
# Counts
gs_pop_get_count_fast(gs)library(ggcyto)
# Plot with gates
autoplot(gs[[1]], 'CD4+')
# Multiple populations
autoplot(gs[[1]], c('CD4+', 'CD8+'))
# Gate overlay
autoplot(fcs, 'CD4', 'CD8') +
geom_gate(cd4_gate)# Save GatingSet
save_gs(gs, 'gating_set')
# Export to FlowJo workspace
library(CytoML)
gatingset_to_flowjo(gs, 'analysis.wsp')~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.