From 4aef8a833e4d08cd2802107423547fa3d9d2a4ac Mon Sep 17 00:00:00 2001
From: Holger Brandl <brandl@mpi-cbg.de>
Date: Fri, 12 Dec 2014 11:02:42 +0100
Subject: [PATCH] cont mouse dge analysis

---
 R/bio/cummerutils.R | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/R/bio/cummerutils.R b/R/bio/cummerutils.R
index f5dd638..6d68e7e 100644
--- a/R/bio/cummerutils.R
+++ b/R/bio/cummerutils.R
@@ -32,9 +32,29 @@ guess_mart <- function(gene_id){
 }
 #guess_mart("ENSCAFG00000000043")
 
+getGeneInfo <- function(gene_ids){
+    martName <- guess_mart(gene_ids[1])
 
+    cacheFile <- paste0("geneInfo.",martName, ".RData")
 
-### Hit List Interscection Utilitities (see e.g Helin project for examples)
+    if(!file.exists(cacheFile)){
+        require(biomaRt)
+
+        mousemart = useDataset(martName, mart=useMart("ensembl"))
+        geneInfo <- getBM(attributes=c('ensembl_gene_id', 'external_gene_name', 'description', 'gene_biotype'), mart=mousemart);
+        save(geneInfo, file=cacheFile)
+        unloadNamespace('biomaRt')
+    }else{
+        geneInfo <- local(get(load(cacheFile)))
+    }
+
+    return(geneInfo)
+}
+
+
+
+########################################################################################################################
+### Hit list interscection utilities (see e.g Helin project for examples)
 
 
 
@@ -59,6 +79,7 @@ s1_ne_s2 <- function(s1, s2, ...) c(extractHits(s1, s2, s1Overexpressed=F, ...),
 #hitdata <- rbind(hitdata, data.frame(ensembl_gene_id=AeqBexpr$gene_id, set="aRG==bRG"))
 
 
+## varargs: http://stackoverflow.com/questions/3057341/how-to-use-rs-ellipsis-feature-when-writing-your-own-function
 rintersect <- function(...){
     LDF <- list(...)
     rec_intersect <- LDF[[1]]
-- 
GitLab