Skip to content

nolan-h-hamilton/ROCCO

Repository files navigation

ROCCO: [R]obust [O]pen [C]hromatin Detection via [C]onvex [O]ptimization

Tests PyPI - Version

What

ROCCO is an efficient algorithm for detection of "consensus peaks" in large datasets with multiple HTS data samples, where an enrichment in read counts/densities is observed in a nontrivial subset of samples.

Input/Output

  • Input: Samples' BAM alignments (-i) or a bigWig file, and a reference genome assembly (-g) for chromosome sizes and annotation of blacklisted regions (if available)
  • Output: BED file of consensus peak regions (Default format is BED3: chrom,start,end). Use --peak_mode both to obtain both narrow and broad peak calls.

How

ROCCO models consensus peak calling as a constrained optimization problem with constraints/penalties for the total proportion of the genome selected as enriched and a fragmentation penalty (TV) to promote spatial consistency in active regions and sparsity elsewhere.

Why

  1. Consideration of enrichment magnitude and spatial characteristics of open chromatin signals
  2. Scaling to large sample sizes (100+)
  3. Unsupervised Does not require training data or a heuristically determined set of initial candidate peak regions
  4. Less rigid thresholds with respect to the minimum number/width of supporting samples/replicates.
  5. Mathematically tractable model permitting worst-case analysis of runtime and performance

Usage

rocco -i <bam files, or a single aggregate bigWig file> -g <hg38, hg19, mm10, mm39, dm6, ...> -o <output_file.bed> [--peak_mode both]

for example:

rocco -i sample1.bam sample2.bam sample3.bam -g hg38 -o consensus_peaks.bed --peak_mode both

See rocco --help for more options and details.

Paper/Citation

If using ROCCO in your research, please cite the original paper in Bioinformatics (DOI: btad725)

 Nolan H Hamilton, Terrence S Furey, ROCCO: a robust method for detection of open chromatin via convex optimization,
 Bioinformatics, Volume 39, Issue 12, December 2023

Installation

PyPI (pip)

python -m pip install rocco --upgrade

If lacking administrative control, you may need to append --user to the above.

Build from Source

If preferred, ROCCO can easily be built from source:

  • Clone or download this repository

    git clone https://github.com/nolan-h-hamilton/ROCCO.
    cd ROCCO
    python setup.py sdist bdist_wheel
    python -m pip install -e .

About

Robust Open Chromatin Detection via Convex Optimization: Multisample Consensus Peak Calling

Topics

Resources

License

Stars

9 stars

Watchers

3 watching

Forks

Contributors