Figure: Screen-shot of Metannogen. In the right panel, a dataset is edited. The user can modify the information using text-fields, choice menus and toggle buttons. In the left panel an imported network (here the KEGG) is shown in a graphical tree. The datasets are mapped by ID to the reactions of KEGG. A green traffic-light indicates that the respective reaction is included into the model. The text pane below shows the text view of the activated tree node, here the KEGG reaction R00703.
screenshot of Metannogen

Metannogen

Overview

Reconstruction of metabolic networks is the first step in .
On one hand, Metannogen is a full featured browser of reaction networks given in form of an SBML file which allows manual annotation of reactions in a team of curators.

Metannogen is also a graphical work bench to stream line the reconstruction of reaction networks in a team of curators or by a single user. It facilitates collection, organization, documentation and annotation of biochemical reactions.

Being a Java program, it is ready to use without installation.

Different identifier systems: The loaded networks might use different identifier systems for metabolites. This problem is solved by dictionaries to translate the identifiers. With the default Web-start link, the dictionary for translating Palsson-group type identifiers into Kegg is loaded. For example the dictionary contains the line "pyr C00022" telling that the metabolite identifier "pyr" corresponds to the identifier "C00022". Both denote Pyruvate. By explicitely mapping the metabolite identifiers of Palsson-group and Kegg networks, the reactions are indirectly assigned. When users choose the context menu item "Find reactions with same stoichiometry" on for example Lactate-dehydrogenase (LDH), they would find two objects: The LDH in Kegg and the LDH in the Palsson network.
Graphical pathway maps: provides graphical Pathway views which are used in Metannogen to map reactions and metabolites graphically. The progress of reconstruction particular metabolic pathways can be followed since those reaction boxes in the graphical pathway maps are highlighted for which an equivalent reaction exists in the network under reconstruction. Metabolite circles for which a transport reaction is defined are also highlighted. All objects in the graphical maps have a context menu and a . They can be selected which is indicated by . In addition KEGG provides image files of single metabolites. They appear when the mouse is over a metabolite name or metabolite identifier in a text-component of the graphical user interface or when the mouse is over the metabolite circle in the graphical pathway map.
Figure: The pathway map for Glycolysis from KEGG. Reactions for which a corresponding dataset exist have a green or red bar at the left. Green dataset describe reactions of the network and red dataset contain evidence that the described reaction is not part of the network. Selected objects are highlighted by and by color marks on the scroll-bar. All objects on the map have a and a .
screenshot of Metannogen

Cross-references: Metannogen provides customizable references to various databases to allow documentation of the sources of evidence for the reaction under consideration. Some cross-references are automatically generated. Others can be entered during the network reconstruction to explain the curator's opinions. Due to its many functions regarding cross-references and browsing existing networks, it can be conveniently used just as a browser for Kegg or other networks.
Publication management: Metannogen comes with a powerful publication management system. It is based on semi-automated association of publication full text files in PDF format with Pubmed IDs. Downloaded full text files are shared by all curators. Text expression higlighting and search includes the abstract text as well as the full text. The publication management is also available in form of a smaller program package that starts much faster then Metannogen: Webstart only publication manager.
Typing aids: When writing annotation text in the multi line text field of datasets, tab-word-completion is convenient and avoids mistyping of long words. For example metabolite names are sometimes complicated. Consider a long metabolite name such as "UDP-N-acetylmuramoyl-L-alanyl-D-glutamate". It is hard to type such complicated words without error. But with word expansion one does only need to type the first few letters like "UDP-N-a" and hit the tabulator key once or a few times until the desired word appears.
Single and multiuser mode: In single-user mode, the data is stored in a text file on the client machine. Metannogen is suitable for team work because it supports simultaneous access of a central data storage.
Data export: The resulting network consisting of metabolites and reactions can be exported as or any user defined format such as SQL and . The SBML-export allows further analysis such as or analysis in programs like Copasy. Metannogen is very flexible concerning adaptations of the output format towards special needs.
Requirements: One advantage of Metannogen over other solutions is that it does not require advanced infrastructure: Metannogen just needs a PC with Java with 200MBytes of free memory. It has been tested on Linux, Windows-XP (SP2) and OpenSolaris. Occasionally, it is tested on MacOSX.
Availability: GNU-License. Open source. Metannogen is free of charge.

Getting started: Now click the Web-start button in the navigation panel. In 80% of cases the computer readily starts Metannogen. If it does not start then go to the problems section below.

Please follow the main tutorial.

Starting Metannogen

Though there are many Java Runtime Environments (JRE) or so-called Java Virtual Machines (Jvm) available, only the most widely used are appropriate for Metannogen: Java from Sun, JRocket (Oracle), JRE of IBM, Openjdk and the Java shipped with all Macintosh computers.

Visit the Kegg web site. Read the license of the Kegg database which is loaded by Metannogen.
  1. If the web browser is correctly configured Metannogen can be Web-started by clicking the file metannogen.jnlp. For this to work, the web browser needs to know that files with the ending jnlp need to be processed with the application .../javaws or on MS-Windows-platforms ...\javaws.exe. The "Launch"-button in the navigation panel also points to this jnlp file. When Metannogen is configured for a certain project, this jnlp file might need modification to set the required command line parameters. For testing in case of problems, the program javaws can be started directly from the command line with the file metannogen.jnlp as argument.
    The update mechanism of Javaws is not reliable. To clear the Javaws cache, type in a terminal
    javaws -uninstall


    If Metannogen is still not started please visit Is not starting.

    Old versions Go to Previous version / Previous version >2010 to start an old version of metannogen.
  2. As a second and most robust way, the Java file metannogen.jar can be downloaded and started from the command line. The minimal program line is
    java -Xmx200M -jar metannogen.jar
    On 64-bit computers increase the memory to 400M. In case your network environment requires a web proxy then the Web-proxy must be specified by an option of the java command. In our institution we specify the Web-proxy as follows:
    java -Dhttp.proxyHost=realproxy.charite.de -Dhttp.proxyPort=888 -Dhttp.nonProxyHosts="www.charite.de|olli.charite.de"  ...
    
    Since customization of metannogen for the specific project may require several parameters (See manual for details), a convenient way is to make a shell script. For standard computers (Linux, Mac, Solaris) it may look like:
    myWebProxy=-Dhttp.proxyHost=proxy.myInstitution.org
    myData=/home/me/metannogenData
    JAR=http://www.bioinformatics.org/strap/metannogen/metannogen.jar
    curl -O $JAR -z metannogen.jar || wget -N $JAR
    java $myWebProxy -Xmx200M -jar metannogen.jar \
       -port=10117 \
       -networks KEGG RECON1 EHMN \
       -dictionaryOfSpecies myData/myFile.txt 
    
    For Windows PCs or other non-standard environments the script will need to be adapted. The trailing back-slash characters allow to type the long command over several lines. The back-slashes are the last character in the line. No white space must follow the trailing back-slashes. Their meaning is to neutralize the line-end character.
Warning: At first start, downloading and unzipping of the data may take a lot of time. Depending on the speed of the internet connection, this may take up to half an hour.

It is highly recommended that novices work up the main tutorial.

Web-Proxy

If Metannogen starts and is able to download files from the internet you can skip this section.
If you do not know what a is please seek help by a colleague. Metannogen needs access to the Internet. In institutions with an Intranet all computers may access the Web via a proxy server.

If it is started by the proxy settings are usually imported from the browser. A different proxy can be specified with the Java=control panel.

If Metannogen is started without Web-Start then the proxy is specified with command line options. More details can be obtained by pressing "Test proxy settings" in the Running Metannogen.

Deinstallation of Metannogen

Metannogen does not alter system files nor changes the registry of MS-Windows.
At first start the files of the Kegg-Ligand database are downloaded to hard disk.
All files are stored in $HOME/.StrapAlign. Because MS-Windows may exhibit problems with the dot is omitted. If the home directory path contains white space (On old Microsoft systems), a directory is created in the root of the file system such as C:\metannogen\ or in C:\TEMP\.

Documentation

The documentation is available from the Help-menu in the running application. An online version of the documentation can be viewed here: Manual

Tutorials:

Umgehung von VPN

Verschiedene Tabellen werden von http://olli.charite.de geladen. Das erfordert ausserhalb der Charite VPN. Wenn man VPN umgehen möchte, kann man Hepatonet einmalig innerhalb der Charite starten und die die Dateien ~/.StrapAlign/web/olli.charite.de/ (oder C:\StrapAlign\web/olli.charite.de\ ) übertragen.

Erzeugen des Hepatonet-Netzwerkes aus den Datensätzen

Andreas Hoppe

Zentrales PDF Verzeichnes

Pubmed-links mit assoziertem PDF-Volltext erscheinen rot. Allerdings erstmal nur diejenigen, die der Nutzer selbst assozierirt hat. Um unser zentrales PDF repository zu Nutzen, muss man olli mounten. Auf UNIX muss es auf das directory /nfs/sysbio gemountet werden.

Features of Metannogen

GUI

Text views

Data Management/Export

Analysis

Kegg Pathway maps

Customization


Data model of Metannogen

The data entered by curators are stored in datasets. Datasets contain expert opinion in form of structured information as well as free text. Each dataset is saved as one single plain text line with tab separated text fields. In multi-user mode, each dataset is stored in its own file on the server. The file name is the dataset ID. In single-user mode all dataset lines are stored in one single text file on the user's hard-disk.

Usually each dataset describes one biochemical conversion in one or several subcellular compartments. Some enzymes and transport carriers are unspecific. To avoid redundancy and to reduce typing, the syntax can be used. Brace expansion provides a compact form for expressing several different but similar biochemical conversions within one single dataset. Metannogen is an program where all objects are kept in the main memory. This is an advantage with respect to data safety, performance and scriptability.
The disadvantage of Metannogen's OO-design is that performance problems would arise with network exceeding a critical size limit. With modern (year 2010) PCs, this limit is about 10 times the size of the Human Metabolice Network (Palsson et. al.); In earlier days days the RAM was not yet sufficient to hold entire networks in the main memory. Therefore metabolic data management systems followed the client server architecture where the data is stored in a backend. The disadvantage of a relational database approach is, that due to the complexity it is much more liable to data loss as a consequence of programming errors. Further, the slow data access is only compatible with user interfaces that are relatively rigid and less flexible.

In Metannogen biochemical reactions and transporters are instances of the class. The objects hold references to substrates and products which are instances of the class. The object model is very similar to libSBML. This object model allows customization of output scripts.

A metabolic network is an instance of . It is basically a list of objects plus some additional information. The generation of the objects structure for the network may be modulated by optional command line options such as -dictionaryOfSpecies.

Attributes for reactions:

Generally, the comment field is for free text. Nevertheless, information, that is written as variable declarations is captured by the system. The value of the variables can be obtained with getAttribute-methods from the objects. The main purpose of these attributes is to provide the possibility for the curators to enter information in a structured standardized form such that this information can be included in the exported file of the model (SBML, SQL).

Role of included databases

Kegg, and any network file in SBML format can be loaded in Metannogen to serve as a reference and a template for datasets entered into the system. These imported networks are not directly part of the reaction model under construction. They are rather a repository of information for the curator. Nevertheless, these networks provide human readable names for metabolites and reactions and EC-Classes. Using the Web-Start link the Edinburgh human metabolic network and Palsson human network Recon1 are loaded.

Setting up a central data store

Figure: Inter-operation of the Metannogen clients with the central data store. A team of curators are reconstructing a network which is stored on the central server.
screenshot of Metannogen
When several people work on the same project, the data can be kept on a Web-server. There are two options:
  1. A user can register a project on the www.bioinformatics.org server. The respective button appears in the start dialog of Metannogen. The server will return a password. The user needs to write down the passwrod because it is required to change data or to delete the project.
  2. Advanced system administrators can create a repository on their own server. This is explained in a tutorial. But this option will not be relevant to most users.
Each dataset is stored in one short text file on the server Demo_datasets/. The file names are the dataset ID. The central data store is managed by a PERL script metannogen.pl. The Perl script is called in two different ways:
  1. If called without parameters, it delivers all datasets as one single text.
  2. If called with the variable "datasets=...text...", the given datasets are written to the server.
The address of the Perl script of the demo database is metannogenDemo.pl This simple approach is extremely fast and robust. Transfer of a database of 3000 biochemical reactions from the data store to the client takes about a second.

It was also under consideration to store the data in a relational database like Postgres. However, current SQL database back-ends are still too slow too for the functionality and high responsiveness of Metannogen. See the comprehensive benchmark tests for SQLite, Postgres and MySQL.

In a multiuser environment it must be prevented that changes by one user are overridden by another user. Therefore the server response ends with a line "#CURRENTTIME=number" where number is an integer value representing the universal time on the server in seconds or milliseconds. Further it is important, that the program Metannogen is accessing the server directly and not through a because only direct contacts return the correct "last-modified" time for in the http-header.

Controlling the running Metannogen instance by Web links or external Programs

Interprocess communication with another application requires that the other application can talk to Metannogen and optionally that it can launch Metannogen and that Metannogen can talk to the other application.

If Metannogen is started with the option "-port=portnumber" then it may work as a client of Web pages and application. The underlying mechanism is that it is listening to the port10117 for incomming commands.

For demonstration, you can try the following shell commands.
echo listObjects=R00014 | telnet localhost 10117
or
echo metaboliteStructure=C05125 | telnet localhost 10117
or
echo openDataset=R00014 | telnet localhost 10117

MS-Windows When I tested this telnet method under Windows-XP SP2 I found that the telnet command does not work properly. It allows to enter the command like "listObjects=R00014" manually over the keyboard. But it does not allow piping text from the echo command. Conclusion: This mechanism seems not to use with Windows-XP at least with my Windows-XP machine.

Here are Emacs functions using telnet to open datasets from Emacs:

Emacs:The following Emacs-Lisp lines define three commands for Emacs to open a dataset, to view a metabolite structure and to open an object in a browsable tree. The commands act on the token under the cursor:
          (defun word-under-cursor(&optional delimL delimR)
          "The word under the cursor"
          (interactive) 
          (if (search-backward-regexp (or delimL "[^A-Za-z0-9_]")  nil t)  (forward-char) (beginning-of-buffer))
          
          (setq word-under-cursor-begin  (point)) 
          (if (search-forward-regexp  (or delimR "[^A-Za-z0-9_]") nil t) (backward-char) (end-of-buffer))
          
          (setq word-under-cursor-end  (point)) 
          (buffer-substring  word-under-cursor-begin  word-under-cursor-end   )
          )
          
          (defun MetannogenDataset() 
          (interactive) 
          (shell-command  (concat "echo 'openDataset=" (word-under-cursor) "' | telnet localhost 10117 "))
          )
          (defun MetannogenMetaboliteStructure() 
          (interactive) 
          (shell-command  (concat "echo 'metaboliteStructure=" (word-under-cursor "[ \r\t\n]" "[ \r\t\n]" ) "' | telnet localhost 10117 "))
          )
          (defun MetannogenList() 
          (interactive) 
          (shell-command (concat "echo 'listObjects=" (word-under-cursor "[ \r\t\n]" "[ \r\t\n]" ) "' | telnet localhost 10117 "))
          )
        
Above telnet method is very primitive and does not provide all required functions. One may need to
  1. Programmatically define which networks are loaded.
  2. Programmatically provide the location and password of the annotations repository.
  3. Start a Metannogen session if and only if it is not already started.
  4. Accept requests from Metannogen.
Full featured communication is described for two cases:
  1. Communication with a Web Service Web service.
  2. Communication with an program application Program application.

Application programming interface (API)

Metannogen provides a simple and powerful to access the network data programmatically. This API is used to customize the output formats and to modify the Dataset input mask. Users only need to access four classes: This is very simple and should be usable even for users who are not Java programmers. Metannogen provides the required infrastructure: The Java and an Editor with . Code changes take effect immediately and restarting of Metannogen is not necessary (See Hotswap).

Users who prefere to use libSBML instead of this API, need to install libSBML manually. It cannot be installed by Metannogen automatically, because it has as explained in the libSBML-Export script.

Related projects


Bugs and Limitations

The object tree is sometimes not drawn. Workaround: press the redraw button


Bug reports and suggestions to christoph.gille at charite.de