3  Quality control and filtering

This chapter explains how to use footprintR to filter single molecule footprinting data. The package contains functionality to calculate a collection of quality statistics for each read, and use these to filter out low-quality reads. This filtering can be done either on the imported SummarizedExperiment object, or directly on the modBam file (which would generate another, filtered modBam file). footprintR also provides several ways to filter out individual genomic positions based on, e.g. the genomic sequence or the read coverage.

We start by loading the required packages. In addition to the software package, we load a BSgenome object providing the mouse genome sequence.

Show/hide code
BSgenomeName <- "BSgenome.Mmusculus.GENCODE.GRCm39.gencodeM34"

library(footprintR)
library(BSgenomeName, character.only = TRUE)
library(SummarizedExperiment)
library(SparseArray)

# Load genome
gnm <- get(BSgenomeName)
genome(gnm) <- "mm39"

3.1 Position filtering

To illustrate the position-level filtering of imported data, we first read 6mA data from a small genomic region for two samples. We add the sequence context (a single nucleotide) to be able to use this information as a basis for filtering.

Show/hide code
se <- readModBam(
    bamfiles = c(wt1 = "data/mESC_wt_6mA_rep1.bam",
                 wt2 = "data/mESC_wt_6mA_rep2.bam"),
    modbase = "a", 
    regions = "chr8:39286301-39287100", 
    seqinfo = seqinfo(gnm), 
    sequenceContextWidth = 1, 
    sequenceReference = gnm
)
se
class: RangedSummarizedExperiment 
dim: 21456 2 
metadata(3): readLevelData variantPositions filteredOutReads
assays(1): mod_prob
rownames(21456): chr8:39269571:- chr8:39269579:- ... chr8:39303298:-
  chr8:39303300:-
rowData names(1): sequenceContext
colnames(2): wt1 wt2
colData names(4): sample modbase n_reads readInfo

The sequence information is stored in the rowData of se:

Show/hide code
rowData(se)
DataFrame with 21456 rows and 1 column
                sequenceContext
                 <DNAStringSet>
chr8:39269571:-               A
chr8:39269579:-               A
chr8:39269588:-               A
chr8:39269589:-               A
chr8:39269612:-               A
...                         ...
chr8:39303283:-               A
chr8:39303284:-               A
chr8:39303297:-               A
chr8:39303298:-               C
chr8:39303300:-               A

Position filtering can now be performed with the filterPositions function. The filters argument define which filters to apply, as well as the order (sequence context, coverage, removal of positions without non-NA values). Here, we retain only positions where the genome sequence is an A, and the coverage (the number of overlapping reads) is at least five. The assayNameCov argument indicates which assay will be used to define the coverage. If this is a read-level assay (like here), coverage will first be calculated using flattenReadLevelAssay. For more precise control, the summary assay can also be manually calculated and added to se beforehand, and specified in assayNameCov.

Show/hide code
sefilt <- filterPositions(
    se, 
    filters = c("sequenceContext", "coverage", "all.na"),
    sequenceContext = "A",
    assayNameCov = "mod_prob",
    minCov = 5
)
sefilt
class: RangedSummarizedExperiment 
dim: 10957 2 
metadata(3): readLevelData variantPositions filteredOutReads
assays(1): mod_prob
rownames(10957): chr8:39279307:- chr8:39279308:- ... chr8:39298917:-
  chr8:39298921:-
rowData names(1): sequenceContext
colnames(2): wt1 wt2
colData names(4): sample modbase n_reads readInfo

In this case, the position filtering reduced the number of unique positions from 21456 to 10957 by 48.9%. However, the number of non-NA values in the matrix is only reduced from 165914 to 148815 (10.3%), confirming that the filtered-out positions are generally covered only by few reads.

In addition to explicit filtering like here, many other functions in footprintR allow built-in filtering for a specific sequence context.

3.2 Read filtering

3.2.1 Filtering a SummarizedExperiment object

In addition to the position filtering illustrated above, footprintR also provides functionality for calculating read-level quality scores and filtering out reads with low quality. The calculation of the quality scores is done using the addReadStats function, and the filtering is performed via the filterReads function.

Show/hide code
# Calculate read statistics
sefilt <- addReadStats(
    sefilt, 
    name = "QC"
)

# The calculated read statistics are stored in the colData
colData(sefilt)
DataFrame with 2 rows and 5 columns
         sample     modbase   n_reads
    <character> <character> <integer>
wt1         wt1           a        34
wt2         wt2           a        41
                                                                       readInfo
                                                                         <List>
wt1   20.3297:17986:17872:...,19.7905:10469:10421:...,13.2784:7876:7761:...,...
wt2 14.1235:22453:22149:...,15.9814:15617:15460:...,14.3505:12359:12212:...,...
                                                                                                        QC
                                                                                                    <List>
wt1 0.0618421:0.0455829:0.967676:...,0.0545563:0.0386562:0.971495:...,0.1317097:0.1049275:0.931608:...,...
wt2       0.195971:0.186199:0.931852:...,0.169650:0.156304:0.944134:...,0.189312:0.176095:0.940588:...,...
Show/hide code
sefilt$QC$wt1
DataFrame with 34 rows and 11 columns
                                         MeanModProb   FracMod  MeanConf
                                           <numeric> <numeric> <numeric>
wt1-d914fb79-7d7a-4a67-bb98-5d1168b057b6   0.0618421 0.0455829  0.967676
wt1-91aeb981-e093-449d-a6c1-63ad824c8d47   0.0545563 0.0386562  0.971495
wt1-e3b1cc8a-cde6-4745-9f49-310e68242897   0.1317097 0.1049275  0.931608
wt1-c5dbb0ee-edfa-4f52-b48b-ac34f7251364   0.1315284 0.1202325  0.953554
wt1-e11adb8a-0c3d-45cf-9633-d67780a4185f   0.1023139 0.0596330  0.923058
...                                              ...       ...       ...
wt1-b47f7f9e-623a-4f68-ac0c-905b212f39d7   0.0596196 0.0461133  0.970019
wt1-7f8eda94-bebd-4ccb-af87-c3e7d65be619   0.0958030 0.0778281  0.954483
wt1-27f1bc2e-7b63-49b2-a773-0163334f7641   0.1107278 0.0993151  0.966969
wt1-c32080be-75b0-4923-87dd-41a7cb69d379   0.0394939 0.0268914  0.978357
wt1-6a7643fc-b95e-49ec-baa8-86fe294e473b   0.1471507 0.1341176  0.960524
                                         MeanConfUnm MeanConfMod FracLowConf
                                           <numeric>   <numeric>   <numeric>
wt1-d914fb79-7d7a-4a67-bb98-5d1168b057b6    0.974548    0.823787   0.0367084
wt1-91aeb981-e093-449d-a6c1-63ad824c8d47    0.976905    0.836961   0.0299126
wt1-e3b1cc8a-cde6-4745-9f49-310e68242897    0.946834    0.801720   0.0765217
wt1-c5dbb0ee-edfa-4f52-b48b-ac34f7251364    0.967183    0.853822   0.0584817
wt1-e11adb8a-0c3d-45cf-9633-d67780a4185f    0.936395    0.712730   0.0880734
...                                              ...         ...         ...
wt1-b47f7f9e-623a-4f68-ac0c-905b212f39d7    0.977205    0.821373   0.0342556
wt1-7f8eda94-bebd-4ccb-af87-c3e7d65be619    0.965575    0.823061   0.0565611
wt1-27f1bc2e-7b63-49b2-a773-0163334f7641    0.975328    0.891164   0.0376712
wt1-c32080be-75b0-4923-87dd-41a7cb69d379    0.982404    0.831901   0.0190032
wt1-6a7643fc-b95e-49ec-baa8-86fe294e473b    0.969679    0.901419   0.0376471
                                         IQRModProb sdModProb Lag1DModProb
                                          <numeric> <numeric>    <numeric>
wt1-d914fb79-7d7a-4a67-bb98-5d1168b057b6  0.0000000  0.185359    0.0573043
wt1-91aeb981-e093-449d-a6c1-63ad824c8d47  0.0000000  0.173306    0.0598527
wt1-e3b1cc8a-cde6-4745-9f49-310e68242897  0.1113281  0.254609    0.1531323
wt1-c5dbb0ee-edfa-4f52-b48b-ac34f7251364  0.0683594  0.284379    0.1417151
wt1-e11adb8a-0c3d-45cf-9633-d67780a4185f  0.1152344  0.188172    0.1021719
...                                             ...       ...          ...
wt1-b47f7f9e-623a-4f68-ac0c-905b212f39d7  0.0000000  0.184892    0.0676626
wt1-7f8eda94-bebd-4ccb-af87-c3e7d65be619  0.0488281  0.232541    0.1095518
wt1-27f1bc2e-7b63-49b2-a773-0163334f7641  0.0000000  0.272549    0.1233933
wt1-c32080be-75b0-4923-87dd-41a7cb69d379  0.0000000  0.146425    0.0401722
wt1-6a7643fc-b95e-49ec-baa8-86fe294e473b  0.0761719  0.310255    0.1415094
                                                                       ACModProb
                                                                          <list>
wt1-d914fb79-7d7a-4a67-bb98-5d1168b057b6       0.0749726,0.0161444,0.0133524,...
wt1-91aeb981-e093-449d-a6c1-63ad824c8d47  0.02945337,-0.00588547,-0.01550006,...
wt1-e3b1cc8a-cde6-4745-9f49-310e68242897     0.0319851,-0.0100365, 0.0148677,...
wt1-c5dbb0ee-edfa-4f52-b48b-ac34f7251364  0.02581876, 0.03198559,-0.00294165,...
wt1-e11adb8a-0c3d-45cf-9633-d67780a4185f       0.0068839,0.0300003,0.0344642,...
...                                                                          ...
wt1-b47f7f9e-623a-4f68-ac0c-905b212f39d7  0.01516679, 0.00209322,-0.00613638,...
wt1-7f8eda94-bebd-4ccb-af87-c3e7d65be619       0.0832970,0.0437754,0.0433326,...
wt1-27f1bc2e-7b63-49b2-a773-0163334f7641    -0.0505126,-0.0494200,-0.0163033,...
wt1-c32080be-75b0-4923-87dd-41a7cb69d379 -0.00921144, 0.01132777, 0.00043232,...
wt1-6a7643fc-b95e-49ec-baa8-86fe294e473b    -0.0303490,-0.0681595,-0.0348878,...
                                                                         PACModProb
                                                                             <list>
wt1-d914fb79-7d7a-4a67-bb98-5d1168b057b6    -0.05628108,-0.00550086, 0.00561907,...
wt1-91aeb981-e093-449d-a6c1-63ad824c8d47       -0.0248721,-0.0272212,-0.0196893,...
wt1-e3b1cc8a-cde6-4745-9f49-310e68242897       -0.0318656, 0.0126163, 0.0145030,...
wt1-c5dbb0ee-edfa-4f52-b48b-ac34f7251364  0.000585163,-0.035027495,-0.036536268,...
wt1-e11adb8a-0c3d-45cf-9633-d67780a4185f          0.0257367,0.0221382,0.0161219,...
...                                                                             ...
wt1-b47f7f9e-623a-4f68-ac0c-905b212f39d7       -0.0148931,-0.0104126,-0.0223420,...
wt1-7f8eda94-bebd-4ccb-af87-c3e7d65be619 -0.023189216, 0.000722367,-0.018193456,...
wt1-27f1bc2e-7b63-49b2-a773-0163334f7641       -0.0239780, 0.0296459,-0.0448544,...
wt1-c32080be-75b0-4923-87dd-41a7cb69d379        0.0176851,-0.0107225, 0.0719348,...
wt1-6a7643fc-b95e-49ec-baa8-86fe294e473b       -0.0609389, 0.0117622,-0.0752276,...
Show/hide code
# In addition, we can filter based on the read info columns added by readModBam
sefilt$readInfo$wt1
DataFrame with 34 rows and 5 columns
                                            qscore read_length aligned_length
                                         <numeric>   <integer>      <integer>
wt1-d914fb79-7d7a-4a67-bb98-5d1168b057b6   20.3297       17986          17872
wt1-91aeb981-e093-449d-a6c1-63ad824c8d47   19.7905       10469          10421
wt1-e3b1cc8a-cde6-4745-9f49-310e68242897   13.2784        7876           7761
wt1-c5dbb0ee-edfa-4f52-b48b-ac34f7251364   16.2577        9694           9585
wt1-e11adb8a-0c3d-45cf-9633-d67780a4185f   11.2134       14639          14236
...                                            ...         ...            ...
wt1-b47f7f9e-623a-4f68-ac0c-905b212f39d7   17.4973       11977           5871
wt1-7f8eda94-bebd-4ccb-af87-c3e7d65be619   15.7355        9155           5711
wt1-27f1bc2e-7b63-49b2-a773-0163334f7641   18.1292        9097           6047
wt1-c32080be-75b0-4923-87dd-41a7cb69d379   22.4457        7597           7577
wt1-6a7643fc-b95e-49ec-baa8-86fe294e473b   16.8056        4182           2419
                                         variant_label aligned_fraction
                                           <character>        <numeric>
wt1-d914fb79-7d7a-4a67-bb98-5d1168b057b6            NA         0.993662
wt1-91aeb981-e093-449d-a6c1-63ad824c8d47            NA         0.995415
wt1-e3b1cc8a-cde6-4745-9f49-310e68242897            NA         0.985399
wt1-c5dbb0ee-edfa-4f52-b48b-ac34f7251364            NA         0.988756
wt1-e11adb8a-0c3d-45cf-9633-d67780a4185f            NA         0.972471
...                                                ...              ...
wt1-b47f7f9e-623a-4f68-ac0c-905b212f39d7            NA         0.490190
wt1-7f8eda94-bebd-4ccb-af87-c3e7d65be619            NA         0.623812
wt1-27f1bc2e-7b63-49b2-a773-0163334f7641            NA         0.664725
wt1-c32080be-75b0-4923-87dd-41a7cb69d379            NA         0.997367
wt1-6a7643fc-b95e-49ec-baa8-86fe294e473b            NA         0.578431
Show/hide code
# Visualize the read statistics to set appropriate filter thresholds
plotReadStats(
    sefilt
)

# Perform filtering
sefilt <- filterReads(
    sefilt,
    minQscore = 13,
    maxFracLowConf = 0.1,
    minAlignedLength = 5000, 
    removeAllNApos = TRUE
)
Figure 3.1

Filtering statistics are stored in the metadata of the filtered SummarizedExperiment object.

Show/hide code
metadata(sefilt)$filteredOutReads
$wt1
<9 x 8 SparseMatrix> of type "logical" [nzcount=10 (14%)]:
                                          Qscore Entropy ...   AllNA
wt1-e11adb8a-0c3d-45cf-9633-d67780a4185f    TRUE   FALSE   .   FALSE
wt1-1c916f3a-030c-4c18-9f76-408840e6a3fa    TRUE   FALSE   .   FALSE
wt1-2f9885e3-91d5-4753-961d-439d64fbd301    TRUE   FALSE   .   FALSE
wt1-840df614-693f-40f5-9b35-7495eac426f1   FALSE   FALSE   .   FALSE
wt1-51e19b4b-6baa-4982-88f3-a16a9fad78c6   FALSE   FALSE   .   FALSE
wt1-419d45a8-6e9e-41cc-ae32-9105049b8cd7    TRUE   FALSE   .   FALSE
wt1-c1eef755-3d3f-4f33-b87a-d896ec1a26cc   FALSE   FALSE   .   FALSE
wt1-d87a7efd-367f-42f6-b9af-e112610e945b    TRUE   FALSE   .   FALSE
wt1-6a7643fc-b95e-49ec-baa8-86fe294e473b   FALSE   FALSE   .   FALSE

$wt2
<12 x 8 SparseMatrix> of type "logical" [nzcount=16 (17%)]:
                                          Qscore Entropy ...   AllNA
wt2-b58992e1-d311-49d7-bf22-81fd390687b5    TRUE   FALSE   .   FALSE
wt2-e145db43-4658-4dcc-8f58-78fb09544770    TRUE   FALSE   .   FALSE
wt2-eac97b86-e3fc-4d19-8a02-08bd861077b5    TRUE   FALSE   .   FALSE
wt2-e06432c5-189d-4c1c-8a5b-025c2d68fee5    TRUE   FALSE   .   FALSE
wt2-5a2f30be-48c9-4b0a-8ab1-83d54c71ef56   FALSE   FALSE   .   FALSE
                                     ...       .       .   .       .
wt2-fac12814-a86d-4d07-9596-d9ea4943580e   FALSE   FALSE   .   FALSE
wt2-f77f5ae9-dd3a-4e08-a390-7e80868433a7    TRUE   FALSE   .   FALSE
wt2-fda332ae-02de-4391-9cff-620c1ae8799f   FALSE   FALSE   .   FALSE
wt2-b6efe1fe-f2b9-4f69-bb61-f4a741969a52   FALSE   FALSE   .   FALSE
wt2-d0b3f6f8-c5d3-477e-b4c4-02dcd4602767   FALSE   FALSE   .   FALSE

3.2.2 Filtering a modBam file

As mentioned above, footprintR can also be used to directly filter alignments in a modBam file. The filterReadsBam function reads the alignments in the input file, parses them, and writes them to the output file if they pass all the designated filters. These filters are treated hierarchically - in other words, if a read does not pass a given filter, the remaining filters will not be examined and the processing continues with the next read. Here we illustrate the modBam filtering using two small example modBam files, each with 10 reads.

Show/hide code
# input files
modbamfiles <- c("data/6mA_1_10reads.bam", "data/6mA_2_10reads.bam")

# output files
filtbamfiles <- sub("\\.bam", "_filtered.bam", modbamfiles)

res <- filterReadsBam(infiles = modbamfiles, outfiles = filtbamfiles,
                      modbase = "a", indexOutfiles = FALSE, minReadLength = 6746,
                      minAlignedLength = 6896, minAlignedFraction = 0.56,
                      minQscore = 9.7, maxFracLowConf = 0.11, maxEntropy = 0.29,
                      BPPARAM = BiocParallel::SerialParam(), verbose = TRUE)
ℹ start filtering of 'data/6mA_1_10reads.bam' using 1 thread
ℹ merging 1 filtered chunks
ℹ done filtering: retained 7 of 10 records (70%)
ℹ start filtering of 'data/6mA_2_10reads.bam' using 1 thread
ℹ merging 1 filtered chunks
ℹ done filtering: retained 7 of 10 records (70%)

The res object provides details about the number of reads that were filtered out at each stage.

Show/hide code
res
  sample                 infile                         outfile total retained
1     s1 data/6mA_1_10reads.bam data/6mA_1_10reads_filtered.bam    10        7
2     s2 data/6mA_2_10reads.bam data/6mA_2_10reads_filtered.bam    10        7
  filtered_unmapped filtered_secondary filtered_supplementary
1                 0                  0                      0
2                 0                  0                      0
  filtered_minReadLength filtered_minAlignedLength filtered_minAlignedFraction
1                      0                         1                           1
2                      1                         0                           0
  filtered_minQscore filtered_maxFracLowConf filtered_maxEntropy
1                  0                       0                   1
2                  1                       1                   0

3.3 Session info

Click to view session info
Show/hide code
sessioninfo::session_info(info = "packages")
═ Session info ═══════════════════════════════════════════════════════════════
─ Packages ───────────────────────────────────────────────────────────────────
 package                                      * version   date (UTC) lib source
 abind                                        * 1.4-8     2024-09-12 [1] CRAN (R 4.5.0)
 Biobase                                      * 2.68.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.0)
 BiocGenerics                                 * 0.54.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.0)
 BiocIO                                       * 1.18.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.0)
 BiocParallel                                   1.42.1    2025-06-01 [1] Bioconductor 3.21 (R 4.5.0)
 Biostrings                                   * 2.76.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.0)
 bitops                                         1.0-9     2024-10-03 [1] CRAN (R 4.5.0)
 BSgenome                                     * 1.76.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.0)
 BSgenome.Mmusculus.GENCODE.GRCm39.gencodeM34 * 0.1.0     2025-04-17 [1] Bioconductor
 cli                                            3.6.5     2025-04-23 [1] CRAN (R 4.5.0)
 codetools                                      0.2-20    2024-03-31 [2] CRAN (R 4.5.0)
 crayon                                         1.5.3     2024-06-20 [1] CRAN (R 4.5.0)
 curl                                           6.3.0     2025-06-06 [1] CRAN (R 4.5.0)
 data.table                                     1.17.4    2025-05-26 [1] CRAN (R 4.5.0)
 DelayedArray                                   0.34.1    2025-04-17 [1] Bioconductor 3.21 (R 4.5.0)
 dichromat                                      2.0-0.1   2022-05-02 [1] CRAN (R 4.5.0)
 digest                                         0.6.37    2024-08-19 [1] CRAN (R 4.5.0)
 dplyr                                          1.1.4     2023-11-17 [1] CRAN (R 4.5.0)
 evaluate                                       1.0.3     2025-01-10 [1] CRAN (R 4.5.0)
 farver                                         2.1.2     2024-05-13 [1] CRAN (R 4.5.0)
 fastmap                                        1.2.0     2024-05-15 [1] CRAN (R 4.5.0)
 footprintR                                   * 0.3.5     2025-06-04 [1] Github (fmicompbio/footprintR@612f713)
 generics                                     * 0.1.4     2025-05-09 [1] CRAN (R 4.5.0)
 GenomeInfoDb                                 * 1.44.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.0)
 GenomeInfoDbData                               1.2.14    2025-04-17 [1] Bioconductor
 GenomicAlignments                              1.44.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.0)
 GenomicRanges                                * 1.60.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.0)
 ggforce                                        0.4.2     2024-02-19 [1] CRAN (R 4.5.0)
 ggplot2                                        3.5.2     2025-04-09 [1] CRAN (R 4.5.0)
 glue                                           1.8.0     2024-09-30 [1] CRAN (R 4.5.0)
 gtable                                         0.3.6     2024-10-25 [1] CRAN (R 4.5.0)
 htmltools                                      0.5.8.1   2024-04-04 [1] CRAN (R 4.5.0)
 htmlwidgets                                    1.6.4     2023-12-06 [1] CRAN (R 4.5.0)
 httr                                           1.4.7     2023-08-15 [1] CRAN (R 4.5.0)
 IRanges                                      * 2.42.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.0)
 jsonlite                                       2.0.0     2025-03-27 [1] CRAN (R 4.5.0)
 knitr                                          1.50      2025-03-16 [1] CRAN (R 4.5.0)
 labeling                                       0.4.3     2023-08-29 [1] CRAN (R 4.5.0)
 lattice                                        0.22-7    2025-04-02 [1] CRAN (R 4.5.0)
 lifecycle                                      1.0.4     2023-11-07 [1] CRAN (R 4.5.0)
 magrittr                                       2.0.3     2022-03-30 [1] CRAN (R 4.5.0)
 MASS                                           7.3-65    2025-02-28 [2] CRAN (R 4.5.0)
 Matrix                                       * 1.7-3     2025-03-11 [2] CRAN (R 4.5.0)
 MatrixGenerics                               * 1.20.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.0)
 matrixStats                                  * 1.5.0     2025-01-07 [1] CRAN (R 4.5.0)
 patchwork                                      1.3.0     2024-09-16 [1] CRAN (R 4.5.0)
 pillar                                         1.10.2    2025-04-05 [1] CRAN (R 4.5.0)
 pkgconfig                                      2.0.3     2019-09-22 [1] CRAN (R 4.5.0)
 polyclip                                       1.10-7    2024-07-23 [1] CRAN (R 4.5.0)
 purrr                                          1.0.4     2025-02-05 [1] CRAN (R 4.5.0)
 R6                                             2.6.1     2025-02-15 [1] CRAN (R 4.5.0)
 RColorBrewer                                   1.1-3     2022-04-03 [1] CRAN (R 4.5.0)
 Rcpp                                           1.0.14    2025-01-12 [1] CRAN (R 4.5.0)
 RCurl                                          1.98-1.17 2025-03-22 [1] CRAN (R 4.5.0)
 restfulr                                       0.0.15    2022-06-16 [1] CRAN (R 4.5.0)
 rjson                                          0.2.23    2024-09-16 [1] CRAN (R 4.5.0)
 rlang                                          1.1.6     2025-04-11 [1] CRAN (R 4.5.0)
 rmarkdown                                      2.29      2024-11-04 [1] CRAN (R 4.5.0)
 Rsamtools                                      2.24.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.0)
 rtracklayer                                  * 1.68.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.0)
 S4Arrays                                     * 1.8.1     2025-06-01 [1] Bioconductor 3.21 (R 4.5.0)
 S4Vectors                                    * 0.46.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.0)
 scales                                         1.4.0     2025-04-24 [1] CRAN (R 4.5.0)
 sessioninfo                                    1.2.3     2025-02-05 [1] CRAN (R 4.5.0)
 SparseArray                                  * 1.8.0     2025-04-15 [1] Bioconductor 3.21 (R 4.5.0)
 SummarizedExperiment                         * 1.38.1    2025-04-30 [1] Bioconductor 3.21 (R 4.5.0)
 tibble                                         3.3.0     2025-06-08 [1] CRAN (R 4.5.0)
 tidyr                                          1.3.1     2024-01-24 [1] CRAN (R 4.5.0)
 tidyselect                                     1.2.1     2024-03-11 [1] CRAN (R 4.5.0)
 tweenr                                         2.0.3     2024-02-26 [1] CRAN (R 4.5.0)
 UCSC.utils                                     1.4.0     2025-04-15 [1] Bioconductor 3.21 (R 4.5.0)
 vctrs                                          0.6.5     2023-12-01 [1] CRAN (R 4.5.0)
 withr                                          3.0.2     2024-10-28 [1] CRAN (R 4.5.0)
 xfun                                           0.52      2025-04-02 [1] CRAN (R 4.5.0)
 XML                                            3.99-0.18 2025-01-01 [1] CRAN (R 4.5.0)
 XVector                                      * 0.48.0    2025-04-15 [1] Bioconductor 3.21 (R 4.5.0)
 yaml                                           2.3.10    2024-07-26 [1] CRAN (R 4.5.0)
 zoo                                            1.8-14    2025-04-10 [1] CRAN (R 4.5.0)

 [1] /tungstenfs/groups/gbioinfo/Appz/R/BioC/R-4.5-release-foss-2024.05_BioC-3.21-release-foss-2024.05
 [2] /tachyon/groups/gbioinfo/Appz/easybuild/software/R/4.5.0-foss-2024.05/lib64/R/library
 * ── Packages attached to the search path.

──────────────────────────────────────────────────────────────────────────────