[BioC] comparing two or more limma::topTables - in search of a graphical tool

Massimo Pinto pintarello at gmail.com
Thu Nov 19 13:09:20 CET 2009


Dear James,

thank you for your kind and prompt reply. I had always used
vennDiagrams() on the outcome of limma::decideTests(), which, upon
reading the ?vennDiagram help, I gather is only one of two options,
the other being what you are pointing at.

I have tried to play with vennCounts() to feed VennDiagram() and the
result is easy to grasp. So fine with it.

vennSelectBM() seems to give more options to compare differential
expressions. However, I have got some difficulty with getting
vennSelectBM() to work (which I choose over vennSelect() since my
platform is Agilent)

This is my piece of code:

> vennSelectBM(eset.more,designo,results.fit.more.CM3.eb,cont.matrix3, fit.more.CM3.eb, method="same", adj.meth="BH", species="hsapiens")
Checking attributes ... ok
Checking filters ... ok
Error in  tapply(1:len, dataframe[, dataToUse], function(y) dataframe[y,  :
  arguments must have same length
In addition: There were 25 warnings (use warnings() to see them)

So there appears to be something wrong with the length of my
arguments. Here they are

> dim(eset.more)
Features  Samples
    4377       24

> dim(designo)
[1] 24  6

> class(results.fit.more.CM3.eb)
[1] "TestResults"
attr(,"package")
[1] "limma"

> dim(results.fit.more.CM3.eb)
[1] 4377    3

> dim(cont.matrix3)
[1] 6 3

> dim(fit.more.CM3.eb)
[1] 4377    3

> warnings()
Warning messages:
1: The following annotation sources are not available at this mart
 for this species and were not used: GO
2: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
3: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
4: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
5: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
6: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
7: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
8: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
9: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
10: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
11: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
12: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
13: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
14: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
15: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
16: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
17: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
18: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
19: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
20: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
21: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
22: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
23: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
24: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical
25: In FUN(newX[, i], ...) : coercing argument of type 'double' to logical

Back to the original point, a rather trivial graphical representation
may be to display a series of histogram bars, as in the attached
example, where the fold change is reported for a collection of genes,
those that are most significantly regulated, say, or those that get
extracted out from a call to vennSelectBM(). That is close to the
thinking of non microarray-minded researchers, although some of the
features of vennDiagrams are, of course, lost.

Just in case:
> sessionInfo()
R version 2.10.0 (2009-10-26)
x86_64-apple-darwin9.8.0

locale:
[1] C

attached base packages:
 [1] grid      tcltk     tools     stats     graphics  grDevices utils
    datasets  methods   base

other attached packages:
 [1] affycoretools_1.18.0    KEGG.db_2.3.5           GO.db_2.3.5
      affy_1.24.2             gplots_2.7.3            caTools_1.10
 [7] bitops_1.0-4.1          gdata_2.6.1             gtools_2.6.1
      hgug4112a.db_2.3.5      org.Hs.eg.db_2.3.6      RSQLite_0.7-3
[13] DBI_0.2-4               Agi4x44PreProcess_1.6.0 genefilter_1.28.0
      annotate_1.24.0         AnnotationDbi_1.7.20    limma_3.2.1
[19] Biobase_2.6.0           svGUI_0.9-46            svSocket_0.9-48
      svMisc_0.9-56

loaded via a namespace (and not attached):
 [1] Biostrings_2.14.3    Category_2.12.0      GOstats_2.12.0
GSEABase_1.8.0       IRanges_1.4.4        RBGL_1.20.0
RCurl_1.2-0
 [8] XML_2.6-0            affyio_1.13.5        annaffy_1.18.0
biomaRt_2.2.0        gcrma_2.18.0         graph_1.22.2
preprocessCore_1.7.9
[15] splines_2.10.0       survival_2.35-7      xtable_1.5-6

Yours Truly
Massimo

Massimo Pinto
Post Doctoral Research Fellow
Enrico Fermi Centre and Italian Public Health Research Institute (ISS), Rome
http://claimid.com/massimopinto


On Wed, Nov 18, 2009 at 3:42 PM, James W. MacDonald
<jmacdon at med.umich.edu> wrote:
>
> Hi Massimo,
>
> Massimo Pinto wrote:
>>
>> Greetings all,
>>
>> in an experiment which I have analyzed using a factorial design, I
>> have reached a point where I have produced a number of fits to my data
>> with several contrasts and I am interested in making some comparisons
>> between the two or more lists of differentially expressed genes. One
>> tool, as I understand, is to make a VennDiagram based on
>> limma::decideTests(). However, this has the limitation that the IDs of
>> the differentially expressed genes are lost in the diagrams (but I can
>> still manually look in the list produced by decideTests), and if one
>> gene is upregulated in one contrast but down-regulated in another
>> contrast, this gene won't appear in the intersection of the two
>> circles of the Venn Diagram. This information, however, may be
>> interesting and noteworthy.
>
> This last statement is incorrect. The default behavior of vennCounts() is to include both up and down regulated genes in the intersection. This includes genes up-regulated in one contrast and down-regulated in the other.
>
>
>>
>> What graphical tools do exist to assist an investigator in this part
>> of data analysis?
>
> I don't know what other graphical tools would be useful. Certainly listing a bunch of gene IDs in a Venn diagram would not be particularly useful.
>
> If you want annotated tables of the genes in each cell of the Venn diagram, the vennSelect() function in affycoretools may be of use (if you are using Affy chips). If you are using a different platform, the vennSelectBM() function may be useful.
>
> Best,
>
> Jim
>
>
>>
>> Thank you in advance,
>> Massimo
>>
>> Massimo Pinto
>> Post Doctoral Research Fellow
>> Enrico Fermi Centre and Italian Public Health Research Institute (ISS), Rome
>> http://claimid.com/massimopinto
>>
>> _______________________________________________
>> Bioconductor mailing list
>> Bioconductor at stat.math.ethz.ch
>> https://stat.ethz.ch/mailman/listinfo/bioconductor
>> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
>
> --
> James W. MacDonald, M.S.
> Biostatistician
> Douglas Lab
> University of Michigan
> Department of Human Genetics
> 5912 Buhl
> 1241 E. Catherine St.
> Ann Arbor MI 48109-5618
> 734-615-7826
-------------- next part --------------
A non-text attachment was scrubbed...
Name: prova DataGraph vis diff gene expression.pdf
Type: application/pdf
Size: 18335 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/bioconductor/attachments/20091119/f2cece05/attachment.pdf>


More information about the Bioconductor mailing list