Use when you have loaded raw ATAC-seq fragment counts into a SummarizedExperiment object and are preparing to compute motif deviations.
Scanned 9/12/2026
Install to Claude Code
npx -y skills add HolobiomicsLab/asb-skill-collections --skill chromatin-accessibility-bias-correction --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Chromatin Accessibility Bias Correction?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/holobiomicslab-chromatin-accessibility-bias-correction)More formats (shields.io, HTML) on the badges page.
---
name: chromatin-accessibility-bias-correction
description: Use when you have loaded raw ATAC-seq fragment counts into a SummarizedExperiment object and are preparing to compute motif deviations.
license: CC-BY-4.0
metadata:
edam_operation: http://edamontology.org/operation_3432
edam_topics:
- http://edamontology.org/topic_3169
- http://edamontology.org/topic_0749
tools:
- chromVAR
- R
- motifmatchr
- SummarizedExperiment
- BiocParallel
- BSgenome.Hsapiens.UCSC.hg19
- BSgenome
derived_from:
- doi: 10.1038/nmeth.4401
title: chromvar
evidence_spans:
- chromVAR is an R package for the analysis of sparse chromatin accessibility
- computeVariability(dev)
- An R package for the analysis of sparse chromatin accessibility
- library(chromVAR)
- library(motifmatchr)
- library(SummarizedExperiment)
claims: []
provenance:
collection: https://w3id.org/holobiomicslab/asb-skill/collection/epigenomics/v1
assembled_by: scripts/collect_metabolomics_collection.py
sources:
- build: coll_chromvar
doi: 10.1038/nmeth.4401
title: chromvar
dedup_kept_from: coll_chromvar
schema_version: 0.2.0
---
# chromatin-accessibility-bias-correction
## Summary
Correct GC content bias in single-cell or bulk ATAC-seq chromatin accessibility counts before computing deviation scores. This preprocessing step ensures that downstream motif deviation analysis is not confounded by the strong relationship between GC content and chromatin accessibility.
## When to use
Apply this skill when you have loaded raw ATAC-seq fragment counts into a SummarizedExperiment object and are preparing to compute motif deviations. GC bias correction must occur early in the workflow, before sample/peak filtering and before computing expectations and deviations, because the bias term becomes part of the statistical model for deviation normalization.
## When NOT to use
- Input counts have already been corrected for GC bias by another method or tool.
- The organism or reference genome is not available as a BSgenome package; addGCBias() requires the genome parameter.
- Your analysis goal is clustering or dimensionality reduction without downstream motif deviation analysis; GC bias correction is specific to the deviation workflow and may not benefit purely unsupervised tasks.
## Inputs
- SummarizedExperiment object containing ATAC-seq fragment counts (assay slot with count matrix)
- BSgenome object (e.g., BSgenome.Hsapiens.UCSC.hg19) specifying the reference genome
## Outputs
- SummarizedExperiment object with updated rowData containing a 'bias' column with GC content bias term for each peak
## How to apply
Load the reference genome (e.g., BSgenome.Hsapiens.UCSC.hg19) as a BSgenome object. Call addGCBias() on your counts SummarizedExperiment, passing the genome object as the 'genome' parameter. This function computes the GC content for each peak region and adds a 'bias' column to the rowData slot. The bias values are then used downstream by computeExpectations() and computeDeviations() to generate GC-matched background peak sets and to normalize deviation scores. The rationale is that chromatin accessibility varies systematically with GC content due to sequencing and technical factors; explicitly modeling this bias allows computeDeviations() to compute residuals that reflect true motif-associated variability rather than GC artifacts.
## Related tools
- **chromVAR** (R package providing addGCBias() function for computing and storing GC bias term in SummarizedExperiment rowData) — https://github.com/GreenleafLab/chromVAR
- **BSgenome** (Bioconductor package providing reference genome sequences required to compute GC content at peak regions)
- **SummarizedExperiment** (Bioconductor package defining the S4 class structure in which bias-corrected counts and metadata are stored)
## Examples
```
example_counts <- addGCBias(example_counts, genome = BSgenome.Hsapiens.UCSC.hg19)
```
## Evaluation signals
- Verify that rowData(counts_object) contains a new 'bias' column with numeric values (GC content bias term) for each peak.
- Check that the bias column has non-zero, non-null values across the peak set; all peaks should have a computed bias.
- Confirm downstream computeExpectations() and computeDeviations() functions run without error, indicating the bias term is correctly formatted and compatible with the statistical model.
- Inspect the deviation scores produced by computeDeviations(); they should show biological signal (differential motif activity across cell types) rather than correlation with peak GC content.
- Compare motif deviation rankings before and after GC bias correction; motifs with high GC-content bias should show reduced spurious deviation signals post-correction.
## Limitations
- addGCBias() requires that the organism and genome build are available as a BSgenome package; custom or rare genomes may not have pre-built packages.
- GC bias modeling assumes a linear or monotonic relationship between GC content and accessibility; deviations from this assumption in highly unusual datasets may require custom bias models.
- The function adds a rowData column but does not modify the actual count matrix; bias correction is applied post-hoc during deviation computation, not by transforming counts directly.
## Evidence
- [intro] GC bias is a confounding factor that must be modeled before deviation computation: "The function `addGCBias` returns an updated SummarizedExperiment with a new rowData column named "bias""
- [readme] addGCBias() integrates the genome reference to extract GC content per peak: "example_counts <- addGCBias(example_counts, genome = BSgenome.Hsapiens.UCSC.hg19)"
- [intro] Bias correction must occur before filtering steps and deviation computation: "Add GC content bias to rowData using addGCBias() with the reference genome. 4. Filter samples using filterSamples()"
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!