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: 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), optional narrowPeak format (--narrowPeak) with additional columns for peak scores, p-values, q-values, etc.
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.
- Consideration of enrichment magnitude 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
rocco -i <bam files, Consenrich-generated bigWig file> -g <hg38, hg19, mm10, mm39, dm6, ...> -o <output_file.bed>for example:
rocco -i sample1.bam sample2.bam sample3.bam -g hg38 -o consensus_peaks.bed --narrowPeakSee rocco --help for more options and details.
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
python -m pip install rocco --upgradeIf lacking administrative control, you may need to append --user to the above.
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 .