diff --git a/dist/build.xml b/dist/build.xml
index 5657f40..abb93dd 100644
--- a/dist/build.xml
+++ b/dist/build.xml
@@ -83,7 +83,6 @@
-
@@ -105,7 +104,6 @@
-
diff --git a/doc/publications/2010-06 Method/2012-06 BMC/CoverLetter_KGTMethod_BMC.doc b/doc/publications/2010-06 Method/2012-06 BMC/CoverLetter_KGTMethod_BMC.doc
deleted file mode 100644
index 2ec5ac3..0000000
Binary files a/doc/publications/2010-06 Method/2012-06 BMC/CoverLetter_KGTMethod_BMC.doc and /dev/null differ
diff --git a/doc/publications/2010-06 Method/2012-06 BMC/Coverletter_KEGGtranslator_method_bmc.pdf b/doc/publications/2010-06 Method/2012-06 BMC/Coverletter_KEGGtranslator_method_bmc.pdf
deleted file mode 100644
index fb9c09b..0000000
Binary files a/doc/publications/2010-06 Method/2012-06 BMC/Coverletter_KEGGtranslator_method_bmc.pdf and /dev/null differ
diff --git a/doc/publications/2010-06 Method/2012-06 BMC/KEGGtranslator_method_bmc.pdf b/doc/publications/2010-06 Method/2012-06 BMC/KEGGtranslator_method_bmc.pdf
deleted file mode 100644
index f0e00fb..0000000
Binary files a/doc/publications/2010-06 Method/2012-06 BMC/KEGGtranslator_method_bmc.pdf and /dev/null differ
diff --git a/doc/publications/2010-06 Method/2012-06 BMC/KEGGtranslator_method_bmc.tex b/doc/publications/2010-06 Method/2012-06 BMC/KEGGtranslator_method_bmc.tex
deleted file mode 100644
index 7c62864..0000000
--- a/doc/publications/2010-06 Method/2012-06 BMC/KEGGtranslator_method_bmc.tex
+++ /dev/null
@@ -1,783 +0,0 @@
-%% BioMed_Central_Tex_Template_v1.06
-%% %
-% bmc_article.tex ver: 1.06 %
-% %
-
-%%IMPORTANT: do not delete the first line of this template
-%%It must be present to enable the BMC Submission system to
-%%recognise this template!!
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% %%
-%% LaTeX template for BioMed Central %%
-%% journal article submissions %%
-%% %%
-%% <14 August 2007> %%
-%% %%
-%% %%
-%% Uses: %%
-%% cite.sty, url.sty, bmc_article.cls %%
-%% ifthen.sty. multicol.sty %%
-%% %%
-%% %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% %%
-%% For instructions on how to fill out this Tex template %%
-%% document please refer to Readme.pdf and the instructions for %%
-%% authors page on the biomed central website %%
-%% http://www.biomedcentral.com/info/authors/ %%
-%% %%
-%% Please do not use \input{...} to include other tex files. %%
-%% Submit your LaTeX manuscript as one .tex document. %%
-%% %%
-%% All additional figures and files should be attached %%
-%% separately and not embedded in the \TeX\ document itself. %%
-%% %%
-%% BioMed Central currently use the MikTex distribution of %%
-%% TeX for Windows) of TeX and LaTeX. This is available from %%
-%% http://www.miktex.org %%
-%% %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\documentclass[10pt]{bmc_article}
-
-
-
-% Load packages
-\usepackage{cite} % Make references as [1-4], not [1,2,3,4]
-\usepackage{url} % Formatting web addresses
-\usepackage{ifthen} % Conditional
-\usepackage{multicol} %Columns
-\usepackage[utf8]{inputenc} %unicode support
-%\usepackage[applemac]{inputenc} %applemac support if unicode package fails
-%\usepackage[latin1]{inputenc} %UNIX support if unicode package fails
-\urlstyle{rm}
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% %%
-%% If you wish to display your graphics for %%
-%% your own use using includegraphic or %%
-%% includegraphics, then comment out the %%
-%% following two lines of code. %%
-%% NB: These line *must* be included when %%
-%% submitting to BMC. %%
-%% All figure files must be submitted as %%
-%% separate graphics through the BMC %%
-%% submission process, not included in the %%
-%% submitted article. %%
-%% %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-\def\includegraphic{}
-\def\includegraphics{}
-
-
-
-\setlength{\topmargin}{0.0cm}
-\setlength{\textheight}{21.5cm}
-\setlength{\oddsidemargin}{0cm}
-\setlength{\textwidth}{16.5cm}
-\setlength{\columnsep}{0.6cm}
-
-\newboolean{publ}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% %%
-%% You may change the following style settings %%
-%% Should you wish to format your article %%
-%% in a publication style for printing out and %%
-%% sharing with colleagues, but ensure that %%
-%% before submitting to BMC that the style is %%
-%% returned to the Review style setting. %%
-%% %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-%Review style settings
-%\newenvironment{bmcformat}{\begin{raggedright}\baselineskip20pt\sloppy\setboolean{publ}{false}}{\end{raggedright}\baselineskip20pt\sloppy}
-
-%Publication style settings
-%\newenvironment{bmcformat}{\fussy\setboolean{publ}{true}}{\fussy}
-
-%New style setting
-\newenvironment{bmcformat}{\baselineskip20pt\sloppy\setboolean{publ}{false}}{\baselineskip20pt\sloppy}
-
-
-%% CUSTOM STUFF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\usepackage{booktabs} % allows \toprule and other table formatting utilities
-\usepackage{multirow}
-\usepackage[table]{xcolor} % U.a. allows for defining colors in HTML models
-\usepackage[pdfborder={0 0 0}]{hyperref} % links, but no colored boxes
-\usepackage{amssymb} % Provides the checkmark symbol
-
-% Figure captions are just used for the label and numbering. Do not show any text within the figure environment.
-%\usepackage[labelformat=empty]{caption}
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Some macros
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\plus{\textsuperscript{+}}
-\newcommand{\TODO}[1]{\textcolor{red}{\textbf{#1}}}
-
-% B
-\newcommand{\BiochemicalReaction}{\texttt{Bio\-chemical\-Reaction}}
-\newcommand{\BiochemicalReactions}{\texttt{Bio\-chemical\-Reaction}s}
-
-% C
-\newcommand{\Catalysis}{\texttt{Cata\-lysis}}
-\newcommand{\ComplexAssembly}{\texttt{Complex\-Assembly}}
-\newcommand{\Conversion}{\texttt{Conversion}}
-\newcommand{\control}{\texttt{control}}
-\newcommand{\Control}{\texttt{Control}}
-\newcommand{\Controller}{\texttt{Controller}}
-\newcommand{\Controllers}{\texttt{Controller}s}
-\newcommand{\Controlled}{\texttt{Controlled}}
-\newcommand{\conversion}{\texttt{conversion}}
-\newcommand{\Complex}{\texttt{Complex}}
-\newcommand{\Complexes}{\texttt{Complex}es}
-
-% E
-\newcommand{\EntityReference}{\texttt{EntityReference}}
-\newcommand{\EntityReferences}{\texttt{EntityReference}s}
-\newcommand{\Entity}{\texttt{Entity}}
-
-
-% F
-\newcommand{\functionTerm}{\texttt{functionTerm}}
-\newcommand{\functionTerms}{\texttt{functionTerm}s}
-
-% I
-\newcommand{\Interaction}{\texttt{Inter\-action}}
-\newcommand{\InteractionVocabulary}{\texttt{Inter\-action\-Vo\-ca\-bu\-la\-ry}}
-
-% M
-\newcommand{\model}{\texttt{model}}
-\newcommand{\Modulation}{\texttt{Modulation}}
-\newcommand{\MolecularInteraction}{\texttt{Mo\-le\-cu\-lar\-In\-ter\-ac\-tion}}
-\newcommand{\ModifierSpeciesReference}{\texttt{Mo\-di\-fier\-Species\-Reference}}
-
-
-% P
-%\newcommand{\PhysicalEntity}{\texttt{Physical\-Entity}}
-\newcommand{\physicalInteraction}{\texttt{physical\-Inter\-action}}
-\newcommand{\protein}{\texttt{protein}}
-\newcommand{\proteins}{\texttt{protein}s}
-
-% Q
-\newcommand{\qualitativeModel}{\texttt{qualitative\-Model}}
-%\newcommand{\quantitativeModel}{\texttt{quantitative\-Model}}
-\newcommand{\qualitativeSpecies}{\texttt{qualitative\-Species}}
-
-% R
-\newcommand{\reaction}{\texttt{re\-ac\-tion}}
-\newcommand{\reactions}{\texttt{re\-ac\-tion}s}
-
-% S
-\newcommand{\species}{\texttt{species}}
-\newcommand{\smallMolecule}{\texttt{small\-Molecule}}
-\newcommand{\SmallMolecules}{\texttt{Small\-Molecule}s}
-
-
-% T
-\newcommand{\TemplateReactionRegulation}{\texttt{Template\-Reaction\-Regulation}}
-\newcommand{\TemplateReaction}{\texttt{Template\-Reaction}}
-\newcommand{\transition}{\texttt{transition}}
-\newcommand{\transitions}{\texttt{transition}s}
-\newcommand{\Transport}{\texttt{Transport}}
-\newcommand{\TransportWithBiochemicalReaction}{\texttt{Transport\-With\-Biochemical\-Reaction}}
-
-% X
-\newcommand{\Xrefs}{\texttt{Xref}s}
-
-\hyphenation{
-bal-ance
-con-ver-ter
-trans-la-tor
-KEGG-con-ver-ter
-KEGG-trans-la-tor
-mo-le-cule
-be-tween
-straight-for-ward
-}
-
-%% END MACROS SECTION
-
-
-% Begin ...
-\begin{document}
-\begin{bmcformat}
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% %%
-%% Enter the title of your article here %%
-%% %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\title{Precise generation of systems biology models from KEGG pathways}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% %%
-%% Enter the authors here %%
-%% %%
-%% Ensure \and is entered between all but %%
-%% the last two authors. This will be %%
-%% replaced by a comma in the final article %%
-%% %%
-%% Ensure there are no trailing spaces at %%
-%% the ends of the lines %%
-%% %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-\author{
-Clemens Wrzodek\correspondingauthor$^1$
-\email{Clemens Wrzodek\correspondingauthor - clemens.wrzodek@uni-tuebingen.de} and
-Finja B\"uchel$^1$ \email{Finja B\"uchel - finja.buechel@uni-tuebingen.de} and
-Andreas Dr\"ager$^1$ \email{Andreas Dr\"ager - andreas.draeger@uni-tuebingen.de} and
-Manuel Ruff$^1$ \email{Manuel Ruff - manuel.ruff@student.uni-tuebingen.de} and
-Andreas Zell$^1$ \email{Andreas Zell - andreas.zell@uni-tuebingen.de}
-}
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% %%
-%% Enter the authors' addresses here %%
-%% %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\address{%
- \iid(1)Center for Bioinformatics Tuebingen (ZBIT), University of Tuebingen, Sand 1, 72076 T\"ubingen, Germany
-}%
-
-\maketitle
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% %%
-%% The Abstract begins here %%
-%% %%
-%% Please refer to the Instructions for %%
-%% authors on http://www.biomedcentral.com %%
-%% and include the section headings %%
-%% accordingly for your article type. %%
-%% %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-\begin{abstract}
-\textbf{Background:} The KEGG PATHWAY database provides a plethora of pathways for a diversity of organisms.
-All pathway components are directly linked to other KEGG databases, such as KEGG COMPOUND or KEGG REACTION.
-%
-Therefore, the pathways can be extended with an enormous amount of information and provide a foundation for initial structural modeling approaches.
-%
-As a drawback, KGML-formatted KEGG pathways are primarily intended for visualization purposes and often omit important details for the sake of a clear arrangement of its entries.
-Thus, a direct conversion into systems biology models would produce incomplete and erroneous models.
-
-\textbf{Results:} Here, we present a precise method for processing and converting KEGG pathways into initial metabolic and signaling models encoded in the standardized community pathway formats SBML (Levels 2 and 3) and BioPAX (Levels 2 and 3). %, including the qualitative models, groups and layout extensions,
-This method involves correcting invalid or incomplete KGML content, creating complete and valid stoichiometric reactions, translating relations to signaling models and augmenting the pathway content with various information, such as cross-references to Entrez Gene, OMIM, UniProt ChEBI, and many more.
-%
-Finally, we compare several existing conversion tools for KEGG pathways and show that the conversion from KEGG to BioPAX does not involve a loss of information, whilst lossless translations to SBML can only be performed using SBML Level~3, including its recently proposed qualitative models and groups extension packages.
-
-\textbf{Conclusions:} Building correct BioPAX and SBML signaling models from the KEGG database is a unique characteristic of the proposed method. Further, there is no other approach that is able to appropriately construct metabolic models from KEGG pathways, including correct reactions with stoichiometry. The resulting initial models, which contain valid and comprehensive SBML or BioPAX code and a multitude of cross-references, lay the foundation to facilitate further modeling steps.
-
-% Notes for conclusions
-%The proposed method is the first Appropriate encoding of signaling models in SBML or BioPAX is
-%Signaling, kein anderer stoichiometry, lay foundations (initial) facilitate further steps, annotations
-%
-\textbf{Keywords:} KEGG, KGML, SBML, BioPAX, modeling, systems biology, qualitative modeling, quantitative modeling, converter, comparison
-\end{abstract}
-
-
-
-\ifthenelse{\boolean{publ}}{\begin{multicols}{2}}{}
-
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% %%
-%% The Main Body begins here %%
-%% %%
-%% Please refer to the instructions for %%
-%% authors on: %%
-%% http://www.biomedcentral.com/info/authors%%
-%% and include the section headings %%
-%% accordingly for your article type. %%
-%% %%
-%% See the Results and Discussion section %%
-%% for details on how to create sub-sections%%
-%% %%
-%% use \cite{...} to cite references %%
-%% \cite{koon} and %%
-%% \cite{oreg,khar,zvai,xjon,schn,pond} %%
-%% \nocite{smith,marg,hunn,advi,koha,mouse}%%
-%% %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
-
-%%%%%%%%%%%%%%%%
-%% Background %%
-%%
-\section*{Background}
-
-The KEGG PATHWAY database provides a valuable resource for initial modeling approaches of specific biological networks \cite{Kanehisa2000,KEGG}. The database contains pathway maps for a multitude of different organisms and most provided information is cross-linked with other KEGG databases. Since many years, this database has been one of the most important sources for building initial structural models of various pathways \cite{Bauer-Mehren2009,Oberhardt2009}. All pathway information is stored in KGML formatted XML-files, which are barely supported by other applications. In systems biology, two wide-spread formats for modeling and exchanging pathways are the Systems Biology Markup Language (SBML) \cite{Finney2003} and Biological Pathway Exchange (BioPAX) \cite{Demir2010_short}. These formats can be used with graphical modeling applications (e.g., CellDesigner \cite{Funahashi2008} or Cytoscape \cite{Cytoscape}), complemented with rate laws (e.g., SBMLsqueezer \cite{SBMLSqueezer}), used for flux balance analysis (e.g., FASIMU \cite{Fasimu}), and many more applications. Therefore, converters exist that perform mostly basic conversions from KGML to those formats \cite{KEGG2SBML,Kuentzer2007,KEGGconverter,KEGG2BioPAX_and_SBML}. The drawback of many of those converters is that even for creating initial models, a basic translation of a KGML document to an SBML or BioPAX document is not sufficient.
-
-The KGML documents provided by KEGG are mainly designed for graphical representations of pathways and consist of entries (which correspond to nodes in a pathway map), relations (which correspond to edges in a pathway map) and reactions. Relations are mainly contained in signaling maps and encode information such as ``A activates B". Reactions are primarily contained in metabolic pathway maps and consist of substrates, products and information about reversibility of the reaction. Given this information, it seems straightforward to derive an algorithm for viable metabolic models. But a closer look on the actual maps shows that even those reactions are often created for visualization and not for modeling or simulation purposes. Reactions are sometimes bundled, i.e., one reaction instance is built and multiple reaction identifiers pointing to different reactions, are assigned. There are often missing reactants for reactions, stoichiometric information is omitted and also the list of enzymes, catalyzing a reaction, is not necessarily entirely contained in the KGML document. Similar difficulties arise for the entries in a KGML document.
-For the sake of a high-quality graphical representation of the pathway, entries or other elements are sometimes duplicated.% in the KGML file
-When interpreting the information content of those files, duplications must be taken into account.
-%
-Furthermore, a KGML document may contain references to entries, which are not physically present in the actual organism and the KGML specification even allows entries to be reactions.
-All those exemplary mentioned problems show that simple one-to-one translations of KEGG pathway maps to other formats are not sufficient to build reliable and useful models.
-
-To overcome all those drawbacks, we deeply investigated the KGML documents, as well as the content of all cross-linked KEGG databases, and developed strategies for building useful initial models in SBML and BioPAX. Besides automatically correcting many of the mentioned issues, the proposed method includes extensive annotation and augmentation of all provided information to ease further model building and usage of those translated pathway maps. This ranges from adding simple database cross-references (e.g., to UniProt or Entrez Gene) over annotation of chemical formulas and molecular weight of small molecules, to an automated atom balance check of all reactions. All those strategies are now implemented in the second release of the KEGGtranslator application \cite{Wrzodek2011} and described in detail in the following sections.
-
-
-
-
-\section*{Preparation of pathway models from the KEGG database}
-
-Several subsequent steps are involved in the creation of initial models from KEGG pathways. All of these steps are described in detail in the following sections and depicted as a flowchart in Figure~1.
-
-\subsection*{The KEGG Markup Language (KGML)}
-KEGG uses the KGML format to encode its pathways \cite{KGML}. For each pathway, a generic reference pathway exists that is derived for a plethora of different organisms. All nodes in those pathways mainly correspond to proteins, small molecules, other referenced pathways or complexes and are encoded as entries in KGML. These entries have a type attribute that further specifies its nature. Additionally, they may have a graphics attribute that is essential for pathway visualizations. Entries corresponding to groups contain components that reference their contained entries.
-
-Besides entries, KGML specifies reactions, which contain substrates and products that are essentially references to the corresponding entries. The only additional information that is given for reactions is a type attribute: either `reversible' or `irreversible'. Moreover, KEGG specifies relations, which are primarily important for the visualization of signaling pathways. Relations contain network connections between two entries, such as ``A phosphorylates B", or ``A inhibits B" but they do not provide sufficient information for conversions to biochemical reactions.
-
-
-\subsection*{Preprocessing and correcting issues in the input KGML}
-
-
-Prior to converting the KEGG pathways to other modeling languages, several issues need to be corrected in preprocessing steps.
-%
-Operations that are not linked to SBML or to BioPAX are performed as first step directly on the input KGML. These include operations that involve adding or removing entries from the KGML document, as well as processing contained reactions. The actual conversion to models is independent of those steps and is performed after the preprocessing.
-To generate reliable models, one might want to remove links to other pathway maps from the document. These referenced pathway maps are no physical instances and thus need to be ignored for some model simulation software. However, they might be required for cross-linking pathways. Furthermore, orphans (i.e., entries that are not present in reactions or relations) might be useless for some modeling approaches and therefore may also be removed.
-%
-An important step towards building metabolic models are correct biochemical reactions. The reactions specified in the KGML require significant preprocessing in order to reliably translate these to SBML or BioPAX.
-%
-%
-KEGG files often contain bundled reactions. These must be disassembled into separate KGML reactions. Otherwise, it is not possible to create balanced and correct biochemical reactions if models keep multiple reactions that are bundled into one record.
-Since the information provided in the KGML is limited, the KEGG API needs to be queried for further correction steps. From the KEGG API, information about reversibility of the reaction is retrieved, as well as the reaction equation, including all substrates, products, catalysts, and stoichiometric information. The reversibility is directly annotated on the reaction, the stoichiometric information has to be stored in separate classes, which are later translated to the desired output format. The equation is used to check for missing reaction participants. But simply comparing all KEGG identifiers that are present in the KGML with the reaction equation is not adequate. KEGG consists of many separate databases that contain information about compounds, drugs, glycans, etc. Therefore, one compound might have multiple KEGG identifiers, e.g., one in KEGG COMPOUND and another one in KEGG DRUG. The reaction equations specify just one identifier for each participant, which is any of all available identifiers for an object. Therefore, more queries to the KEGG API are necessary in order to fetch all synonyms for all identifiers. Now, it is possible to compare all reactants with the pathway components and check for missing reaction participants and eventually add those to the KGML. A similar method is required to check for missing enzymes (i.e., reaction modifiers) -- we use Enzyme Commission numbers (EC numbers) to check for missing enzymes.
-
-One last important preprocessing step might be performed before converting the pathways to models.
-The KEGG database uses information about orthology to provide pathway maps for different organisms. Enzymes, catalyzing reactions are annotated using EC numbers, which are independent of actual organisms. In some cases, this leads to annotated enzymes or entries in the KGML, for which no physical instance in the current organism of interest is known. In other words, the entry does probably not exist in the current organism or its existence has not yet been proven. To visualize this information, KEGG changes the background color of those orthologous nodes to white. These nodes should also be removed in order to obtain organism-specific models.
-
-\subsection*{Atom balance of reactions}
-
-After the described preprocessing step, the KGML document contains unbundled and complete reactions, for which the equation and stoichiometry has been annotated. Using the KEGG API, the chemical formula of each compound, participating in a reaction can be fetched. By using this information together with the stoichiometry, it is possible to count and compare all atoms on the substrate and product side. There are some further properties that need to be considered: A generic `R' is sometimes used on the substrate and product side to indicate any substituent. Variables like $n$ and $n+1$ are used by KEGG to create more generic reactions. During our tests, we detected some simple cases in which an H\plus{} or P\plus{} was missing, but also some other cases in which multiple atoms (e.g., 2\,C, 3\,H and 1\,P) were missing. Automatically correcting those issues is not recommended because the real missing components are unknown.
-%
-For example if a P\plus{} is missing on the substrate side, larger compounds could be missing on any side of the reaction. The possibilities of missing components on both sides include ATP~$\longrightarrow$~ADP, NADPH~$\longrightarrow$~NADH, and many others.
-Therefore, our method appends the result of each atom check as comment on every reaction and researchers might have to manually correct reactions with missing atoms.
-
-
-\subsection*{Conversion and annotation of the KGML document}
-
-
-The completed and corrected KGML document can now be used to generate models. Therefore, conversions to BioPAX, SBML, SBML-qual and several other formats are required. Typically, the model instance has to be initialized and all entries need to be added to the model. Caution needs to be taken in this step, because multiple copies of an entry might be existent in one KGML document. Usually, every graphical copy catalyzes different reactions. But for systems biology models, only one element should be created for all copies, representing a union of all physically identical entries. Furthermore, KGML specifies an entry type called `reaction', which should not be converted to a physical entity in the resulting model.
-Depending on the modeling language, either the reactions or the relations or both need to be converted to the chosen format.
-
-
-Besides those conversion steps, additional operations are required in order to facilitate further modeling efforts by researchers. This includes extensive annotations and comments for all elements. Hence, Gene Ontology terms, describing the elements and their function, as well as identifiers for a plethora of other databases for genes, proteins, interactions, structural information, small molecules, etc. are added to the model. In more detail, identifiers are added for Entrez Gene, OMIM, Ensembl, UniProt, ChEBI, DrugBank, Gene Ontology, HGNC, PubChem, 3DMET, NCBI Taxonomy, PDBeChem, GlycomeDB, LipidBank, EC-Numbers (enzyme nomenclature) and various KEGG databases (\uppercase{gene, glycan, reaction, compound, drug, pathway, orthology}).
-%
-Besides those cross-references, other helpful human and machine-readable annotations are added, for example, official gene symbols, synonyms, human-readable descriptions, links to more resources or visualizations, and the chemical formula and molecular weight for small molecules.
-
-The annotation of the models is an important step, because simulations on real data or simple experimental data visualization tools require unique identifiers to map the experimental data on the pathway structure. If models provide a simple data structure with labels, but no reference identifiers, they are hardly usable in conjunction with experimental data.
-
-
-\subsection*{KEGG to BioPAX}
-
-Today, Level~3 is the most recent Level of BioPAX. But Level~2 is still common and there are some data structures in Level~3 that are not available in Level~2. Therefore, separate converters for BioPAX Level~2 and for Level~3 are required. First of all, a BioPAX \model{} has to be created and a pathway object, corresponding to the input KGML, needs to be added to the \model. Then, several annotations and cross-references are defined for this pathway. This includes, for instance, the organism, cross-references to other databases, and gene ontology terms to define the pathway's function. The next step involves mapping each KGML element to a corresponding BioPAX element. Figure~2 gives an overview of these mappings.
-
-Having the initial pathway model, the next step is to create BioPAX elements for each KGML entry. This translation mainly depends on the type of the KGML entry and is listed in detail in Table~1. Entries with the same identifier (graphical copies of the same element) are grouped to one instance and only one BioPAX element is created for those. Depending on the just created BioPAX element, further annotation steps are required. For \Complexes, we need to add all of its components. For \SmallMolecules, we add the molecular weight and chemical formula to the corresponding BioPAX fields, which facilitates further modeling steps. For each element, cross-references to other databases and more annotations, as described in the previous section, are added.
-
-KEGG reactions always correspond to biochemical reactions. Thus, a \BiochemicalReaction{} is the appropriate data structure for those reactions and one instance of this class is created for each reaction. If catalyzing enzymes are annotated, a \Catalysis{} instance is created. This \Catalysis{} has all catalyzing enzymes as \Controllers{} and the \BiochemicalReaction{} as \Controlled{} element. The reaction is annotated with the reaction direction and if it is reversible or not. Further, the stoichiometry of each participant is annotated, as well as the EC numbers of all catalyzing enzymes. Even to the reactions, human readable supporting information is added, like the reaction equation, other pathways in which this reaction also occurs, and a generic description. In addition, the result of the atom balance check is added as further comment, together with comprehensive information which atoms are on the substrate side, which are on the product side and the difference between them.
-
-Next to biochemical reactions, BioPAX also supports other kinds of relationships between entities.
-BioPAX distinguishes between interactions, for which one can specify a source and a target (called \Conversion), and interactions describing a pool of interacting components (called \Interaction).
-For instance, to express KEGG relations, which have no associated chemical equation but structural information such as ``A activates B", a \Conversion{} can be used.
-In contrast, an \Interaction{} is especially useful for cases, in which information is missing or no direction is available.
-%
-For example, a relation of type binding with two participants -- this just allows for expressing ``A binds B", but no other conclusion can be drawn from such a relation. Therefore, all relations, from which no direction can be inferred, are converted to a \physicalInteraction{} in BioPAX Level~2 and to a \MolecularInteraction{} in BioPAX Level~3 (the Level~2 \physicalInteraction{} has been replaced by \MolecularInteraction{} in Level~3). All relations from which a direction can be inferred are converted to a BioPAX \Conversion{}.
-An \InteractionVocabulary{} is created for each interaction, that specifies the type of interaction as SBO term, GO term and human-readable string. Table~2 shows in detail how each relation is converted and which SBO and GO terms are being used.
-
-
-
-\subsection*{KEGG to SBML}
-
-Even though it is not the latest release of SBML, Level~2 Version~4 is still used in many applications and hence, should be supported for the conversion of metabolic models. The most recent SBML Level~3 release introduces extension packages and is required to include qualitative models (qual), groups, and layout information in the document, which are essential for modeling signaling pathways.
-%
-At the first glance, conversion of KGML to SBML seems to be simple. This is also suggested by the mapping scheme, depicted in Figure~3. But many properties in SBML are encoded in other fields than actual class instances, and thus are not directly visible to researchers. KEGG defines entries and an entry type, which specifies if the entry corresponds to a protein, complex, small molecule, referenced pathway map, or some other type. BioPAX provides different classes to distinguish between those types. SBML, similar to KGML, just has a class named \species{} to encode all those entries. The type of the \species{} should be specified by using terms from the Systems Biology Ontology (SBO terms) \cite{SBO}. These SBO terms are hierarchically organized and only SBO terms from the `material entity' branch should be used to encode the entities. Table~1 shows, which SBO terms are most appropriate to encode the different KGML entries. Furthermore, as in BioPAX translations, it is important to group graphical copies of the same entries to one element and to create only one \species{} element for this entry.
-To make the model usable for further applications, extensive annotations and references to other databases are added, using standardized controlled vocabulary (CV) terms and MIRIAM identifiers \cite{Juty2012,Novere2005}. Further, a description, various synonyms, the CAS number, chemical formula, a reference picture (structural formula for compounds, image of the pathway-map for pathways), molecular weight, and mass are added as human-readable annotation, if available.
-
-Groups are not supported by SBML-core. In order to encode entries of type `group' in SBML Level~3, one can use the groups extension package \cite{SBMLgroups}. To encode groups in SBML prior to Level~3, the only way are annotations, for example by adding a CV term with a \texttt{BQB\_IS\_ENCODED\_BY} or \texttt{BQB\_HAS\_PART} qualifier that specifies the contents of the group. In any case, an SBO term should also be used, which marks this \species{} as a complex of multiple other \species{}.
-
-KEGG reactions are converted to SBML \reactions{} with correct SBO terms for substrates (SBO:0000015) and products (SBO:0000011). If the reaction is reversible, a generic reactant SBO term (SBO:0000010) should be applied to all reaction participants. In addition, the reversibility is annotated to the \reaction{} itself and the stoichiometry is annotated on all reaction participants. Catalyzing enzymes are included as \ModifierSpeciesReference{} and CV terms, referring to the KEGG reaction identifier as well as all pathways, in which this reaction occurs, are added. Human-readable annotations on \reactions{} include the reaction definition, equation, a reference to the reaction equation as HTML-image, and the result of the atom balance check (i.e., if there are missing atoms in the reaction).
-
-Relations are required to encode signaling pathways but cannot properly be included into core SBML. There is no structure that encodes, e.g., ``A activates B" -- we can only add reactions to SBML. For SBML Level~3, the recently proposed qualitative models (qual) extension package solves this problem \cite{QualSpecification}. This extension is designed for qualitative modeling and allows for
-modeling relationships that cannot be described in detail.
-%creating transitions, that just specify input, output and a relation between those.
-Thus, to encode the KEGG relations, we have to convert the \model{} to a \qualitativeModel{} and create a qualitative \transition{} for each relation. An SBO term, as given in Table~2, is assigned to the \transition{} to specify its type. A GO term, mentioned in the same table, is further added as CV term on the \transition{}.
-
-
-\subsection*{Further KGML characteristics}
-
-\subsubsection*{KGML entries that are reactions.}
-The KGML specification allows entries to have a type called `reaction'. This can be used, for example, to let a relation point to a reaction. Actually, KGML only allows entries to be targets of relations but these constructs can be used to relax the constraints. However, BioPAX naturally allows interactions to point to other interactions as sources or targets. Hence, the document structure is not invalidated if entries with type `reaction' are converted to real reactions in BioPAX and every use of this entry is replaced by using the BioPAX reaction.
-
-In SBML, these entries are also converted to real reactions. No \species{} is created for entries with type `reaction' in SBML-core. For SBML-qual, the specification has similar requirements as KGML: all \transitions{} must have \qualitativeSpecies{} as sources or targets. Therefore, for SBML-qual the translation is similar to the source KGML and a \qualitativeSpecies{} with adequate annotation is created for entries with type `reaction'.
-
-\subsubsection*{Relations of subtype `compound'.}
-Some KGML documents include reactions and exclusively relations of subtype `compound'. These compound-relations are mostly relations between enzymes and compounds. KEGG states that this compound is ``shared with two successive reactions [\dots]" \cite{KGML}. In other words, these relations are copies of reactions that have been created by KEGG for the sake of better graphical representation of the pathway. Thus, if a converter translates both, the reactions and the relations, those compound-relations contain no additional information and should be skipped.
-
-\subsubsection*{Documents with glycans instead of compounds.}
-Sometimes, KGML specifies glycans as reaction participants instead of compounds. Actually, there is nothing wrong with this, except that the KEGG API often returns reaction equations with compound identifiers and some attributes, such as chemical formula or molecular weight, are exclusively available for compounds. This leads to reactions that are erroneously detected as incorrect or to missing chemical formulas. Therefore, if a synonymous compound identifier is available for a KEGG glycan or another KEGG database identifier that contains synonyms in KEGG COMPOUND, it is advisable to fetch and internally work with the compound identifier. Otherwise, it is very likely that duplicates of the same entries but with different identifiers are created in a model and some relationships are not correctly resolved.
-
-
-\subsection*{Implementation and availability}
-All described methods are implemented in the second release of KEGGtranslator (since version 2.0).
-%
-The application uses and includes Paxtools, a Java\texttrademark{} library for working with BioPAX that facilitates building and writing the internal BioPAX data structure (\url{http://www.biopax.org/paxtools.php}).
-%
-To establish the SBML data structure, KEGGtranslator uses the Java\texttrademark{} library JSBML \cite{JSBML} and supports SBML Level~2 Version~4 \cite{SBMLl2} and SBML Level~3 Version~1 \cite{SBMLl3}.
-
-KEGGtranslator is implemented in Java\texttrademark, provides an interactive, user-friendly and easy-to-use graphical user interface (GUI), and is freely available under the LGPL version 3 license from \url{http://www.cogsys.cs.uni-tuebingen.de/software/KEGGtranslator/}. KGML pathways can be downloaded automatically from within KEGGtranslator. The application can convert KEGG pathways from KGML files to BioPAX Level~2, BioPAX Level~3, SBML (core), SBML (qual), or SBML-core and -qual in one model. If desired, graphical representations can be created in SBGN, SIF, GML, GraphML, JPG and some other formats. Furthermore, many options are provided that control the described (pre-) processing of KEGG conversions and allow for customization of the generated models to meet a great number of different requirements.
-
-
-\section*{Discussion}
-
-We successfully established a procedure to create initial structural systems biology models from KEGG pathways. These steps aim at complete reconstruction of specific metabolic or signaling networks and hence, go far beyond simple translations.
-
-But even with all the discussed enhancements and corrections, all models derived from KEGG should only be considered as initial structural models. Many researchers are interested, e.g., in tissue-specific variants of those models. Others want to build kinetic models, constraint-based models, flux-based models, or any other specific model variant. Hence, our goal is to build a solid foundation that can quickly be used for further applications. The generation of these models is eased by providing cross-references to many databases, synonyms, descriptions and other information. This helps researchers to further process the generated models to the desired real model. With the help of annotated cross-references, it is quite easy to, e.g., map experimental data on the resulting model and perform simulations, or use the annotated reactions to identify kinetics in databases like SABIO-RK \cite{SabioRK}.
-
-The models reflect an effort to use all available information about KEGG pathways and consider the specific aspects of SBML or BioPAX to create complete and correct documents. These specific aspects include, for example, usage of SBO terms and MIRIAM URNs for metabolic SBML, as well as using \transitions{} and \qualitativeSpecies{} from the qual package to model signaling networks. For BioPAX, it is important to create correct instances, use cross-references and vocabularies for annotation and fill corresponding fields, e.g., chemical formula or molecular weight of \SmallMolecules{} or the EC numbers of catalyzed \BiochemicalReactions.
-%
-But besides those properties, there are more aspects of these formats that cannot be satisfied. This is owed to missing information and the aspiration to avoid creating knowledge out of nothing.
-%
-In SBML, the signaling maps contain \transitions{} that model all relations with information like `phosphorylation' or similar. The qualitative function of \transitions{} is encoded by \functionTerms{}, which define results and conditions in MathML. The information to fill those variables is not available for the KEGG pathways and thus, cannot be given.
-%
-Further, BioPAX Level~3 provides very interesting constructs to encode several instances of the same protein. For example, one protein might be contained in a pathway in multiple states: inactive (e.g., unphosphorylated), and active (phosphorylated). Since Level~3, BioPAX provides \EntityReferences{} that allow for the creation of several entities in different states for a single \Entity{} instance (i.e., protein). Unfortunately, we cannot fully use these structures, because KEGG does not specify wether a protein takes part in a relation with its phosphorylated, raw or any other form. This distinction is simply not available in KEGG databases.
-%
-Furthermore, a central dogma of BioPAX is to have \Controller{} and \Controlled{} elements to describe various interactions. For example, a \Controller{} could be an enzyme, controlling a reaction, which is then the \Controlled{} object. But if, e.g., KEGG annotates no enzyme on a reaction, or a relation is translated without knowing who controls this relation, no \Controller{} can be specified.
-%
-%
-%
-Besides this, KEGG does not provide information about compartmentalization. Some KEGG graphics do contain illustrations of compartments, but this information is hand-drawn in some pathway pictures and not encoded in any XML or referenced database. Hence, the resulting models just contain a default compartment in which all elements reside.
-
-
-
-
-\subsection*{Comparison to other KEGG converters}
-
-There are some other approaches to convert KGML to SBML or BioPAX. Most of these approaches perform simple one-to-one conversions and do not augment or correct the content of the document. For visualizing a pathway model, this is not necessarily a problem, because there are almost no required processing steps, despite the actual format conversion. But for creating initial systems biology models, one should take care of all contained reactions and relations. Some important aspects are, for example, that one reaction really is one complete reaction, that all entities can be mapped computationally onto at least one database, and that the resulting document is valid. We created a list of various criteria to compare different conversion tools. Table~3 summarizes the result of this comparison.
-
-Besides the here described method, no referenced converter is able to build signaling networks. All converters focus on metabolic networks only. Before the release of the qualitative models extension for SBML Level~3, it was not possible to appropriately describe signaling networks in SBML. Because all referenced converters focus on SBML Level~1 or Level~2, it is correct that they do not convert signaling models. This is much more plausible than creating pseudo-\reactions{} or similar constructs. The BioPAX converters also focus on KEGG reactions. Generally, relations encoded in KEGG signaling maps seem to be completely ignored, which is incorrect, because BioPAX provides appropriate data structures to encode those relations.
-
-KEGGconverter \cite{KEGGconverter} is implemented in Java\texttrademark{} and able to translate KGML documents to SBML L2V1. The resulting \species{} (enzymes and small molecules) do not contain any annotations, notes, or SBO terms and are named with a human readable string containing KEGG identifiers in brackets. Thus, to computationally interpret those models and, e.g., map experimental data on them, one would need to reconstruct the KEGG identifier with a regular expression on the name. The conversion is complete (i.e., the complete KGML content is appropriately converted to SBML) and contains no duplicate entries or reactions. But reactions are directly converted as given: No unbundling of grouped reactions or augmenting of missing reactants is performed and the stoichiometry is not set. In our tests, the SBML validator complained that the generated SBML is not valid, because KEGGconverter uses spaces in identifiers which is not allowed in SBML. Besides the KGML conversion, KEGGconverter provides additional functionalities to add kinetics to the resulting models or merge different KGMLs to one model.
-
-KEGG2SBML \cite{KEGG2SBML} is a Perl script for converting KGML documents to valid SBML, supporting all Levels and Versions up to L2V3. This script uses various flat files from KEGG databases as additional resources and is capable of generating appropriate reactions (unbundled, no missing reactants and no duplicates). Unfortunately, the converted document is not complete (some reactions that should be contained in the pathway are missing), stoichiometry is omitted, and \species{} do not have any notes, annotations or SBO terms. All elements are named by their respective human-readable name, which is nice for manual inspections but renders the converted models barely usable for further subsequent modeling steps. JSim \cite{JSim}, a simulation system for quantitative SBML models, provides converted KEGG pathways for download. Those pathways have been created using KEGG2SBML and thus, the same properties apply for those files.
-
-BN++ \cite{Kuentzer2007} is an application that is not primarily designed for KEGG translations, but offers this functionality as a side-feature. According to its authors, the project is not maintained anymore and they are working on another project that may again support the translation of KGML files. Nevertheless, the available source code offers classes to convert KGML to SBML and BioPAX but we were not able to successfully compile and run their source code. However, BN++ has been used by the KEGG team to generate official BioPAX translations which are still downloadable from the official KEGG FTP and thus, represent a wide-spread used translation from KEGG to BioPAX. These BioPAX Level~2 files are only available for metabolic reference pathways and represent complete translations using appropriate BioPAX classes (e.g., \smallMolecule{} for small molecules and \protein{} for enzymes). All entities are nicely converted with cross-references to corresponding KEGG identifiers and no duplicate entities are created. KEGG database identifiers are also used as names for all entities, which makes the resulting models not directly interpretable to humans. Unfortunately, the conversion contains duplicate reactions, missing reactants are not augmented and there is no option to unbundle reactions. The stoichiometry is always set to one, which is not correct for many reactions. Furthermore the BioPAX fields for formula or molecular weight of small molecules are not used and the validator gives errors for `Cardinality violation' and `RDF Syntax errors'.
-
-KGML2BioPAX and KGML2SBML are two applications that are part of an ``ongoing effort to develop an ultimate KEGG-based pathway enrichment analysis system" \cite{KEGG2BioPAX_and_SBML}. Unfortunately, both the SBML and BioPAX conversions are not complete (some elements from the source document are missing), contain no revisions of the reactions, and the stoichiometry is erroneously always specified as one. But all elements use KEGG identifiers, which renders the models machine-interpretable and no reactions or entities are contained twice. The SBML Level~2 Version~4 documents are valid, but do not contain notes, annotations or SBO terms. The BioPAX Level~2 translations contain all KEGG entries as \proteins, which is not correct for small molecules or complexes, and contain no further annotations. The validator complains about errors in the RDF syntax and usage of ``unknown (or prohibited) class[es], not defined in the BioPAX specification".
-
-Despite these converters, there are even more possibilities to create SBML documents from KEGG pathways. A popular application is Cytoscape \cite{Cytoscape}, which provides KGMLReader (freely available at \url{http://code.google.com/p/kgmlreader/}), a plugin to read KGML documents, and BiNoM \cite{Zinovyev2008}, a plugin that can write SBML documents.
-%These two plugins are not designed to match and neither is intended for building models from KEGG.
-But the SBML code, that is generated by linking the results of both plugins, is not usable for further modeling steps. KGMLReader concentrates on graphical representations for Cytoscape and the resulting SBML export of BiNoM barley reflects the input file. It is obvious that the resulting SBML is merely a result of the graphical representation. Edges in the graph primarily connect metabolites with enzymes and each edge is encoded as an SBML reaction. This leads to reactions with small molecules as substrates and enzymes as products, which is clearly incorrect. No elements contain annotations and they are named with a consecutive number only. This renders those documents unusable for further modeling or simulation approaches.
-Besides Cytoscape, there are many similar tools, e.g., PathVisio \cite{PathVisio}, Subio (\url{http://www.subio.jp}), or VANTED \cite{VANTED} that mainly focus on a graphical representation of the KGML files, most of which do not have SBML or BioPAX writers. Besides the graphical focus and missing writers, comparison to those tools is not reasonable because they are not thought to act as KEGG converters.
-
-The SuBliMinaL Toolbox \cite{SuBliMinaL} provides a very interesting alternative for metabolic modeling, based on KEGG data. SuBliMinaL does not provide KGML conversion and is thus not directly comparable to other converters. But it provides methods to reconstruct, e.g., whole organism maps from the KEGG database in an appropriate SBML document, which is well-annotated and contains complete and correct reactions.
-
-
-
-\subsection*{Conclusion}
-
-KEGG pathways are a valuable resource for pathway-based modeling approaches. Unfortunately, the KGML-formatted pathways are primarily designed for visualization purposes and not directly usable as metabolic or signaling models. Therefore, many aspects have to be revised and considered when converting the pathways to community standards such as BioPAX or SBML. This ranges from unbundling, correcting and annotating the stoichiometry of reactions, over using exclusively organism-specific and unique entities, to handling relations. With the help of additional information from multiple other KEGG databases, the resulting models provide correct and highly enriched structures that contain far more information than the original KGML.
-%
-The proposed method, including the qualitative models extension for SBML, is the first method that is able to generate signaling models in SBML or BioPAX from KEGG pathways. Currently, no other approach is able to generate complete pathway models with correct reactions, including stoichiometry and well-annotated SBML (i.e., including SBO terms or MIRIAM URNs) or valid BioPAX documents.
-
-%
-All proposed methods are implemented in the KEGGtranslator application. The models, generated by KEGGtranslator with the here described method, lay the foundations for further modeling approaches, such as constraint-based models, tissue-specific models, or simply including kinetics to the models. All conversions obey the special requirements of SBML or BioPAX and include a huge amount of machine- and human-readable annotations. This facilitates the use of those models in other applications that perform further analysis, modeling or simulation steps on those.
-%
-
-
-
-\bigskip
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section*{Author's contributions}
-CW, FB, AD conceived and implemented the method. CW wrote the manuscript, MR contributed to the implementation of the method and AZ supervised the work. All authors read and approved the final manuscript.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section*{Acknowledgements}
- \ifthenelse{\boolean{publ}}{\small}{}
-We gratefully acknowledge very fruitful discussions with Nicloas Le Nov\`{e}re, Nicolas Rodriguez, Neil Swainston, Falk Schreiber, Roland Keller, Florian Mittag, Akira Funahashi, and Toshiaki Katayama.
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% The Bibliography %%
-%% %%
-%% Bmc_article.bst will be used to %%
-%% create a .BBL file for submission, which includes %%
-%% XML structured for BMC. %%
-%% After submission of the .TEX file, %%
-%% you will be prompted to submit your .BBL file. %%
-%% %%
-%% %%
-%% Note that the displayed Bibliography will not %%
-%% necessarily be rendered by Latex exactly as specified %%
-%% in the online Instructions for Authors. %%
-%% %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newpage
-{\ifthenelse{\boolean{publ}}{\footnotesize}{\small}
- \bibliographystyle{bmc_article} % Style BST file
- \bibliography{../2012-04_CMSB2012/KEGGtranslator_v2_methods} } % Bibliography file (usually '*.bib' )
-
-%%%%%%%%%%%
-
-\ifthenelse{\boolean{publ}}{\end{multicols}}{}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% %%
-%% Figures %%
-%% %%
-%% NB: this is for captions and %%
-%% Titles. All graphics must be %%
-%% submitted separately and NOT %%
-%% included in the Tex document %%
-%% %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%%
-%% Do not use \listoffigures as most will included as separate files
-
-\section*{Figures}
- \subsection*{Figure 1 - Generation of systems biology models from KEGG pathways.}
-The flowchart shows all major steps involved in the creation of initial systems biology models from KEGG pathways. The whole method requires two sources: a KGML-formatted KEGG pathway and access to other KEGG databases, e.g., via the KEGG API. The preprocessing steps, depicted on the top, involve mainly the removal of inappropriate nodes and processing of reactions.
-An important step is the removal of duplicate entries. However, some further steps require information about these duplicates (e.g., when using the layout extension package for SBML) and thus, it is not always part of the preprocessing and may be performed at a later stage.
-Depending on the desired output format, separate processing steps are executed that involve appropriate conversion and annotation of the initial model.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%% BEGIN FLOWCHART FIGURE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%\begin{figure}[htbp]
-% \caption{\label{fig:conversionScheme}}
-% \begin{center}
- %\includegraphics[width=.7\textwidth]{Wrzodek_Fig1.png}
-% \end{center}
-%\end{figure}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%% END FLOWCHART FIGURE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
- \subsection*{Figure 2 - Simplified class structure and mapping from KGML to BioPAX.}
-The figure shows the raw mapping of KGML to BioPAX class instances. The type attribute determines how each entry is translated (see Table~1). Reactions that are catalyzed by enzymes are translated to \Catalysis{}, whereas non-catalyzed reactions are translated directly to \BiochemicalReactions. Relations are either translated to \Conversion{} or to \physicalInteraction{} in BioPAX Level~2 and \MolecularInteraction{} in Level~3 (see Table~2). To keep the clarity, the figure does not include the information that in BioPAX Level~2, \control{} and \conversion{} inherit from \physicalInteraction{}.
-%Furthermore, a catalysis object contains another object that is controlled by the catalysis, which is for our purposes always a BiochemicalReaction.
-Furthermore, a \Catalysis{} consists of two elements: a \Controller{} and a \Controlled{} element. For our purposes, \Controller{} is always an enzyme and \Controlled{} is a \BiochemicalReaction.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%% BEGIN 2BioPAX FIGURE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%\begin{figure}[htb]
-% \caption{\label{fig:KGML2BioPAX}}
-% \begin{center}
- %\includegraphics[width=1.5\columnwidth]{Wrzodek_Fig2.png}
-% \end{center}
-%\end{figure}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%% END 2BioPAX FIGURE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
- \subsection*{Figure 3 - Simplified class structure and mapping from KGML to SBML.}
-This mapping includes the SBML qualitative models (qual) and groups extension packages. Most properties are encoded as attributes on the actual classes. Tables~1 and~2 give further details about translation of entries and relations. SBML can only handle reactions, therefore SBML-qual is required to properly encode relations. This extension package requires its own model. Subsequently, the SBML-core \model{} and each \species{} have to be duplicated to obtain a \qualitativeModel{} including the translated relations. Furthermore, the groups extension package can be used for a proper encoding of groups in SBML.
-%%%%%%%%%%%%%%%%%%%%%%%%%%%% BEGIN 2SBML FIGURE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%\begin{figure}[htb]
-% \caption{\label{fig:KGML2SBML}}
-% \begin{center}
- %\includegraphics[width=1.5\columnwidth]{Wrzodek_Fig3.png}
-% \end{center}
-%\end{figure}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%% END 2SBML FIGURE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% %%
-%% Tables %%
-%% %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%% Use of \listoftables is discouraged.
-%%
-\section*{Tables}
-
-%\definecolor{tableShade}{HTML}{F1F5FA}
-%\definecolor{tableShade2}{HTML}{ECF3FE}
-\definecolor{tableShade2}{gray}{0.95}
-%\rowcolors{1}{white}{tableShade2}
-%\rowcolors{3}{white}{tableShade2}
-
-%%%%%%%%%%%%%%%%%%%%%%%% ENTRY TABLE %%%%%%%%%%%%%%%%%%%%%%%%
-\subsection*{Table 1 - BioPAX instances and SBO terms corresponding to KGML entry types.}
-This table depicts the conversion of KGML entries to BioPAX or SBML. The conversion depends on the KGML entry type attribute. For BioPAX, different class instances are initialized. Conversions to SBML always involve the creation of a \species{} with the given SBO term for each KGML entry. The KGML specification states that an entry of type `gene' ``is a gene product (mostly a protein)". Additionally, a `group' ``is a complex of gene products (mostly a protein complex)" \cite{KGML}. For compatibility with previous KGML versions, the deprecated type `genes' corresponds to `group' since KGML v0.6.1. Further, entries of type `reaction' are not listed in the table, but discussed in a separate section.
-\par \mbox{} \par \mbox{
-
-\makebox[\textwidth]{
-\begin{tabular}{lll}
-\toprule
-Entry type & BioPAX element & SBO term \\
-\midrule
-\rowcolor{tableShade2}
-compound & smallMolecule & 247 (simple chemical) \\
-enzyme & protein & 252 (polypeptide chain) \\
-\rowcolor{tableShade2}
-gene & protein & 252 (polypeptide chain) \\
-ortholog & protein & 252 (polypeptide chain) \\
-\rowcolor{tableShade2}
-group & complex & 253 (non-covalent complex) \\
-map & pathway & 552 (reference annotation) \\
-\bottomrule
-\end{tabular}
-}
-
-}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-%%%%%%%%%%%%%%%%%%%%%%%% RELATION TABLE %%%%%%%%%%%%%%%%%%%%%%%%
-\subsection*{Table 2 - BioPAX instances and SBO terms corresponding to KGML relation subtypes.}
-This table shows how relations are handled during conversion to BioPAX or SBML. The conversion depends on the subtype of each relation. For each subtype, the corresponding BioPAX element, as well as SBO terms and GO terms are given. When converting to BioPAX, both terms are annotated as an instance of \InteractionVocabulary, whereas an SBML \transition{} has a field for the SBO term and both terms are additionally added as controlled vocabulary term on the \transition.
-Please note that \physicalInteraction{} in BioPAX Level~2 corresponds to \MolecularInteraction{} in BioPAX Level~3. Furthermore, relations of type `compound' are treated differently, as described in a separate section of this publication.
-\par \mbox{} \par \mbox{
-
-\makebox[\textwidth]{
-\setlength{\tabcolsep}{3.0pt}
-\begin{tabular}{llllll}
-\toprule
-Relation subtype & BioPAX element & SBO term & SBO name & GO term & GO name\\
-\midrule
-
-\rowcolor{tableShade2}
-activation & conversion & SBO:0000170 & stimulation & \emph{none} & \\
-inhibition & conversion & SBO:0000169 & inhibition & \emph{none} & \\
-\rowcolor{tableShade2}
-expression & conversion & SBO:0000170 & stimulation & GO:0010467 & gene expression \\
-repression & conversion & SBO:0000169 & inhibition & \emph{none} &\\
-\rowcolor{tableShade2}
-indirect effect & conversion & SBO:0000344 & molecular interaction & \emph{none} & \\
-state change & conversion & SBO:0000168 & control & \emph{none} & \\
-
-\rowcolor{tableShade2}
- & physicalInteraction/ & & non-covalent & & non-covalent \\
-\rowcolor{tableShade2}
-\multirow{-2}{*}{binding/association} & MolecularInteraction & \multirow{-2}{*}{SBO:0000177} & binding & \multirow{-2}{*}{GO:0005488} & binding \\
-
- & physicalInteraction/ & & & \\
-\multirow{-2}{*}{dissociation} & MolecularInteraction & \multirow{-2}{*}{SBO:0000180} & \multirow{-2}{*}{dissociation} & \multirow{-2}{*}{\emph{none}} &\\
-
-\rowcolor{tableShade2}
- & physicalInteraction/ & & & & \\
-\rowcolor{tableShade2}
-\multirow{-2}{*}{missing interaction} & MolecularInteraction & \multirow{-2}{*}{SBO:0000396} & \multirow{-2}{*}{uncertain process} & \multirow{-2}{*}{\emph{none}} & \\
-
-phosphorylation & conversion & SBO:0000216 & phosphorylation & GO:0016310 & phosphorylation \\
-\rowcolor{tableShade2}
-dephosphorylation & conversion & SBO:0000330 & dephosphorylation & GO:0016311 & dephosphorylation \\
-glycosylation & conversion & SBO:0000217 & glycosylation & GO:0070085 & glycosylation \\
-\rowcolor{tableShade2}
-ubiquitination & conversion & SBO:0000224 & ubiquitination & GO:0016567 & ubiquitination \\
-methylation & conversion & SBO:0000214 & methylation & GO:0032259 & methylation \\
-
-\bottomrule
-\end{tabular}
-}
-
-}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-%%%%%%%%%%%%%%%%% Converter Comparison TABLE %%%%%%%%%%%%%%%%%
-\subsection*{Table 3 - Comparison of different available converters for KEGG pathways.}
-This table compares various applications that can convert KEGG pathways to BioPAX or SBML models. A checkmark (\checkmark) is given, if the corresponding converter completely fulfills all requirements, a circle ($\circ$) states that the requirements are only met partially or incorrectly and a minus (-) indicates features, which are not contained at all. `n/a' indicates that a criterion is not applicable to a converter.
-A model is \emph{Machine interpretable} if entities in the model can directly be mapped to a database. The criterion \emph{Human interpretable} indicates that a model somehow assigns human readable names or gene symbols to entities. \emph{Signaling pathways} are supported if the converters can read and convert KEGG models with relations. A conversion is \emph{complete} if every relevant reaction of a KGML pathway also occurs in any form in the translated document. For visualization purposes, KGML files often contain multiple copies of entries or reactions. These \emph{duplicates} should be removed. The contained reactions are often \emph{bundled} (multiple reactions are summarized as one) or miss some reaction participants. \emph{Revision of reactions} refers to the completion of missing reaction participants. The \emph{stoichiometry} is not contained in KGML documents and must be parsed from reaction equations in the KEGG REACTION database. To test the validity of the models, we used the corresponding validators from \href{http://sbml.org/Facilities/Validator/}{SBML.org} and \href{http://www.biopax.org/biopax-validator/}{BioPAX.org}. A model is marked as \emph{valid}, if the validator does not return any errors. For SBML, we further inspect if the models contain \emph{SBO terms}. It is further recommended to include \emph{notes}, such as human readable descriptions, and \emph{annotations} (e.g., cross-references in form of CV terms, MIRIAM URNs, \Xrefs). Only for BioPAX, it is important to use the \emph{appropriate classes} (instances of \smallMolecule{} for small molecules and instances of \protein{} for proteins) and a nice feature to fill the available BioPAX fields for chemical formula or molecular weight of small molecules (\emph{SM annotations}).
-\par \mbox{} \par \mbox{
-
-\makebox[\textwidth]{
- \newcolumntype{C}{>{\centering\arraybackslash}p{2cm}}
- \setlength{\tabcolsep}{3.0pt}
- \begin{tabular}{lcccCcc}
-\toprule
- & KEGG2SBML & BN++ & KEGGconverter & KGML2BioPAX KGML2SBML & \multicolumn{2}{c}{KEGGtranslator} \\
-Version & 1.5.0 & 1.1 & n/a & n/a & 1.2 & 2.0 \\
-Release date & 2008-07-28 & 2009-04-22 & 2009-12-18 & 2010-06-03 & 2011-07-04 & 2012-06-04 \\
-Authors & Funahashi \emph{et al.} & K\"untzer \emph{et al.} & Moutselos \emph{et al.} & Lee \emph{et al.} & \multicolumn{2}{c}{Wrzodek \emph{et al.}} \\
-\midrule
-
-\multicolumn{7}{l}{\textbf{Supported model formats}} \\
-
-\rowcolor{tableShade2}
-~~SBML & \checkmark & $\circ$ & \checkmark & \checkmark & \checkmark & \checkmark \\
-~~BioPAX & - & \checkmark & - & \checkmark & - & \checkmark \\
-
-\multicolumn{7}{l}{\textbf{Generic translation features}} \\
-\rowcolor{tableShade2}
-~~Machine interpretable & $\circ$ & \checkmark & $\circ$ & \checkmark & \checkmark & \checkmark \\
-~~Human interpretable & \checkmark & - & \checkmark & - & \checkmark & \checkmark \\
-\rowcolor{tableShade2}
-~~Signaling pathways & - & - & - & - & - & \checkmark \\
-~~Complete & - & \checkmark & \checkmark & - & \checkmark & \checkmark \\
-\rowcolor{tableShade2}
-~~No duplicate entries & \checkmark & \checkmark & \checkmark & \checkmark & - & \checkmark \\
-~~No duplicate reactions & \checkmark & - & \checkmark & \checkmark & \checkmark & \checkmark \\
-\rowcolor{tableShade2}
-~~Unbundle reactions & \checkmark & - & - & - & - & \checkmark \\
-~~Revision of reactions & \checkmark & - & - & - & \checkmark & \checkmark \\
-\rowcolor{tableShade2}
-~~Stoichiometry & - & - & - & - & - & \checkmark \\
-
-\multicolumn{7}{l}{\textbf{SBML}} \\
-\rowcolor{tableShade2}
-~~Valid & \checkmark & n/a & - & \checkmark & \checkmark & \checkmark \\
-~~Level.Version & 1.1 up to 2.3 & n/a & 2.1 & 2.4 & 2.4 & 2.4, 3.1 \\
-\rowcolor{tableShade2}
-~~SBO terms & - & n/a & - & - & \checkmark & \checkmark \\
-~~Notes & - & n/a & - & - & \checkmark & \checkmark \\
-\rowcolor{tableShade2}
-~~Annotations & - & n/a & - & - & \checkmark & \checkmark \\
-
-\multicolumn{7}{l}{\textbf{BioPAX}} \\
-\rowcolor{tableShade2}
-~~Valid & n/a & - & n/a & - & n/a & \checkmark \\
-~~Level & n/a &2& n/a & 2 & n/a & 2, 3 \\
-\rowcolor{tableShade2}
-~~Appropriate classes & n/a & \checkmark & n/a & - & n/a & \checkmark \\
-~~Notes & n/a & - & n/a & - & n/a & \checkmark \\
-\rowcolor{tableShade2}
-~~Annotations & n/a & \checkmark & n/a & - & n/a & \checkmark \\
-~~SM annotations & n/a & - & n/a & - & n/a & \checkmark \\
-
-\bottomrule
-\end{tabular}
-}
-
-}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-\end{bmcformat}
-\end{document}
-
-
-
-
-
-
-
diff --git a/doc/publications/2010-06 Method/2012-06 BMC/Submitted_article.pdf b/doc/publications/2010-06 Method/2012-06 BMC/Submitted_article.pdf
deleted file mode 100644
index 74dae8b..0000000
Binary files a/doc/publications/2010-06 Method/2012-06 BMC/Submitted_article.pdf and /dev/null differ
diff --git a/doc/publications/2010-06 Method/2012-06 BMC/Wrzodek_Fig1.png b/doc/publications/2010-06 Method/2012-06 BMC/Wrzodek_Fig1.png
deleted file mode 100644
index 3c96ec9..0000000
Binary files a/doc/publications/2010-06 Method/2012-06 BMC/Wrzodek_Fig1.png and /dev/null differ
diff --git a/doc/publications/2010-06 Method/2012-06 BMC/Wrzodek_Fig2.png b/doc/publications/2010-06 Method/2012-06 BMC/Wrzodek_Fig2.png
deleted file mode 100644
index 6b91531..0000000
Binary files a/doc/publications/2010-06 Method/2012-06 BMC/Wrzodek_Fig2.png and /dev/null differ
diff --git a/doc/publications/2010-06 Method/2012-06 BMC/Wrzodek_Fig3.png b/doc/publications/2010-06 Method/2012-06 BMC/Wrzodek_Fig3.png
deleted file mode 100644
index a6bb246..0000000
Binary files a/doc/publications/2010-06 Method/2012-06 BMC/Wrzodek_Fig3.png and /dev/null differ
diff --git a/doc/publications/2010-06 Method/2012-06 BMC/bmc_article.bst b/doc/publications/2010-06 Method/2012-06 BMC/bmc_article.bst
deleted file mode 100644
index e68e894..0000000
--- a/doc/publications/2010-06 Method/2012-06 BMC/bmc_article.bst
+++ /dev/null
@@ -1,1880 +0,0 @@
-%% %
- % bmc_article.bst ver: 1.01 %
- % %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %% %%
- %% BibTeX BST file for BioMed Central %%
- %% a style syntax for latex .bib %%
- %% bibliographies %%
- %% %%
- %% <1 September 2003> %%
- %% %%
- %% %%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
- %
- % The order in the reference list is that by which the
- % works were originally cited in the text, or that in
- % the database.
- %
- %
- % This file is based on the style 'unsrt.bst'
- % ------------------------------------------
- % BibTeX standard bibliography style `unsrt'
- % version 0.99a for BibTeX versions 0.99a
- % or later, LaTeX version 2.09.
- % Copyright (C) 1985, all rights reserved.
- % Copying of this file is authorized only if either
- % (1) you make absolutely no changes to your copy, including name, or
- % (2) if you do make changes, you name it something other than
- % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
- % This restriction helps ensure that all standard styles are identical.
- % The file btxbst.doc has the documentation for this style.
- % ---------------------------------------------------------
-%%
-
-
-
-
-ENTRY
- { address
- archive
- author
- booktitle
- chapter
- edition
- editor
- eid
- howpublished
- institution
- journal
- key
- month
- note
- number
- organization
- pages
- publisher
- school
- series
- title
- type
- url
- volume
- year
- }
- {}
- { label }
-
-
-% Global variables - most initialised and used locally.
-STRINGS { longest.label }
-STRINGS { cur tag source bibinfo}
-STRINGS { p q r s t z name names }
-STRINGS { lr lp lt ls} % local copys fxns with these call no other fxns.
-INTEGERS { number.label longest.label.width }
-INTEGERS { multiresult nameptr namesleft numnames global.counter}
-INTEGERS { i j k l ll li}
-INTEGERS { output.state before.all mid.sentence after.sentence after.block }
-
-FUNCTION {init.state.consts}
-{ #0 'before.all :=
- #1 'mid.sentence :=
- #2 'after.sentence :=
- #3 'after.block :=
- #0 'global.counter :=
-}
-
-
-% Logical operators on integers
-FUNCTION {not}
-{ { #0 } { #1 } if$
-}
-FUNCTION {and}
-{ 'skip$ { pop$ #0 } if$
-}
-FUNCTION {or}
-{ { pop$ #1 } 'skip$ if$
-}
-FUNCTION {field.or.null}
-{ duplicate$ empty$ { pop$ "" } 'skip$ if$
-}
-
-FUNCTION {remove.dots}
-{ 'z :=
- ""
- { z empty$ not }
- { z #1 #1 substring$
- z #2 global.max$ substring$ 'z :=
- duplicate$ "." = 'pop$
- { * }
- if$
- }
- while$
-}
-
-%%
- % myreverse
- %
- % Takes 1 string
- % Returns the myreverse string
- %
- % not to be confused with REVERSE (opposite of ITERATE)
-%%
-FUNCTION {myreverse}
-{
- 'lt :=
- "" 'ls :=
- { lt empty$ not }
- {
- lt #1 #1 substring$ ls * 'ls :=
- lt #2 global.max$ substring$ 'lt :=
- }
- while$
- ls
-}
-
-%%
- % search
- %
- % Takes 2 strings (txt, pattern)
- % Retruns 1 if found 0 if not
-%%
-FUNCTION {search}
-{
- 'lp := % pattern
- 'lt := % text to search
- #0 'i := % result
- lp text.length$ 'll := % length of the search pattern
- { lt empty$ not }
- { lt #1 ll substring$ lp =
- { #1 'li :=
- "" 'lt := } % force exit
- { lt #2 global.max$ substring$ 'lt := } % pop 1 char
- if$
- }
- while$
- li
-}
-
-
-%%
- % general replace
- %
- % Takes 3 strings (txt, pattern, replace-str)
- % replaces all instances of pattern
- % Retruns a new string
-%%
-FUNCTION {replace}
-{
- 'lr := % replace string
- 'lp := % pattern
- 'lt := % text to search
- "" 'ls := % result string
- lp text.length$ 'll := % length of the search pattern
- { lt empty$ not }
- { lt #1 ll substring$ lp =
- { ls lr * 'ls :=
- lt ll #1 + global.max$ substring$ 'lt := }
- { ls lt #1 #1 substring$ * 'ls :=
- lt #2 global.max$ substring$ 'lt := }
- if$
- }
- while$
- ls
-}
-
-
-%%
- % strip.letters
- %
- % Takes 1 arg (string)
- % if string has letters get rid of them
- % - useful for 2nd -> 2
- % Returns string
-%%
-FUNCTION {strip.letters}
-{
- "" 's :=
- duplicate$ missing$
- 'pop$
- {
- 't :=
- { t "" = not }
- { % ascii '0' = 48, '9' = 57
- t #1 #1 substring$ chr.to.int$ 'i :=
- i #47 > i #58 < and
- { s t #1 #1 substring$ * 's := }
- 'skip$
- if$
- t #2 global.max$ substring$ 't :=
- }
- while$
- }
- if$
- s
-}
-
-FUNCTION {output.nonnull}
-{ 's :=
- output.state mid.sentence =
- { ", " * write$ }
- { output.state after.block =
- { add.period$ write$
- newline$
- "\newblock " write$
- }
- { output.state before.all =
- %{ "OS=(" * output.state int.to.str$ * ") " * write$ }
- 'write$
- { add.period$ " " * write$ } % after.sentence
- if$
- }
- if$
- mid.sentence 'output.state :=
- }
- if$
- s
-}
-
-FUNCTION {output}
-{ duplicate$ empty$
- 'pop$
- 'output.nonnull
- if$
-}
-
-% raises an error (warning message) if type not present.
-FUNCTION {output.check}
-{ 't :=
- duplicate$ empty$
- { pop$ "empty " t * " in " * cite$ * warning$ }
- 'output.nonnull
- if$
-}
-
-FUNCTION {fin.entry}
-{ add.period$
- write$
- newline$
-}
-
-FUNCTION {new.block}
-{ output.state before.all =
- 'skip$
- { after.block 'output.state := }
- if$
-}
-FUNCTION {new.sentence}
-{ output.state after.block =
- 'skip$
- { output.state before.all =
- 'skip$
- { after.sentence 'output.state := }
- if$
- }
- if$
-}
-FUNCTION {add.blank}
-{ " " * before.all 'output.state :=
-}
-
-FUNCTION {add.bold.colon}
-{ duplicate$ empty$
- 'skip$
- { "\textbf{:}" * add.blank }
- if$
-}
-
-FUNCTION {add.colon}
-{ duplicate$ empty$
- 'skip$
- { ":" * add.blank }
- if$
-}
-FUNCTION {bold}
-{ duplicate$ empty$
- { pop$ "" }
- { "\textbf{" swap$ * "}" * }
- if$
-}
-FUNCTION {emphasize}
-{ duplicate$ empty$
- { pop$ "" }
- { "\emph{" swap$ * "}" * }
- if$
-}
-FUNCTION {tie.or.space.prefix}
-{ duplicate$ text.length$ #3 <
- { "~" }
- { " " }
- if$
- swap$
-}
-
-FUNCTION {capitalize}
-{ "u" change.case$ "t" change.case$ }
-
-FUNCTION {space.word}
-{ " " swap$ * " " * }
-
-% if field not entered - push empty string ""
-FUNCTION {bibinfo.check}
-{ swap$
- duplicate$ missing$
- { pop$ pop$
- "" }
- { duplicate$ empty$
- { swap$ pop$ }
- { swap$ pop$ }
- if$
- }
- if$
-}
-FUNCTION {bibinfo.warn}
-{ swap$
- duplicate$ missing$
- {
- swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
- ""
- }
- { duplicate$ empty$
- {
- swap$ "empty " swap$ * " in " * cite$ * warning$
- }
- { swap$
- pop$
- }
- if$
- }
- if$
-}
-
-FUNCTION {format.thesis.type}
-{ type duplicate$ empty$
- 'pop$
- { swap$ pop$
- "t" change.case$ "type" bibinfo.check
- }
- if$
-}
-
-
- % Here are the language-specific definitions for explicit words.
- % Each function has a name bbl.xxx where xxx is the English word.
- % The language selected here is ENGLISH
-FUNCTION {bbl.and}
-{ "and"}
-
-FUNCTION {bbl.etal}
-{ "et~al." }
-
-FUNCTION {bbl.editors}
-{ "(Eds)" }
-%{ "editors" }
-
-FUNCTION {bbl.editor}
-{ "(Ed)" }
-%{ "editor" }
-
-FUNCTION {bbl.edby}
-{ "Edited by" }
-
-FUNCTION {bbl.edition}
-{ "edition" }
-%{ "edn." }
-
-FUNCTION {bbl.volume}
-{ "Volume" }
-%{ "vol." }
-
-FUNCTION {bbl.of}
-{ "of" }
-
-FUNCTION {bbl.number}
-{ "no." }
-
-FUNCTION {bbl.nr}
-{ "no." }
-
-FUNCTION {bbl.in}
-{ "in" }
-
-FUNCTION {bbl.pages}
-{ "" }
-
-FUNCTION {bbl.page}
-{ "" }
-
-FUNCTION {bbl.chapter}
-{ "chap." }
-
-FUNCTION {bbl.techrep}
-{ "Tech. Rep." }
-
-FUNCTION {bbl.mthesis}
-{ "Master's thesis" }
-
-FUNCTION {bbl.phdthesis}
-{ "PhD thesis" }
-
-MACRO {jan} {"Jan."}
-
-MACRO {feb} {"Feb."}
-
-MACRO {mar} {"Mar."}
-
-MACRO {apr} {"Apr."}
-
-MACRO {may} {"May"}
-
-MACRO {jun} {"Jun."}
-
-MACRO {jul} {"Jul."}
-
-MACRO {aug} {"Aug."}
-
-MACRO {sep} {"Sep."}
-
-MACRO {oct} {"Oct."}
-
-MACRO {nov} {"Nov."}
-
-MACRO {dec} {"Dec."}
-
-MACRO {acmcs} {"ACM Computing Surveys"}
-
-MACRO {acta} {"Acta Informatica"}
-
-MACRO {cacm} {"Communications of the ACM"}
-
-MACRO {ibmjrd} {"IBM Journal of Research and Development"}
-
-MACRO {ibmsj} {"IBM Systems Journal"}
-
-MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
-
-MACRO {ieeetc} {"IEEE Transactions on Computers"}
-
-MACRO {ieeetcad}
- {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
-
-MACRO {ipl} {"Information Processing Letters"}
-
-MACRO {jacm} {"Journal of the ACM"}
-
-MACRO {jcss} {"Journal of Computer and System Sciences"}
-
-MACRO {scp} {"Science of Computer Programming"}
-
-MACRO {sicomp} {"SIAM Journal on Computing"}
-
-MACRO {tocs} {"ACM Transactions on Computer Systems"}
-
-MACRO {tods} {"ACM Transactions on Database Systems"}
-
-MACRO {tog} {"ACM Transactions on Graphics"}
-
-MACRO {toms} {"ACM Transactions on Mathematical Software"}
-
-MACRO {toois} {"ACM Transactions on Office Information Systems"}
-
-MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
-
-MACRO {tcs} {"Theoretical Computer Science"}
-
-
-% Takes 2 args (author field) and string "author"
-FUNCTION {format.names}
-{ 'bibinfo :=
- duplicate$ empty$ 'skip$ {
- 's :=
- "" 't :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr
- "{vv~}{ll}{ f{}}{ jj}"
- format.name$
- remove.dots
- bibinfo bibinfo.check
- 't :=
- nameptr #1 >
- {
- namesleft #1 >
- { ", " * t * }
- {
- "," *
- s nameptr "{ll}" format.name$ duplicate$ "others" =
- { 't := }
- { pop$ }
- if$
- t "others" =
- {
- " " * bbl.etal *
- }
- { " " * t * }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
- } if$
-}
-
-
-%"{f{~}~}{vv~}{ll}{ jj}"
-FUNCTION {format.names.ed}
-{
- 'bibinfo :=
- duplicate$ empty$ 'skip$ {
- 's :=
- "" 't :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr
- "{vv~}{ll}{ f{}}{ jj}"
- format.name$
- remove.dots
- bibinfo bibinfo.check
- 't :=
- nameptr #1 >
- {
- namesleft #1 >
- { ", " * t * }
- {
- "," *
- s nameptr "{ll}" format.name$ duplicate$ "others" =
- { 't := }
- { pop$ }
- if$
- t "others" =
- {
-
- " " * bbl.etal *
- }
- { " " * t * }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
- } if$
-}
-FUNCTION {format.authors}
-{ author "author" format.names
-}
-FUNCTION {get.bbl.editor}
-{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
-
-FUNCTION {format.editors}
-{ editor "editor" format.names duplicate$ empty$ 'skip$
- {
- " " * get.bbl.editor *
-%% "," * " " * get.bbl.editor *
- }
- if$
-}
-FUNCTION {format.note}
-{
- url empty$
- 'skip$
- {
- "\urlprefix\url{[" url * "]}" * output }
- if$
- note empty$
- { "" }
- {
- note "l" change.case$ "in press" =
- { after.sentence 'output.state :=
- " in press" }
- {
- after.sentence 'output.state :=
- note #1 #1 substring$
- duplicate$ "{" =
- 'skip$
- { output.state mid.sentence =
- { "l" }
- { "u" }
- if$
- change.case$ % leave note * As Is *
- }
- if$
- note #2 global.max$ substring$ * "note" bibinfo.check
- "[" swap$ * "]" *
- }
- if$
- }
- if$
-}
-
-FUNCTION {bold.format.title}
-{ title
- "title" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- bold
- }
- if$
-}
-
-FUNCTION {emph.format.title}
-{ title
- "title" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- emphasize
- }
- if$
-}
-
-% Returns ""
-FUNCTION {output.bibitem}
-{ newline$
- "\bibitem{" write$
- cite$ write$
- "}" write$
- newline$
- ""
- before.all 'output.state :=
-}
-
-FUNCTION {output.allinfo.comment}
-{ }
-
-FUNCTION {n.dashify}
-{
- 't :=
- ""
- { t empty$ not }
- { t #1 #1 substring$ "-" =
- { t #1 #2 substring$ "--" = not
- { "--" *
- t #2 global.max$ substring$ 't :=
- }
- { { t #1 #1 substring$ "-" = }
- { "-" *
- t #2 global.max$ substring$ 't :=
- }
- while$
- }
- if$
- }
- { t #1 #1 substring$ *
- t #2 global.max$ substring$ 't :=
- }
- if$
- }
- while$
-}
-
-FUNCTION {word.in}
-{ bbl.in capitalize
- " " * }
-
-FUNCTION {format.date}
-{
- before.all 'output.state :=
- ""
- duplicate$ empty$
- year "year" bibinfo.check duplicate$ empty$
- { swap$ 'skip$
- { "there's a month but no year in " cite$ * warning$ }
- if$
- *
- }
- { swap$ 'skip$
- {
- swap$
- " " * swap$
- }
- if$
- *
- remove.dots
- }
- if$
-
- duplicate$ "" =
- 'skip$
- { " " swap$ * }
- if$
-}
-
-% Source = book, conference, journal, manual
-% have the source avaliable on the stack
-FUNCTION {format.source}
-{ 'source :=
- source "source" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- emphasize
- }
- if$
-}
-
-FUNCTION {format.title}
-{ title "title" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- bold
- }
- if$
-}
-
-
-
-FUNCTION {either.or.check}
-{ empty$
- 'pop$
- { "can't use both " swap$ * " fields in " * cite$ * warning$ }
- if$
-}
-FUNCTION {format.bvolume}
-{ volume empty$
- { "" }
- { bbl.volume volume tie.or.space.prefix
- "volume" bibinfo.check * *
- series "series" bibinfo.check
- duplicate$ empty$ 'pop$
- { swap$ bbl.of space.word * swap$
- emphasize * }
- if$
- emphasize
- "volume and number" number either.or.check
- }
- if$
-}
-FUNCTION {format.number.series}
-{ volume empty$
- { number empty$
- { series field.or.null }
- { series empty$
- { number "number" bibinfo.check }
- { output.state mid.sentence =
- { bbl.number }
- { bbl.number capitalize }
- if$
- number tie.or.space.prefix "number" bibinfo.check * *
- bbl.in space.word *
- series "series" bibinfo.check *
- }
- if$
- }
- if$
- }
- { "" }
- if$
-}
-
-FUNCTION {format.edition}
-{ edition duplicate$ empty$ 'skip$
- {
- output.state mid.sentence =
- { "l" }
- { "t" }
- if$ change.case$
- "edition" bibinfo.check
- " " * bbl.edition *
- }
- if$
-}
-FUNCTION {multi.page.check}
-{ 't :=
- #0 'multiresult :=
- { multiresult not
- t empty$ not
- and
- }
- { t #1 #1 substring$
- duplicate$ "-" =
- swap$ duplicate$ "," =
- swap$ "+" =
- or or
- { #1 'multiresult := }
- { t #2 global.max$ substring$ 't := }
- if$
- }
- while$
- multiresult
-}
-
-FUNCTION {format.pages}
-{ pages duplicate$ empty$ 'skip$
- { duplicate$ multi.page.check
- {
- n.dashify
- }
- {
- }
- if$
- "pages" bibinfo.check
- ":" swap$ *
- }
- if$
-}
-
-FUNCTION {format.journal.pages}
-{ pages duplicate$ empty$ 'pop$
- { swap$ duplicate$ empty$
- { pop$ pop$ format.pages }
- {
- ":" *
- swap$
- n.dashify
- "pages" bibinfo.check
- *
- }
- if$
- }
- if$
-}
-FUNCTION {format.journal.eid}
-{ eid "eid" bibinfo.check
- duplicate$ empty$ 'pop$
- { swap$ duplicate$ empty$ 'skip$
- {
- ":" *
- }
- if$
- swap$ *
- }
- if$
-}
-
-% ignore issue (num) if == 1
-FUNCTION {format.vol.num.pages}
-{ volume field.or.null
- duplicate$ empty$ 'skip$
- {
- "volume" bibinfo.check bold
- }
- if$
- number "number" bibinfo.check duplicate$ empty$ 'skip$
- {
- duplicate$ "1" =
- {pop$ ""}
- { swap$ duplicate$ empty$
- { "there's a number but no volume in " cite$ * warning$ }
- 'skip$
- if$
- swap$
- "(" swap$ * ")" *
- }
- if$
- }
- if$ *
- eid empty$
- { format.journal.pages }
- { format.journal.eid }
- if$
-}
-
-FUNCTION {format.chapter.pages}
-{ chapter empty$
- 'format.pages
- { type empty$
- { bbl.chapter }
- { type "l" change.case$
- "type" bibinfo.check
- }
- if$
- chapter tie.or.space.prefix
- "chapter" bibinfo.check
- * *
- pages empty$
- 'skip$
- { ", " * format.pages * }
- if$
- }
- if$
-}
-
-
-
-%% FUNCTION {format.in.ed.booktitle}
-%% { booktitle format.source duplicate$ empty$ 'skip$
-%% {
-%% editor "editor" format.names.ed duplicate$ empty$ 'pop$
-%% {
-%% bbl.edby
-%% " " * swap$ *
-%% swap$
-%% "," *
-%% " " * swap$
-%% * }
-%% if$
-%% word.in swap$ *
-%% }
-%% if$
-%% }
-
-FUNCTION{format.edited.by}
-{ editor "editor" format.names.ed duplicate$ empty$
- 'pop$
- { bbl.edby
- " " * swap$ *
- swap$
- ". " *
- swap$
- * }
- if$
-}
-
-FUNCTION {format.in.booktitle}
-{ booktitle format.source duplicate$ empty$
- 'skip$
- { word.in swap$ * }
- if$
-}
-FUNCTION {format.in.journal}
-{ journal format.source duplicate$ empty$
- 'skip$
- { word.in swap$ * }
- if$
-}
-FUNCTION {empty.misc.check}
-{ author empty$ title empty$ howpublished empty$
- month empty$ year empty$ note empty$
- and and and and and
- { "all relevant fields are empty in " cite$ * warning$ }
- 'skip$
- if$
-}
-FUNCTION {format.tr.number}
-{ number "number" bibinfo.check
- type duplicate$ empty$
- { pop$ bbl.techrep }
- 'skip$
- if$
- "type" bibinfo.check
- swap$ duplicate$ empty$
- { pop$ "t" change.case$ }
- { tie.or.space.prefix * * }
- if$
-}
-FUNCTION {format.article.crossref}
-{
- key duplicate$ empty$
- { pop$
- journal duplicate$ empty$
- { "need key or journal for " cite$ * " to crossref " * crossref * warning$ }
- { "journal" bibinfo.check emphasize word.in swap$ * }
- if$
- }
- { word.in swap$ * " " *}
- if$
- " \cite{" * crossref * "}" *
-}
-FUNCTION {format.crossref.editor}
-{ editor #1 "{vv~}{ll}" format.name$
- "editor" bibinfo.check
- editor num.names$ duplicate$
- #2 >
- { pop$
- "editor" bibinfo.check
- " " * bbl.etal
- *
- }
- { #2 <
- 'skip$
- { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- {
- "editor" bibinfo.check
- " " * bbl.etal
- *
- }
- {
- bbl.and space.word
- * editor #2 "{vv~}{ll}" format.name$
- "editor" bibinfo.check
- *
- }
- if$
- }
- if$
- }
- if$
-}
-FUNCTION {format.book.crossref}
-{ volume duplicate$ empty$
- { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
- pop$ word.in
- }
- { bbl.volume
- capitalize
- swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
- }
- if$
- editor empty$
- editor field.or.null author field.or.null =
- or
- { key empty$
- { series empty$
- { "need editor, key, or series for " cite$ * " to crossref " *
- crossref * warning$
- "" *
- }
- { series emphasize * }
- if$
- }
- { key * }
- if$
- }
- { format.crossref.editor * }
- if$
- " \cite{" * crossref * "}" *
-}
-FUNCTION {format.incoll.inproc.crossref}
-{
- editor empty$
- editor field.or.null author field.or.null =
- or
- { key empty$
- { booktitle format.source duplicate$ empty$
- { "need editor, key, or booktitle for " cite$ * " to crossref " *
- crossref * warning$
- }
- { word.in swap$ * }
- if$
- }
- { word.in key * " " *}
- if$
- }
- { word.in format.crossref.editor * " " *}
- if$
- " \cite{" * crossref * "}" *
-}
-
-% Takes 1 arg (publisher or organisation}
-% if present appends address to the front. ie New York: Sachai Ltd
-% returns the formatted string.
-FUNCTION {format.org.or.pub}
-{ 't :=
- t empty$
- { address empty$
- 'skip$
- { address "address" bibinfo.check 't := }
- if$ }
- { address empty$
- 'skip$
- { address "address" bibinfo.check ": " * t * 't :=}
- if$
- }
- if$
- t
-}
-
-FUNCTION {format.publisher.address}
-{ publisher "publisher" bibinfo.warn format.org.or.pub
-}
-
-FUNCTION {format.organization.address}
-{ organization "organization" bibinfo.check format.org.or.pub
-}
-
-FUNCTION {article}
-{ output.bibitem
- author empty$
- { format.editors "author or editor" output.check
- add.colon
- }
- { format.authors output.nonnull
- add.colon
- crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
- if$
- }
- if$
- bold.format.title "title" output.check
- new.sentence
- crossref missing$
- {
- journal "journal" bibinfo.check
- format.source "journal" output.check
- format.date "year" output.check
- format.vol.num.pages output
- }
- { format.article.crossref output.nonnull
- format.pages output
- }
- if$
- format.note output
- fin.entry
-}
-FUNCTION {wholejournal}
-{ output.bibitem
- author empty$
- { format.editors "author or editor" output.check
- add.colon
- }
- { format.authors output.nonnull
- add.colon
- crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
- if$
- }
- if$
- bold.format.title "title" output.check
- new.sentence
- crossref missing$
- {
- journal emphasize word.in swap$ * "journal" output.check
- format.date "year" output.check
- format.vol.num.pages output
- }
- { format.article.crossref output.nonnull
- format.pages output
- }
- if$
- format.note output
- fin.entry
-}
-FUNCTION {book}
-{ output.bibitem
- author empty$
- { format.editors "author and editor" output.check
- add.colon
- }
- { format.authors output.nonnull
- add.colon
- crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
- if$
- }
- if$
- title format.source "source" output.check
- crossref missing$
- { format.bvolume output
- new.sentence
- format.number.series output
- format.publisher.address output
- }
- {
- new.sentence
- format.book.crossref output.nonnull
- }
- if$
- format.edition output
- format.date "year" output.check
- format.note output
- fin.entry
-}
-
-FUNCTION {inbook}
-{ output.bibitem
- author empty$
- { format.editors "author and editor" output.check
- add.colon
- }
- { format.authors output.nonnull
- add.colon
- crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
- if$
- }
- if$
- title format.source "title" output.check
- crossref missing$
- {
- format.publisher.address output
- format.bvolume output
- new.sentence
- format.number.series output
- }
- {
- new.sentence
- format.book.crossref output.nonnull
- }
- if$
- format.edition output
- format.date "year" output.check
- add.blank
- format.chapter.pages "chapter and/or pages" output.check
- format.note output
- fin.entry
-}
-
-% In