--> --- name: bio-flow-cytometry-gating-analysis description: Manual and automated gating for defining cell populations in flow cytometry. Covers rectangular, polygon, and data-driven gates. Use when identifying cell populations through hierarchical gating strategies. tool_type: r primary_tool: flowWorkspace measurable_outcome: Execute skill workflow successfully with valid output within 15 minutes. allowed-tools: - read_file - run_shell_command ---
Scanned 9/8/2026
Install to Claude Code
npx -y skills add mdbabumiamssm/AI-Agentic-Skills-by-Dr.-Mia --skill gating-analysis --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Gating Analysis?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/mdbabumiamssm-gating-analysis-ai-agentic-skills-by-dr-mia)More formats (shields.io, HTML) on the badges page.
<!--
# COPYRIGHT NOTICE
# This file is part of the "Universal AI Agentic Skills" project.
# Copyright (c) 2026 MD BABU MIA, PhD <md.babu.mia@mssm.edu>
# All Rights Reserved.
#
# This code is proprietary and confidential.
# Unauthorized copying of this file, via any medium is strictly prohibited.
#
# Provenance: Authenticated by MD BABU MIA
-->
---
name: bio-flow-cytometry-gating-analysis
description: Manual and automated gating for defining cell populations in flow cytometry. Covers rectangular, polygon, and data-driven gates. Use when identifying cell populations through hierarchical gating strategies.
tool_type: r
primary_tool: flowWorkspace
measurable_outcome: Execute skill workflow successfully with valid output within 15 minutes.
allowed-tools:
- read_file
- run_shell_command
---
# Gating Analysis
## Manual Rectangular Gates
```r
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
```r
# 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)
```r
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)
```
## Automated Gating: flowDensity
```r
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)
```
## Automated Gating: openCyto
```r
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)
```
## Quadrant Gates
```r
# 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-
```
## Boolean Gates
```r
# 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')
```
## Extract Gated Populations
```r
# 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)
```
## Visualization
```r
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)
```
## Export Gating Strategy
```r
# Save GatingSet
save_gs(gs, 'gating_set')
# Export to FlowJo workspace
library(CytoML)
gatingset_to_flowjo(gs, 'analysis.wsp')
```
## Related Skills
- compensation-transformation - Preprocess before gating
- clustering-phenotyping - Unsupervised alternative
- differential-analysis - Compare gated populations
<!-- AUTHOR_SIGNATURE: 9a7f3c2e-MD-BABU-MIA-2026-MSSM-SECURE -->Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!