Mercurial > repos > testtool > geo_data
diff GRsetFromGEO/GRsetFromGEO.R @ 37:c982fdb0e27d draft
Uploaded
author | testtool |
---|---|
date | Mon, 24 Apr 2017 08:57:06 -0400 |
parents | b3761b109ca9 |
children | 234e990e8e1d |
line wrap: on
line diff
--- a/GRsetFromGEO/GRsetFromGEO.R Mon Apr 24 08:50:59 2017 -0400 +++ b/GRsetFromGEO/GRsetFromGEO.R Mon Apr 24 08:57:06 2017 -0400 @@ -21,44 +21,47 @@ -function (GSE = GSE, array = "IlluminaHumanMethylation450k", annotation = default.450k.annotation, - what = c("Beta", "M"), mergeManifest = FALSE, i = 1){ - - - gset <- getGEO(GSE) - gset <- gset[[1]] - - platform <- annotation(gset) - - ann <- getAnnotationString(c(array = array, annotation = annotation)) - if (!require(ann, character.only = TRUE)) - stop(sprintf("cannot load annotation package %s", ann)) - - object <- get(ann) - - gr <- getLocations(object, mergeManifest = mergeManifest, - orderByLocation = TRUE) - locusNames <- names(gr) - sampleNames(gset) <- gset$title - common <- intersect(locusNames, fData(gset)$Name) - if (length(common) == 0) { - stop("No rowname matches. 'rownames' need to match IlluminaHumanMethylation450k probe names.") - ind1 <- match(common, fData(gset)$Name) - ind2 <- match(common, locusNames) - preprocessing <- c(rg.norm = paste0("See GEO ", GSE, " for details")) - if (what == "Beta") { - out <- GenomicRatioSet(gr = gr[ind2, ], Beta = exprs(gset)[ind1, - , drop = FALSE], M = NULL, CN = NULL, pData = pData(gset), - annotation = c(array = array, annotation = annotation), - preprocessMethod = preprocessing) - } - else { - out <- GenomicRatioSet(gr = gr[ind2, ], Beta = NULL, - M = exprs(gset)[ind1, , drop = FALSE], CN = NULL, - pData = pData(gset), annotation = c(array = array, - annotation = annotation), preprocessMethod = preprocessing) - } - return(out) +array = "IlluminaHumanMethylation450k" +annotation = default.450k.annotation +what = c("Beta", "M") +mergeManifest = FALSE +i = 1 + +gset <- getGEO(GSE) +gset <- gset[[1]] + +platform <- annotation(gset) + +ann <- getAnnotationString(c(array = array, annotation = annotation)) +if (!require(ann, character.only = TRUE)) + stop(sprintf("cannot load annotation package %s", ann)) + +object <- get(ann) + +gr <- getLocations(object, mergeManifest = mergeManifest, + orderByLocation = TRUE) +locusNames <- names(gr) +sampleNames(gset) <- gset$title +common <- intersect(locusNames, fData(gset)$Name) +if (length(common) == 0) { + stop("No rowname matches. 'rownames' need to match IlluminaHumanMethylation450k probe names.") + ind1 <- match(common, fData(gset)$Name) + ind2 <- match(common, locusNames) + preprocessing <- c(rg.norm = paste0("See GEO ", GSE, " for details")) + if (what == "Beta") { + out <- GenomicRatioSet(gr = gr[ind2, ], Beta = exprs(gset)[ind1, + , drop = FALSE], M = NULL, CN = NULL, pData = pData(gset), + annotation = c(array = array, annotation = annotation), + preprocessMethod = preprocessing) } - save(out,file = output) + else { + out <- GenomicRatioSet(gr = gr[ind2, ], Beta = NULL, + M = exprs(gset)[ind1, , drop = FALSE], CN = NULL, + pData = pData(gset), annotation = c(array = array, + annotation = annotation), preprocessMethod = preprocessing) + } + return(out) } +save(out,file = output) + +