Save Research Notebook
napjon/krisk
Convert a completed data-analysis conversation into evidence-backed, reproducible living research through the Krisk MCP server.
Plot per-group distributions of continuous data using boxplots, violins, beeswarms, quasirandom jitter, and raincloud plots with sample-size honesty (Weissgerber 2015), KDE-bandwidth awareness, and…
$ npx skills add GPTomics/bioSkills --skill bio-data-visualization-distribution-plots -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install GPTomics/bioSkills bio-data-visualization-distribution-plots --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/data-visualization/distribution-plots .claude/skills/bio-data-visualization-distribution-plots && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "bio-data-visualization-distribution-plots" agent skill from https://github.com/GPTomics/bioSkills/tree/main/data-visualization/distribution-plots into .claude/skills/bio-data-visualization-distribution-plots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-data-visualization-distribution-plots", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/GPTomics/bioSkills/tree/main/data-visualization/distribution-plotsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add GPTomics/bioSkills --skill bio-data-visualization-distribution-plots -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install GPTomics/bioSkills bio-data-visualization-distribution-plots --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/data-visualization/distribution-plots .agents/skills/bio-data-visualization-distribution-plots && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "bio-data-visualization-distribution-plots" agent skill from https://github.com/GPTomics/bioSkills/tree/main/data-visualization/distribution-plots into .agents/skills/bio-data-visualization-distribution-plots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-data-visualization-distribution-plots", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add GPTomics/bioSkills --skill bio-data-visualization-distribution-plots -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install GPTomics/bioSkills bio-data-visualization-distribution-plots --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/data-visualization/distribution-plots .cursor/skills/bio-data-visualization-distribution-plots && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "bio-data-visualization-distribution-plots" agent skill from https://github.com/GPTomics/bioSkills/tree/main/data-visualization/distribution-plots into .cursor/skills/bio-data-visualization-distribution-plots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-data-visualization-distribution-plots", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/GPTomics/bioSkills.git --path data-visualization/distribution-plots--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add GPTomics/bioSkills --skill bio-data-visualization-distribution-plots -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install GPTomics/bioSkills bio-data-visualization-distribution-plots --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/data-visualization/distribution-plots .gemini/skills/bio-data-visualization-distribution-plots && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "bio-data-visualization-distribution-plots" agent skill from https://github.com/GPTomics/bioSkills/tree/main/data-visualization/distribution-plots into .gemini/skills/bio-data-visualization-distribution-plots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-data-visualization-distribution-plots", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install GPTomics/bioSkills bio-data-visualization-distribution-plotsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add GPTomics/bioSkills --skill bio-data-visualization-distribution-plots -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .github/skills && cp -r skills-src/data-visualization/distribution-plots .github/skills/bio-data-visualization-distribution-plots && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "bio-data-visualization-distribution-plots" agent skill from https://github.com/GPTomics/bioSkills/tree/main/data-visualization/distribution-plots into .github/skills/bio-data-visualization-distribution-plots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-data-visualization-distribution-plots", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add GPTomics/bioSkills --skill bio-data-visualization-distribution-plots -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install GPTomics/bioSkills bio-data-visualization-distribution-plots --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/data-visualization/distribution-plots .opencode/skills/bio-data-visualization-distribution-plots && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "bio-data-visualization-distribution-plots" agent skill from https://github.com/GPTomics/bioSkills/tree/main/data-visualization/distribution-plots into .opencode/skills/bio-data-visualization-distribution-plots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-data-visualization-distribution-plots", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
bio-data-visualization-distribution-plotsPlot per-group distributions of continuous data using boxplots, violins, beeswarms, quasirandom jitter, and raincloud plots with sample-size honesty (Weissgerber 2015), KDE-bandwidth awareness, and…
Bio Data Visualization Distribution Plots is an agent skill from GPTomics/bioSkills. Plot per-group distributions of continuous data using boxplots, violins, beeswarms, quasirandom jitter, and raincloud plots with sample-size honesty (Weissgerber 2015), KDE-bandwidth awareness, and N-aware encoding choices. Use when comparing distributions across a small number of groups — expression per cluster, biomarker per arm, scores per condition — and the bar-of-mean default is misleading.
Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `usage-guide.md`).
It sits in Data & Analytics, covering Data visualization and Experimental design. It works with Python. The repository describes itself as: a set of SKILLS.md for doing bioinformatics with agents like claude code. The licence is MIT.
Read from SKILL.md and the folder at commit d91ed3d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (R), which the agent can run.
Shell commands in SKILL.md call:
pipFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Bio Data Visualization Distribution Plots loads about 3.5k tokens when it runs. Until then it costs about 110 tokens; SKILL.md has 1,382 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from GPTomics/bioSkills at commit d91ed3d, republished under its MIT licence (© GPTomics). 1,382 words, ~3,480 tokens.
.claude/skills/bio-data-visualization-distribution-plots/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Reference examples tested with: ggplot2 3.5+, ggbeeswarm 0.7+, ggdist 3.3+, gghalves 0.1.4+, seaborn 0.13+, matplotlib 3.8+, ptitprince 0.3+ (Python raincloud).
Before using code patterns, verify installed versions match. If versions differ:
pip show <package> then help(module.function) to check signaturespackageVersion('<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.
"Plot the distribution per group" -> Render boxplot, violin, beeswarm, or raincloud calibrated to N per group, the underlying distribution shape, and the audience's ability to read each encoding. The default geom_bar(stat='summary') is the canonical misleading choice — Weissgerber 2015 PLOS Biol documented that 703 top physiology papers use bar-of-mean despite multiple distinct distributions producing identical bars.
ggplot2::geom_boxplot, ggplot2::geom_violin, ggbeeswarm::geom_quasirandom, ggdist::stat_halfeye, gghalves::geom_half_violinseaborn.boxplot/violinplot/swarmplot/stripplot, ptitprince.RainCloudWeissgerber, Milic, Winham & Garovic 2015 PLOS Biol 13:e1002128 surveyed 703 papers in top physiology journals and found that bar-and-line graphs of means dominate, despite many distinct distributions producing identical bar plots. Bimodal data, skewed data, and data with outliers all collapse to the same bar height and error bar. The bar plot is a hypothesis test result rendered as visualization; the visualization should show the data.
The modern alternative is to show every point for n < 30, layer summary on top, and reserve summary-only plots for large N where points would overplot.
| N per group | Recommended | Avoid |
|---|---|---|
| 3-10 | Dot plot or jittered raw points + median bar | Bar of mean |
| 10-30 | Beeswarm OR quasirandom + box overlay | Bare boxplot (hides bimodality) |
| 30-200 | Raincloud (Allen 2019) OR box + jitter | Bare violin (default KDE bandwidth oversmooths) |
| 200-1000 | Letter-value plot (Hofmann 2017) OR violin with explicit bandwidth | Box alone (collapses tails) |
| >1000 | Density (KDE) or histogram + summary stats | Individual points (overplot) |
Always annotate N somewhere on the plot (caption, x-axis tick label, or stratum count).
ggplot(df, aes(group, value, fill = group)) +
geom_boxplot(outlier.shape = NA, alpha = 0.7, width = 0.5) +
geom_jitter(width = 0.2, alpha = 0.5, size = 1) +
scale_fill_manual(values = c('#0072B2', '#D55E00')) +
labs(x = NULL, y = 'Expression') +
theme_classic()Box shows: median, IQR, 1.5×IQR whiskers, outliers. Hides: bimodality, sample size, density.
Notched boxplot (notch = TRUE): notches show 95% CI for median (±1.58·IQR/√n); non-overlapping notches roughly indicate distinct medians. Use with N ≥ 15.
ggplot(df, aes(group, value, fill = group)) +
geom_violin(alpha = 0.7, trim = FALSE,
bw = 'SJ') + # Sheather-Jones bandwidth
geom_boxplot(width = 0.1, fill = 'white', outlier.shape = NA) +
scale_fill_manual(values = c('#0072B2', '#D55E00'))KDE bandwidth pitfall: ggplot's default is Silverman's rule of thumb, which oversmooths bimodal data into a single mode. Use bw = 'SJ' (Sheather-Jones plug-in) for honest representation of multimodality.
trim = TRUE (default) cuts the violin at the data range — visually misleading because the violin's tails imply density extending beyond the data. trim = FALSE lets the KDE extend.
library(ggbeeswarm)
ggplot(df, aes(group, value, color = group)) +
geom_quasirandom(method = 'quasirandom', width = 0.3, alpha = 0.7) +
scale_color_manual(values = c('#0072B2', '#D55E00')) +
stat_summary(fun = median, geom = 'crossbar', width = 0.5, color = 'black')Quasirandom (van der Corput sequence; Bostock implementation) gives reproducible jitter that fills space without random scatter. Beeswarm is similar but with collision avoidance. Both are deterministic — reruns produce identical layouts.
Goal: Show distribution (half-violin), summary (boxplot), and raw observations (jittered points) in a single per-group panel without occlusion.
Approach: Place a half-violin on one side, a thin boxplot in the middle, and jittered points on the other side via gghalves::geom_half_violin + geom_boxplot + geom_half_point with position_nudge offsets; flip to horizontal so the visual reads as a literal raincloud.
library(gghalves)
ggplot(df, aes(group, value, fill = group, color = group)) +
geom_half_violin(side = 'r', alpha = 0.7, position = position_nudge(x = 0.15)) +
geom_boxplot(width = 0.15, outlier.shape = NA, alpha = 0.7,
position = position_nudge(x = -0.05)) +
geom_half_point(side = 'l', alpha = 0.5, size = 1.5, range_scale = 0.4,
position = position_nudge(x = -0.2)) +
scale_fill_manual(values = c('#0072B2', '#D55E00')) +
scale_color_manual(values = c('#0072B2', '#D55E00')) +
coord_flip() # horizontal "raincloud"import ptitprince as pt
import seaborn as sns
pt.RainCloud(x='group', y='value', data=df,
palette=['#0072B2', '#D55E00'],
bw='scott', cut=0, # bandwidth + trim
width_viol=0.6, orient='h')Raincloud = half-violin (distribution) + boxplot (summary) + jittered raw points. Allen 2019 Wellcome Open Res 4:63 — modern publication default for N 30-200.
library(lvplot)
ggplot(df, aes(group, value, fill = group)) +
geom_lv(k = 5, alpha = 0.7) +
scale_fill_manual(values = c('#0072B2', '#D55E00'))Extends Tukey's boxplot via additional letter-value quantiles (Hofmann, Wickham, Kafadar 2017 J Comput Graph Stat 26:469). For large N, the standard boxplot collapses tail structure; letter-value preserves it.
sns.boxenplot(x='group', y='value', data=df,
palette=['#0072B2', '#D55E00']) # seaborn calls it boxenplotlibrary(introdataviz) # split-violin geom
ggplot(df, aes(group, value, fill = condition)) +
geom_split_violin(alpha = 0.7) +
geom_boxplot(width = 0.15, position = position_dodge(0.5), outlier.shape = NA)For 2-condition comparison within each group, split-violin shows both densities back-to-back. More compact than dodged violins.
Trigger: geom_bar(stat = 'summary') + geom_errorbar(stat = 'summary', fun.data = mean_se).
Mechanism: Mean ± SEM collapses all distributional information; reader cannot assess bimodality, skew, or N.
Symptom: Reviewer asks to "show the data"; the figure must be redone.
Fix: Replace with raincloud, beeswarm, or boxplot+jitter. Show points for N < 30.
Trigger: geom_violin() without specifying bw.
Mechanism: Silverman's rule of thumb assumes unimodal Gaussian; oversmooths bimodal data into a single peak.
Symptom: Single-cell expression bimodality (off / on) renders as a unimodal violin; biologically false.
Fix: bw = 'SJ' (Sheather-Jones plug-in) for honest bimodality. Note: nrd0 IS Silverman; nrd (Scott) oversmooths less than Silverman but Sheather-Jones is preferred.
Trigger: notch = TRUE with N < 15 per group.
Mechanism: Notch can extend beyond Q1/Q3, producing visually-misleading "inside-out" notches.
Symptom: ggplot warning ("notch went outside hinges"); notches look weird.
Fix: Use notches only with N ≥ 15. For smaller N, show raw points instead.
Trigger: geom_boxplot() + geom_jitter() with default outlier.shape = 19.
Mechanism: Outliers render twice — once from boxplot (large dots), once from jitter (smaller dots) — visually duplicated.
Symptom: Some points appear bigger than others without reason.
Fix: geom_boxplot(outlier.shape = NA) when overlaying raw points.
Trigger: geom_violin() default trim = TRUE.
Mechanism: Default trims violin at the data range; the visual still shows narrowing "tails" implying density extends slightly beyond the data.
Symptom: Reader infers density beyond observed range.
Fix: trim = FALSE to let KDE extend, OR explicitly cap with coord_cartesian. Document the choice.
Trigger: Boxplot with no N per group reported.
Mechanism: Reader cannot assess statistical power; tiny N looks identical to large N at this encoding.
Symptom: Reviewer requests "show N per group."
Fix: Add N to x-axis tick label (Control (n=12)) or use stat_summary(geom='text', fun.data = function(x) data.frame(label = paste('n=', length(x)))).
Trigger: Raincloud applied with N = 5 per group.
Mechanism: KDE with N=5 is meaningless; violin shape is artifact of bandwidth.
Symptom: Smooth violin from 5 points; misleads about underlying distribution.
Fix: For N < 30, drop the violin half; use box + raw points only.
| Pattern | Cause | Action |
|---|---|---|
| Bar of mean shows clear separation; raincloud shows overlapping distributions | Bars hide overlap | Use raincloud; bars exaggerate effect |
| Violin shows unimodal; histogram shows bimodal | Default Silverman bandwidth oversmooths | Re-render with bw = 'SJ' |
| Boxplot medians look distinct; t-test n.s. | Boxplot of small N is unreliable | Show raw points; rerun with appropriate non-parametric test |
| Notched boxplot notches non-overlap; rank test n.s. | Notch is an approximation, not a hypothesis test | Notches are heuristic only; use formal test |
Operational rule: for N < 30, show every point. For N 30-200, raincloud. For N > 200, letter-value or violin with explicit bandwidth. Always annotate N.
| Threshold | Value | Source |
|---|---|---|
| N for valid notched boxplot | ≥15 | Common practice |
| N to show raw points | <30 | Weissgerber 2015 |
| N where violin > box | >30 (with explicit bandwidth) | Visualization guidance |
| Whisker length (Tukey) | 1.5 × IQR | Tukey 1977 |
| Notch length (McGill 1978) | ±1.58 × IQR / sqrt(N) | McGill 1978 |
| KDE bandwidth (Sheather-Jones) | plug-in selector | Sheather-Jones 1991 |
| Error / symptom | Cause | Solution |
|---|---|---|
| Bimodal data shown as unimodal violin | Default Silverman bandwidth | bw = 'SJ' |
| Duplicate large points on box + jitter | outlier.shape not suppressed | geom_boxplot(outlier.shape = NA) |
| Notches "inside-out" | N too small | Show raw points; remove notch |
| Raincloud looks smooth at N=5 | KDE meaningless at small N | Drop violin half; box + points only |
| No N visible | Default boxplot | Add n=... to x label or stat_summary text |
| Violin tails extend beyond data | trim = TRUE default + KDE bandwidth | trim = FALSE and cap with coord_cartesian |
| Bar of mean criticized in review | Weissgerber 2015 default failure | Replace with raincloud or box+jitter |
© GPTomics, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files in data-visualization/distribution-plots of GPTomics/bioSkills.
Open the folder on GitHubat commit d91ed3d
We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 2 other GitHub owners. This page covers the copy in GPTomics/bioSkills, which our catalogue first saw on October 7, 2026.
Bio Data Visualization Distribution Plots next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Bio Data Visualization Distribution Plots this skillGPTomics/bioSkills | 1.2k | 2 repos | ~3.5k | Automated safety check: Pass | MIT | |
| Save Research Notebooknapjon/krisk | 118 | — | ~702 | Automated safety check: Pass | BSD-3-Clause | |
| Scientific Figure MakingChenLiu-1996/figures4papers | 8.2k | — | ~557 | Automated safety check: Pass | Custom licence | |
| Plot From ImageTrae1ounG/paper-plot-skills | 866 | 1 repos | ~868 | Automated safety check: Pass | None | |
| Senior Data ScientistRaidriar7170/hermes-skilleval | 125 | 6 repos | ~1.4k | Automated safety check: Pass | MIT | |
| Python Executorcortega26/chile-hub | 113 | 2 repos | ~1.5k | Automated safety check: Pass | MIT |
napjon/krisk
Convert a completed data-analysis conversation into evidence-backed, reproducible living research through the Krisk MCP server.
ChenLiu-1996/figures4papers
Covers publication-ready matplotlib figures for academic papers, slides, and reports—bars, trends, scatter, heatmaps, and multi-panel layouts—with this…
Trae1ounG/paper-plot-skills
Reproduce any academic paper figure from an uploaded image using accumulated style experience.
Raidriar7170/hermes-skilleval
World-class data science skill for statistical modeling, experimentation, causal inference, and advanced analytics.
cortega26/chile-hub
Execute Python code in a safe sandboxed environment via [inference.sh](https://inference.sh).
VILA-Lab/FigMirror
Redraws your data as a matplotlib figure in the visual style of a reference paper figure, using a drawer and reviewer loop.
GPTomics/bioSkills
Read, write, and convert multiple sequence alignment files using Biopython Bio.AlignIO.
GPTomics/bioSkills
Installs the bioSkills collection of 425 bioinformatics skills in one step, or only chosen categories, so sequencing, RNA-seq, single-cell and variant tasks get specialized help.
GPTomics/bioSkills
Write biological sequences to files (FASTA, FASTQ, GenBank, EMBL) using Biopython Bio.SeqIO.
GPTomics/bioSkills
Soft- or hard-clips PCR primer footprints from aligned amplicon BAMs so primer bases stop masquerading as confirmed reference sequence.
GPTomics/bioSkills
Create and use BAI/CSI indices for BAM/CRAM files using samtools and pysam.
GPTomics/bioSkills
Sort alignment files by coordinate or read name using samtools and pysam.
Works with
Categories
Plot per-group distributions of continuous data using boxplots, violins, beeswarms, quasirandom jitter, and raincloud plots with sample-size honesty (Weissgerber 2015), KDE-bandwidth awareness, and…. Bio Data Visualization Distribution Plots is an agent skill from GPTomics/bioSkills. Plot per-group distributions of continuous data using boxplots, violins, beeswarms, quasirandom jitter, and raincloud plots with sample-size honesty (Weissgerber 2015), KDE-bandwidth awareness, and N-aware encoding choices.
Bio Data Visualization Distribution Plots fits situations like: comparing distributions across a small number of groups — expression per cluster; biomarker per arm; scores per condition — and the bar-of-mean default is misleading.
Run `npx skills add GPTomics/bioSkills --skill bio-data-visualization-distribution-plots -a claude-code`. Or copy the skill folder (data-visualization/distribution-plots in GPTomics/bioSkills) into .claude/skills/bio-data-visualization-distribution-plots in your project. Claude Code loads it when a task matches its description.
Run `npx skills add GPTomics/bioSkills --skill bio-data-visualization-distribution-plots -a codex`. Or copy the skill folder (data-visualization/distribution-plots in GPTomics/bioSkills) into .agents/skills/bio-data-visualization-distribution-plots in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add GPTomics/bioSkills --skill bio-data-visualization-distribution-plots -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bio-data-visualization-distribution-plots, .gemini/skills/bio-data-visualization-distribution-plots, .github/skills/bio-data-visualization-distribution-plots and .opencode/skills/bio-data-visualization-distribution-plots in your project.
Going by SKILL.md and its folder, Bio Data Visualization Distribution Plots needs R for the scripts in its folder and the command-line tools its instructions call (pip). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Bio Data Visualization Distribution Plots is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Bio Data Visualization Distribution Plots: Save Research Notebook (napjon/krisk, 118 stars), Scientific Figure Making (ChenLiu-1996/figures4papers, 8.2k stars), Plot From Image (Trae1ounG/paper-plot-skills, 866 stars) and Senior Data Scientist (Raidriar7170/hermes-skilleval, 125 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
GPTomics (a GitHub organization) maintains it in GPTomics/bioSkills, which has 1,215 GitHub stars. The repository holds 552 skills in this directory. The repository was last updated on August 15, 2026.
Source: GPTomics/bioSkills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.