# Bioconductor Bumphunter

> Tools for finding bumps in genomic data

- Skill: `biomate-ai/bioconductor-bumphunter` (Agent Skill)
- Install (CLI): `npx skillmds@latest add biomate-ai/bioconductor-bumphunter`
- Raw SKILL.md: https://api.skillmd.com/api/skills/biomate-ai/bioconductor-bumphunter/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: biomate-ai (https://skillmd.com/u/biomate-ai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/biomate-ai/bioconductor-bumphunter

---


# bumphunter

## Dependencies & Environment

> Package-intrinsic requirements from the Bioconductor landing page — reproduce in any R environment.

- **Version:** 1.54.0 · **Bioconductor:** 3.23 · **R:** ≥ 4.6
- **Depends:** S4Vectors, IRanges, Seqinfo, GenomicRanges, foreach, iterators, locfit
- **Imports:** matrixStats, limma, doRNG, BiocGenerics, GenomicFeatures, AnnotationDbi
- **Install:** `BiocManager::install("bumphunter")`

## When to Use
- Finding continuous, spatially clustered genomic regions ("bumps") that differ significantly between conditions using `bumphunter()`.
- Grouping genomic locations into distinct clusters based on maximum distance using `clusterMaker()`.
- Extracting positive, near-zero, and negative segments from a vector of test statistics using `getSegments()`.
- Packaging segmented regions into a table of bump characteristics using `regionFinder()`.

## When NOT to Use
- For basic linear modeling of independent, unclustered genomic features, use `limma` because `bumphunter` is specifically designed to share information between nearby clustered locations.
- For end-to-end analysis of Illumina 450k arrays without manual matrix setup, use `minfi` because it provides a tailored wrapper around the bumphunter engine.
- For whole-genome bisulfite sequencing (WGBS) data requiring specialized smoothing, use `bsseq` because it adapts the bump hunting methodology specifically for bisulfite data.

## Data Requirements
- **Signal Matrix**: A numeric matrix (`y`) of genomic signals where rows represent genomic locations and columns represent biological replicates.
- **Design Matrix**: A design matrix (`X`) representing the experimental covariates, created with standard R modeling functions.
- **Genomic Coordinates**: Vectors for chromosome (`chr`) and genomic positions (`pos`) corresponding to the rows of the signal matrix.

## Key Parameters
- **maxGap** (300): Maximum distance (in base pairs) between genomic positions to be grouped into the same cluster in `clusterMaker()`.
- **cutoff** (0.05 or 0.5): Numeric threshold determining the boundary for "positive" or "negative" segments in `getSegments()` and `bumphunter()`.
- **B** (250): Number of permutations used to assess uncertainty and create a null distribution in `bumphunter()`.
- **verbose** (TRUE): Logical to print progress information during parallel bumphunting.
- **cores** (2): Number of parallel backend cores registered via `registerDoParallel()`.

## Best Practices
- Group genomic locations into distinct units using `clusterMaker()` before running segment-finding functions.
- Use the `doParallel` package and `registerDoParallel()` to distribute permutation computations across multiple cores.
- Ensure the design matrix (`X`) contains an intercept term and the covariate of interest; avoid using permutation testing if adjusting for multiple confounders.
- Run `foreachCleanup()` after parallel execution to properly close connections.

## Common Pitfalls
- Slow execution during permutation testing; fix this by setting up a parallel backend with `registerDoParallel()` before calling `bumphunter()`.
- Permutation test warnings when adjusting for confounders; fix this by noting that permutation testing is not recommended when the design matrix has columns other than the intercept and primary covariate.
- Locations on different chromosomes being clustered together; fix this by ensuring the `chr` vector is correctly passed to `clusterMaker()`, which strictly separates chromosomes.

## Alternatives
- `limma`: Provides `lmFit` for linear modeling of biological replicates without the spatial smoothing and clustering steps.
- `minfi`: Offers a specialized implementation of the bumphunter methodology tailored specifically for Illumina 450k methylation arrays.
- `bsseq`: Adapts the bump hunting conceptual approach specifically for whole-genome bisulfite sequencing data.
- `charm`: Provides modifications of the bump hunting methodology for CHARM-like methylation microarrays.

## Citations
- Jaffe, A. E., et al. (2012). Bump hunting to identify differentially methylated regions in epigenetic epidemiology studies. *International Journal of Epidemiology*, 41(1), 200-209.
- Efron, B., & Tibshirani, R. J. (1993). An Introduction to the Bootstrap.

## References
- Homepage: https://bioconductor.org/packages/bumphunter
- Vignette: https://bioconductor.org/packages/release/bioc/vignettes/bumphunter/inst/doc/bumphunter.pdf

<!-- biomate-cta -->
---

## Run this on BioMate

This skill is the **knowledge layer** — when, why, and how to use `bumphunter`. To **run this analysis on your own data** with managed compute, automated QC, and reproducible outputs, use **[BioMate](https://www.biomate.ai?ref=kb&pkg=bumphunter)** — free to start.

▶ **[Open `bumphunter` on BioMate →](https://www.biomate.ai?ref=kb&pkg=bumphunter)**

