e69ebc9f |
#
initBiomart = function(filter, biomart = "ensembl", host) {
|
149e893b |
requireNamespace("biomaRt")
|
e69ebc9f |
if(missing(host)) host = "www.biomart.org"
ds = list(
"human" = "hsapiens_gene_ensembl",
"mouse" = "mmusculus_gene_ensembl"
)
if(! missing(filter))
ds = ds[filter]
|
3c2a6b97 |
lapply(ds, function(d) biomaRt::useMart(biomart = biomart, dataset = d, host = host))
|
e69ebc9f |
}
|
889fd3fe |
.getMapFromOrg = function(org) {#, map = "SYMBOL") {
|
e69ebc9f |
switch(org,
|
3903eb35 |
human = {
|
149e893b |
if(requireNamespace("org.Hs.eg.db")) get("org.Hs.eg.db")
|
3903eb35 |
},
mouse = {
|
149e893b |
if(requireNamespace("org.Mm.eg.db")) get("org.Mm.eg.db")
|
3903eb35 |
}
|
e69ebc9f |
)
}
getOrthologsFromBiomart = function(eg, target_org, mart) {
org = list(
"human" = "hsapiens_homolog",
"mouse" = "mmusculus_homolog"
)
query = "ensembl_gene_id"
query = c(query, sapply(org[[target_org]], function(x) paste(x, c("ensembl_gene"), sep = "_")))
|
3c2a6b97 |
res = biomaRt::getBM(query, filters = "entrezgene", values = eg, mart = mart)
|
e69ebc9f |
res = res[,2]
res = res[!is.na(res)]
res = unique(res[res != ""])
if(length(res) > 0) {
|
889fd3fe |
map=.getMapFromOrg(target_org)
res=select(map,keys=res,columns="ENTREZID",keytype="ENSEMBL")
unique(na.omit(res$ENTREZID))
|
e69ebc9f |
}
}
|