SeSAMe supports Mammal 40 array natively.

Cache Mammal40

sesameDataCache("Mammal40")
## snapshotDate(): 2021-04-27
## [1] TRUE

Load Mammal40 array IDAT

res_grn = sesameDataDownload("GSM4411982_Grn.idat.gz")
res_red = sesameDataDownload("GSM4411982_Red.idat.gz")
sset = readIDATpair(sprintf("%s/GSM4411982", res_red$dest_dir))

Preprocess the sigset to produce beta values. The standard noob, dyeBiasCorrTypeINorm works as expected:

sset_normalized = sset %>%
                  noob %>%
                  dyeBiasCorrTypeINorm

Retrieve beta values using the following commands

betas = sset_normalized %>%
        qualityMask %>%
        detectionMask %>%
        getBetas