Entering edit mode
Dear list,
Can anybody suggest how to perform a simple pathway enrichment
analysis starting from a list of gene IDs?
I know about the gage and ROntoTools packages that use KEGGREST to
retrieve an up to date version of the KEGG database, but, as far as I
understand, they require a microarray experiment as input (or at least
fold changes and pvalues).
Since this time around I'm not starting from a microarray experiment
but I just have a gene list, I'm looking for a way to perform pathway
enrichment analysis using a simple numerical method such as Fisher's /
hypergeometric test.
I know the Category package still provides a KEGGHyperG class (which
would be perfect!), but the results are based on the outdated version
of KEGG (via KEGG.db, I guess).
Are there any good alternatives available out there? Would it be
possible to use reactome.db in conjunction with the Category/GOstats
functions for example?
Thank you!
Best,
--
Enrico Ferrero
Department of Genetics
Cambridge Systems Biology Centre
University of Cambridge
Dear Paul - I know a while has elapsed since your post, but I'm trying it out and am stuck at one point. I think the issue I have is inexperience with R/coding rather than a specific problem with this method. Bearing this in mind, would you be able to help?
I have installed/loaded KEGGREST etc.
...and that seems to have gone fine. I've made the Pathways.list and pathway.codes objects without any trouble too.
However, it's at the point of the 'simple' script where you upload your genes of interest into the command:
# subsetting by c(TRUE, FALSE) -- which repeats # as many times as needed, sorts through some # unexpected packaging of geneIDs in the GENE element # of each pw[[n]] genes.by.pathway <- sapply(pathway.codes, function(pwid){ pw <- keggGet(pwid) pw[[1]]$GENE[c(TRUE, FALSE)] })
...so I replace the term '$GENE' with my vector of Gene IDs (Entrez IDs), - in bold below "res.PCA3.Sig.ENTREZ" and the code fails.
I presume my mistake is fairly basic....and hopefully easy to rectify. Something to do with the dollar sign? Or do I need to define functions separately before running this part?
Thanks for any insight,
Matt