Metadata-Version: 2.1
Name: rocco
Version: 0.12.1
Summary: Robust ATAC-seq Peak Calling for Many Samples via Convex Optimization
Home-page: https://github.com/nolan-h-hamilton/rocco
Author: Nolan Holt Hamilton
Author-email: nolan.hamilton@unc.edu
Keywords: peak-caller,atac-seq,consensus-peaks
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: cvxpy
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: pandas
Requires-Dist: pybedtools
Requires-Dist: matplotlib
Requires-Dist: pyBigWig
Requires-Dist: deeptools
Provides-Extra: ortools
Requires-Dist: ortools; extra == "ortools"
Provides-Extra: pytest
Requires-Dist: pytest; extra == "pytest"

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

<p align="center">
<img width="400" alt="logo" src="docs/logo.png">

ROCCO is an optimal consensus peak calling algorithm for chromatin accessibility data that is scalable to large sample sizes.

**Features**

1. **Consideration of enrichment and spatial characteristics** of open chromatin signals to capture the full extent of peaks
2. **Mathematically tractable model** that permits performance and efficiency guarantees
3. **Efficient for large numbers of samples** with an asymptotic time complexity independent of sample size
4. **No arbitrary thresholds** on the minimum number of supporting samples/replicates
5. **No required training data** or a heuristically determined set of initial candidate peak regions


# Demo

A brief walkthrough with visualized peak results using publicly available ATAC-seq data:

https://github.com/nolan-h-hamilton/ROCCO/tree/main/docs/demo/demo.ipynb

# Paper/Citation

If using ROCCO in your research, please cite the [original paper](https://doi.org/10.1093/bioinformatics/btad725) in *Bioinformatics*


   ```
    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
   ```

**DOI**: [10.1093/bioinformatics/btad725](`10.1093/bioinformatics/btad725`)

# Documentation

ROCCO's documentation is available at https://nolan-h-hamilton.github.io/ROCCO/

# Installation

   ```
   pip install rocco
   ```

ROCCO utilizes the popular bioinformatics software [Samtools](http://www.htslib.org) and [bedtools](https://bedtools.readthedocs.io/en/latest/). If not available already, these system dependencies can be installed with standard MacOS or Linux/Unix package managers, e.g., `brew install samtools` (Homebrew), `sudo apt-get install samtools`) (APT).


# Input

To determine consensus peaks (BED format), ROCCO accepts **BAM** alignments and a genome sizes file as input

   ```
   rocco -i sample1.bam sample2.bam sample3.bam [...] -g hg38.sizes --params hg38
   ```

or with a wildcard:

   ```
   rocco -i *.bam -g hg38.sizes --params hg38
   ```

See `rocco --help` for more details.



Additional dependencies for optional features:

- 'ortools': includes the first-order solver, PDLP.
- 'pytest': allows local execution of the Tests workflow.
