PyDESeq2 Differential Expression
davila7/claude-code-templates
Runs differential gene expression analysis on bulk RNA-seq counts with PyDESeq2: design formulas, Wald tests, FDR correction and volcano or MA plots.
Counts RNA-seq reads overlapping GTF gene features. An agent skill from jaechang-hits/SciAgent-Skills.
$ npx skills add jaechang-hits/SciAgent-Skills --skill featurecounts-rna-counting -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jaechang-hits/SciAgent-Skills featurecounts-rna-counting --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/jaechang-hits/SciAgent-Skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/genomics-bioinformatics/rnaseq/featurecounts-rna-counting .claude/skills/featurecounts-rna-counting && 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 "featurecounts-rna-counting" agent skill from https://github.com/jaechang-hits/SciAgent-Skills/tree/main/skills/genomics-bioinformatics/rnaseq/featurecounts-rna-counting into .claude/skills/featurecounts-rna-counting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "featurecounts-rna-counting", 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/jaechang-hits/SciAgent-Skills/tree/main/skills/genomics-bioinformatics/rnaseq/featurecounts-rna-countingType 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 jaechang-hits/SciAgent-Skills --skill featurecounts-rna-counting -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jaechang-hits/SciAgent-Skills featurecounts-rna-counting --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jaechang-hits/SciAgent-Skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/genomics-bioinformatics/rnaseq/featurecounts-rna-counting .agents/skills/featurecounts-rna-counting && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "featurecounts-rna-counting" agent skill from https://github.com/jaechang-hits/SciAgent-Skills/tree/main/skills/genomics-bioinformatics/rnaseq/featurecounts-rna-counting into .agents/skills/featurecounts-rna-counting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "featurecounts-rna-counting", 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 jaechang-hits/SciAgent-Skills --skill featurecounts-rna-counting -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jaechang-hits/SciAgent-Skills featurecounts-rna-counting --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jaechang-hits/SciAgent-Skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/genomics-bioinformatics/rnaseq/featurecounts-rna-counting .cursor/skills/featurecounts-rna-counting && 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 "featurecounts-rna-counting" agent skill from https://github.com/jaechang-hits/SciAgent-Skills/tree/main/skills/genomics-bioinformatics/rnaseq/featurecounts-rna-counting into .cursor/skills/featurecounts-rna-counting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "featurecounts-rna-counting", 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/jaechang-hits/SciAgent-Skills.git --path skills/genomics-bioinformatics/rnaseq/featurecounts-rna-counting--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 jaechang-hits/SciAgent-Skills --skill featurecounts-rna-counting -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jaechang-hits/SciAgent-Skills featurecounts-rna-counting --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jaechang-hits/SciAgent-Skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/genomics-bioinformatics/rnaseq/featurecounts-rna-counting .gemini/skills/featurecounts-rna-counting && 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 "featurecounts-rna-counting" agent skill from https://github.com/jaechang-hits/SciAgent-Skills/tree/main/skills/genomics-bioinformatics/rnaseq/featurecounts-rna-counting into .gemini/skills/featurecounts-rna-counting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "featurecounts-rna-counting", 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 jaechang-hits/SciAgent-Skills featurecounts-rna-countingInstalls 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 jaechang-hits/SciAgent-Skills --skill featurecounts-rna-counting -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jaechang-hits/SciAgent-Skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/genomics-bioinformatics/rnaseq/featurecounts-rna-counting .github/skills/featurecounts-rna-counting && 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 "featurecounts-rna-counting" agent skill from https://github.com/jaechang-hits/SciAgent-Skills/tree/main/skills/genomics-bioinformatics/rnaseq/featurecounts-rna-counting into .github/skills/featurecounts-rna-counting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "featurecounts-rna-counting", 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 jaechang-hits/SciAgent-Skills --skill featurecounts-rna-counting -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jaechang-hits/SciAgent-Skills featurecounts-rna-counting --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jaechang-hits/SciAgent-Skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/genomics-bioinformatics/rnaseq/featurecounts-rna-counting .opencode/skills/featurecounts-rna-counting && 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 "featurecounts-rna-counting" agent skill from https://github.com/jaechang-hits/SciAgent-Skills/tree/main/skills/genomics-bioinformatics/rnaseq/featurecounts-rna-counting into .opencode/skills/featurecounts-rna-counting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "featurecounts-rna-counting", 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.
featurecounts-rna-countingCounts RNA-seq reads overlapping GTF gene features. An agent skill from jaechang-hits/SciAgent-Skills.
Featurecounts Rna Counting is an agent skill from jaechang-hits/SciAgent-Skills. Counts RNA-seq reads overlapping GTF gene features. Takes sorted STAR BAMs plus GTF; outputs a per-gene tab-delimited matrix across samples. Handles strandedness (0/1/2), paired-end, multi-sample batch counting in one command, and outputs assignment statistics. Use Salmon for alignment-free quantification; use featureCounts when STAR BAMs already exist.
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Research & Science, covering Bioinformatics and Statistics. The repository describes itself as: 197 bioinformatics & life science skills for Claude Code and AI agents — BixBench 92.0% accuracy. RNA-seq, single-cell, drug discovery, proteomics, and more. Powers OmicsHorizon. The licence is GPL-3.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 82c862c. 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.
Shell commands in SKILL.md call:
condaapt-getwgetFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
ftp.ebi.ac.ukAlso links to:
subread.sourceforge.netdoi.orggithub.combioconductor.orgFrom 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.
Featurecounts Rna Counting loads about 3.7k tokens when it runs. Until then it costs about 96 tokens; SKILL.md has 814 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 noted patterns worth knowing about, such as sudo or a known installer.
sudo apt-get install subreadAutomated 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 jaechang-hits/SciAgent-Skills at commit 82c862c, republished under its GPL-3.0 licence (© jaechang-hits). 814 words, ~3,692 tokens.
.claude/skills/featurecounts-rna-counting/SKILL.md (or your agent's skills folder).featureCounts (part of the Subread package) assigns sequencing reads in BAM files to genomic features defined in a GTF/GFF annotation. It counts how many reads overlap each gene (or exon, intron, or custom feature), producing a gene × sample count matrix suitable for differential expression analysis with DESeq2 or edgeR. featureCounts processes multiple BAM files in a single command, reporting read assignment statistics (assigned, unassigned by category) alongside the count matrix. It is the standard counting step after STAR alignment in RNA-seq pipelines.
featureCounts)Check before installing: The tool may already be available in the current environment (e.g., inside a
pixi/condaenv). Runcommand -v featureCountsfirst and skip the install commands below if it returns a path. When running inside a pixi project, invoke the tool viapixi run featureCountsrather than barefeatureCounts.
# Install with conda (recommended)
conda install -c bioconda subread
# Verify
featureCounts -v
# featureCounts v2.0.6
# Alternative: install via apt (Ubuntu/Debian)
sudo apt-get install subreadSettle these with the user before writing any analysis code.
decisions:
- id: D1
param: annotation
kind: required
source: upstream
ask: "Which GTF/GFF annotation file should be used, and does its assembly exactly match the BAM alignment reference?"
default: null
- id: D2
param: strandSpecific
kind: required
source: data
ask: "Which strandedness did the representative-alignment check infer, and does it agree with the library preparation?"
default: null
- id: D3
param: -t, -g
kind: optional
source: user
ask: "Should expression be summarized from exons to genes, or from another feature type for a specific downstream question?"
default: "-t exon -g gene_id"
- id: D4
param: -M, -O
kind: optional
source: user
ask: "Should reads with multiple genomic mappings or overlapping gene assignments be included in the count matrix?"
default: "exclude both multi-mappers and multi-overlap reads"
- id: D5
param: --minOverlap, --fracOverlap
kind: optional_conditional
source: user
ask: "Does the assay or feature definition require a minimum overlap stricter than one aligned base?"
default: "--minOverlap 1 --fracOverlap 0"Incorrect library strandedness can substantially reduce or misassign counts; the magnitude varies by gene and annotation, so infer it from the data and treat an ambiguous result as a QC failure. Enabling multi-mapper counting can inflate counts for paralogs and repeat-associated genes. Neither setting necessarily produces a software error.
# Count reads for multiple samples (unstranded paired-end RNA-seq)
featureCounts \
-a gencode.v47.annotation.gtf \
-o counts/gene_counts.txt \
-T 8 \
-p --countReadPairs \
results/sample1/Aligned.sortedByCoord.out.bam \
results/sample2/Aligned.sortedByCoord.out.bam
echo "Count matrix: counts/gene_counts.txt"
head -3 counts/gene_counts.txtEnsure BAM files are sorted and indexed, and the GTF matches the genome assembly.
# Verify BAM files are sorted
samtools view -H results/sample1/Aligned.sortedByCoord.out.bam | grep "SO:"
# Expected: SO:coordinate
# List BAMs to count
ls results/*/Aligned.sortedByCoord.out.bam | head -5
# Download GENCODE GTF (same version used for STAR indexing)
wget https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_47/gencode.v47.primary_assembly.annotation.gtf.gz
gunzip gencode.v47.primary_assembly.annotation.gtf.gz
echo "GTF lines: $(wc -l < gencode.v47.primary_assembly.annotation.gtf)"Test strandedness using a small read count to set the -s parameter correctly.
# Quick strandedness check: count 1 sample with all 3 modes
# Compare assigned rates: highest = correct mode
for strand in 0 1 2; do
echo "=== Strandedness -s $strand ==="
featureCounts \
-a gencode.v47.primary_assembly.annotation.gtf \
-o /tmp/test_s${strand}.txt \
-T 4 \
-p --countReadPairs \
-s $strand \
results/sample1/Aligned.sortedByCoord.out.bam 2>&1 \
| grep "Successfully assigned"
done
# Rule: 0=unstranded if similar rates; 1 or 2 if one is much higherStandard configuration for unstranded libraries (most polyA-selected RNA-seq).
mkdir -p counts
# Multi-sample batch counting: pass all BAMs as positional arguments
featureCounts \
-a gencode.v47.primary_assembly.annotation.gtf \
-o counts/gene_counts.txt \
-T 8 \
-p \
--countReadPairs \
-s 0 \
-t exon \
-g gene_id \
results/ctrl_1/Aligned.sortedByCoord.out.bam \
results/ctrl_2/Aligned.sortedByCoord.out.bam \
results/treat_1/Aligned.sortedByCoord.out.bam \
results/treat_2/Aligned.sortedByCoord.out.bam
echo "Count matrix: $(wc -l < counts/gene_counts.txt) genes"
# Also generates: counts/gene_counts.txt.summary (assignment stats)
cat counts/gene_counts.txt.summaryFor strand-specific libraries (TruSeq Stranded, QuantSeq), set the correct strandedness.
# Reverse-stranded library (most TruSeq Stranded protocols): -s 2
featureCounts \
-a gencode.v47.primary_assembly.annotation.gtf \
-o counts/gene_counts_stranded.txt \
-T 8 \
-p --countReadPairs \
-s 2 \
results/*/Aligned.sortedByCoord.out.bam
# Forward-stranded (e.g., Lexogen QuantSeq, Takara SMARTer): -s 1
# featureCounts ... -s 1 ...
echo "Stranded count complete."
head -2 counts/gene_counts_stranded.txtParse the featureCounts output file and prepare for differential expression.
import pandas as pd
# featureCounts output has 6 metadata columns before count columns
counts_raw = pd.read_csv("counts/gene_counts.txt", sep="\t", comment="#")
print(f"Columns: {list(counts_raw.columns)}")
# Metadata columns: Geneid, Chr, Start, End, Strand, Length
# Count columns start at index 6
count_cols = counts_raw.columns[6:] # BAM file paths as column names
counts = counts_raw.set_index("Geneid")[count_cols].copy()
# Rename columns to sample names (strip path and file extension)
import re
counts.columns = [re.sub(r".*/|Aligned\.sortedByCoord\.out\.bam", "", col)
for col in counts.columns]
print(f"Count matrix shape: {counts.shape}") # (genes × samples)
print(f"Samples: {list(counts.columns)}")
print(f"Genes with counts > 0: {(counts.sum(axis=1) > 0).sum()}")
counts.to_csv("gene_count_matrix.tsv", sep="\t")
print("Saved: gene_count_matrix.tsv")Use the count matrix directly in pydeseq2 for differential expression.
import pandas as pd
from pydeseq2.dds import DeseqDataSet
from pydeseq2.default_inference import DefaultInference
from pydeseq2.ds import DeseqStats
# Load count matrix (genes × samples)
counts = pd.read_csv("gene_count_matrix.tsv", sep="\t", index_col=0).T
print(f"Count matrix: {counts.shape} (samples × genes)")
# Sample metadata
metadata = pd.DataFrame({
"condition": ["control", "control", "treated", "treated"]
}, index=counts.index)
# Filter low-count genes (recommended before DESeq2)
counts_filtered = counts.loc[:, counts.sum() > 10]
print(f"Genes after low-count filter: {counts_filtered.shape[1]}")
# Run DESeq2
dds = DeseqDataSet(counts=counts_filtered, metadata=metadata,
design_factors="condition",
inference=DefaultInference(n_cpus=8))
dds.deseq2()
stat_res = DeseqStats(dds, contrast=["condition", "treated", "control"],
inference=DefaultInference())
stat_res.summary()
results = stat_res.results_df
sig = results[results["padj"] < 0.05]
print(f"DE genes (padj < 0.05): {len(sig)}")
print(sig.sort_values("log2FoldChange", ascending=False).head())| Parameter | Default | Range/Options | Effect |
|---|---|---|---|
-a | required | GTF/GFF3 path | Annotation file; must match genome assembly used for alignment |
-o | required | file path | Output count table path (also creates <output>.summary) |
-T | 1 | 1–64 | CPU threads; 8–16 is typical |
-s | 0 | 0 (unstranded), 1 (stranded), 2 (reverse-stranded) | Library strandedness; wrong value causes major undercounting |
-p | off | flag | Paired-end mode; reads counted as fragments not individual reads |
--countReadPairs | off | flag | For PE: count pairs not reads (use with -p) |
-t | exon | feature type string | Feature type to count from GTF column 3 |
-g | gene_id | attribute string | GTF attribute to group features (use gene_id for genes) |
--minOverlap | 1 | 1–100 | Minimum bases a read must overlap a feature to be counted |
--fracOverlap | 0 | 0–1 | Fraction of read that must overlap; 0.2 for stricter counting |
-O | off | flag | Allow reads to be assigned to multiple overlapping features |
-M | off | flag | Count multi-mapping reads (default: only uniquely mapped) |
import subprocess
import re
from pathlib import Path
def run_featurecounts(bam_files: list, gtf: str, outfile: str,
threads: int = 8, strandedness: int = 0,
paired_end: bool = True) -> dict:
"""Run featureCounts and return assignment statistics."""
cmd = [
"featureCounts",
"-a", gtf,
"-o", outfile,
"-T", str(threads),
"-s", str(strandedness),
"-t", "exon",
"-g", "gene_id",
]
if paired_end:
cmd += ["-p", "--countReadPairs"]
cmd += bam_files
result = subprocess.run(cmd, capture_output=True, text=True)
# Parse summary from stderr
stats = {}
for line in result.stderr.splitlines():
if "Assigned" in line:
stats["assigned_pct"] = float(re.search(r"(\d+\.\d+)%", line).group(1))
return stats
bams = list(Path("results").glob("*/Aligned.sortedByCoord.out.bam"))
bam_list = [str(b) for b in sorted(bams)]
stats = run_featurecounts(bam_list, "gencode.v47.primary_assembly.annotation.gtf",
"counts/gene_counts.txt")
print(f"Assigned reads: {stats.get('assigned_pct', 'N/A')}%")# Snakefile — featureCounts rule after STAR alignment
configfile: "config.yaml"
SAMPLES = config["samples"]
rule featurecounts:
input:
bams = expand("results/{sample}/Aligned.sortedByCoord.out.bam", sample=SAMPLES),
gtf = config["gtf"]
output:
counts = "counts/gene_counts.txt",
summary = "counts/gene_counts.txt.summary"
params:
strandedness = config.get("strandedness", 0)
threads: 8
shell:
"""
featureCounts \
-a {input.gtf} \
-o {output.counts} \
-T {threads} \
-p --countReadPairs \
-s {params.strandedness} \
-t exon -g gene_id \
{input.bams}
"""| Output | Format | Description |
|---|---|---|
gene_counts.txt | TSV | Count matrix: gene metadata + one count column per BAM |
gene_counts.txt.summary | TSV | Read assignment statistics per sample (Assigned, Unassigned_*) |
| stderr log | Text | Per-sample assignment percentages and warnings |
| Problem | Cause | Solution |
|---|---|---|
| Very low assigned rate (< 40%) | Wrong strandedness -s value | Test all 3 -s modes; match to library prep protocol |
| GTF not matching genome | Different assembly or annotation version | Verify genome + GTF are same version (e.g., both GRCh38/GENCODE v47) |
Error: Failed to open the annotation file | GTF file path wrong or compressed | Decompress GTF; use absolute path |
| Count matrix has 0 for all genes | Wrong -t feature type | Check GTF column 3 with awk '{print $3}' file.gtf | sort -u | head |
| Multi-mapping reads not counted | -M not set | Add -M to count multi-mappers; may inflate counts for repetitive regions |
| Paired-end reads counted as single | -p flag missing | Add -p --countReadPairs for paired-end BAMs |
| Very slow on large BAM files | Low thread count | Increase -T to 8–16; ensure BAMs are sorted by coordinate |
gene_id attribute missing | GFF3 file uses different attribute | Use -g ID for GFF3; check attributes with grep -v "^#" file.gff3 | head -5 |
© jaechang-hits, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/genomics-bioinformatics/rnaseq/featurecounts-rna-counting of jaechang-hits/SciAgent-Skills.
Open the folder on GitHubat commit 82c862c
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in jaechang-hits/SciAgent-Skills, which our catalogue first saw on October 7, 2026.
Featurecounts Rna Counting 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 |
|---|---|---|---|---|---|---|
| Featurecounts Rna Counting this skilljaechang-hits/SciAgent-Skills | 374 | 1 repos | ~3.7k | Automated safety check: Notes | GPL-3.0 | |
| PyDESeq2 Differential Expressiondavila7/claude-code-templates | 33k | 11 repos | ~4k | Automated safety check: Pass | MIT | |
| Ukb Ppp Region FetchClawBio/ClawBio | 1.2k | — | ~4.6k | Automated safety check: Pass | MIT | |
| TiledbvcfK-Dense-AI/scientific-agent-skills | 48k | 1 repos | ~3.5k | Automated safety check: Pass | MIT | |
| Volcano Plot Scriptaipoch/medical-research-skills | 1.9k | — | ~2.5k | Automated safety check: Pass | MIT | |
| Tooluniverse Epigenomicswu-yc/LabClaw | 1.1k | 2 repos | ~14k | Automated safety check: Pass | None |
davila7/claude-code-templates
Runs differential gene expression analysis on bulk RNA-seq counts with PyDESeq2: design formulas, Wald tests, FDR correction and volcano or MA plots.
ClawBio/ClawBio
Fetch a regional slice of plasma pQTL summary statistics from the UK Biobank Pharma Proteomics Project (UKB-PPP; Sun 2023 Nature) for a specific (protein, ancestry) measurement.
K-Dense-AI/scientific-agent-skills
Stores and retrieves genomic variant calls with TileDB-VCF. An agent skill from K-Dense-AI/scientific-agent-skills.
aipoch/medical-research-skills
Generate R/Python code for volcano plots from DEG (Differentially Expressed Genes) analysis results.
wu-yc/LabClaw
Production-ready genomics and epigenomics data processing for BixBench questions.
wu-yc/LabClaw
Analyze metabolomics data including metabolite identification, quantification, pathway analysis, and metabolic flux.
jaechang-hits/SciAgent-Skills
NEB-IRC activation energy pipeline for reaction barriers using GFN2-xTB and pysisyphus.
jaechang-hits/SciAgent-Skills
3Dmol.js WebGL molecular visualization emitted as self-contained HTML.
jaechang-hits/SciAgent-Skills
Constraint-based (COBRA) analysis of genome-scale metabolic models: FBA, FVA, knockouts, flux sampling, production envelopes, gapfilling, media optimization.
jaechang-hits/SciAgent-Skills
Read, write, and edit ChemDraw CDX/CDXML files with RDKit's rdkit.Chem.rdChemDraw plus direct XML editing, always paired with a rendered PNG.
jaechang-hits/SciAgent-Skills
Programmatic PubMed access via NCBI E-utilities REST API. An agent skill from jaechang-hits/SciAgent-Skills.
jaechang-hits/SciAgent-Skills
Scaffold a new SciAgent-Skills entry. An agent skill from jaechang-hits/SciAgent-Skills.
Categories
Counts RNA-seq reads overlapping GTF gene features. An agent skill from jaechang-hits/SciAgent-Skills. Featurecounts Rna Counting is an agent skill from jaechang-hits/SciAgent-Skills. Counts RNA-seq reads overlapping GTF gene features.
Featurecounts Rna Counting fits situations like: tasks that involve Bioinformatics; tasks that involve Statistics.
Run `npx skills add jaechang-hits/SciAgent-Skills --skill featurecounts-rna-counting -a claude-code`. Or copy the skill folder (skills/genomics-bioinformatics/rnaseq/featurecounts-rna-counting in jaechang-hits/SciAgent-Skills) into .claude/skills/featurecounts-rna-counting in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jaechang-hits/SciAgent-Skills --skill featurecounts-rna-counting -a codex`. Or copy the skill folder (skills/genomics-bioinformatics/rnaseq/featurecounts-rna-counting in jaechang-hits/SciAgent-Skills) into .agents/skills/featurecounts-rna-counting 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 jaechang-hits/SciAgent-Skills --skill featurecounts-rna-counting -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/featurecounts-rna-counting, .gemini/skills/featurecounts-rna-counting, .github/skills/featurecounts-rna-counting and .opencode/skills/featurecounts-rna-counting in your project.
Going by SKILL.md and its folder, Featurecounts Rna Counting needs the command-line tools its instructions call (conda, apt-get and wget). Our summary lists: Python 3.
SKILL.md names 5 domains. In commands or code: ftp.ebi.ac.uk; the agent is likely to contact it when it follows the instructions. As links in the text: subread.sourceforge.net, doi.org, github.com and bioconductor.org. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Featurecounts Rna Counting is published under the GPL-3.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k 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 Featurecounts Rna Counting: PyDESeq2 Differential Expression (davila7/claude-code-templates, 33k stars), Ukb Ppp Region Fetch (ClawBio/ClawBio, 1.2k stars), Tiledbvcf (K-Dense-AI/scientific-agent-skills, 48k stars) and Volcano Plot Script (aipoch/medical-research-skills, 1.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jaechang-hits (a GitHub user) maintains it in jaechang-hits/SciAgent-Skills, which has 374 GitHub stars. The repository holds 169 skills in this directory. The repository was last updated on September 29, 2026.
Source: jaechang-hits/SciAgent-Skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.