[BioC] problems generating a gene2GOlist in topGO
Adrian Alexa
adrian.alexa at gmail.com
Fri Mar 23 11:23:15 CET 2012
Hi Antonio,
you are right, the main problem is with the "test.GO.BP" object. It
must be a list of mappings from genes to GO terms. You can obtain such
a list from your data.frame object by (code not tested):
> gene.to.GO <- split(test.GO.BP$go_biological_process_id, test.GO.BP$ensembl_gene_id)
> gene.to.GO <- lapply(gene.to.GO, unique) # to remove duplicates
This will give you a named list, where the list names are the Ensembl
gene identifiers, and the list entries are the GO terms annotated
with the respective gene.
There is another problem with your data. The list of gene scores
"geneList" contains duplicated names as I can see from your output
(ENSMUSG00000025903 appears 4 times with different scores). This is
not allowed in topGO, and you should find a way to remove the
duplicates.
Hope this helps.
Regard,
Adrian Alexa
On Wed, Mar 21, 2012 at 3:43 PM, António Miguel de Jesus Domingues
<amjdomingues at gmail.com> wrote:
> Dear Bioconductor list,
>
> I have a list of genes from a mouse array (custom design) for which I want
> to perform an analysis with topGO. The package example is running fine and
> I have read the vignettes (though I've probably missed something) but when
> running my own data an error is generated that seems to be related to my
> custom Gene-to-GO map.
>
> The results are a table with several annotations and custom measure of
> significance. I've created a named vector (list) containing all the genes
> present in the array (ensembl IDs) with the corresponding measure of
> significance - geneList.
>
> geneList <- abs(data[ ,2])
> names(geneList) <- data[ ,1]
> geneList[1:5]
> ENSMUSG00000025903 ENSMUSG00000025903 ENSMUSG00000025903 ENSMUSG00000025903
> ENSMUSG00000033813
> 0.11 0.36 0.32 0.07
> 0.08
>
> is(geneList)
> [1] "numeric" "vector" "atomic"
> "EnumerationValue" "numeric or NULL" "vectorORfactor"
>
> summary(geneList)
> Min. 1st Qu. Median Mean 3rd Qu. Max.
> 0.0100 0.0600 0.2000 0.4568 0.5600 18.1600
>
> # a function was then defined to select the significant genes - as in the
> vignette
>
> topDiffGenes <- function(allScore) {
> return(allScore > 1)
> }
>
>
> x <- topDiffGenes(geneList)
> sum(x)
>
> # so far so good
> # because this is a custom array the GO annotation was extracted from
> ensemble using BiomaRt.
> # ensembl61 was used because of the gene format in my results
>
> ensembl61=useMart('ENSEMBL_MART_ENSEMBL',dataset='mmusculus_gene_ensembl',
> host='feb2011.archive.ensembl.org')
>
> test.GO.BP <- getBM(attributes = c("ensembl_gene_id",
> "go_biological_process_id"), filters = "ensembl_gene_id", values =
> All.genes.Ens,
> mart = ensembl61)
> head(test.GO.BP)
>
> ensembl_gene_id go_biological_process_id
> 1 ENSMUSG00000054310 GO:0006355
> 2 ENSMUSG00000054728
> 3 ENSMUSG00000021368 GO:0032313
> 4 ENSMUSG00000021368 GO:0031398
> 5 ENSMUSG00000051335 GO:0055114
> 6 ENSMUSG00000051335 GO:0008152
>
> # but when creating the topGO object a problem appears:
>
> GOdata <- new("topGOdata",
> description = "GO analysis Test",
> ontology = "BP",
> allGenes = geneList,
> geneSel = topDiffGenes,
> annot = annFUN.gene2GO,
> nodeSize = 5,
> gene2GO = test.GO.BP)
>
> Building most specific GOs ..... ( 0 GO terms found. )
>
> Build GO DAG topology .......... ( 0 GO terms and 0 relations. )
> Error in if (is.na(index) || index < 0 || index > length(nd))
> stop(paste("selected vertex", :
> missing value where TRUE/FALSE needed
>
> >From reading the vignette I think that the object test.GO.BP, a data.frame,
> needs to be convert to a list in which each gene corresponds to several GO
> terms:
>
> List of 6
> $ 068724: chr [1:5] "GO:0005488" "GO:0003774" "GO:0001539" "GO:0006935" ...
> $ 119608: chr [1:6] "GO:0005634" "GO:0030528" "GO:0006355" "GO:0045449" ...
> $ 049239: chr [1:13] "GO:0016787" "GO:0017057" "GO:0005975" "GO:0005783" ...
> $ 067829: chr [1:16] "GO:0045926" "GO:0016616" "GO:0000287" "GO:0030145" ...
> $ 106331: chr [1:10] "GO:0043565" "GO:0000122" "GO:0003700" "GO:0005634" ...
> $ 214717: chr [1:7] "GO:0004803" "GO:0005634" "GO:0008270" "GO:0003677" ...
>
> Is this what I need to do next? If how to do it? Or is it something else?
>
> Any help will be appreciated.
>
> Session info:
>> sessionInfo()
> R version 2.14.2 (2012-02-29)
> Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
>
> locale:
> [1] C/en_US.UTF-8/C/C/C/C
>
> attached base packages:
> [1] stats graphics grDevices utils datasets methods base
>
> other attached packages:
> [1] plyr_1.7.1 genefilter_1.36.0
> hgu95av2_2.2.0 hgu95av2.db_2.6.3
> [5] org.Hs.eg.db_2.6.4 affyio_1.22.0
> affydata_1.11.15 affy_1.32.1
> [9] multtest_2.10.0 ALL_1.4.11
> topGO_2.6.0 SparseM_0.91
>
> [13] GO.db_2.6.1 graph_1.32.0
> mogene10sttranscriptcluster.db_8.0.1 org.Mm.eg.db_2.6.4
>
> [17] RSQLite_0.11.1 DBI_0.2-5
> AnnotationDbi_1.16.19 Biobase_2.14.0
> [21] BiocInstaller_1.2.1 biomaRt_2.10.0
> Biostrings_2.22.0 GenomicRanges_1.6.7
>
> [25] IRanges_1.12.6
>
> loaded via a namespace (and not attached):
> [1] MASS_7.3-17 RColorBrewer_1.0-5 RCurl_1.91-1
> XML_3.9-4 annotate_1.32.3 colorspace_1.1-1
> dichromat_1.2-4
> [8] digest_0.5.2 ggplot2_0.9.0 grid_2.14.2
> lattice_0.20-6 memoise_0.1 munsell_0.3
> preprocessCore_1.16.0
> [15] proto_0.3-9.2 reshape2_1.2.1 scales_0.2.0
> splines_2.14.2 stringr_0.6 survival_2.36-12
> tools_2.14.2
> [22] xtable_1.7-0 zlibbioc_1.0.1
>
> --
> --
> António Miguel de Jesus Domingues, PhD
> Neugebauer group
> Max Planck Institute of Molecular Cell Biology and Genetics, Dresden
> Pfotenhauerstrasse 108
> 01307 Dresden
> Germany
>
> e-mail: domingue at mpi-cbg.de
> tel. +49 351 210 2481
> The Unbearable Lightness of Molecular Biology
>
> [[alternative HTML version deleted]]
>
>
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at r-project.org
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
More information about the Bioconductor
mailing list