Basics

Install GenomicState

R is an open-source statistical environment which can be easily modified to enhance its functionality via packages. GenomicState is a R package available via Bioconductor. R can be installed on any operating system from CRAN after which you can install GenomicState by using the following commands in your R session:

if (!requireNamespace("BiocManager", quietly = TRUE)) {
    install.packages("BiocManager")
}

BiocManager::install("GenomicState")

## Check that you have a valid Bioconductor installation
BiocManager::valid()

Required knowledge

GenomicState is based on many other packages and in particular in those that have implemented the infrastructure needed for dealing with annotation data. That is, packages like rtracklayer that allow you to import the data. A GenomicState user is not expected to deal with those packages directly but will need to be familiar with derfinder and derfinderPlot to understand the results GenomicState generates. Furthermore, it’ll be useful for the user to know the syntax of AnnotationHub (Morgan and Shepherd, 2023) in order to query and load the data provided by this package.

If you are asking yourself the question “Where do I start using Bioconductor?” you might be interested in this blog post.

Asking for help

As package developers, we try to explain clearly how to use our packages and in which order to use the functions. But R and Bioconductor have a steep learning curve so it is critical to learn where to ask for help. The blog post quoted above mentions some but we would like to highlight the Bioconductor support site as the main resource for getting help regarding Bioconductor. Other alternatives are available such as creating GitHub issues and tweeting. However, please note that if you want to receive help you should adhere to the posting guidelines. It is particularly critical that you provide a small reproducible example and your session information so package developers can track down the source of the error.

Citing GenomicState

We hope that GenomicState will be useful for your research. Please use the following information to cite the package and the overall approach. Thank you!

## Citation info
citation("GenomicState")
#> To cite package 'GenomicState' in publications use:
#> 
#>   Collado-Torres L (2023). _Build and access GenomicState objects for
#>   use with derfinder tools from sources like Gencode_.
#>   doi:10.18129/B9.bioc.GenomicState
#>   <https://doi.org/10.18129/B9.bioc.GenomicState>,
#>   https://github.com/LieberInstitute/GenomicState - R package version
#>   0.99.15, <http://www.bioconductor.org/packages/GenomicState>.
#> 
#> A BibTeX entry for LaTeX users is
#> 
#>   @Manual{,
#>     title = {Build and access GenomicState objects for use with derfinder tools from sources like Gencode},
#>     author = {Leonardo Collado-Torres},
#>     year = {2023},
#>     url = {http://www.bioconductor.org/packages/GenomicState},
#>     note = {https://github.com/LieberInstitute/GenomicState - R package version 0.99.15},
#>     doi = {10.18129/B9.bioc.GenomicState},
#>   }

Overview

The GenomicState package was developed for speeding up analyses that require these objects and in particular those that rely on Gencode annotation data. The package GenomicState provides functions for building GenomicState objects from diverse annotation sources such as Gencode. It also provides a way to load pre-computed GenomicState objects if you are working at JHPCE. These GenomicState objects are normally created using derfinder::makeGenomicState() and can be used for annotating regions with derfinder::annotateRegions() which are in turn used by derfinderPlot::plotRegionCoverage().

To get started, load the GenomicState package.

AnnotationHub

Using the GencodeStateHub() function you can query and download the data from GenomicState using AnnotationHub (Morgan and Shepherd, 2023).

## Query AnnotationHub for the GenomicState object for Gencode v31 on
## hg19 coordinates
hub_query_gs_gencode_v31_hg19 <- GenomicStateHub(
    version = "31",
    genome = "hg19",
    filetype = "GenomicState"
)
hub_query_gs_gencode_v31_hg19
#> AnnotationHub with 1 record
#> # snapshotDate(): 2023-04-06
#> # names(): AH75184
#> # $dataprovider: GENCODE
#> # $species: Homo sapiens
#> # $rdataclass: list
#> # $rdatadateadded: 2019-10-22
#> # $title: GenomicState for Gencode v31 on hg19 coordinates
#> # $description: Gencode v31 GenomicState from derfinder::makeGenomicState() ...
#> # $taxonomyid: 9606
#> # $genome: GRCh37
#> # $sourcetype: GTF
#> # $sourceurl: ftp://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/releas...
#> # $sourcesize: NA
#> # $tags: c("Gencode", "GenomicState", "hg19", "v31") 
#> # retrieve record with 'object[["AH75184"]]'


## Check the metadata
mcols(hub_query_gs_gencode_v31_hg19)
#> DataFrame with 1 row and 15 columns
#>                          title dataprovider      species taxonomyid      genome
#>                    <character>  <character>  <character>  <integer> <character>
#> AH75184 GenomicState for Gen..      GENCODE Homo sapiens       9606      GRCh37
#>                    description coordinate_1_based             maintainer
#>                    <character>          <integer>            <character>
#> AH75184 Gencode v31 GenomicS..                  1 Leonardo Collado-Tor..
#>         rdatadateadded preparerclass                          tags  rdataclass
#>            <character>   <character>                        <AsIs> <character>
#> AH75184     2019-10-22  GenomicState Gencode,GenomicState,hg19,...        list
#>                      rdatapath              sourceurl  sourcetype
#>                    <character>            <character> <character>
#> AH75184 GenomicState/gencode.. ftp://ftp.ebi.ac.uk/..         GTF

## Access the file through AnnotationHub
if (length(hub_query_gs_gencode_v31_hg19) == 1) {
    hub_gs_gencode_v31_hg19 <- hub_query_gs_gencode_v31_hg19[[1]]

    hub_gs_gencode_v31_hg19
}
#> loading from cache
#> Loading required package: GenomicRanges
#> Loading required package: stats4
#> Loading required package: S4Vectors
#> 
#> Attaching package: 'S4Vectors'
#> The following object is masked from 'package:utils':
#> 
#>     findMatches
#> The following objects are masked from 'package:base':
#> 
#>     expand.grid, I, unname
#> Loading required package: IRanges
#> Loading required package: GenomeInfoDb
#> $fullGenome
#> GRanges object with 659263 ranges and 5 metadata columns:
#>          seqnames            ranges strand |   theRegion         tx_id
#>             <Rle>         <IRanges>  <Rle> | <character> <IntegerList>
#>        1     chr1       11869-12227      + |        exon           1,2
#>        2     chr1       12228-12612      + |      intron           1,2
#>        3     chr1       12613-12721      + |        exon           1,2
#>        4     chr1       12722-12974      + |      intron           1,2
#>        5     chr1       12975-13052      + |        exon             2
#>      ...      ...               ...    ... .         ...           ...
#>   659259     chrY 59208555-59214013      * |  intergenic              
#>   659260     chrY 59276440-59311662      * |  intergenic              
#>   659261     chrY 59311997-59318040      * |  intergenic              
#>   659262     chrY 59318921-59330251      * |  intergenic              
#>   659263     chrY 59360549-59373566      * |  intergenic              
#>                                          tx_name          gene          symbol
#>                                  <CharacterList> <IntegerList> <CharacterList>
#>        1 ENST00000450305.2_1,ENST00000456328.2_1         26085         DDX11L1
#>        2 ENST00000450305.2_1,ENST00000456328.2_1         26085         DDX11L1
#>        3 ENST00000450305.2_1,ENST00000456328.2_1         26085         DDX11L1
#>        4 ENST00000450305.2_1,ENST00000456328.2_1         26085         DDX11L1
#>        5                     ENST00000450305.2_1         26085         DDX11L1
#>      ...                                     ...           ...             ...
#>   659259                                                                      
#>   659260                                                                      
#>   659261                                                                      
#>   659262                                                                      
#>   659263                                                                      
#>   -------
#>   seqinfo: 24 sequences from hg19 genome
#> 
#> $codingGenome
#> GRanges object with 878954 ranges and 5 metadata columns:
#>          seqnames            ranges strand |   theRegion         tx_id
#>             <Rle>         <IRanges>  <Rle> | <character> <IntegerList>
#>        1     chr1        9869-11868      + |    promoter           1,2
#>        2     chr1       11869-12227      + |        exon           1,2
#>        3     chr1       12228-12612      + |      intron           1,2
#>        4     chr1       12613-12721      + |        exon           1,2
#>        5     chr1       12722-12974      + |      intron           1,2
#>      ...      ...               ...    ... .         ...           ...
#>   878950     chrY 59208555-59212013      * |  intergenic              
#>   878951     chrY 59276440-59311662      * |  intergenic              
#>   878952     chrY 59313997-59318040      * |  intergenic              
#>   878953     chrY 59320921-59328251      * |  intergenic              
#>   878954     chrY 59362549-59373566      * |  intergenic              
#>                                          tx_name          gene          symbol
#>                                  <CharacterList> <IntegerList> <CharacterList>
#>        1 ENST00000450305.2_1,ENST00000456328.2_1         26085         DDX11L1
#>        2 ENST00000450305.2_1,ENST00000456328.2_1         26085         DDX11L1
#>        3 ENST00000450305.2_1,ENST00000456328.2_1         26085         DDX11L1
#>        4 ENST00000450305.2_1,ENST00000456328.2_1         26085         DDX11L1
#>        5 ENST00000450305.2_1,ENST00000456328.2_1         26085         DDX11L1
#>      ...                                     ...           ...             ...
#>   878950                                                                      
#>   878951                                                                      
#>   878952                                                                      
#>   878953                                                                      
#>   878954                                                                      
#>   -------
#>   seqinfo: 24 sequences from hg19 genome

Using the objects

To show how we can use these objects, first we build those for Gencode version 31 on hg19 coordinates.

## Load the example TxDb object
## or start from scratch with:
## txdb_v31_hg19_chr21 <- gencode_txdb(version = '31', genome = 'hg19',
##     chrs = 'chr21')
txdb_v31_hg19_chr21 <- AnnotationDbi::loadDb(
    system.file("extdata", "txdb_v31_hg19_chr21.sqlite",
        package = "GenomicState"
    )
)
#> Loading required package: GenomicFeatures
#> Loading required package: AnnotationDbi
#> Loading required package: Biobase
#> Welcome to Bioconductor
#> 
#>     Vignettes contain introductory material; view with
#>     'browseVignettes()'. To cite Bioconductor, see
#>     'citation("Biobase")', and for packages 'citation("pkgname")'.
#> 
#> Attaching package: 'Biobase'
#> The following object is masked from 'package:AnnotationHub':
#> 
#>     cache

## Build the GenomicState and annotated genes
genes_v31_hg19_chr21 <- gencode_annotated_genes(txdb_v31_hg19_chr21)
#> 2023-05-07 06:38:40.521147 annotating the transcripts
#> No annotationPackage supplied. Trying org.Hs.eg.db.
#> Loading required package: org.Hs.eg.db
#> 
#> Getting TSS and TSE.
#> Getting CSS and CSE.
#> Getting exons.
#> Annotating genes.
#> 'select()' returned 1:many mapping between keys and columns
gs_v31_hg19_chr21 <- gencode_genomic_state(txdb_v31_hg19_chr21)
#> 2023-05-07 06:39:02.822717 making the GenomicState object
#> extendedMapSeqlevels: sequence names mapped from NCBI to UCSC for species homo_sapiens
#> 'select()' returned 1:1 mapping between keys and columns
#> 2023-05-07 06:39:10.73445 finding gene symbols
#> 'select()' returned 1:many mapping between keys and columns
#> 2023-05-07 06:39:11.121002 adding gene symbols to the GenomicState

You can alternatively use the files hosted in AnnotationHub (Morgan and Shepherd, 2023) which will be faster in general.

## Create the AnnotationHub object once and re-use it to speed up things
ah <- AnnotationHub::AnnotationHub()

## Find the TxDb object for hg19 Gencode version 31
hub_query_txdb_gencode_v31_hg19 <- GenomicStateHub(
    version = "31",
    genome = "hg19",
    filetype = "TxDb", ah = ah
)
hub_query_txdb_gencode_v31_hg19
#> AnnotationHub with 1 record
#> # snapshotDate(): 2023-04-06
#> # names(): AH75182
#> # $dataprovider: GENCODE
#> # $species: Homo sapiens
#> # $rdataclass: TxDb
#> # $rdatadateadded: 2019-10-22
#> # $title: TxDb for Gencode v31 on hg19 coordinates
#> # $description: Gencode v31 TxDb object on hg19 coordinates. This is useful ...
#> # $taxonomyid: 9606
#> # $genome: GRCh37
#> # $sourcetype: GTF
#> # $sourceurl: ftp://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/releas...
#> # $sourcesize: NA
#> # $tags: c("Gencode", "GenomicState", "hg19", "v31") 
#> # retrieve record with 'object[["AH75182"]]'

## Now the Annotated Genes for hg19 Gencode v31
hub_query_genes_gencode_v31_hg19 <- GenomicStateHub(
    version = "31",
    genome = "hg19",
    filetype = "AnnotatedGenes", ah = ah
)
hub_query_genes_gencode_v31_hg19
#> AnnotationHub with 1 record
#> # snapshotDate(): 2023-04-06
#> # names(): AH75183
#> # $dataprovider: GENCODE
#> # $species: Homo sapiens
#> # $rdataclass: GRanges
#> # $rdatadateadded: 2019-10-22
#> # $title: Annotated genes for Gencode v31 on hg19 coordinates
#> # $description: Gencode v31 annotated genes from bumphunter::annotateTranscr...
#> # $taxonomyid: 9606
#> # $genome: GRCh37
#> # $sourcetype: GTF
#> # $sourceurl: ftp://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/releas...
#> # $sourcesize: NA
#> # $tags: c("Gencode", "GenomicState", "hg19", "v31") 
#> # retrieve record with 'object[["AH75183"]]'

## And finally the GenomicState for hg19 Gencode v31
hub_query_gs_gencode_v31_hg19 <- GenomicStateHub(
    version = "31",
    genome = "hg19",
    filetype = "GenomicState", ah = ah
)
hub_query_gs_gencode_v31_hg19
#> AnnotationHub with 1 record
#> # snapshotDate(): 2023-04-06
#> # names(): AH75184
#> # $dataprovider: GENCODE
#> # $species: Homo sapiens
#> # $rdataclass: list
#> # $rdatadateadded: 2019-10-22
#> # $title: GenomicState for Gencode v31 on hg19 coordinates
#> # $description: Gencode v31 GenomicState from derfinder::makeGenomicState() ...
#> # $taxonomyid: 9606
#> # $genome: GRCh37
#> # $sourcetype: GTF
#> # $sourceurl: ftp://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/releas...
#> # $sourcesize: NA
#> # $tags: c("Gencode", "GenomicState", "hg19", "v31") 
#> # retrieve record with 'object[["AH75184"]]'

## If you want to access the files use the double bracket AnnotationHub syntax
## to retrieve the R objects from the web.
if (FALSE) {
    hub_txdb_gencode_v31_hg19 <- hub_query_txdb_gencode_v31_hg19[[1]]
    hub_genes_gencode_v31_hg19 <- hub_query_genes_gencode_v31_hg19[[1]]
    hub_gs_gencode_v31_hg19 <- hub_query_gs_gencode_v31_hg19[[1]]
}

Next we load a series of related packages that use the objects we created with GenomicState or downloaded from AnnotationHub (Morgan and Shepherd, 2023).

## Load external packages
library("derfinder")
library("derfinderPlot")
#> Registered S3 method overwritten by 'GGally':
#>   method from   
#>   +.gg   ggplot2
library("bumphunter")
#> Loading required package: foreach
#> Loading required package: iterators
#> Loading required package: parallel
#> Loading required package: locfit
#> locfit 1.5-9.7    2023-01-02
library("GenomicRanges")

Next we can prepare the needed for running derfinderPlot::plotRegionCoverage() where we use the TxDb object, the GenomicState and the annotated genes we prepared for Gencode v31 on hg19.

## Some example regions from derfinder (set the chromosome lengths)
regions <- genomeRegions$regions[1:2]
seqlengths(regions) <- seqlengths(txdb_v31_hg19_chr21)[
    names(seqlengths(regions))
]

## Annotate them
nearestAnnotation <- matchGenes(x = regions, subject = genes_v31_hg19_chr21)
annotatedRegions <- annotateRegions(
    regions = regions,
    genomicState = gs_v31_hg19_chr21$fullGenome, minoverlap = 1
)
#> 2023-05-07 06:39:25.058838 annotateRegions: counting
#> 2023-05-07 06:39:25.141558 annotateRegions: annotating

## Obtain fullCov object
fullCov <- list("chr21" = genomeDataRaw$coverage)
regionCov <- getRegionCoverage(fullCov = fullCov, regions = regions)
#> 2023-05-07 06:39:25.275779 getRegionCoverage: processing chr21
#> 2023-05-07 06:39:25.329103 getRegionCoverage: done processing chr21

And now we can make the example plot as shown below.

## now make the plot
plotRegionCoverage(
    regions = regions, regionCoverage = regionCov,
    groupInfo = genomeInfo$pop, nearestAnnotation = nearestAnnotation,
    annotatedRegions = annotatedRegions, whichRegions = 1:2,
    txdb = txdb_v31_hg19_chr21, verbose = FALSE
)

JHPCE

You can also access the data locally using the function local_metadata() which works at JHPCE or anywhere where you have re-created the files from this package. This returns a data.frame() which you can subset. It also inclused the R code for loading the data which you can do using eval(parse(text = local_metadata()$loadCode)) as shown below.

## Get the local metadata
meta <- local_metadata()

## Subset to the data of interest, lets say hg19 TxDb for v31
interest <- subset(meta, RDataClass == "TxDb" & Tags == "Gencode:v31:hg19")

## Next you can load the data
if (file.exists(interest$RDataPath)) {
    ## This only works at JHPCE
    eval(parse(text = interest$loadCode))

    ## Explore the loaded object (would be gencode_v31_hg19_txdb in this case)
    gencode_v31_hg19_txdb
}

Build objects

The objects provided by GenomicState through AnnotationHub (Morgan and Shepherd, 2023) were built using code like the one included below which is how the Gencode version 23 for hg19 files were built.

outdir <- "gencode"
dir.create(outdir, showWarnings = FALSE)

## Build and save the TxDb object
gencode_v23_hg19_txdb <- gencode_txdb("23", "hg19")
saveDb(gencode_v23_hg19_txdb,
    file = file.path(outdir, "gencode_v23_hg19_txdb.sqlite")
)

## Build and save the annotateTranscripts output
gencode_v23_hg19_annotated_genes <- gencode_annotated_genes(
    gencode_v23_hg19_txdb
)
save(gencode_v23_hg19_annotated_genes,
    file = file.path(outdir, "gencode_v23_hg19_annotated_genes.rda")
)

## Build and save the GenomicState
gencode_v23_hg19_GenomicState <- gencode_genomic_state(
    gencode_v23_hg19_txdb
)
save(gencode_v23_hg19_GenomicState,
    file = file.path(outdir, "gencode_v23_hg19_GenomicState.rda")
)

For more details check the source files:

## R commands for building the files:
system.file("scripts", "make-data_gencode_human.R",
    package = "GenomicState"
)
#> [1] "/__w/_temp/Library/GenomicState/scripts/make-data_gencode_human.R"
## The above file was created by this one:
system.file("scripts", "generate_make_data_gencode_human.R",
    package = "GenomicState"
)
#> [1] "/__w/_temp/Library/GenomicState/scripts/generate_make_data_gencode_human.R"

Reproducibility

The GenomicState package (Collado-Torres, 2023) was made possible thanks to:

  • R (R Core Team, 2023)
  • BiocStyle (Oleś, 2023)
  • GenomeInfoDb (Arora, Morgan, Carlson, and Pagès, 2017)
  • knitr (Xie, 2014)
  • RefManageR (McLean, 2017)
  • rmarkdown (Allaire, Xie, Dervieux, McPherson, Luraschi, Ushey, Atkins, Wickham, Cheng, Chang, and Iannone, 2023)
  • rtracklayer (Lawrence, Gentleman, and Carey, 2009)
  • sessioninfo (Wickham, Chang, Flight, Müller, and Hester, 2021)
  • testthat (Wickham, 2011)
  • GenomicFeatures (Lawrence, Huber, Pagès, Aboyoun, Carlson, Gentleman, Morgan, and Carey, 2013)
  • bumphunter (Jaffe, Murakami, Lee, Leek, Fallin, Feinberg, and Irizarry, 2012)
  • derfinder (Collado-Torres, Nellore, Frazee, Wilks, Love, Langmead, Irizarry, Leek, and Jaffe, 2017)
  • AnnotationDbi (Pagès, Carlson, Falcon, and Li, 2023)
  • IRanges (Lawrence, Huber, Pagès et al., 2013)
  • org.Hs.eg.db (Carlson, 2023)
  • glue (Hester and Bryan, 2022)
  • AnnotationHub (Morgan and Shepherd, 2023)
  • AnnotationHubData (Bioconductor Package Maintainer, 2023)
  • GenomicRanges (Lawrence, Huber, Pagès et al., 2013)

Code for creating the vignette

## Create the vignette
library("rmarkdown")
system.time(render("GenomicState.Rmd"))

## Extract the R code
library("knitr")
knit("GenomicState.Rmd", tangle = TRUE)

Date the vignette was generated.

#> [1] "2023-05-07 06:39:26 UTC"

Wallclock time spent generating the vignette.

#> Time difference of 1.135 mins

R session information.

#> ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.3.0 (2023-04-21)
#>  os       Ubuntu 22.04.2 LTS
#>  system   x86_64, linux-gnu
#>  ui       X11
#>  language en
#>  collate  en_US.UTF-8
#>  ctype    en_US.UTF-8
#>  tz       UTC
#>  date     2023-05-07
#>  pandoc   2.19.2 @ /usr/local/bin/ (via rmarkdown)
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
#>  package                * version   date (UTC) lib source
#>  AnnotationDbi          * 1.62.1    2023-05-02 [1] Bioconductor
#>  AnnotationFilter         1.24.0    2023-04-25 [1] Bioconductor
#>  AnnotationHub          * 3.8.0     2023-04-25 [1] Bioconductor
#>  backports                1.4.1     2021-12-13 [1] CRAN (R 4.3.0)
#>  base64enc                0.1-3     2015-07-28 [2] RSPM (R 4.3.0)
#>  bibtex                   0.5.1     2023-01-26 [1] RSPM (R 4.3.0)
#>  Biobase                * 2.60.0    2023-04-25 [1] Bioconductor
#>  BiocFileCache          * 2.8.0     2023-04-25 [1] Bioconductor
#>  BiocGenerics           * 0.46.0    2023-04-25 [1] Bioconductor
#>  BiocIO                   1.10.0    2023-04-25 [1] Bioconductor
#>  BiocManager              1.30.20   2023-02-24 [2] CRAN (R 4.3.0)
#>  BiocParallel             1.34.1    2023-05-05 [1] Bioconductor
#>  BiocStyle              * 2.28.0    2023-04-25 [1] Bioconductor
#>  BiocVersion              3.17.1    2022-11-04 [2] Bioconductor
#>  biomaRt                  2.56.0    2023-04-25 [1] Bioconductor
#>  Biostrings               2.68.0    2023-04-25 [1] Bioconductor
#>  biovizBase               1.48.0    2023-04-25 [1] Bioconductor
#>  bit                      4.0.5     2022-11-15 [1] CRAN (R 4.3.0)
#>  bit64                    4.0.5     2020-08-30 [1] CRAN (R 4.3.0)
#>  bitops                   1.0-7     2021-04-24 [1] CRAN (R 4.3.0)
#>  blob                     1.2.4     2023-03-17 [1] RSPM (R 4.3.0)
#>  bookdown                 0.33      2023-03-06 [1] RSPM (R 4.3.0)
#>  BSgenome                 1.68.0    2023-04-25 [1] Bioconductor
#>  bslib                    0.4.2     2022-12-16 [2] RSPM (R 4.3.0)
#>  bumphunter             * 1.42.0    2023-04-25 [1] Bioconductor
#>  cachem                   1.0.8     2023-05-01 [2] RSPM (R 4.3.0)
#>  checkmate                2.2.0     2023-04-27 [1] RSPM (R 4.3.0)
#>  cli                      3.6.1     2023-03-23 [2] RSPM (R 4.3.0)
#>  cluster                  2.1.4     2022-08-22 [3] CRAN (R 4.3.0)
#>  codetools                0.2-19    2023-02-01 [3] CRAN (R 4.3.0)
#>  colorspace               2.1-0     2023-01-23 [1] RSPM (R 4.3.0)
#>  crayon                   1.5.2     2022-09-29 [2] RSPM (R 4.3.0)
#>  curl                     5.0.0     2023-01-12 [2] RSPM (R 4.3.0)
#>  data.table               1.14.8    2023-02-17 [1] RSPM (R 4.3.0)
#>  DBI                      1.1.3     2022-06-18 [1] CRAN (R 4.3.0)
#>  dbplyr                 * 2.3.2     2023-03-21 [1] RSPM (R 4.3.0)
#>  DelayedArray             0.26.2    2023-05-05 [1] Bioconductor
#>  derfinder              * 1.34.0    2023-04-25 [1] Bioconductor
#>  derfinderHelper          1.34.0    2023-04-25 [1] Bioconductor
#>  derfinderPlot          * 1.34.0    2023-04-25 [1] Bioconductor
#>  desc                     1.4.2     2022-09-08 [2] RSPM (R 4.3.0)
#>  dichromat                2.0-0.1   2022-05-02 [1] CRAN (R 4.3.0)
#>  digest                   0.6.31    2022-12-11 [2] RSPM (R 4.3.0)
#>  doRNG                    1.8.6     2023-01-16 [1] RSPM (R 4.3.0)
#>  dplyr                    1.1.2     2023-04-20 [1] RSPM (R 4.3.0)
#>  ellipsis                 0.3.2     2021-04-29 [2] RSPM (R 4.3.0)
#>  ensembldb                2.24.0    2023-04-25 [1] Bioconductor
#>  evaluate                 0.20      2023-01-17 [2] RSPM (R 4.3.0)
#>  fansi                    1.0.4     2023-01-22 [2] RSPM (R 4.3.0)
#>  fastmap                  1.1.1     2023-02-24 [2] RSPM (R 4.3.0)
#>  filelock                 1.0.2     2018-10-05 [1] CRAN (R 4.3.0)
#>  foreach                * 1.5.2     2022-02-02 [1] CRAN (R 4.3.0)
#>  foreign                  0.8-84    2022-12-06 [3] CRAN (R 4.3.0)
#>  Formula                  1.2-5     2023-02-24 [1] RSPM (R 4.3.0)
#>  fs                       1.6.2     2023-04-25 [2] RSPM (R 4.3.0)
#>  generics                 0.1.3     2022-07-05 [1] CRAN (R 4.3.0)
#>  GenomeInfoDb           * 1.36.0    2023-04-25 [1] Bioconductor
#>  GenomeInfoDbData         1.2.10    2023-05-07 [1] Bioconductor
#>  GenomicAlignments        1.36.0    2023-04-25 [1] Bioconductor
#>  GenomicFeatures        * 1.52.0    2023-04-25 [1] Bioconductor
#>  GenomicFiles             1.36.0    2023-04-25 [1] Bioconductor
#>  GenomicRanges          * 1.52.0    2023-04-25 [1] Bioconductor
#>  GenomicState           * 0.99.15   2023-05-07 [1] Bioconductor
#>  GGally                   2.1.2     2021-06-21 [1] CRAN (R 4.3.0)
#>  ggbio                    1.48.0    2023-04-25 [1] Bioconductor
#>  ggplot2                  3.4.2     2023-04-03 [1] RSPM (R 4.3.0)
#>  glue                     1.6.2     2022-02-24 [2] RSPM (R 4.3.0)
#>  graph                    1.78.0    2023-04-25 [1] Bioconductor
#>  gridExtra                2.3       2017-09-09 [1] CRAN (R 4.3.0)
#>  gtable                   0.3.3     2023-03-21 [1] RSPM (R 4.3.0)
#>  highr                    0.10      2022-12-22 [2] RSPM (R 4.3.0)
#>  Hmisc                    5.0-1     2023-03-08 [1] RSPM (R 4.3.0)
#>  hms                      1.1.3     2023-03-21 [1] RSPM (R 4.3.0)
#>  htmlTable                2.4.1     2022-07-07 [1] CRAN (R 4.3.0)
#>  htmltools                0.5.5     2023-03-23 [2] RSPM (R 4.3.0)
#>  htmlwidgets              1.6.2     2023-03-17 [2] RSPM (R 4.3.0)
#>  httpuv                   1.6.9     2023-02-14 [2] RSPM (R 4.3.0)
#>  httr                     1.4.5     2023-02-24 [2] RSPM (R 4.3.0)
#>  interactiveDisplayBase   1.38.0    2023-04-25 [1] Bioconductor
#>  IRanges                * 2.34.0    2023-04-25 [1] Bioconductor
#>  iterators              * 1.0.14    2022-02-05 [1] CRAN (R 4.3.0)
#>  jquerylib                0.1.4     2021-04-26 [2] RSPM (R 4.3.0)
#>  jsonlite                 1.8.4     2022-12-06 [2] RSPM (R 4.3.0)
#>  KEGGREST                 1.40.0    2023-04-25 [1] Bioconductor
#>  knitr                    1.42      2023-01-25 [2] RSPM (R 4.3.0)
#>  later                    1.3.1     2023-05-02 [2] RSPM (R 4.3.0)
#>  lattice                  0.21-8    2023-04-05 [3] CRAN (R 4.3.0)
#>  lazyeval                 0.2.2     2019-03-15 [1] CRAN (R 4.3.0)
#>  lifecycle                1.0.3     2022-10-07 [2] RSPM (R 4.3.0)
#>  limma                    3.56.0    2023-04-25 [1] Bioconductor
#>  locfit                 * 1.5-9.7   2023-01-02 [1] RSPM (R 4.3.0)
#>  lubridate                1.9.2     2023-02-10 [1] RSPM (R 4.3.0)
#>  magrittr                 2.0.3     2022-03-30 [2] RSPM (R 4.3.0)
#>  Matrix                   1.5-4     2023-04-04 [3] CRAN (R 4.3.0)
#>  MatrixGenerics           1.12.0    2023-04-25 [1] Bioconductor
#>  matrixStats              0.63.0    2022-11-18 [1] CRAN (R 4.3.0)
#>  memoise                  2.0.1     2021-11-26 [2] RSPM (R 4.3.0)
#>  mime                     0.12      2021-09-28 [2] RSPM (R 4.3.0)
#>  munsell                  0.5.0     2018-06-12 [1] CRAN (R 4.3.0)
#>  nnet                     7.3-19    2023-05-03 [3] RSPM (R 4.3.0)
#>  org.Hs.eg.db           * 3.17.0    2023-05-07 [1] Bioconductor
#>  OrganismDbi              1.42.0    2023-04-25 [1] Bioconductor
#>  pillar                   1.9.0     2023-03-22 [2] RSPM (R 4.3.0)
#>  pkgconfig                2.0.3     2019-09-22 [2] RSPM (R 4.3.0)
#>  pkgdown                  2.0.7     2022-12-14 [2] RSPM (R 4.3.0)
#>  plyr                     1.8.8     2022-11-11 [1] CRAN (R 4.3.0)
#>  png                      0.1-8     2022-11-29 [1] CRAN (R 4.3.0)
#>  prettyunits              1.1.1     2020-01-24 [2] RSPM (R 4.3.0)
#>  progress                 1.2.2     2019-05-16 [1] CRAN (R 4.3.0)
#>  promises                 1.2.0.1   2021-02-11 [2] RSPM (R 4.3.0)
#>  ProtGenerics             1.32.0    2023-04-25 [1] Bioconductor
#>  purrr                    1.0.1     2023-01-10 [2] RSPM (R 4.3.0)
#>  qvalue                   2.32.0    2023-04-25 [1] Bioconductor
#>  R6                       2.5.1     2021-08-19 [2] RSPM (R 4.3.0)
#>  ragg                     1.2.5     2023-01-12 [2] RSPM (R 4.3.0)
#>  rappdirs                 0.3.3     2021-01-31 [2] RSPM (R 4.3.0)
#>  RBGL                     1.76.0    2023-04-25 [1] Bioconductor
#>  RColorBrewer             1.1-3     2022-04-03 [1] CRAN (R 4.3.0)
#>  Rcpp                     1.0.10    2023-01-22 [2] RSPM (R 4.3.0)
#>  RCurl                    1.98-1.12 2023-03-27 [1] RSPM (R 4.3.0)
#>  RefManageR             * 1.4.0     2022-09-30 [1] CRAN (R 4.3.0)
#>  reshape                  0.8.9     2022-04-12 [1] CRAN (R 4.3.0)
#>  reshape2                 1.4.4     2020-04-09 [1] CRAN (R 4.3.0)
#>  restfulr                 0.0.15    2022-06-16 [1] CRAN (R 4.3.0)
#>  rjson                    0.2.21    2022-01-09 [1] CRAN (R 4.3.0)
#>  rlang                    1.1.1     2023-04-28 [2] RSPM (R 4.3.0)
#>  rmarkdown                2.21      2023-03-26 [2] RSPM (R 4.3.0)
#>  rngtools                 1.5.2     2021-09-20 [1] CRAN (R 4.3.0)
#>  rpart                    4.1.19    2022-10-21 [3] CRAN (R 4.3.0)
#>  rprojroot                2.0.3     2022-04-02 [2] RSPM (R 4.3.0)
#>  Rsamtools                2.16.0    2023-04-25 [1] Bioconductor
#>  RSQLite                  2.3.1     2023-04-03 [1] RSPM (R 4.3.0)
#>  rstudioapi               0.14      2022-08-22 [2] RSPM (R 4.3.0)
#>  rtracklayer              1.60.0    2023-04-25 [1] Bioconductor
#>  S4Arrays                 1.0.1     2023-05-01 [1] Bioconductor
#>  S4Vectors              * 0.38.1    2023-05-02 [1] Bioconductor
#>  sass                     0.4.6     2023-05-03 [2] RSPM (R 4.3.0)
#>  scales                   1.2.1     2022-08-20 [1] CRAN (R 4.3.0)
#>  sessioninfo            * 1.2.2     2021-12-06 [2] RSPM (R 4.3.0)
#>  shiny                    1.7.4     2022-12-15 [2] RSPM (R 4.3.0)
#>  stringi                  1.7.12    2023-01-11 [2] RSPM (R 4.3.0)
#>  stringr                  1.5.0     2022-12-02 [2] RSPM (R 4.3.0)
#>  SummarizedExperiment     1.30.1    2023-05-01 [1] Bioconductor
#>  systemfonts              1.0.4     2022-02-11 [2] RSPM (R 4.3.0)
#>  textshaping              0.3.6     2021-10-13 [2] RSPM (R 4.3.0)
#>  tibble                   3.2.1     2023-03-20 [2] RSPM (R 4.3.0)
#>  tidyselect               1.2.0     2022-10-10 [1] CRAN (R 4.3.0)
#>  timechange               0.2.0     2023-01-11 [1] RSPM (R 4.3.0)
#>  utf8                     1.2.3     2023-01-31 [2] RSPM (R 4.3.0)
#>  VariantAnnotation        1.46.0    2023-04-25 [1] Bioconductor
#>  vctrs                    0.6.2     2023-04-19 [2] RSPM (R 4.3.0)
#>  withr                    2.5.0     2022-03-03 [2] RSPM (R 4.3.0)
#>  xfun                     0.39      2023-04-20 [2] RSPM (R 4.3.0)
#>  XML                      3.99-0.14 2023-03-19 [1] RSPM (R 4.3.0)
#>  xml2                     1.3.4     2023-04-27 [2] RSPM (R 4.3.0)
#>  xtable                   1.8-4     2019-04-21 [2] RSPM (R 4.3.0)
#>  XVector                  0.40.0    2023-04-25 [1] Bioconductor
#>  yaml                     2.3.7     2023-01-23 [2] RSPM (R 4.3.0)
#>  zlibbioc                 1.46.0    2023-04-25 [1] Bioconductor
#> 
#>  [1] /__w/_temp/Library
#>  [2] /usr/local/lib/R/site-library
#>  [3] /usr/local/lib/R/library
#> 
#> ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Bibliography

This vignette was generated using BiocStyle (Oleś, 2023), knitr (Xie, 2014) and rmarkdown (Allaire, Xie, Dervieux et al., 2023) running behind the scenes.

Citations made with RefManageR (McLean, 2017).

[1] J. Allaire, Y. Xie, C. Dervieux, et al. rmarkdown: Dynamic Documents for R. R package version 2.21. 2023. URL: https://github.com/rstudio/rmarkdown.

[2] S. Arora, M. Morgan, M. Carlson, et al. GenomeInfoDb: Utilities for manipulating chromosome and other ‘seqname’ identifiers. 2017. DOI: 10.18129/B9.bioc.GenomeInfoDb.

[3] Bioconductor Package Maintainer. AnnotationHubData: Transform public data resources into Bioconductor Data Structures. R package version 1.30.0. 2023. DOI: 10.18129/B9.bioc.AnnotationHubData. URL: https://bioconductor.org/packages/AnnotationHubData.

[4] M. Carlson. org.Hs.eg.db: Genome wide annotation for Human. R package version 3.17.0. 2023.

[5] L. Collado-Torres. Build and access GenomicState objects for use with derfinder tools from sources like Gencode. https://github.com/LieberInstitute/GenomicState - R package version 0.99.15. 2023. DOI: 10.18129/B9.bioc.GenomicState. URL: http://www.bioconductor.org/packages/GenomicState.

[6] L. Collado-Torres, A. Nellore, A. C. Frazee, et al. “Flexible expressed region analysis for RNA-seq with derfinder”. In: Nucl. Acids Res. (2017). DOI: 10.1093/nar/gkw852. URL: http://nar.oxfordjournals.org/content/early/2016/09/29/nar.gkw852.

[7] J. Hester and J. Bryan. glue: Interpreted String Literals. https://github.com/tidyverse/glue, https://glue.tidyverse.org/. 2022.

[8] A. E. Jaffe, P. Murakami, H. Lee, et al. “Bump hunting to identify differentially methylated regions in epigenetic epidemiology studies”. In: International journal of epidemiology 41.1 (2012), pp. 200–209. DOI: 10.1093/ije/dyr238.

[9] M. Lawrence, R. Gentleman, and V. Carey. “rtracklayer: an R package for interfacing with genome browsers”. In: Bioinformatics 25 (2009), pp. 1841-1842. DOI: 10.1093/bioinformatics/btp328. URL: http://bioinformatics.oxfordjournals.org/content/25/14/1841.abstract.

[10] M. Lawrence, W. Huber, H. Pagès, et al. “Software for Computing and Annotating Genomic Ranges”. In: PLoS Computational Biology 9 (8 2013). DOI: 10.1371/journal.pcbi.1003118. URL: http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1003118}.

[11] M. W. McLean. “RefManageR: Import and Manage BibTeX and BibLaTeX References in R”. In: The Journal of Open Source Software (2017). DOI: 10.21105/joss.00338.

[12] M. Morgan and L. Shepherd. AnnotationHub: Client to access AnnotationHub resources. R package version 3.8.0. 2023. DOI: 10.18129/B9.bioc.AnnotationHub. URL: https://bioconductor.org/packages/AnnotationHub.

[13] A. Oleś. BiocStyle: Standard styles for vignettes and other Bioconductor documents. R package version 2.28.0. 2023. DOI: 10.18129/B9.bioc.BiocStyle. URL: https://bioconductor.org/packages/BiocStyle.

[14] H. Pagès, M. Carlson, S. Falcon, et al. AnnotationDbi: Manipulation of SQLite-based annotations in Bioconductor. R package version 1.62.1. 2023. DOI: 10.18129/B9.bioc.AnnotationDbi. URL: https://bioconductor.org/packages/AnnotationDbi.

[15] R Core Team. R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing. Vienna, Austria, 2023. URL: https://www.R-project.org/.

[16] H. Wickham. “testthat: Get Started with Testing”. In: The R Journal 3 (2011), pp. 5–10. URL: https://journal.r-project.org/archive/2011-1/RJournal_2011-1_Wickham.pdf.

[17] H. Wickham, W. Chang, R. Flight, et al. sessioninfo: R Session Information. https://github.com/r-lib/sessioninfo#readme, https://r-lib.github.io/sessioninfo/. 2021.

[18] Y. Xie. “knitr: A Comprehensive Tool for Reproducible Research in R”. In: Implementing Reproducible Computational Research. Ed. by V. Stodden, F. Leisch and R. D. Peng. ISBN 978-1466561595. Chapman and Hall/CRC, 2014.