ROCCO
Robust Open Chromatin Detection via Convex Optimization: Multisample Consensus Peak Calling
Install / Use
/learn @nolan-h-hamilton/ROCCOREADME
ROCCO: [R]obust [O]pen [C]hromatin Detection via [C]onvex [O]ptimization
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
- Output: BED file of consensus peak regions (Default format is BED3:
chrom,start,end)
How
ROCCO models consensus peak calling as a constrained optimization problem with an upper-bound on 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
- Consideration of enrichment and spatial characteristics of open chromatin signals
- Scaling to large sample sizes (100+)
- Unsupervised Does not require training data or a heuristically determined set of initial candidate peak regions
- No rigid thresholds + less manual tuning with respect to the minimum number/width of supporting samples/replicates.
- Mathematically tractable model permitting worst-case analysis of runtime and performance (polytime-solvable optimization)
Usage
rocco -i <bam_files> -g <hg38, hg19, mm10, mm39, dm6, ...> -o <output_file.bed> --narrowPeak
for example:
rocco -i sample1.bam sample2.bam sample3.bam -g hg38 -o consensus_peaks.bed --narrowPeak
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.git cd ROCCO python setup.py sdist bdist_wheel python -m pip install -e .
