Beautify flow cytometry gating plots for publication. Applies contour, density, or dot plot styles to FCS data and produces publication-ready figures with consistent formatting.
78
73%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./scientific-skills/Data analysis/facs-gating-viz-style/SKILL.mdApply publication-ready styling to flow cytometry gating plots. Accepts FCS data files and produces contour, density, or dot plot visualizations formatted for journal submission.
✅ IMPLEMENTED —
scripts/main.pyis fully functional. fcsparser/flowio FCS parsing, scatter/density/contour plots, file validation, and--demomode are all implemented.
python -m py_compile scripts/main.py
python scripts/main.py --help
python scripts/main.py --demo --output demo.pngFallback template: If scripts/main.py fails or the FCS file is unreadable, report: (a) the failure point, (b) which plot styles are still generatable from available data, (c) manual steps to export a plot using FlowJo or equivalent.
| Parameter | Type | Required | Description |
|---|---|---|---|
--input, -i | string | Yes* | FCS file path |
--output, -o | string | No | Output file path (default: output.png) |
--x-channel | string | No | X axis channel name (default: FSC-A) |
--y-channel | string | No | Y axis channel name (default: SSC-A) |
--style, -s | string | No | Plot style: scatter, density, contour (default: scatter) |
--demo | flag | No | Generate synthetic FSC/SSC data — no FCS file required |
*Required unless --demo is used.
python scripts/main.py --input sample.fcs --style contour
python scripts/main.py --input sample.fcs --style density --output figure1.png
python scripts/main.py --input sample.fcs --x-channel CD4 --y-channel CD8 --style scatter
python scripts/main.py --demo --style contour --output demo_plot.pngThe script must implement:
os.path.exists(data_path). If missing or empty string: print Error: File not found: {data_path} to stderr and exit with code 1.fcsparser (supports FCS 2.0–3.1) or flowio (supports FCS 3.0+) to read FCS files and extract channel data. For FCS versions not supported by either library, instruct the user to export to CSV from FlowJo.matplotlib/seaborn to generate:
contour: 2D KDE contour plot of FSC vs SSC (or user-specified channels)density: smooth kernel density estimate heatmapdot: scatter plot with publication-appropriate point sizing and alpha--output path (default output.png). Print the output path to stdout for agent consumption.--demo flag — generate synthetic bivariate normal data mimicking FSC/SSC scatter and run the full visualization pipeline without requiring a real FCS file.fcsparser supports FCS 2.0–3.1; flowio supports FCS 3.0+. For older FCS 2.0 files not parsed by flowio, use fcsparser as the primary parser.--demo)Every response must make these explicit:
This skill accepts: FCS data files for flow cytometry gating plot styling.
If the request does not involve flow cytometry visualization — for example, asking to analyze gating strategy logic, perform statistical comparisons between populations, or process non-FCS file formats — do not proceed. Instead respond:
"
facs-gating-viz-styleis designed to apply publication-ready styling to flow cytometry gating plots. Your request appears to be outside this scope. Please provide an FCS file and desired plot style, or use a more appropriate tool for your task."
--data is missing (and --demo not set), state that the FCS file path is required.Error: File not found: {path} to stderr and exit with code 1.--style is not one of contour, density, dot, reject with a clear error listing valid options.scripts/main.py fails, report the failure point, summarize what still can be completed safely, and provide a manual fallback.ca9aaa4
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.