[BioC] Extracting genes within venn diagram
James W. MacDonald
jmacdon at med.umich.edu
Thu Nov 6 14:44:10 CET 2008
Hi Celine,
Celine Carret wrote:
> Hi all,
>
> I have a venn diagram obtained from Limma using decideTests() default
> and I would like to extract the gene lists specific for each contrasts.
>
> Here is what I did:
>
>> matrix <- read.csv("cells-HumanDB.csv") ##columns 1 and 2 are gene
> names and uniprot labels, numerical values start on column 3
>
>> design <- model.matrix(~
> -1+factor(c(1,1,1,2,2,2,3,3,4,4,4,5,5,5,6,6,6)))
>> colnames(design) <- c("GFPneg12h",
> "GFPpos12h","GFPneg2h","GFPpos2h","DEXpos2h","NI")
>> contrast.matrix <-
> makeContrasts((GFPpos12h-GFPneg12h)-NI,(GFPpos2h-GFPneg2h)-NI,(DEXpos2h-
> GFPneg2h)-NI,((GFPpos2h-GFPneg2h)-NI)-((DEXpos2h-GFPneg2h)-NI),((GFPpos1
> 2h-GFPneg12h)-NI)-((GFPpos2h-GFPneg2h)-NI), levels=design)
>> fit <- lmFit(matrix[,3:19], design,weights=arrayw)
>> fit2 <- contrasts.fit(fit, contrast.matrix)
>> fit2 <- eBayes(fit2)
>> results <- decideTests(fit2)
>> vennDiagram(results[,2:3],cex=0.7)
>
> and I get as numbers: 43 (682) 58
> and outside circles 712
>
> Looking at the mail list archive I found a line of code from Gordon to
> extract gene list within a venn diagram such as:
>
>> alls <- apply(results[,2:3],1,all)
> There were 50 or more warnings (use warnings() to see the first 50)
>> fit2$genes[alls,]
> And I get 682 genes corresponding to the intersection
>
>> alls <- apply(!results[,2:3],1,all)
>> fit2$genes[alls,]
> Gave me 712 genes that are outside the venn diagram
>
> But how can I get the genes specific for either contrast? (so in this
> case 43 genes on one hand and 58 genes on another)
>
> I also found from Jim this code using affycoretools functions but it
> doesn't give me the right numbers and I can't understand why:
>
>> alls <- affycoretools:::makeIndices(results[,2:3])
Most likely what you want here is
alls <- affycoretools:::makeIndices(results[,2:3], "both")
as the default for vennCounts() is "both" (and you have implicitly
called vennCounts() in your call to vennDiagram()).
Best,
Jim
>> alls.genes <- lapply(alls, function(x) row.names(results[,2:3])[x])
>> alls.genes
> [[1]] gives 56 genes
> [[2]] gives 71 genes
> [[3]] gives 669 genes
> Shouldn't I get [[1]] 43; [[2]] 58 and [[3]] 682?
>
> I will be grateful for any help or advice on this matter.
> Best wishes
> Celine
>
> Here is my R session info
>> sessionInfo()
> R version 2.8.0 (2008-10-20)
> i386-pc-mingw32
>
> locale:
> LC_COLLATE=English_United Kingdom.1252;LC_CTYPE=English_United
> Kingdom.1252;LC_MONETARY=English_United
> Kingdom.1252;LC_NUMERIC=C;LC_TIME=English_United Kingdom.1252
>
> attached base packages:
> [1] splines tools stats graphics grDevices utils datasets
> methods base
>
> other attached packages:
> [1] affycoretools_1.14.0 annaffy_1.14.0 KEGG.db_2.2.5
> gcrma_2.14.1 matchprobes_1.14.0
> [6] biomaRt_1.16.0 GOstats_2.8.0 Category_2.8.0
> genefilter_1.22.0 survival_2.34-1
> [11] RBGL_1.18.0 annotate_1.20.0 xtable_1.5-4
> GO.db_2.2.5 RSQLite_0.7-1
> [16] DBI_0.2-4 AnnotationDbi_1.4.0 graph_1.20.0
> affy_1.20.0 limma_2.16.2
> [21] Biobase_2.2.0
>
> loaded via a namespace (and not attached):
> [1] affyio_1.10.1 cluster_1.11.11 GSEABase_1.4.0
> preprocessCore_1.4.0 RCurl_0.91-0
> [6] XML_1.94-0.1
>
>
--
James W. MacDonald, M.S.
Biostatistician
Hildebrandt Lab
8220D MSRB III
1150 W. Medical Center Drive
Ann Arbor MI 48109-0646
734-936-8662
More information about the Bioconductor
mailing list