Skip to main content
skill CX Codex GP ChatGPT official · OpenAI

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.

Install into Codex · Skills CLI (Vercel) All methods and platforms ↓
npx skills add openai/plugins --skill ngs-bulk-rnaseq-differential-expression -a codex
Open on GitHub

What 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.tsv and sample_metadata.tsv with contrasts defined in contrasts.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 codex

2Manually: put the files in place

.agents/skills/ngs-bulk-rnaseq-differential-expression/SKILL.md

For all projects use ~/.agents/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

Similar skills

All skills for Science and research →

From the same set528

The whole set →
ngs-dna-somatic-variants A skill that plans and runs somatic variant workflows for tumor-normal and tumor-only designs, WGS, WES and cancer panels. Useful for checking sample pairs before a pipeline starts. CX Codex GP ChatGPT 2installs ngs-dna-germline-variants Plans and executes germline variant calling workflows for WGS, WES, or targeted gene panels. Useful for cohort and trio joint genotyping setups. CX Codex GP ChatGPT 2installs ngs-chip-cutrun-peaks-qc Plans and runs QC for ChIP-seq, CUT&RUN, and CUT&Tag, covering controls, peak calls, bigWigs, replicates, and differential binding. CX Codex GP ChatGPT 2installs ngs-bulk-rnaseq A dispatcher for bulk RNA-seq work: it splits FASTQ-to-count processing from count-matrix statistics. Useful when you need expression counts and then differentially expressed genes. CX Codex GP ChatGPT 2installs ngs-bulk-rnaseq-counts-qc Plans or runs bulk RNA-seq processing from FASTQ reads to count matrices, with MultiQC and QC checks. Use it before differential-expression analysis. CX Codex GP ChatGPT 2installs ngs-bcl-to-fastq Validates an Illumina run folder and sample sheet, plans demultiplexing, and runs BCL-to-FASTQ conversion. Useful when the input is a sequencing run folder. CX Codex GP ChatGPT 2installs ngs-atacseq-peaks-qc Plans and runs ATAC-seq QC, alignment, and peak-calling workflows. It checks library quality metrics, nucleosome periodicity, and chromatin accessibility. CX Codex GP ChatGPT 2installs website-to-hyperframes This skill turns a website URL into a HyperFrames video project, covering capture, scripting, storyboarding, voice timing, and validation. CX Codex GP ChatGPT 2installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor