Contrary to read.ilmn function, it seems that read.idat function is unable to read compressed idat files, returning quite misleading error in that case:
raw_object <- limma::read.idat(idatfiles = paste0(destdir, "/",idat_files), bgxfile = paste0(destdir, "/", bgxfile), ...)
Besides, it would be great, just like read.ilmn function with paramters path and ctrlpath, to add parameters to function read.idat indicating folder where are respectively stored raw idat files and background file.
sessionInfo( ) R version 4.0.2 (2020-06-22) Platform: x86_64-pc-linux-gnu (64-bit) Running under: CentOS Linux 7 (Core) Matrix products: default BLAS: /softhpc/R/4.0.2/lib64/R/lib/libRblas.so LAPACK: /softhpc/R/4.0.2/lib64/R/lib/libRlapack.so locale:  LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8  LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C LC_TELEPHONE=C  LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages:  stats graphics grDevices utils datasets methods base other attached packages:  bmkanalysis_1.0.0
This is probably an issue in the illuminaio package rather than limma. I'm pretty sure limma uses that package for reading IDAT files. I haven't looked at the code for a long time, but it could probably be updated to do the unzipping step automatically.
Effectively Illuminaio doesn't read compressed idat files. There may be a way for unzipping them automatically, or like for illumina gzipped files, possibility to read directly compressed files?