Agent skill · Data & Analytics

bio-chipseq-differential-binding

Identifies differentially bound ChIP-seq regions between conditions using DiffBind, csaw (sliding windows), DESeq2/edgeR/PyDESeq2 on count matrices, NormR (control-aware), or MAnorm2. Distinguishes three distinct normalization problems (composition bias, trended bias, global shifts) and matches each to its appropriate fix including spike-in scaling. Use when comparing ChIP-seq binding between experimental conditions, choosing normalization for global vs local changes, integrating spike-in data, or reconciling DiffBind/DESeq2 disagreement.

BioTender-maxgithub.com/BioTender-maxGitHub ↗
claude-codeships scriptsNOASSERTION
Install
npx skills add BioTender-max/awesome-bio-agent-skills --skill differential-binding --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 6
SKILL.md size: 20 KB
Bundled scripts: yes
Path: skills/bioskills/differential-binding/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 135
Language: Python

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

From the SKILL.md

## Version Compatibility Reference examples tested with: DiffBind 3.20+, DESeq2 1.42+, edgeR 4.0+, csaw 1.36+, PyDESeq2 0.4+, NormR 1.28+, MAnorm2 1.2+, ChIPseqSpikeInFree 1.6+. DiffBind 3.0+ changed defaults: `summits=200` (was FALSE), `dba.normalize()` now required, blacklist filtering on by default, full library size normalization replaces reads-in-peaks. Always run `packageVersion('DiffBind')` and inspect `dba.normalize(obj, bRetrieve=TRUE)` to confirm what was applied. # Differential ChIP-seq Binding **"Compare protein-DNA binding between experimental conditions"** -> Identify regions where IP signal changes significantly, accounting for sequencing depth, composition bias, trended biases, and global shifts that confound naive normalization. - R (BAM + peaks): `DiffBind::dba()` -> `dba.count()` -> `dba.normalize()` -> `dba.analyze()` - R (count matrix): `DESeq2::DESeq()` or `edgeR::glmQLFTest()` on a peaks-by-samples matrix - R (windows-based, global-shift-robust): `csaw::windowCounts()` -> `csaw::normFactors()` -> `edgeR::glmQLFTest()` - R (control-aware): `normr::diffR(chip1.bam, chip2.bam, genome)` joint binomial mixture - Python (count matrix): `pydeseq2.DeseqDataSet()` Cho

What's inside
Steps it walks through
  1. Version Compatibility
  2. The Three Distinct Normalization Problems
  3. Algorithmic Taxonomy
  4. Decision Tree: Choosing Normalization
  5. Spike-In Scaling Factor Calculation
  6. DiffBind Workflow (BAMs + Peaks)
  7. csaw Workflow (Windows-Based)
  8. DESeq2 from Count Matrix
  9. Per-Tool Failure Modes
  10. DiffBind -- summits=200 default destroys broad marks
  11. DiffBind -- DBANORMRLE reads-in-peaks default reverses global shifts
  12. DESeq2 -- Pre-filtering removes condition-specific peaks
  13. csaw -- Trended bias loess over-normalizes biology
  14. Spike-in normalization -- Scaling factor applied to wrong layer
Ships with 5 files
  • examples/csaw_windows_diff.R
  • examples/deseq2_from_counts.R
  • examples/diffbind_analysis.R
  • examples/pydeseq2_from_counts.py
  • usage-guide.md
More from awesome-bio-agent-skills
All skills →
About this skill
What does the bio-chipseq-differential-binding skill do?

Identifies differentially bound ChIP-seq regions between conditions using DiffBind, csaw (sliding windows), DESeq2/edgeR/PyDESeq2 on count matrices, NormR (control-aware), or MAnorm2. Distinguishes three distinct normalization problems (composition bias, trended bias, global shifts) and matches each to its appropriate fix including spike-in scaling. Use when comparing ChIP-seq binding between experimental conditions, choosing normalization for global vs local changes, integrating spike-in data, or reconciling DiffBind/DESeq2 disagreement.

How do I install it?

Run `npx skills add BioTender-max/awesome-bio-agent-skills --skill differential-binding --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From BioTender-max/awesome-bio-agent-skills, a repository with 135 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going