ngs-bulk-rnaseq — Claude skill: bulk RNA-seq from FASTQ to DESeq2
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.
npx skills add openai/plugins --skill ngs-bulk-rnaseq -a codexWhat ngs-bulk-rnaseq does
The skill routes requests rather than running everything itself. FASTQ or aligned reads go to ngs-bulk-rnaseq-counts-qc, which covers nf-core/rnaseq, STAR, Salmon, featureCounts and MultiQC. A raw count matrix with sample metadata goes to ngs-bulk-rnaseq-differential-expression for DESeq2, edgeR or limma.
Before anything runs, it asks you to confirm the organism and genome build, FASTA and GTF or an nf-core genome key, paired-end or single-end reads, strandedness, the sample sheet and metadata, plus contrasts, covariates and batch terms for the DE step. Unknown strandedness is a real trap here: inference or the pipeline's detection has to happen before final counts, or the numbers come out wrong.
Local execution is handled by plugins/ngs-analysis/scripts/run_bulk_rnaseq_counts_qc.py and run_bulk_rnaseq_de.py, with ngs_preflight.py checking the environment first. The skill prefers nf-core/rnaseq when a stable container or HPC runtime is available, and falls back to the local_light Snakemake/Salmon path when Docker or registry egress is not. Runs write a standard envelope with run_manifest.json, config.json, artifact_index.json and summary.md.
What it helps with
- split a FASTQ job from a count-matrix analysis
- build an expression matrix from FASTQ with nf-core/rnaseq
- infer strandedness before committing to final counts
- check the environment and get an install plan for dependencies
- start DESeq2 only once replicates and design are confirmed
Example prompts for the agent
- count expression from FASTQ: samplesheet.csv plus transcriptome and GTF under reference/
- I already have count_matrix.tsv and sample_metadata.tsv — find the differentially expressed genes
- run ngs_preflight.py for bulk_rnaseq and show me the install plan
How to install ngs-bulk-rnaseq
1Skills CLI (Vercel)
npx skills add openai/plugins --skill ngs-bulk-rnaseq -a codex2Manually: put the files in place
.agents/skills/ngs-bulk-rnaseq/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add openai/plugins --skill ngs-bulk-rnaseq -a claude-code2Manually: put the files in place
~/.claude/skills/ngs-bulk-rnaseq/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/ngs-bulk-rnaseq/
Manually: put the files in place
.cursor/skills/ngs-bulk-rnaseq/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install openai/plugins ngs-bulk-rnaseq2Manually: put the files in place
.github/skills/ngs-bulk-rnaseq/SKILL.mdPlatform CLI
gemini skills install https://github.com/openai/plugins --path plugins/ngs-analysis/skills/ngs-bulk-rnaseqManually: put the files in place
.devin/skills/ngs-bulk-rnaseq/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
How do I install ngs-bulk-rnaseq in Claude?
Run npx skills add openai/plugins --skill ngs-bulk-rnaseq, then npx skills add openai/plugins --skill ngs-bulk-rnaseq -a codex. The skill file lands at .agents/skills/ngs-bulk-rnaseq/SKILL.md.
What does ngs-bulk-rnaseq do?
It dispatches bulk RNA-seq requests. FASTQ and aligned reads go to count generation and QC, while an existing count matrix goes to differential-expression guidance.
When should differential expression start?
Only after biological replicates, the design formula and contrasts are confirmed. Keep the raw count matrix and sample metadata intact.
Source text
SKILL.md · MIT
--- name: ngs-bulk-rnaseq description: Dispatch bulk RNA-seq requests to FASTQ-to-count QC or count-matrix differential-expression skills using nf-core/rnaseq, STAR, Salmon, featureCounts, MultiQC, and R/Bioconductor workflows. --- # Bulk RNA-seq Use this skill as the bulk RNA-seq dispatcher. Route FASTQ/BAM processing to count-generation QC, and route count-matrix statistical analysis to differential-expression guidance. ## Essential Inputs Confirm: - organism and genome build - FASTA and GTF, or supported nf-core genome key - paired-end or single-end reads - strandedness, or whether to infer strandedness - sample sheet and metadata - counts-only vs differential expression - contrasts, covariates, and batch terms for differential expression ## Dispatch - FASTQ or aligned reads to raw counts, transcript estimates, or MultiQC summaries: `ngs-bulk-rnaseq-counts-qc` - Raw count matrix plus sample metadata to contrasts, plots, and DE result tables: `ngs-bulk-rnaseq-differential-expression` If the user asks for both, run count-generation planning first and start differential expression only after the raw count matrix, sample metadata, replicates, design formula, and contrasts are confirmed. ## Public Default Prefer `nf-core/rnaseq` for standardized processing when a stable container or HPC runtime is available. Use the `local_light` Snakemake/Salmon path when Docker, registry egress, or Nextflow process containers are unavailable and a compact local run is appropriate. ## Plugin-Owned Local Paths Use the counts/QC runner for local FASTQ-to-matrix execution: ```bash python plugins/ngs-analysis/scripts/run_bulk_rnaseq_counts_qc.py \ --sample-sheet samplesheet.csv \ --fastq-root path/to/fastqs \ --transcriptome-fasta reference/transcriptome.fasta \ --genome-fasta reference/genome.fa \ --annotation-gtf reference/genes.gtf \ --execute ``` Use the differential-expression runner when the user already has a count or expression matrix: ```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 ``` ## Preflight ```bash python plugins/ngs-analysis/scripts/ngs_preflight.py --pipeline bulk_rnaseq --emit-install-plan python plugins/ngs-analysis/scripts/ngs_preflight.py --pipeline bulk_rnaseq_counts_qc --emit-install-plan python plugins/ngs-analysis/scripts/ngs_preflight.py --pipeline bulk_rnaseq_differential_expression --emit-install-plan python plugins/ngs-analysis/scripts/ngs_preflight.py --profile local_light --emit-install-plan ``` ## Kickoff Pattern Preflight run: ```bash nextflow run nf-core/rnaseq \ -profile test,docker \ --outdir results/rnaseq_test ``` Real run skeleton: ```bash nextflow run nf-core/rnaseq \ -profile docker \ --input samplesheet.csv \ --outdir results/rnaseq \ --genome GRCh38 \ --aligner star_salmon ``` If strandedness is unknown, run inference or use the pipeline's strandedness detection before committing to final counts. Local execution run: ```bash python plugins/ngs-analysis/scripts/run_bulk_rnaseq_counts_qc.py \ --sample-sheet samplesheet.csv \ --fastq-root path/to/fastqs \ --transcriptome-fasta reference/transcriptome.fasta ``` The local runners create a standard run envelope with `run_manifest.json`, `config.json`, `validation/`, `logs/`, `versions/`, `artifact_index.json`, and `summary.md`. Do not depend on development-only eval harness paths in a shared package. ## Downstream Only start DESeq2/edgeR/limma analysis after confirming biological replicates, design formula, and contrasts. Preserve the raw count matrix and sample metadata.
© OpenAI · MIT · openai/plugins