Agent skill · Testing & QA

bio-methylation-differential-cpg

Per-CpG differential methylation testing from bisulfite sequencing count data or beta-value matrices. Covers beta and M-value computation, coverage filtering, statistical tests (Welch t-test, Mann-Whitney, limma, DSS beta-binomial), multiple testing correction, and effect size calculation. Use when comparing methylation at individual CpG sites between experimental groups from WGBS, RRBS, or targeted bisulfite sequencing.

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

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

Facts
Files in the skill folder: 4
SKILL.md size: 17 KB
Bundled scripts: yes
Path: skills/bioskills/differential-cpg-testing/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: scipy 1.12+, statsmodels 0.14+, pandas 2.2+, numpy 1.26+, limma 3.58+, DSS 2.50+ Before using code patterns, verify installed versions match. If versions differ: - Python: `pip show <package>` then `help(module.function)` to check signatures - R: `packageVersion('<pkg>')` then `?function_name` to verify parameters If code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying. # Per-CpG Differential Methylation Testing **"Test individual CpG sites for differential methylation between groups"** -> Compute per-CpG methylation metrics from count data, apply coverage filters, run statistical tests for group differences, correct for multiple testing, and report effect sizes. - Python: `scipy.stats.ttest_ind()` + `statsmodels.stats.multitest.multipletests()` - R: `limma::lmFit()` + `eBayes()` on M-values, `DSS::DMLtest()` on counts ## Beta Values and M-Values **Goal:** Convert raw bisulfite sequencing count data into analyzable methylation metrics. **Approach:** Compute beta values (methylation proportion) for biological interpretation an

What's inside
Steps it walks through
  1. Version Compatibility
  2. Beta Values and M-Values
  3. Coverage Filtering
  4. Coverage Thresholds by Assay
  5. Method Selection
  6. Fisher's Exact Test (Python, Unreplicated Only)
  7. Welch's t-Test on Beta Values (Python)
  8. Mann-Whitney U Test (Python)
  9. limma on M-Values (R)
  10. DSS Beta-Binomial Model (R)
  11. Effect Size Calculation
  12. Effect Size Thresholds
  13. Full Python Pipeline
  14. Common Pitfalls
Ships with 3 files
  • examples/differential_methylation.py
  • examples/differential_methylation_limma.R
  • usage-guide.md
More from awesome-bio-agent-skills
All skills →
About this skill
What does the bio-methylation-differential-cpg skill do?

Per-CpG differential methylation testing from bisulfite sequencing count data or beta-value matrices. Covers beta and M-value computation, coverage filtering, statistical tests (Welch t-test, Mann-Whitney, limma, DSS beta-binomial), multiple testing correction, and effect size calculation. Use when comparing methylation at individual CpG sites between experimental groups from WGBS, RRBS, or targeted bisulfite sequencing.

How do I install it?

Run `npx skills add BioTender-max/awesome-bio-agent-skills --skill differential-cpg-testing --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