The following vignette describes the nullranges implementation of the block bootstrap with respect to a genomic segmentation. See the main nullranges vignette for an overview of the idea of bootstrapping, or below diagram, and there is additionally a vignette on block boostrapping without respect to segmentation-Unsegmented block bootstrap.

As proposed by Bickel et al. (2010), nullranges contains an implementation of a block bootstrap, such that features are sampled from the genome in blocks. The original block bootstrapping algorithm is implemented in a python software called Genome Structure Correlation, GSC.

In a segmented block bootstrap, the blocks are sampled and placed within regions of a genome segmentation. That is, for a genome segmented into states 1,2,…,S, blocks from state s will be used to tile the ranges of state s in each bootstrap sample. The process can be visualized in (A), a block with length \(L_b\) is randomly selected from state “red” and move to a tile block across chromosome. Additionally, the workflow of bootRanges is diagrammed in (B) and listed as:

  1. Overlap GRanges of feature \(x\) and GRanges of feature \(y\) to derive interested observed statistics
  2. bootRanges() with optional segmentation and exclude creates a bootRanges object \(y'\)
  3. Overlap GRanges of feature \(x\) and \(y'\) to derive interested bootstrap statistics
  4. \(z\) test is performed for testing the null hypothesis that there is no true biological enrichment