Calculate ranges x cells overlap matrix

## Arguments

- fragments
Input fragments object. Must have cell names and chromosome names defined

- ranges
Peaks/ranges to overlap, given as GRanges, data.frame, or list. See

`help("genomic-ranges-like")`

for details on format and coordinate systems. Required attributes:`chr`

,`start`

,`end`

: genomic position

- mode
Mode for counting peak overlaps. (See "value" section for more details)

- zero_based_coords
Whether to convert the ranges from a 1-based end-inclusive coordinate system to a 0-based end-exclusive coordinate system. Defaults to true for GRanges and false for other formats (see this archived UCSC blogpost)

- explicit_peak_names
Boolean for whether to add rownames to the output matrix in format e.g chr1:500-1000, where start and end coords are given in a 0-based coordinate system. Note that either way, peak names will be written when the matrix is saved.

## Value

Iterable matrix object with dimension ranges x cells. When saved, the column names of the output matrix will be in the format chr1:500-1000, where start and end coords are given in a 0-based coordinate system.

`mode`

options

`"insertions"`

: Start and end coordinates are separately overlapped with each peak`"fragments"`

: Like`"insertions"`

, but each fragment can contribute at most 1 count to each peak, even if both the start and end coordinates overlap`"overlaps"`

: Like`"fragments"`

, but an overlap is also counted if the fragment fully spans the peak even if neither the start or end falls within the peak

## Note

When calculating the matrix directly from a fragments tsv, it's necessary to first call `select_chromosomes()`

in order to
provide the ordering of chromosomes to expect while reading the tsv.