R version 4.5.0 RC (2025-04-04 r88112 ucrt) -- "How About a Twenty-Six" Copyright (C) 2025 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > library("aroma.apd") Loading required package: affxparser aroma.apd v0.7.1 successfully loaded. See ?aroma.apd for help. > > # Local functions > rotate270 <- function(x, ...) { + x <- t(x) + nc <- ncol(x) + if (nc < 2) return(x) + x[,nc:1,drop=FALSE] + } > > # Scan current directory for APD files > files <- list.files(pattern="[.](apd|APD)$") > files <- files[!file.info(files)$isdir] > if (length(files) > 0) { + apdFile <- files[1] + + # Read APD intensities in the upper left corner + apd <- readApdRectangle(apdFile, xrange=c(0,250), yrange=c(0,250)) + z <- rotate270(apd$intensities) + sub <- paste("Chip type:", apd$header$chipType) + image(z, col=gray.colors(256), axes=FALSE, main=apdFile, sub=sub) + text(x=0, y=1, labels="(0,0)", adj=c(0,-0.7), cex=0.8, xpd=TRUE) + text(x=1, y=0, labels="(250,250)", adj=c(1,1.2), cex=0.8, xpd=TRUE) + } > > proc.time() user system elapsed 0.15 0.09 0.23