visualizing and converting the KEGG PATHWAY database to various formats

Frequently asked questions (FAQ)

What are the corresponding terms used by KGGTranslator for KGML entry types (compound, enzyme, gene, ortholog, group, map)‚Äč when choosing GraphML as output format?

GraphML is a graph representation format. It is not designed for biological models specifically. Therefore, there is nothing like “terms” in that format - it's by definition in no way comparable to BioPAX. Still, KEGGtranslator tries to provide users with the most information we can give for a Pathway-Entitiy. If the format does not provide means, like terms, to do that, we are putting the information in a structured way into comment fields or similar ones. The best way to answer this questions is certainly to simply translate a pathway to GraphML, open the file in a text editor of choice and to have a look.

How can I translate KGML2BioPAX?

BioPAX Levels 2 and 3 are included since KEGGtranslator version 2.0.

I want to translate KGML to <anything>!

We have implemented KGML2SBML, KGML2SBMLqual, KGML2BioPAX and KGML2GML or GraphML, because these are very popular data formats. There are a plethora of conversion tools that can convert or import SBML, BioPAX or GraphML. Thus, please convert to SBML, BioPAX or GraphML, using KEGGtranslator and feel free to use any other translator for further formats.

Why does my converted SBML file not contain any reactions?

KEGG provides pathways as KGML formatted XML-documents. KGML files contain entries (which are genes, compounds, references to other pathways, etc.), relations (which are "arrows" in a pathway) and reactions (which are functionally important). In graphical translations (e.g., KGML2GML, KGML2GraphML), all relations are translated to corresponding arrows. This results in a graph-representation of the pathway that can be visualized and used for further graph operations or as pathway picture. In functional translations (e.g., KGML2SBML), all reactions are translated to SBML reactions. This results in a model that can, e.g., later be annotated with kinetics and simulated. Entries are always translated and annotated to nodes (graphical translation) or species (functional translation). Unfortunately, KEGG does not provide reactions for all pathways. Hence, if the source document did not contain any reactions, the target document won't either.

Are signaling pathways supported?

Naturally, signaling events cannot be converted to SBML. But since KEGGtranslator v2.0, these KGML relations that encode signaling events, can now be translated to the SBML qualitative models (qual) extension package or BioPAX.

I want to translate the whole KEGG pathway database. Is this possible?

Yes. First, you need to download all KGML files from to a directory and subdirectories of this directory (e.g., by using WGET). Afterwards, you can simply start KEGGtranslator with "java -jar KEGGtranslator.jar --input <the_directory> --format <desired_output_format>".

I want to use the JAR in my own application and embed the KEGGtranslator functionalities. How can I do that?

The full KEGGtranslator API, together with code examples can be found at

How can I decide between SBML Level 2 and Level 3?

KEGGtranslator automatically picks SBML Level 3 if extensions are used. Hence, if you choose to translate to SBML_qual or activate any of the "add layout extension" or "use groups extension" options, SBML Level 3 is the output format. If you do not pick any of those options, SBML Level 2 Version 4 will be created.

Exception occurs: "Could not retrieve organisms from KEGG."

This exception occurs, when the KEGG database has a downtime. Unfortunately, this result is cached in some versions of KEGGtranslator. Thus, you need to clear the cache in order to get rid of this message: Please delete the file "keggfc.dat" from your KEGGtranslator folder.

I am behind a proxy server and keep getting the error "could not retrieve list of organism from KEGG".

Java provides its own means of configuring proxy servers for the JVM. Windows users may configure their proxy server as described here. Users of all operating systems can specify proxy hosts as command-line options for the JVM as described by Oracle in this article. If you require a proxy server for making connections to the internet, please start KEGGtranslator from the command-line with the following syntax:
java -Xms256m -Xmx1024m -Dhttp.proxyHost=MYPROXYHOST -Dhttp.proxyPort=MYPROXYPORT -Dftp.proxyHost=MYPROXYHOST -Dftp.proxyPort=MYPROXYPORT -DsocksProxyHost=MYPROXYHOST -DsocksProxyPort=MYPROXYPORT -jar KEGGtranslator.jar
Where -Xmx specifies the amount of memory available to the application and KEGGtranslator.jar needs to be replaced with the actual JAR file name of KEGGtranslator (e.g., KEGGtranslator2.1.0.jar). Each occurrence of MYPROXYHOST should be replaced with the name of your proxy (e.g., and each MYPROXYPORT must be replaced with the port number of your proxy (mostly 80 or 8080).
There are also parameters to specify the proxy username and password (-Dhttp.proxyUser and -Dhttp.proxyPassword). Please see several other resources for more information.