Skip to content

Instantly share code, notes, and snippets.

@seandavi
Last active December 3, 2020 03:00
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save seandavi/7661290 to your computer and use it in GitHub Desktop.
Save seandavi/7661290 to your computer and use it in GitHub Desktop.
A simple function to read illumina iDAT files into a Bioconductor data structure
idat2lumibatch <- function(filenames) {
# filenames is a character vector of iDAT filenames
require(illuminaio)
require(lumi)
idatlist = lapply(filenames,readIDAT)
exprs = sapply(idatlist,function(x) {
return(x$Quants$MeanBinData)})
se.exprs = sapply(idatlist,function(x) {
return(x$Quants$DevBinData/sqrt(x$Quants$NumGoodBeadsBinData))})
beadNum = sapply(idatlist,function(x) {
return(x$Quants$NumGoodBeadsBinData)})
rownames(exprs)=rownames(se.exprs)=rownames(beadNum)=idatlist[[1]]$Quants$CodesBinData
colnames(exprs)=colnames(se.exprs)=colnames(beadNum)=sapply(idatlist,function(x) {
return(paste(x$Barcode,x$Section,sep="_"))})
pd = data.frame(Sentrix=colnames(exprs))
rownames(pd)=colnames(exprs)
lb = new("LumiBatch",exprs=exprs,se.exprs=se.exprs,beadNum=beadNum,
phenoData=AnnotatedDataFrame(pd))
return(lb)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment