ngs-bulk-rnaseq-differential-expression — Codex skill: RNA-seq DE
Plans and executes bulk RNA-seq differential expression from count matrices. It checks biological replicates, design formulas, batch variables, and generates quality control plots.
npx skills add openai/plugins --skill ngs-bulk-rnaseq-differential-expression -a codexWhat ngs-bulk-rnaseq-differential-expression does
The skill sets up differential expression pipelines in R via Bioconductor, utilizing DESeq2, edgeR, or limma-voom. Execution runs through the runner script python plugins/ngs-analysis/scripts/run_bulk_rnaseq_de.py using count matrices, sample metadata, and contrast definitions. Auto mode chooses DESeq2 for integer count matrices, reverts to edgeR if DESeq2 is missing, and picks limma_log2 for continuous expression inputs.
Execution halts if preconditions fail. The runner demands matched sample IDs between metadata rows and count columns, explicit batch handling, and adequate biological replication. Contrasts compromised by insufficient replicates or confounding are stopped early, generating explicit .not_tested.tsv stub files instead of misleading estimates.
Outputs include contrast tables, PCA plots, library size charts, and mean-variance trend figures. An interactive Marimo review application boots on localhost, registered in notebooks/marimo_server.json. Everything packages into a standard run envelope with manifests, logs, and summary.md.
What it helps with
- run bulk RNA-seq differential expression using DESeq2, edgeR, or limma-voom
- validate sample metadata against count matrix columns before modeling
- screen for library size discrepancies, outliers, and batch effects via PCA
- produce contrast summary tables alongside a localhost Marimo review interface
Example prompts for the agent
- Run differential expression on
count_matrix.tsvandsample_metadata.tsvwith contrasts defined incontrasts.tsv. - Perform preflight checks for the pipeline:
python plugins/ngs-analysis/scripts/ngs_preflight.py --pipeline bulk_rnaseq_differential_expression --emit-install-plan. - Check sample replication, design formula, and batch covariates before running DESeq2 on bulk RNA-seq counts.
How to install ngs-bulk-rnaseq-differential-expression
1Skills CLI (Vercel)
npx skills add openai/plugins --skill ngs-bulk-rnaseq-differential-expression -a codex2Manually: put the files in place
.agents/skills/ngs-bulk-rnaseq-differential-expression/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add openai/plugins --skill ngs-bulk-rnaseq-differential-expression -a claude-code2Manually: put the files in place
~/.claude/skills/ngs-bulk-rnaseq-differential-expression/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/ngs-bulk-rnaseq-differential-expression/
Manually: put the files in place
.cursor/skills/ngs-bulk-rnaseq-differential-expression/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install openai/plugins ngs-bulk-rnaseq-differential-expression2Manually: put the files in place
.github/skills/ngs-bulk-rnaseq-differential-expression/SKILL.mdPlatform CLI
gemini skills install https://github.com/openai/plugins --path plugins/ngs-analysis/skills/ngs-bulk-rnaseq-differential-expressionManually: put the files in place
.devin/skills/ngs-bulk-rnaseq-differential-expression/SKILL.mdThe legacy .windsurf/skills/ path still works
Claude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: Codex skills: how to install, where they live, how to call them
Questions about ngs-bulk-rnaseq-differential-expression
How do I install ngs-bulk-rnaseq-differential-expression in Codex?
Run npx skills add openai/plugins --skill ngs-bulk-rnaseq-differential-expression -a codex in your terminal. You can also use npx skills add openai/plugins --skill ngs-bulk-rnaseq-differential-expression without the agent flag.
What does the ngs-bulk-rnaseq-differential-expression skill do?
It prepares and runs bulk RNA-seq differential expression workflows. The skill validates biological replicates, configures design formulas, executes DESeq2, edgeR, or limma-voom, and exports QC plots.
How does the runner handle contrasts with insufficient biological replicates?
The runner stops comparisons that lack biological replicates or suffer from confounding. It creates .not_tested.tsv stub files for blocked contrasts and records caveats in the summary.
Source text
SKILL.md · MIT
--- name: ngs-bulk-rnaseq-differential-expression description: Run or plan bulk RNA-seq differential-expression analysis from count matrices with replicate, design formula, contrast, batch, normalization, QC plot, and result-table checks. --- # Bulk RNA-seq Differential Expression Use this skill when the user has raw counts or a count-generation output and wants differential expression, contrasts, QC plots, or ranked gene tables. ## Essential Inputs Confirm: - raw count matrix path and sample metadata path - gene ID type and annotation mapping requirement - biological conditions, replicates, batch variables, donor pairing, covariates, and exclusions - exact contrasts and baseline levels - preferred statistical framework: DESeq2, edgeR, limma-voom, or existing lab standard - output needs: normalized counts, PCA, sample distance, volcano plots, heatmaps, ranked tables, GSEA-ready lists ## Preconditions Do not start differential expression until: - raw counts are preserved - each requested contrast has enough biological replication - sample metadata row names match count matrix columns - batch/covariate choices are explicit - exploratory PCA/sample-distance plots do not reveal obvious swaps or failed libraries ## Route For most count matrices, use DESeq2 or edgeR. Use limma-voom when the study design or lab standard favors it. Keep the analysis in R when using Bioconductor unless the user specifically asks for a Python-only workflow. The plugin-owned local runner is: ```bash python plugins/ngs-analysis/scripts/run_bulk_rnaseq_de.py \ --count-matrix count_matrix.tsv \ --sample-metadata sample_metadata.tsv \ --contrasts contrasts.tsv \ --execute ``` Use `--method auto` unless the user or lab standard specifies `DESeq2`, `edgeR`, or `limma_log2`. Auto mode uses DESeq2 when integer-like counts and the package are available, falls back to edgeR for integer-like counts, and uses `limma_log2` for non-integer expression matrices. Use `--input-mode` to declare whether the matrix is `raw_counts`, `normalized_expression`, or `log_expression`. When `--input-mode auto` is used, the runner infers the mode and records a warning if normalization is skipped because the matrix is already transformed. Preflight command: ```bash python plugins/ngs-analysis/scripts/ngs_preflight.py --pipeline bulk_rnaseq_differential_expression --emit-install-plan ``` ## Decision Points - Never compare groups without stating the design formula and contrast. - Treat batch correction in modeling separately from visual batch removal. - Do not filter genes using post-hoc knowledge of the contrast. - For paired or repeated-measures designs, model subject/donor explicitly. - Report genes with effect size, uncertainty, adjusted p-value, and filtering status. ## Outputs Produce: - design formula and contrast manifest - QC plots: library size, detected genes, PCA/sample distance, mean-variance trend, and outlier review - input-mode-aware matrix exports plus the modeling/log-scale matrix used for DE - differential-expression tables per contrast - explicit `.not_tested.tsv` stubs for contrasts blocked by insufficient replication or confounding - auto-launched localhost Marimo review app recorded in `notebooks/marimo_server.json` - caveats for small n, confounded designs, failed samples, or batch variables that cannot be estimated - standard run envelope: `run_manifest.json`, `config.json`, `validation/`, `logs/`, `versions/`, `visualizations/`, `notebooks/`, `artifact_index.json`, and `summary.md`
© OpenAI · MIT · openai/plugins