Nothing
loadInterestGene <- function(organism="hsapiens", dataType="list", inputGeneFile=NULL, inputGene=NULL, geneType="entrezgene", collapseMethod="mean", cache=NULL, hostName="https://www.webgestalt.org/", geneSet) {
if (is.null(inputGeneFile) && is.null(inputGene)) {
stop(interestGeneError(type="empty"))
} else {
if (organism!="others") {
if (is.null(geneType)) {
stop(interestGeneError(type="emptyType"))
} else {
mapRe <- .uploadGeneExistingOrganism(organism=organism, dataType=dataType, inputGeneFile=inputGeneFile, inputGene=inputGene, geneType=geneType, collapseMethod=collapseMethod, geneSet=geneSet, cache=cache, hostName=hostName)
}
} else {
mapRe <- .uploadGeneOthers(dataType=dataType, inputGeneFile=inputGeneFile, inputGene=inputGene, geneSet=geneSet)
}
}
#if organism is not others, the function will return a mapping result with mapped and unmapped list
#if organism is others, the function will return a matrix with gene list
return(mapRe)
}
#' @importFrom httr content
#' @importFrom readr read_tsv
loadReferenceGene <- function(organism="hsapiens", referenceGeneFile=NULL, referenceGene=NULL, referenceGeneType="entrezgene", referenceSet=NULL, collapseMethod="mean", hostName="https://www.webgestalt.org/", geneSet, interestGeneList, cache=NULL) {
referenceGeneList <- NULL
referenceGeneMap <- NULL
if (is.null(referenceGeneFile) && is.null(referenceGene) && is.null(referenceSet)) {
stop(referenceGeneError(type="empty"))
} else {
if (organism!="others") {
if (!is.null(referenceGeneFile) || !is.null(referenceGene)) {
if (is.null(referenceGeneType)) {
stop(referenceGeneError(type="emptyType"))
} else {
mapRe <- .uploadGeneExistingOrganism(organism=organism, dataType="list", inputGeneFile=referenceGeneFile, inputGene=referenceGene, geneType=referenceGeneType, collapseMethod=collapseMethod, geneSet=geneSet, cache=cache, hostName=hostName)
geneStandardId <- identifyStandardId(hostName=hostName, idType=referenceGeneType, organism=organism, type="interest", cache=cache)
referenceGeneList <- mapRe$mapped[[geneStandardId]]
}
} else { ### referenceGeneFile and referenceGene are both NULL. But referenceSet is not NULL
refS <- listReferenceSet(organism=organism, hostName=hostName, cache=cache)
if (length(which(refS==referenceSet))==0) {
stop(referenceGeneError(type="existingRef"))
}
refStandardId <- identifyStandardId(hostName=hostName, idType=referenceSet, organism=organism, type="reference", cache=cache)
if (startsWith(hostName, "file://")) {
# Getting data from local directory in the old way
refPath <- removeFileProtocol(file.path(hostName, "reference", paste0(paste(organism, referenceSet, refStandardId, sep="_"), ".table")))
referenceGeneList <- read_tsv(refPath, col_names=FALSE, col_types="c-")[[1]]
} else {
response <- cacheUrl(file.path(hostName, "api", "reference"), cache=cache, query=list(organism=organism, referenceSet=referenceSet, standardId=refStandardId))
if (response$status_code != 200) {
stop(webRequestError(response))
}
# API now just returns one single column
referenceGeneList <- read_tsv(content(response), col_names=FALSE, col_types="c")[[1]]
}
}
} else { ## For other organisms
if (!is.null(referenceGeneFile) || !is.null(referenceGene)) {
referenceGeneList <- .uploadGeneOthers(dataType="list", inputGeneFile=referenceGeneFile, inputGene=referenceGene, geneSet=geneSet)
referenceGeneList <- unique(referenceGeneList)
} else {
stop(referenceGeneError(type="empty"))
}
}
}
## compare interest gene list and reference gene list
if (length(intersect(interestGeneList, intersect(referenceGeneList, geneSet$gene)))==0) {
stop(referenceGeneError(type="interestEmpty"))
}
return(referenceGeneList)
}
#' @importFrom dplyr filter
.uploadGeneExistingOrganism <- function(organism, dataType, inputGeneFile, inputGene, geneType, collapseMethod, geneSet, cache, hostName) {
geneMap <- idMapping(organism=organism, dataType=dataType, inputGeneFile=inputGeneFile, inputGene=inputGene, sourceIdType=geneType, targetIdType=NULL, collapseMethod=collapseMethod, mappingOutput=FALSE, cache=cache, hostName=hostName)
#gene_standardId <- identifyStandardId(hostName=hostName,idtype=geneType,organism=organism,type="interest") ##identifyStandardId in idMappingComponent.R
#if(gene_standardId!=databaseStandardId){ ###the standardId of the input genes should be the same with the standardarId of the functional database
# return(interestGeneError(type="unmatch"))
#}
geneMapMappedList <- geneMap$mapped
standardId <- geneMap$standardId
geneList <- as.character(unique(geneMapMappedList[[standardId]]))
ov <- intersect(geneList, geneSet$gene)
if (length(ov)==0) {
stop(interestGeneError(type="unannotated"))
}
###Because if all genes are annotated to only one category, GSEA will return the error, we need to avoid this error by reporting the error in the R#
geneSets <- unique((filter(geneSet, .data$gene %in% geneList))[["geneSet"]])
if (length(geneSets) == 1) {
stop(interestGeneError(type="onlyOne"))
}
return(geneMap)
}
#' @importFrom dplyr filter
.uploadGeneOthers <- function(dataType,inputGeneFile,inputGene,geneSet){
inputGene <- formatCheck(dataType=dataType,inputGeneFile=inputGeneFile,inputGene=inputGene)
if (dataType == "list") {
geneList = inputGene
} else if (dataType == "rnk") {
geneList = inputGene$gene
}
ov <- intersect(geneList, geneSet$gene)
if (length(ov)==0) {
stop(interestGeneError(type="unannotated"))
}
###Because if all genes are annotated to only one category, GSEA will return the error, we need to avoid this error by reporting the error in the R#
geneSets <- unique((filter(geneSet, .data$gene %in% geneList))[["geneSet"]])
if (length(geneSets) == 1) {
stop(interestGeneError(type="onlyOne"))
}
return(inputGene)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.