in qsea, makeTable offers two possibilities to look at regions of interest (ROIs):
The "ROIs" parameter takes a GRange object selects all windows that overlap with these Genomic Ranges. Windows overlapping with more than one ROI are represented several times.
The "annotation" parameter takes a list of GRange objects (e.g. CpG islands, promoters, TFBS) and annotates the resulting table with the information from the GRanges. For each element of the list one column will be added, containing information from the metadata columns (mcols) of the overlapping GRanges. This is described in step 3.6 "Annotating, Exploring and Exporting Results" of the tutorial.
Additionally, you can compute the number of overlapping DMRs per class of ROIs using the regionStats() function, such as outlined in the tutorial. These numbers can then be used for overrepresentation analysis.
You can create GRanges from tables, for example downloaded from the UCSC table browser for the genome build you are using. For details look at the vignettes of "makeGRangesFromDataFrame()" and "GRanges()" functions of the GenomicRanges package.