returnGeneSetsAsList <- function(fnIn = NULL, catNmIn = fnIn, useBrainLists = FALSE, useBloodAtlases = FALSE,
useStemCellLists = FALSE, useBrainRegionMarkers = FALSE, useImmunePathwayLists = FALSE, geneSubset = NULL) {
if (length(catNmIn) < length(fnIn)) {
catNmIn <- c(catNmIn, fnIn[(length(catNmIn) + 1):length(fnIn)])
write(
"WARNING: not enough category names. \n\t\t\t Naming remaining categories with file names.",
""
)
}
if (is.null(fnIn) & (!(useBrainLists | useBloodAtlases |
useStemCellLists | useBrainRegionMarkers | useImmunePathwayLists))) {
stop("Either enter user-defined lists or set one of the use_____ parameters to TRUE.")
}
glIn <- NULL
if (length(fnIn) > 0) {
for (i in 1:length(fnIn)) {
ext <- substr(fnIn[i], nchar(fnIn[i]) - 2, nchar(fnIn[i]))
if (ext == "csv") {
datIn <- read.csv(fnIn[i])
if (colnames(datIn)[2] == "Gene") {
datIn <- datIn[, 2:3]
}
else {
datIn <- datIn[, 1:2]
}
}
else {
datIn <- scan(fnIn[i], what = "character", sep = "\n")
datIn <- cbind(datIn[2:length(datIn)], datIn[1])
}
colnames(datIn) <- c("Gene", "Category")
datIn[, 2] <- paste(datIn[, 2], catNmIn[i], sep = "__")
glIn <- rbind(glIn, datIn)
}
glIn <- cbind(glIn, Type = rep("User", nrow(glIn)))
}
if (useBrainLists) {
if (!(exists("BrainLists"))) {
BrainLists <- NULL
}
data("BrainLists", envir = sys.frame(sys.nframe()))
write(
"See userListEnrichment help file for details regarding brain list references.",
""
)
glIn <- rbind(glIn, cbind(BrainLists, Type = rep(
"Brain",
nrow(BrainLists)
)))
}
if (useBloodAtlases) {
if (!(exists("BloodLists"))) {
BloodLists <- NULL
}
data("BloodLists", envir = sys.frame(sys.nframe()))
write(
"See userListEnrichment help file for details regarding blood atlas references.",
""
)
glIn <- rbind(glIn, cbind(BloodLists, Type = rep(
"Blood",
nrow(BloodLists)
)))
}
if (useStemCellLists) {
if (!(exists("SCsLists"))) {
SCsLists <- NULL
}
data("SCsLists", envir = sys.frame(sys.nframe()))
write(
"See userListEnrichment help file for details regarding stem cell list references.",
""
)
glIn <- rbind(glIn, cbind(SCsLists, Type = rep(
"StemCells",
nrow(SCsLists)
)))
}
if (useBrainRegionMarkers) {
if (!(exists("BrainRegionMarkers"))) {
BrainRegionMarkers <- NULL
}
data("BrainRegionMarkers", envir = sys.frame(sys.nframe()))
write(
"Brain region markers from http://human.brain-map.org/ -- See userListEnrichment help file for details.",
""
)
glIn <- rbind(glIn, cbind(BrainRegionMarkers, Type = rep(
"HumanBrainRegions",
nrow(BrainRegionMarkers)
)))
}
if (useImmunePathwayLists) {
if (!(exists("ImmunePathwayLists"))) {
ImmunePathwayLists <- NULL
}
data("ImmunePathwayLists", envir = sys.frame(sys.nframe()))
write(
"See userListEnrichment help file for details regarding immune pathways.",
""
)
glIn <- rbind(glIn, cbind(ImmunePathwayLists, Type = rep(
"Immune",
nrow(ImmunePathwayLists)
)))
}
removeDups <- unique(paste(as.character(glIn[, 1]), as.character(glIn[
,
2
]), as.character(glIn[, 3]), sep = "@#$%"))
if (length(removeDups) < length(glIn[, 1])) {
glIn <- t(as.matrix(as.data.frame(strsplit(removeDups,
"@#$%",
fixed = TRUE
))))
}
geneIn <- as.character(glIn[, 1])
labelIn <- paste(as.character(glIn[, 2]), as.character(glIn[, 3]), sep = "__")
if (!is.null(geneSubset)) {
keep <- is.element(geneIn, geneSubset)
geneIn <- geneIn[keep]
labelIn <- labelIn[keep]
}
if (length(geneIn) < 2) {
stop("Please include a larger geneSubset, or set geneSubset=NULL.")
}
allLabels <- sort(unique(labelIn))
geneSet <- list()
for (i in 1:length(allLabels)) geneSet[[i]] <- geneIn[labelIn == allLabels[i]]
names(geneSet) <- allLabels
return(geneSet)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.