Skip to contents

Use this function to order regioins prior to calling peak_matrix() or tile_matrix().

Usage

order_ranges(ranges, chr_levels, sort_by_end = TRUE)

Arguments

ranges

Genomic regions 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

chr_levels

Ordering of chromosome names

sort_by_end

If TRUE (defualt), sort by (chr, end, start). Else sort by (chr, start, end)

Value

Numeric vector analagous to the order function. Provides an index selection that will reorder the input ranges to be sorted by chr, end, start

Examples

## Prep data
ranges <- tibble::tibble(
  chr = "chr1",
  start = seq(10, 260, 50),
  end = start + seq(310, 0, -60),
  cell_id = paste0("cell1")
) %>% as("GRanges")
ranges
#> GRanges object with 6 ranges and 1 metadata column:
#>       seqnames    ranges strand |     cell_id
#>          <Rle> <IRanges>  <Rle> | <character>
#>   [1]     chr1    10-320      * |       cell1
#>   [2]     chr1    60-310      * |       cell1
#>   [3]     chr1   110-300      * |       cell1
#>   [4]     chr1   160-290      * |       cell1
#>   [5]     chr1   210-280      * |       cell1
#>   [6]     chr1   260-270      * |       cell1
#>   -------
#>   seqinfo: 1 sequence from an unspecified genome; no seqlengths


## Get end-sorted ordering
order_ranges(ranges, levels(GenomicRanges::seqnames(ranges)))
#> [1] 6 5 4 3 2 1