Hi all,
I have a script to find KEGG pathways and it works perfectly for human or mouse. I am now trying to use it with a non-model organism, Stylophora pistillata, but which is in the KEGG organism list (see "spis" at https://www.genome.jp/kegg/catalog/org_list.html). In my script, I am using the kegg.gsets function from gage package as below:
kg.spis=kegg.gsets("spis")
However I got this error message:
Note: Unknown species 'spis'! Error in kegg.species.code(species, na.rm = T, code.only = F) : All species are invalid! Calls: kegg.gsets -> kegg.species.code Execution halted
Since the species exists in KEGG, why does gage not find it ?
Thanks in advance for your help.
Melanie
sessionInfo() R version 3.6.1 (2019-07-05) Platform: x8664-suse-linux-gnu (64-bit) Running under: openSUSE 13.2 (Harlequin) (x8664)
Matrix products: default BLAS: /usr/lib64/R/lib/libRblas.so LAPACK: /usr/lib64/R/lib/libRlapack.so
locale:
[1] LCCTYPE=enGB.utf8 LCNUMERIC=C
[3] LCTIME=enGB.utf8 LCCOLLATE=enGB.utf8
[5] LCMONETARY=enGB.utf8 LCMESSAGES=enGB.utf8
[7] LCPAPER=enGB.utf8 LCNAME=C
[9] LCADDRESS=C LCTELEPHONE=C
[11] LCMEASUREMENT=enGB.utf8 LC_IDENTIFICATION=C
attached base packages: [1] parallel stats4 stats graphics grDevices utils datasets [8] methods base
other attached packages:
[1] forcats0.4.0 stringr1.4.0 dplyr0.7.6
[4] purrr0.3.2 readr1.3.1 tidyr0.8.3
[7] tibble2.1.1 ggplot23.2.0 tidyverse1.2.1
[10] gageData2.22.0 gage2.34.0 pathview1.24.0
[13] org.Hs.eg.db3.5.0 AnnotationDbi1.46.1 IRanges2.18.2
[16] S4Vectors0.22.1 Biobase2.38.0 BiocGenerics0.30.0
[19] KEGGREST_1.24.0
loaded via a namespace (and not attached):
[1] httr1.3.1 bit640.9-7 jsonlite1.6 modelr0.1.4
[5] assertthat0.2.1 blob1.1.1 cellranger1.1.0 pillar1.3.1
[9] RSQLite2.1.1 backports1.1.4 lattice0.20-38 glue1.3.1
[13] digest0.6.18 XVector0.24.0 rvest0.3.4 colorspace1.4-1
[17] XML3.98-1.9 pkgconfig2.0.2 broom0.5.2 haven2.1.0
[21] zlibbioc1.24.0 scales1.0.0 generics0.0.2 withr2.1.2
[25] lazyeval0.2.1 cli1.1.0 magrittr1.5 crayon1.3.4
[29] readxl1.3.1 memoise0.2.1 KEGGgraph1.38.0 fansi0.3.0
[33] nlme3.1-140 xml21.1.1 graph1.56.0 tools3.6.1
[37] hms0.4.2 munsell0.5.0 bindrcpp0.2.2 Biostrings2.52.0
[41] compiler3.6.1 rlang0.4.0 grid3.6.1 rstudioapi0.8
[45] gtable0.3.0 DBI1.0.0 curl3.2 R62.4.0
[49] lubridate1.7.4 bit1.1-14 utf81.1.4 bindr0.1.1
[53] Rgraphviz2.22.0 stringi1.2.4 Rcpp1.0.1 png0.1-7
[57] tidyselect_0.2.5
I've never used gage and I don't want to mess up your script that you already have working, but another possibility would be to use the package KEGGREST.
Hope this helps a bit!
Hi ! Thanks a lot for your reply. Indeed, KEGGREST seems to be a better solution in this case. I guess I am going to write a new special script for non-model organism. Thanks for the example and for your help :)
In contrast to what you think, the function
kegg.gsets()
does NOT download the pathway information directly from the KEGG database, but it rather uses a local copy of the pathway information (or it downloads this file from the website of thegage
authors). Relevant code in the functionkegg.gsets()
are lines 37-44:Although KEGG has pathway info on your organism of interest, apparently no info on your organism of interest is present in the
gage
pathway file. So you either download this info yourselves using e.g. theKEGGREST
package (as mentioned below), or you may want to get in touch withe the authors of thegage
package to ask whether they are willing to update their KEGG pathway file.Hi, thank you for your reply. I think you're right, my species is not in the gage pathway file. I will try the KEGGREST package as mentionned above. Thank you for your help and your time.