PscanR Background Resources

Introduction

PscanRBackgrounds provides the precomputed promoter backgrounds used by the PscanR motif enrichment package. PscanR compares the motif scores of a set of foreground promoters against the distribution of the same scores over all promoters of an organism. Computing that distribution means scanning every promoter of a genome with every motif of a JASPAR collection, which takes hours; this package distributes the result for the most common combinations.

Version 2 of the backgrounds covers three JASPAR CORE releases (2020, 2022, 2024), seven genome assemblies of five organisms, and five promoter windows, for 105 backgrounds. Each background is a separate ExperimentHub resource. The files are hosted on Zenodo, in one record per JASPAR release: https://doi.org/10.5281/zenodo.23183695 (2020), https://doi.org/10.5281/zenodo.23183713 (2022) and https://doi.org/10.5281/zenodo.23183720 (2024). All 105 files are also archived as a single ZIP in https://doi.org/10.5281/zenodo.21821764.

Installation

if (!require("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install("PscanRBackgrounds")
library(PscanRBackgrounds)

Available resources

The metadata of all resources is installed with the package and can be inspected without network access.

metadata <- read.csv(system.file(
    "extdata", "metadata.csv", package = "PscanRBackgrounds"
))
nrow(metadata)
#> [1] 105
head(metadata[c("Title", "Genome", "Species", "TaxonomyId")])
#>                                   Title Genome                 Species
#> 1  PscanR_bg_v2_J2020_dm6_200u_50d_UCSC    dm6 Drosophila melanogaster
#> 2  PscanR_bg_v2_J2020_dm6_450u_50d_UCSC    dm6 Drosophila melanogaster
#> 3   PscanR_bg_v2_J2020_dm6_500u_0d_UCSC    dm6 Drosophila melanogaster
#> 4  PscanR_bg_v2_J2020_dm6_950u_50d_UCSC    dm6 Drosophila melanogaster
#> 5  PscanR_bg_v2_J2020_dm6_1000u_0d_UCSC    dm6 Drosophila melanogaster
#> 6 PscanR_bg_v2_J2020_hg38_200u_50d_UCSC   hg38            Homo sapiens
#>   TaxonomyId
#> 1       7227
#> 2       7227
#> 3       7227
#> 4       7227
#> 5       7227
#> 6       9606
table(metadata$Genome)
#> 
#>     dm6    hg38     hs1    mm10    mm39 sacCer3   TAIR9 
#>      15      15      15      15      15      15      15

Titles follow the pattern PscanR_bg_v2_J<release>_<assembly>_<up>u_<down>d_<source>. The installed catalog records the provenance of every background: annotation source and retrieval date, promoter, motif and annotation hashes, scanner version and commit, and the SHA-256 checksum of the file.

catalog <- read.delim(system.file(
    "extdata", "catalog_v2.tsv", package = "PscanRBackgrounds"
))
table(catalog$assembly, catalog$jaspar_release)
#>          
#>           2020 2022 2024
#>   dm6        5    5    5
#>   hg38       5    5    5
#>   hs1        5    5    5
#>   mm10       5    5    5
#>   mm39       5    5    5
#>   sacCer3    5    5    5
#>   TAIR9      5    5    5
catalog[1, c("artifact", "motif_count", "promoter_count",
    "annotation_source", "pscanr_version")]
#>                                        artifact motif_count promoter_count
#> 1 backgrounds/J2020_dm6_200u_50d_UCSC.psbg2.txt         143          22400
#>   annotation_source pscanr_version
#> 1 ncbiRefSeqCurated         0.99.0

Retrieval through ExperimentHub

Each resource uses the FilePath dispatch class: retrieval downloads the text file once, caches it, and returns its local path.

library(ExperimentHub)
eh <- ExperimentHub()
backgrounds <- query(eh, "PscanRBackgrounds")
hg38 <- query(backgrounds, c("hg38", "JASPAR2020", "200u_50d"))
hg38
path <- hg38[[1]]
readLines(path, n = 3)

PscanR users normally do not open the files directly: PscanR selects the background matching the requested JASPAR release, organism, assembly and promoter window, verifies its checksum, and combines it with the JASPAR matrices into the object its enrichment functions take.

License and provenance

The backgrounds are distributed under CC BY 4.0. Cite the Zenodo record and the Pscan method (Zambelli, Pesole and Pavesi, 2009, https://doi.org/10.1093/nar/gkp464). The installed DATA_SOURCES.md lists the upstream sources; scripts/make-data.R describes how the backgrounds were generated, and scripts/make-metadata.R builds the ExperimentHub metadata. The generation pipeline is maintained at https://github.com/Federico77z/PscanRBackgrounds-pipeline.

Session information

sessionInfo()
#> R version 4.6.1 (2026-06-24)
#> Platform: x86_64-pc-linux-gnu
#> Running under: Ubuntu 26.04.1 LTS
#> 
#> Matrix products: default
#> BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 
#> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.32.so;  LAPACK version 3.12.0
#> 
#> locale:
#>  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
#>  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
#>  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
#>  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
#>  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
#> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
#> 
#> time zone: Etc/UTC
#> tzcode source: system (glibc)
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#> [1] PscanRBackgrounds_0.99.3 BiocStyle_2.41.0        
#> 
#> loaded via a namespace (and not attached):
#>  [1] rappdirs_0.3.4       sass_0.4.10          generics_0.1.4      
#>  [4] BiocVersion_3.24.0   RSQLite_3.53.3       digest_0.6.39       
#>  [7] magrittr_2.0.5       evaluate_1.0.5       fastmap_1.2.0       
#> [10] blob_1.3.0           AnnotationHub_4.3.2  jsonlite_2.0.0      
#> [13] AnnotationDbi_1.75.2 DBI_1.3.0            BiocManager_1.30.27 
#> [16] httr_1.4.9           Biostrings_2.81.9    httr2_1.3.0         
#> [19] jquerylib_0.1.4      cli_3.6.6            crayon_1.5.3        
#> [22] rlang_1.3.0          XVector_0.53.0       dbplyr_2.6.0        
#> [25] Biobase_2.73.2       bit64_4.8.6          cachem_1.1.0        
#> [28] yaml_2.3.12          BiocBaseUtils_1.15.1 otel_0.2.0          
#> [31] tools_4.6.1          memoise_2.0.1        dplyr_1.2.1         
#> [34] filelock_1.0.3       ExperimentHub_3.3.2  BiocGenerics_0.59.12
#> [37] curl_8.0.0           png_0.1-9            buildtools_1.0.0    
#> [40] vctrs_0.7.3          R6_2.6.1             stats4_4.6.1        
#> [43] BiocFileCache_3.3.0  lifecycle_1.0.5      Seqinfo_1.3.2       
#> [46] KEGGREST_1.53.6      IRanges_2.47.5       S4Vectors_0.51.10   
#> [49] bit_4.6.0            pkgconfig_2.0.3      bslib_0.12.0        
#> [52] pillar_1.11.1        glue_1.8.1           xfun_0.61           
#> [55] tibble_3.3.1         tidyselect_1.2.1     sys_3.4.3           
#> [58] knitr_1.52           htmltools_0.5.9      rmarkdown_2.32      
#> [61] maketools_1.3.2      compiler_4.6.1