diff --git a/doc/publications/2012-05_NAR/GR_submission/CoverLetter_final.doc b/doc/publications/2012-05_NAR/GR_submission/CoverLetter_final.doc new file mode 100644 index 0000000..76134b3 Binary files /dev/null and b/doc/publications/2012-05_NAR/GR_submission/CoverLetter_final.doc differ diff --git a/doc/publications/2012-05_NAR/GR_submission/GR.cls b/doc/publications/2012-05_NAR/GR_submission/GR.cls new file mode 100644 index 0000000..d4dc59c --- /dev/null +++ b/doc/publications/2012-05_NAR/GR_submission/GR.cls @@ -0,0 +1,1913 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% %%%%%% +%%%%% * LATEX CLASS FILE FOR JOURNALS * %%%%%% +%%%%% %%%%%% +%%%%% %%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{GR} + [2007/03/23 v1.4b + Standard LaTeX document class] +\newif\if@restonecol +\newif\if@titlepage\@titlepagefalse +\DeclareOption{a4paper} + {\setlength\paperheight {11in}% + \setlength\paperwidth {8.25in}} +\DeclareOption{a5paper} + {\setlength\paperheight {210mm}% + \setlength\paperwidth {148mm}} +\DeclareOption{b5paper} + {\setlength\paperheight {250mm}% + \setlength\paperwidth {176mm}} +\DeclareOption{letterpaper} + {\setlength\paperheight {11in}% + \setlength\paperwidth {8.5in}} +\DeclareOption{legalpaper} + {\setlength\paperheight {14in}% + \setlength\paperwidth {8.5in}} +\DeclareOption{executivepaper} + {\setlength\paperheight {10.5in}% + \setlength\paperwidth {7.25in}} +\DeclareOption{custompaper} + {\setlength\paperheight {11in}% + \setlength\paperwidth {8.5in}} +\DeclareOption{landscape} + {\setlength\@tempdima {\paperheight}% + \setlength\paperheight {\paperwidth}% + \setlength\paperwidth {\@tempdima}} +\newif\if@cropmarkson \@cropmarksontrue +\newif\if@theoremsty \@theoremstytrue +\DeclareOption{crop}{\PassOptionsToPackage{cam}{crop}\global\@cropmarksontrue} +\DeclareOption{nocrop}{\PassOptionsToPackage{off}{crop}\global\@cropmarksonfalse} + +\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse} +\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue} +\DeclareOption{draft}{\setlength\overfullrule{5pt}} +\DeclareOption{final}{\setlength\overfullrule{0pt}} +\DeclareOption{webpdf}{\gdef\@webpdf{webpdf}} +\DeclareOption{titlepage}{\@titlepagetrue} +\DeclareOption{notitlepage}{\@titlepagefalse} +\DeclareOption{onecolumn}{\@twocolumnfalse} +\DeclareOption{twocolumn}{\@twocolumntrue} +\DeclareOption{notheoremsty}{\@theoremstyfalse} +\DeclareOption{leqno}{\input{leqno.clo}} +\DeclareOption{fleqn}{\input{fleqn.clo}} +\newif\if@openbib \@openbibfalse +\DeclareOption{openbib}{% +\@openbibtrue% + \AtEndOfPackage{% + \renewcommand\@openbib@code{% + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ + }% + \renewcommand\newblock{\par}}% +} + +\ExecuteOptions{custompaper,twoside,crop,reqno,proof} +\ProcessOptions +\RequirePackage{crop,inputenc,amsmath,amssymb,latexsym, + float,epsfig,wrapfig,graphicx,stfloats, + multicol,rotating,multirow,dcolumn, + boxedminipage,makeidx,soul,url,xspace,times} + +% +%%%%%%%%%%%%%%%%%%%%%%%% *** SIZES *** %%%%%%%%%%%%%%%%%%%%%%%%%% +% +\renewcommand\normalsize{% + \@setfontsize\normalsize{10\p@}{11\p@} + %\@setfontsize\normalsize\@xpt\@xiipt + \abovedisplayskip 13\p@ \@plus6\p@ \@minus3\p@ + \abovedisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} +\normalsize +\newcommand\small{% + \@setfontsize\small\@ixpt{11}% + \abovedisplayskip 9\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip} + +\newcommand\footnotesize{% + \@setfontsize\footnotesize\@viiipt{10}% + \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 3\p@ \@plus\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip} +% +\newcommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt} +\newcommand\tiny{\@setfontsize\tiny\@vpt\@vipt} +\newcommand\large{\@setfontsize\large\@xiipt{14}} +\newcommand\Large{\@setfontsize\Large\@xivpt{16}} +\newcommand\LARGE{\@setfontsize\LARGE\@xviipt{22}} +\newcommand\huge{\@setfontsize\huge\@xxpt{25}} +\newcommand\Huge{\@setfontsize\Huge\@xxvpt{30}} +% +\DeclareMathSizes{10}{10}{8}{6} +\DeclareMathSizes{9}{9}{7.6}{5} +\DeclareMathSizes{8}{8}{6}{5} +% +%%%%%%%%%%%%%%%%%%%% ** PENALTIES ** %%%%%%%%%%%%%%%%%%% +% +% Page break penalties +\@lowpenalty 31 +\@medpenalty 151 +\@highpenalty 301 +% Disallow widows and orphans +\clubpenalty 10000 +\widowpenalty 10000 +% Disable page breaks before equations, allow pagebreaks after +% equations and discourage widow lines before equations. +\displaywidowpenalty 100 +\predisplaypenalty 10000 +\postdisplaypenalty 100 +% Allow breaking the page in the middle of a paragraph +\interlinepenalty 0 +% Disallow breaking the page after a hyphenated line +\brokenpenalty 10000 +% Hyphenation; don't split words into less than three characters +\lefthyphenmin=3 +\righthyphenmin=3 +\hyphenation{figure figures Figure table tables Table Section section Chapter chapter} +% +% Prevent Hyphenation +\hyphenpenalty=2000 +\tolerance=1000 +% +\frenchspacing +\vbadness=9999 +\doublehyphendemerits=10000 +\doublehyphendemerits 640000 % corresponds to badness 800 +\finalhyphendemerits 1000000 % corresponds to badness 1000 +% +%%%%%%%%%%%%%%%%%%%% ** PAGE LAYOUT ** %%%%%%%%%%%%%%%%%%% +% +% Set page layout dimensions +\setlength\topmargin{37pt} % head margin +\addtolength\topmargin{-1in} % subtract out the 1 inch driver margin +% +\setlength\headheight{7\p@} % height of running head +\setlength\topskip{10\p@} % height of first line of text +\setlength\headsep{35\p@} % space below running head -- +\addtolength\headsep{-\topskip} % base to base with first line of text +% +\setlength\textwidth{514pt} % text measure excluding margins +\setlength\textheight{61\baselineskip} % # lines of text +\addtolength\textheight{1.2pt} + +% Side Margins +\setlength\oddsidemargin{56pt} +\addtolength\oddsidemargin{-1in} % subtract out the 1 inch driver margin +% +\setlength\evensidemargin{\paperwidth} +\addtolength\evensidemargin{-\textwidth} +\addtolength\evensidemargin{-\oddsidemargin} +\addtolength\evensidemargin{-2in} +% +\setlength\columnsep{20\p@} % space between columns for double-column text +\setlength\columnseprule{0\p@} % width of rule between two columns +% +\setlength\lineskip{1\p@} +\setlength\normallineskip{1\p@} +\renewcommand\baselinestretch{1} +\setlength\parskip{0\p@} +\setlength\parindent{1em} +% +\setlength\footskip{24\p@} +\setlength\maxdepth{0pt}% +% +\setlength\marginparwidth{2.5pc} +\setlength\marginparsep{.5pc} +\def \@marginparreset {% + \reset@font + \scriptsize + \@setminipage} +% +\setlength\smallskipamount{3\p@ \@plus 1\p@ \@minus 1\p@} +\setlength\medskipamount{6\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\bigskipamount{12\p@ \@plus 4\p@ \@minus 4\p@} +% +%%%%%%%%%%%%%%%%%%%% ** TITLE DEFS ** %%%%%%%%%%%%%%%%%%% +% +\def\jshort{bio} +\newcommand\contentsname{Contents} +\newcommand\listfigurename{List of Figures} +\newcommand\listtablename{List of Tables} +\newcommand\refname{REFERENCES} +\newcommand\indexname{Index} +\newcommand\figurename{Figure} +\newcommand\tablename{Table} +\newcommand\partname{Part} +\newcommand\appendixname{Appendix} +\newcommand\abstractname{Abstract} +\newcommand\ackname{Acknowledgements} +\newcommand\keywordname{Keywords} +\def\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space\number\day, \number\year} +% +%%%%%%%%%%%%%%%%%%%% ** OLD COMMANDS ** %%%%%%%%%%%%%%%%%%% +% +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\sfit}{\normalfont\sffamily\itshape}{\mathsf} +\DeclareOldFontCommand{\sfb}{\normalfont\sffamily\bfseries}{\mathsf} +\DeclareOldFontCommand{\sfbi}{\normalfont\sffamily\bfseries\itshape}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\tti}{\normalfont\ttfamily\itshape}{\mathtt} +\DeclareOldFontCommand{\ttb}{\normalfont\ttfamily\bfseries}{\mathtt} +\DeclareOldFontCommand{\ttbi}{\normalfont\ttfamily\bfseries\itshape}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\bi}{\normalfont\bfseries\itshape}{\mathbi} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} +\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal} +\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal} +% +%%%%%%%%%%%%%%%%%%%% ** PAGE STYLES ** %%%%%%%%%%%%%%%%%%% +% +\if@twoside + \def\ps@headings{% + \def\@evenhead{\rule[-4pt]{\textwidth}{1pt}\hfil\slshape\leftmark}% + \def\@oddhead{\rule[-4pt]{\textwidth}{1pt}{\slshape\rightmark}\hfil}% + \def\@oddfoot{\hfil\thepage} + \def\@evenfoot{\thepage\hfil} + \let\@mkboth\markboth + \def\sectionmark##1{\markboth{##1}{##1}}% + } +\else + \def\ps@headings{% + \let\@oddfoot\@empty + \def\@oddhead{{\slshape\rightmark}\hfil\thepage}% + \let\@mkboth\markboth + \def\sectionmark##1{\markright {##1}}} +\fi +\def\ps@plain{\let\@mkboth\@gobbletwo + \def\@oddhead{% + \raisebox{6pt}[0pt]{\smash{\hbox to \textwidth{{\catchlineinfofont Submitted\ }{\catchlineinfofont\@pubdate}\ \hfill{\catchlineinfofont\catchlineinfo}}}}% + }% + \def\@evenhead{% + \raisebox{6pt}{\smash{\hbox to \textwidth{{\catchlineinfofont Submitted\ }{\catchlineinfofont\@pubdate}\ \hfill{\catchlineinfofont\catchlineinfo}}}}% + \llap{\rule[-26pt]{\textwidth}{1pt}}}% + \def\@oddfoot{\raisebox{24pt}[0pt]{\copyrightfont\begin{tabular*}{\textwidth}{@{}p{\textwidth}@{}} + \copyright\ \@copyrightyear\ The Author(s)\\ + %This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (http://creativecommons.org/licenses/\penalty0by-nc/2.0/uk/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited. + \end{tabular*}}} + \def\@evenfoot{\rlap{\rule[12pt]{\textwidth}{.5pt}}{\foliofont\thepage}\hfil\copyrightfont \copyright\ The Author \@pubdate.} + } +% +\def\ps@front{\let\@mkboth\@gobbletwo + \def\@oddhead{% + \raisebox{-9pt}{\smash{\hbox to \textwidth{\hskip\jnameskip{\jnamefont\@jname}\hfill{\ifx\@articletype\articletypecheck\articletypesmallfont\else\articletypefont\fi\@articletype}\hfill{\catchlineinfofont\catchlineinfo}}}}% + \llap{\rule[-16pt]{\textwidth}{1pt}}}% + \def\@evenhead{% + \raisebox{-9pt}{\smash{\hbox to \textwidth{\hskip\jnameskip{\jnamefont\@jname}\hfill{\ifx\@articletype\articletypecheck\articletypesmallfont\else\articletypefont\fi\@articletype}\hfill{\catchlineinfofont\catchlineinfo}}}}% + \llap{\rule[-16pt]{\textwidth}{1pt}}}% + \def\@oddfoot{\rlap{\rule[12pt]{\textwidth}{1pt}}\copyrightfont } + \def\@evenfoot{\rlap{\rule[12pt]{\textwidth}{1pt}}\copyrightfont } + } +\def\ps@contents{% + \def\@evenhead{\rlap{\rule[-10pt]{\textwidth}{.5pt}}{\lrhfont\leftmark}\hfil}% + \def\@oddhead{\rlap{\rule[-10pt]{\textwidth}{.5pt}}\hfil{\rrhfont\rightmark}}% + \def\@oddfoot{\rlap{\rule[12pt]{\textwidth}{1pt}}} + \def\@evenfoot{\rlap{\rule[12pt]{\textwidth}{1pt}}} + \let\@mkboth\@gobbletwo + \let\chaptermark\@gobble + \let\sectionmark\@gobble + \def\titlemark##1{\markboth{##1}{##1}}% + \def\authormark##1{\gdef\leftmark{##1}}% + } +\def\ps@myheadings{% + \let\@oddfoot\@empty + \let\@evenfoot\@empty + \def\@evenhead{{\lrffont\thepage}\quad{\lrhfont\rightmark}\hfil}% + \def\@oddhead{\hfil{\rrhfont\rightmark}\quad{\rrffont\thepage}}% + \let\@mkboth\@gobbletwo + \let\chaptermark\@gobble + \let\sectionmark\@gobble + \def\titlemark##1{\markboth{##1}{##1}}% + \def\authormark##1{\gdef\leftmark{##1}}% +} +\def\ps@empty{\let\@mkboth\@gobbletwo% + \def\@oddhead\@empty% + \let\@oddfoot\@empty% + \def\@evenhead\@empty% + \let\@evenfoot\@empty} +% +%%%%%%%%%%%%%%%%%%%% ** LOCAL FONT DEFINITIONS ** %%%%%%%%%%%%%%%%%%% +% +% Running head, foot, pageno & other info. +\def\lrhfont{\fontfamily{\rmdefault}\fontshape{it}\fontsize{10.16}{10.16}\selectfont} +\def\rrhfont{\fontfamily{\rmdefault}\fontshape{it}\fontsize{10.16}{10.16}\selectfont} +\def\rrffont{\fontfamily{\rmdefault}\fontseries{b}\fontshape{it}\fontsize{10}{10}\selectfont} +\def\lrffont{\fontfamily{\rmdefault}\fontseries{b}\fontshape{it}\fontsize{10}{10}\selectfont} +\def\foliofont{\reset@font\fontfamily{\sfdefault}\fontseries{b}\fontshape{n}\fontsize{9}{11}\selectfont} +\def\opheadfootfont{\fontfamily{\rmdefault}\fontsize{8}{8}\selectfont} +% Header +\def\titlefont{\fontfamily{\sfdefault}\fontsize{20}{22}\fontseries{b}\selectfont\leftskip0pt\rightskip0pt plus1fill} +\def\subtitlefont{\fontfamily{\sfdefault}\fontsize{14}{18}\fontseries{m}\selectfont\leftskip0pt\rightskip0pt plus1fill} +\def\authorfont{\reset@font\fontfamily{\sfdefault}\fontsize{12}{14}\fontseries{b}\selectfont\leftskip0pt\rightskip0pt plus1fill} +\def\addressfont{\reset@font\fontfamily{\sfdefault}\fontsize{10}{12}\fontseries{n}\selectfont\leftskip0pt\rightskip0pt plus1fill} +\def\abstractfont{\fontfamily{\sfdefault}\fontsize{10}{12}\fontseries{b}\selectfont\leftskip0pt\rightskip0pt} +\def\abstractheadfont{\normalfont\bf\selectfont} +\def\keywordheadfont{\fontfamily{\rmdefault}\fontsize{8}{10}\selectfont\itshape} +\def\keywordfont{\fontfamily{\rmdefault}\fontsize{8}{10}\selectfont\leftskip0pt\rightskip0pt} +\def\historyfont{\fontfamily{\sfdefault}\fontsize{8}{10}\fontseries{n}\selectfont\leftskip0pt\rightskip0pt plus1fill} +\def\accessfont{\fontfamily{\sfdefault}\fontsize{8}{10}\fontseries{n}\selectfont\leftskip0pt\rightskip0pt plus1fill} +\def\editorfont{\fontfamily{\sfdefault}\fontsize{8}{10}\fontseries{n}\selectfont\leftskip0pt\rightskip0pt plus1fill} +% Sections +\def\sectionfont{\fontfamily{\sfdefault}\fontsize{10}{11}\fontseries{b}\selectfont\leftskip0pt\rightskip0pt plus1fill} +\def\subsectionfont{\fontfamily{\rmdefault}\fontsize{10}{11}\fontseries{b}\selectfont\leftskip0pt\rightskip0pt plus1fill} +\def\subsubsectionfont{\fontfamily{\rmdefault}\fontshape{it}\selectfont\raggedright} +\def\paragraphfont{\fontfamily{\rmdefault}\fontsize{10}{12}\bfseries\selectfont} +\def\subparagraphfont{\fontfamily{\sfdefault}\fontsize{8}{10}\fontseries{b}\selectfont} +\def\listheadfont{\normalfont\normalsize} +% Floats +\def\timesc{\fontsize{7.5}{12}\selectfont} +\def\figurenumberfont{\reset@font\fontsize{8}{9}\fontseries{b}\selectfont}% +\def\figurecaptionfont{\fontsize{8}{9}\selectfont} +% +\def\tablenumberfont{\reset@font\fontfamily{\rmdefault}\fontsize{8}{10}\fontseries{b}\selectfont} +\def\tablecaptionfont{\fontfamily{\rmdefault}\fontsize{8}{10}\selectfont\leftskip\tablecapleftskip\rightskip\tablecaprightskip} +\def\tablebodyfont{\fontfamily{\rmdefault}\fontsize{8}{9}\selectfont\leftskip\tableleftskip\rightskip\tablerightskip} +\def\tablefootfont{\fontfamily{\rmdefault}\fontsize{7}{9}\selectfont\leftskip\tablefootleftskip \rightskip\tablefootrightskip} +\def\TCHfont{\fontfamily{\rmdefault}\fontsize{8}{10}\selectfont} +\def\SCHfont{\fontfamily{\rmdefault}\fontsize{8}{10}\selectfont} +% List +\def\listfont{\normalfont} +\def\listlabelfont{\normalfont} +\def\mclistfont{\fontsize{10}{13}\selectfont} +% Biliography +\def\bibfont{\fontsize{8}{9}\selectfont} +% Index +\def\indexfont{\fontsize{9}{11}\selectfont} +% OTHERS +\def\extractfont{}%\fontsize{10}{12}\selectfont +\def\quotefont{\fontsize{10}{11}\selectfont} +\def\symbolsfont{\fontsize{10}{13}\selectfont} +\def\ackfont{\fontsize{10}{12}\selectfont} +% +%%%%%%%%%%%%%%%%%%%% ** JOURNAL HEADER COMMANDS ** %%%%%%%%%%%%%%%%%%% +% +\newskip\jnameskip +\def\jnamefont{\fontfamily{\rmdefault}\fontsize{10}{10}\selectfont\fontshape{it}\selectfont} +\def\jname#1{\gdef\@jname{#1}}\jname{Genome Research} +% +\def\articletypefont{\fontfamily{\rmdefault}\fontsize{10}{10}\selectfont\fontshape{it}\selectfont} +\def\articletypesmallfont{\fontfamily{\rmdefault}\fontsize{10}{10}\selectfont\fontshape{it}\selectfont} +\def\articletype#1{\gdef\@articletype{#1}} +\articletype{ORIGINAL PAPER} +\def\articletypecheck{APPLICATIONS NOTE} +% +\def\pubdate#1{\gdef\@pubdate{#1}} +% +\def\articlesubtypefont{\fontfamily{\sfdefault}\fontsize{20}{22}\fontseries{b}\selectfont\selectfont} +\def\articlesubtype#1{\gdef\@articlesubtype{\uppercase{#1}}} +\articlesubtype{}%Sequence analysis +% +\def\jvolume#1{\gdef\@jvol{#1}}\jvolume{00} +\def\jissue#1{\gdef\@jissue{#1}}\jissue{00} +\def\pubyear#1{\def\@pubyear{#1}}\pubyear{0000} + +\def\copyrightfont{\fontfamily{\rmdefault}\fontsize{7.5}{9}\selectfont\selectfont} +\def\copyrightyear#1{\def\@copyrightyear{#1}} +\def\artid#1{\gdef\@artid{#1}}\artid{000} +\def\shortjname#1{\gdef\@shortjname{#1}}\shortjname{gkn} +% +\def\catchlineinfofont{\fontfamily{\rmdefault}\fontsize{10}{11}\selectfont\fontshape{it}\selectfont} +\def\catchlineinfo{\begin{tabular}[t]{@{}r@{}} +\@jname,\ \@pubyear,\ %\ifx\@jvol\undefined\else Vol.\ \@jvol,\ \fi\ifx\@jissue\undefined\else No.\ \@jissue\hskip1em\fi\ +\textbf{\textit{\@firstpage--\@lastpage}}\\ +%doi:10.1093/gr/\@shortjname\@artid +\end{tabular}} +% +\long\def\title{\@ifnextchar[{\short@title}{\@@title}} +\def\short@title[#1]{\titlemark{#1}\@@@title} +\def\@@title#1{\authormark{#1}\@@@title{#1}} +\long\def\@@@title#1{\gdef\@title{#1}\addcontentsline{toc}{article}{#1}} +% +\def\subtitle#1{\gdef\@subtitle{{#1}}} +% +\long\def\author{\@ifnextchar[{\short@uthor}{\@uthor}} +\def\short@uthor[#1]{\authormark{#1}\@@author} +\def\@uthor#1{\authormark{#1}\@@author{#1}} +\long\def\@@author#1{\gdef\@author{#1}} +% +\def\address#1{\gdef\@address{#1}} +% +\def\history#1{\gdef\@history{#1}}\history{} +\def\access#1{\gdef\@access{#1}}\access{} +\def\editor#1{\gdef\@editor{#1}}\editor{} +% +\def\rec#1{\unskip Received #1}% +\def\acc#1{\unskip Accepted #1}% + +\def\keyword#1{\def\@key{{\keywordheadfont \keywordname}:~#1}} +\gdef\email#1{E-mail: #1} + + +\newenvironment{abstract}{ +\begingroup + %\begin{multicols}{1} + %\onecolumn + \abstractfont + \let\section\subparagraph + \def\@periodaftersection{} + {\fontseries{b}\selectfont ABSTRACT}\vskip6pt\noindent \ignorespaces +} +{ +\endgroup + %\end{multicols} + %\twocolumn + %\begin{multicols}{2} +}%\bigskip\@afterheading\@afterindentfalse + +% +\def\mystar{\ifx\@webpdf\undefined + $\ast$ + \else% + \hyperlink{\csname fn\@roman\c@footnote\endcsname}{\textsuperscript{$\ast$}}% + \fi} + % +\def\@fnsymbol#1{\ensuremath{\ifcase#1\or {\ast} \or {\dagger}\or \ddagger\or + \mathsection\or \mathparagraph\or \|\or **\or \dagger\dagger + \or \ddagger\ddagger \else\@ctrerr\fi}} +% +\def\@myfnsymbol#1{\ensuremath{\ifcase#1\or ^{\ast} \or ^{\dagger}\or ^{\ddagger}\or + \mathsection\or \mathparagraph\or \|\or **\or \dagger\dagger + \or \ddagger\ddagger \else\@ctrerr\fi}} +% +%%%%%%%%%%%%%%%%%%%% ** ARTICLE HEADER ** %%%%%%%%%%%%%%%%%%% +% +\newcommand\maketitle{\par + \begingroup + \makeatletter + \markboth{\@jname,\ \@pubyear + %,\ Vol.~\@jvol,\ No.~\@jissue + } + {Generation\ of\ systems\ biology\ models\ from\ KEGG%, Submitted\ to\ \@jname,\ \@pubyear + %,\ Vol.~\@jvol,\ No.~\@jissue + } + \makeatother + \renewcommand\thefootnote{\@fnsymbol\c@footnote}% + \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% + \long\def\@makefntext##1{\parindent 3mm\noindent +% \@textsuperscript{\normalfont\@thefnmark}\raggedright##1}% + \@textsuperscript{\normalfont\@thefnmark}##1}% + + \if@twocolumn% + \ifnum \col@number=\@ne% + \@maketitle% + \else% + \twocolumn[\@maketitle]% + \fi + \else + \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle + \fi + \thispagestyle{plain}\@thanks + \endgroup + \@afterindentfalse + \setcounter{footnote}{0}% + \global\let\@chapter\@empty\global\let\type\relax + \global\let\@title\@empty\global\let\title\relax + \global\let\@subtitle\@empty\global\let\subtitle\relax %%subtitle + \global\let\@author\@empty\global\let\author\relax + \global\let\@thanks\@empty\global\let\thanks\relax + \global\let\@address\@empty\global\let\address\relax + \global\let\affD\relax + \global\let\@Date\@empty\global\let\Date\relax + \global\let\@abs\@empty\global\let\abs\relax + \global\let\@key\@empty\global\let\key\relax + \global\let\@tableofcontents\@empty\global\let\tableofcontents\relax + \global\let\maketitle\relax\global\let\@maketitle\relax +\@afterheading +\enlargethispage{-24.5pt}} +% +\newdimen\titleskip\titleskip=3pt%\titleskip=-5.5pt +\newdimen\ruleskip\ruleskip=4pt +\newdimen\ruleht\ruleht=1pt +\def\@maketitle{% + \begin{flushleft}% + \let \footnote\thanks + \ifx\@articlesubtype\empty\else + \vspace*{-19.7pt}% + \vtop to 10.3pt{\articlesubtypefont\@articlesubtype\par\vfill} + \fi% + \ifx\@title\empty\else + \vspace*{\titleskip}% + {\titlefont\@title\par}\vspace{-2pt} + \fi% + \ifx\@subtitle\undefined\else + \vskip4pt + {\subtitlefont\@subtitle\par} + \fi% + \ifx\@author\empty\else + \vskip10pt% + {\authorfont\@author\par} + \fi% + \ifx\@address\empty\else + \vspace*{12pt}% + {\addressfont\@address\par} + \fi% + \ifx\@history\empty\else + \vspace*{14pt}% + {\historyfont\@history\par} + \fi% + \ifx\@access\empty + \vspace*{8.5pt}% + \else + \vspace*{3pt}% + {\accessfont\@access\par} + \fi% + \ifx\@editor\empty\else + \vspace*{3pt}% + {\editorfont\@editor\par} + \fi% +\vskip6pt +\end{flushleft}% +\par} +% +%%%%%%%%%%%%%%%%%%%% ** DROPCAP ** %%%%%%%%%%%%%%%%%%% +% +\def\dropfont{\fontsize{26}{26}\selectfont\bfseries} +\newcount\droplines\droplines=2 +% +\newdimen\dropsep\dropsep=2pt +\newskip\capvskip\capvskip=5pt +\newskip\caphskip\caphskip=0pt +% +\newdimen\capwd +\newdimen\droplinewd +% +\def\dropcap#1#2{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Usage: \dropcap{1st letter}{few words} + \settowidth{\capwd}{\dropfont#1} + \droplinewd=\hsize% + \advance\droplinewd by-\capwd + % + \advance\capwd by\dropsep + \advance\capwd by\caphskip + \advance\droplinewd by-\dropsep + \advance\droplinewd by-\caphskip + % + \advance\droplines by1 + \vskip-\baselineskip + \moveright \caphskip \vbox to 0pt{\vspace*{\capvskip}\hbox to \capwd{{\dropfont#1}}}\par% + \parshape= \droplines% + \ifcase\droplines% + \or% + \or% + \capwd \droplinewd + \or + \capwd \droplinewd \capwd \droplinewd + \or + \capwd \droplinewd \capwd \droplinewd \capwd \droplinewd + \or + \capwd \droplinewd \capwd \droplinewd \capwd \droplinewd \capwd \droplinewd + \fi + 0pt \hsize + \noindent\ignorespaces\textbf{#2}} +% +%%%%%%%%%%%%%%%%%%%% ** ARTICLE SECTIONS ** %%%%%%%%%%%%%%%%%%% +% +\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else + \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi} +\newcommand*\chaptermark[1]{} +\newcommand*\authormark[1]{} +\setcounter{secnumdepth}{0} +\newcounter {part} +\newcounter {section} +\newcounter {subsection}[section] +\newcounter {subsubsection}[subsection] +\newcounter {paragraph}[subsubsection] +\newcounter {subparagraph}[paragraph] +\renewcommand \thepart {\@Roman\c@part} +\renewcommand \thesection {\@arabic\c@section} +\renewcommand\thesubsection {\thesection.\@arabic\c@subsection} +\renewcommand\thesubsubsection{\thesubsection .\@arabic\c@subsubsection} +\renewcommand\theparagraph {\thesubsubsection.\@arabic\c@paragraph} +\renewcommand\thesubparagraph {\theparagraph.\@arabic\c@subparagraph} +\newcommand\part{% + \if@noskipsec \leavevmode \fi + \par + \addvspace{4ex}% + \@afterindentfalse + \secdef\@part\@spart} + +\def\@part[#1]#2{% + \ifnum \c@secnumdepth >\m@ne + \refstepcounter{part}% + \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + {\parindent \z@ \raggedright + \interlinepenalty \@M + \normalfont + \ifnum \c@secnumdepth >\m@ne + \Large\bfseries \partname~\thepart + \par\nobreak + \fi + \huge \bfseries #2% + \markboth{}{}\par}% + \nobreak + \vskip 3ex + \@afterheading} +\def\@spart#1{% + {\parindent \z@ \raggedright + \interlinepenalty \@M + \normalfont + \huge \bfseries #1\par}% + \nobreak + \vskip 3ex + \@afterheading} +% +\def\@seccntformat#1{\csname the#1\endcsname.\hskip0.4em\relax} + +\newcommand\abstracthead{\@startsection {section}{4}{1em}% + {0pt \@plus 0\p@ \@minus 0\p@}% + {-4pt}% + {\abstractheadfont}} +\newcommand\section{\@startsection {section}{1}{\z@}% + {-18pt \@plus -2\p@ \@minus -2\p@}% + {5pt}% + {\sectionfont}} +\newcommand\subsection{\@startsection{subsection}{2}{\z@}% + {-12pt \@plus -2\p@ \@minus -2\p@}% + {5\p@}% + {\subsectionfont}} +\newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% + {-11pt \@plus -2\p@ \@minus -2\p@}% + {-.5em}% + {\subsubsectionfont}} +\newcommand\paragraph{\@startsection{paragraph}{4}{0pt}% + {2\p@ \@plus 2\p@ \@minus 2\p@}% + {-3\p@ \@plus -1\p@ \@minus -1\p@}% + {\paragraphfont}} +\newcommand\subparagraph{\@startsection{subparagraph}{5}{0pt}% + {0\p@ \@plus 0\p@ \@minus 0\p@}% + {-.5em \@plus -1\p@ \@minus -1\p@}% + {\subparagraphfont}} + +\newcommand\listhead{\@startsection{subparagraph}{5}{12\p@}% + {0\p@ \@plus 0\p@ \@minus 0\p@}% + {0.0001pt}% + {\listheadfont}} + +\def\periodaftersection#1{\gdef\@periodaftersection{#1}} +\periodaftersection{.} + +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth% + \let\@svsec\@empty% + \else% + \refstepcounter{#1}% + \ifnum #2 >4% + \edef\@svsec{\csname the#1\endcsname\hskip .25em}% + \else% + \edef\@svsec{\csname the#1\endcsname\hskip1em}% + \fi% + \fi% + \@tempskipa #5\relax% + \ifdim \@tempskipa>\z@% + \ifcase#2\or% + \begingroup #6\relax + \parindent=0pt% + \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M{\uppercase{#8}}\par}% + \endgroup + \or + %\@afterindenttrue + \begingroup #6\relax + \parindent=0pt% + \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M{{#8}}\par}% + \endgroup + \or + %\@afterindenttrue + \begingroup #6\relax + \parindent=0pt% + \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M{{#8}}\par}% + \endgroup + \or + \begingroup #6\relax + \parindent=0pt% + \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M{{#8}}\par}% + \endgroup + \or + \begingroup #6\relax + \parindent=0pt% + \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M{{#8}}\par}% + \endgroup + \else + \begingroup #6\relax + {\noindent{\hskip #3\relax\@svsec}{\interlinepenalty \@M{#8}\par}}% + \endgroup + \fi% + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth% + \else \protect\numberline{\csname the#1\endcsname}% + \fi#7}% + \else% + \periodaftersection{} + \def\@svsechd{% + #6{\hskip #3\relax + \@svsec #8\@periodaftersection}% + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}}% + \fi% +\@xsect{#5}} +% +\def\@ssect#1#2#3#4#5{% + \@tempskipa #3\relax + \ifdim \@tempskipa>\z@ + \ifcase\level + \or + \begingroup + #4{% + \@hangfrom{\hskip #1}% + \interlinepenalty \@M \uppercase{#5}\@@par}% + \endgroup + \or + %\@afterindenttrue + \begingroup + #4{% + \@hangfrom{\hskip #1}% + \interlinepenalty \@M #5\@@par}% + \endgroup + \or + %\@afterindenttrue + \begingroup + #4{% + \@hangfrom{\hskip #1}% + \interlinepenalty \@M #5\@@par}% + \endgroup + \else + \begingroup + #4{% + \@hangfrom{\hskip #1}% + \interlinepenalty \@M #5\@@par}% + \endgroup + \fi + \else + \def\@svsechd{#4{\hskip #1\relax #5}}% + \fi + \@xsect{#3}} +% +\def\@startsection#1#2#3#4#5#6{% + \if@noskipsec \leavevmode \fi% + \par% + \def\level{#2}%%%%%% my Change + \@tempskipa #4\relax% + \@afterindenttrue% + \ifdim \@tempskipa <\z@% + \@tempskipa -\@tempskipa \@afterindentfalse% + \fi% + \if@nobreak% + \everypar{}% + \ifnum#2=2% + \vspace*{0pt}% + \fi% + \else% + \addpenalty\@secpenalty\addvspace\@tempskipa% + \fi% + \@ifstar% + {\@ssect{#3}{#4}{#5}{#6}}% + {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} +% +%%%%%%%%%%%%%%%%%%%% ** LISTS ** %%%%%%%%%%%%%%%%%%% +% +\if@twocolumn + \setlength\leftmargini {2em} +\else + \setlength\leftmargini {2.5em} +\fi +\leftmargin \leftmargini +\setlength\leftmarginii {2.2em} +\setlength\leftmarginiii {1.87em} +\setlength\leftmarginiv {1.7em} +\if@twocolumn + \setlength\leftmarginv {.5em} + \setlength\leftmarginvi {.5em} +\else + \setlength\leftmarginv {1em} + \setlength\leftmarginvi {1em} +\fi +\setlength \labelsep {.5em} +\setlength \labelwidth{\leftmargini} +\addtolength\labelwidth{-\labelsep} +\@beginparpenalty -\@lowpenalty +\@endparpenalty -\@lowpenalty +\@itempenalty -\@lowpenalty +\renewcommand\theenumi{\@arabic\c@enumi} +\renewcommand\theenumii{\@alph\c@enumii} +\renewcommand\theenumiii{\@roman\c@enumiii} +\renewcommand\theenumiv{\@Alph\c@enumiv} +\newcommand\labelenumi{\theenumi.} +\newcommand\labelenumii{(\theenumii)} +\newcommand\labelenumiii{\theenumiii.} +\newcommand\labelenumiv{\theenumiv.} +\renewcommand\p@enumii{\theenumi} +\renewcommand\p@enumiii{\theenumi(\theenumii)} +\renewcommand\p@enumiv{\p@enumiii\theenumiii} +\newcommand\labelitemi{\textbullet} +\newcommand\labelitemii{\normalfont\bfseries \textendash} +\newcommand\labelitemiii{\textasteriskcentered} +\newcommand\labelitemiv{\textperiodcentered} + +\newenvironment{description} + {\list{}{\labelwidth\z@ \itemindent-\leftmargin + \let\makelabel\descriptionlabel}} + {\endlist} + +\newcommand*\descriptionlabel[1]{\hspace\labelsep + \normalfont\bfseries #1} +\newenvironment{verse} + {\let\\\@centercr + \list{}{\itemsep \z@ + \itemindent -1.5em% + \listparindent\itemindent + \rightmargin \leftmargin + \advance\leftmargin 1.5em}% + \item\relax} + {\endlist} + +\newenvironment{quotation} + {\list{}{\listparindent 1.5em% + \itemindent \listparindent + \rightmargin \leftmargin + \parsep \z@ \@plus\p@}% + \item\relax} + {\endlist} + +\newenvironment{quote} + {\quotefont\list{}{\rightmargin0pt\leftmargin0pt}% + \item\relax} + {\endlist} + +\setlength\partopsep{2\p@ \@plus 1\p@ \@minus 1\p@} +\def\@listi{\leftmargin\leftmargini + \parsep 4\p@ \@plus2\p@ \@minus\p@ + \topsep 8\p@ \@plus2\p@ \@minus4\p@ + \itemsep4\p@ \@plus2\p@ \@minus\p@} +\let\@listI\@listi +\@listi +\def\@listii {\leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep + \topsep 4\p@ \@plus2\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep + \topsep 2\p@ \@plus\p@\@minus\p@ + \parsep \z@ + \partopsep \p@ \@plus\z@ \@minus\p@ + \itemsep \topsep} +\def\@listiv {\leftmargin\leftmarginiv + \labelwidth\leftmarginiv + \advance\labelwidth-\labelsep} +\def\@listv {\leftmargin\leftmarginv + \labelwidth\leftmarginv + \advance\labelwidth-\labelsep} +\def\@listvi {\leftmargin\leftmarginvi + \labelwidth\leftmarginvi + \advance\labelwidth-\labelsep} +% +\newdimen\labelwidthi +\newdimen\labelwidthii +\newdimen\labelwidthiii +\newdimen\labelwidthiv +% +\newskip\topsepi +\newskip\topsepii +\newskip\topsepiii +\newskip\topsepiv +% +\newskip\itemsepi +\newskip\itemsepii +\newskip\itemsepiii +\newskip\itemsepiv +% +\newdimen\labelsepi +\newdimen\labelsepii +\newdimen\labelsepiii +\newdimen\labelsepiv +% +\newdimen\parsepi +\newdimen\parsepii +\newdimen\parsepiii +\newdimen\parsepiv +% +\newdimen\rightmargini +\newdimen\rightmarginii +\newdimen\rightmarginiii +\newdimen\rightmarginiv +% +\newdimen\itemindenti +\newdimen\itemindentii +\newdimen\itemindentiii +\newdimen\itemindentiv +% +\newdimen\labelleftmargin +% +\newif\ifdotalign\global\dotaligntrue +% +\def\myenumerate#1{% + \ifnum \@enumdepth >\thr@@\@toodeep\else% + \advance\@enumdepth\@ne% + \settowidth{\csname labelwidth\romannumeral\the\@enumdepth\endcsname}{\listlabelfont#1}% + \labelsep \csname labelsep\romannumeral\the\@enumdepth\endcsname% + \csname leftmargin\romannumeral\the\@enumdepth\endcsname\csname labelwidth\romannumeral\the\@enumdepth\endcsname% + \advance\csname leftmargin\romannumeral\the\@enumdepth\endcsname\csname labelsep\romannumeral\the\@enumdepth\endcsname% + \ifnum \@enumdepth =\@ne\advance\csname leftmargin\romannumeral\the\@enumdepth\endcsname\labelleftmargin\fi%%%%% Label leftmargin set for first level only! + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \expandafter% + \list% + \csname label\@enumctr\endcsname% + {\listfont% + \topsep \csname topsep\romannumeral\the\@enumdepth\endcsname% + \itemsep \csname itemsep\romannumeral\the\@enumdepth\endcsname% + \rightmargin\csname rightmargin\romannumeral\the\@enumdepth\endcsname% + \parsep \csname parsep\romannumeral\the\@enumdepth\endcsname% + \itemindent \csname itemindent\romannumeral\the\@enumdepth\endcsname + \usecounter\@enumctr\def\makelabel##1{% + \ifdotalign\hss\llap{\listlabelfont##1}% + \else + \hfill\llap{{\hbox to\csname labelwidth\romannumeral\the\@enumdepth\endcsname{{{\listlabelfont##1}}}}}% + \fi}}% + \fi} +\let\endmyenumerate =\endlist +% +\newenvironment{arabiclist}[1][(1)]{% +\dotaligntrue% +\topsepi5.5pt plus2pt minus0pt% +\topsepii5.5pt plus0pt minus0pt% +\itemsepi3pt plus0pt minus0pt% +\itemsepii3pt plus0pt minus0pt% +\labelsepi4pt% +\labelsepii4pt% +\rightmargini0pt% +\rightmarginii0pt% +\labelleftmargin\parindent% leftmargin for labels for first level only +%\raggedright% +\def\labelenumi{(\theenumi)} \def\theenumi{\arabic{enumi}} +\def\labelenumii{(\theenumii)} \def\theenumii{\arabic{enumii})} +\def\listfont{\normalfont} +\def\listlabelfont{\normalfont} +\myenumerate{#1}% +}{\endlist} + +\newenvironment{alphalist}[1][(b)]{% +\dotalignfalse% +\topsepi5.5pt plus2pt minus0pt% +\topsepii5.5pt plus2pt minus0pt% +\itemsepi3pt plus0pt minus0pt% +\itemsepii3pt plus0pt minus0pt% +\labelsepi4pt% +\labelsepii4pt% +\rightmargini0pt +\rightmarginii0pt +\labelleftmargin\parindent% leftmargin for labels for first level only +%\raggedright% +\def\labelenumi{(\theenumi)} \def\theenumi{\alph{enumi}} +\def\labelenumii{(\theenumii)} \def\theenumii{\alph{enumii}} +\def\listfont{\normalfont} +\def\listlabelfont{\normalfont} +\myenumerate{#1}% +}{\endlist} + +\newenvironment{romanlist}[1][(i)]{% +%\dotalignfalse% +\topsepi6pt plus2pt minus0pt% +\topsepii0pt% +\itemsepi0pt +\itemsepii0pt +\labelsepi4pt% +\labelsepii4pt% +\rightmargini0pt +\rightmarginii0pt +\labelleftmargin1em% leftmargin for labels for first level only +%\raggedright% +\def\labelenumi{\theenumi} \def\theenumi{\roman{enumi}} +\def\labelenumii{\theenumii} \def\theenumii{\roman{enumii}} +\def\listfont{\normalfont} +\def\listlabelfont{\normalfont} +\myenumerate{#1}% +}{\endlist} +% +\newenvironment{greeklist}[1][(\ensuremath{\gamma})]{% +%\dotalignfalse% +\topsepi6pt plus2pt minus0pt% +\topsepii6pt plus2pt minus0pt% +\itemsepi0pt +\itemsepii0pt +\labelsepi4pt% +\labelsepii4pt% +\rightmargini0pt +\rightmarginii0pt +\labelleftmargin1em% leftmargin for labels for first level only +%\raggedright% +\def\labelenumi{\theenumi} \def\theenumi{(\@greek\c@enumi)} +\def\labelenumii{\theenumii} \def\theenumii{(\@greek\c@enumii)} +\def\listfont{\normalfont} +\def\listlabelfont{\normalfont} +\myenumerate{#1}% +}{\endlist} +% +\def\@greek#1{\ensuremath{\ifcase#1\or \alpha\or \beta\or \gamma\or + \delta\or \epsilon\or \lambda\or \mu\or \sigma + \or \zeta \else\@ctrerr\fi}} +% +\def\bulletfont{} +% +\newenvironment{bulletlist}[1][\bulletfont\textbullet]{% +\topsepi5pt plus2pt minus0pt% +\topsepii0pt% +\itemsepi3pt% +\itemsepii3pt +\labelsepi5.5pt% +\labelsepii5.5pt% +\rightmargini0pt +\rightmarginii0pt +\labelleftmargin9.5pt% leftmargin for labels for first level only +%\raggedright% +\def\labelenumi{\lower0pt\hbox{\bulletfont\textbullet}}% +\def\labelenumii{\lower0pt\hbox{\bulletfont\textbullet}}% +\def\listfont{\normalfont} +\def\listlabelfont{\normalfont} +\myenumerate{#1}% +}{\endlist} +% +\newenvironment{methbulletlist}[1][\bulletfont\textbullet]{% +\topsepi5pt plus2pt minus0pt% +\topsepii0pt% +\itemsepi2pt% +\itemsepii2pt +\labelsepi5.5pt% +\labelsepii5.5pt% +\rightmargini0pt +\rightmarginii0pt +\labelleftmargin9.5pt% leftmargin for labels for first level only +%\raggedright% +\def\labelenumi{\lower0pt\hbox{\bulletfont\textbullet}}% +\def\labelenumii{\lower0pt\hbox{\bulletfont\textbullet}}% +\def\listfont{\normalfont} +\def\listlabelfont{\normalfont} +\myenumerate{#1}% +}{\endlist} +% +\newenvironment{circlelist}[1][\bulletfont$\circ$]{% +\topsepi6pt plus2pt minus0pt% +\topsepii0pt% +\itemsepi0pt% +\itemsepii0pt +\labelsepi5.5pt% +\labelsepii5.5pt% +\rightmargini0pt \rightmarginii0pt +\labelleftmargin9.5pt% leftmargin for labels for first level only +%\raggedright% +\def\labelenumi{\lower0pt\hbox{\bulletfont$\circ$}}% +\def\labelenumii{\lower0pt\hbox{\bulletfont$\circ$}}% +\def\listfont{\normalfont} +\def\listlabelfont{\normalfont} +\myenumerate{#1}% +}{\endlist} +% +\newenvironment{hyphenlist}[1][\textendash]{% +\topsepi6pt plus2pt minus0pt% +\topsepii0pt plus0pt minus0pt% +\itemsepi0pt% +\itemsepii0pt +\labelsepi5.5pt% +\labelsepii5.5pt% +\rightmargini0pt +\rightmarginii0pt +\labelleftmargin1em% leftmargin for labels for first level only +%\raggedright% +\def\labelenumi{\lower0pt\hbox{\textendash}}% +\def\labelenumii{\lower0pt\hbox{\textendash}}% +\def\listfont{\normalfont} +\def\listlabelfont{\normalfont} +\myenumerate{#1}% +}{\endlist} +% +% +\newenvironment{unnumlist}[1][]{% +\topsepi6pt plus2pt minus0pt% +\topsepii0pt% +\itemsepi0pt% +\itemsepii0pt +\labelsepi0pt% +\labelsepii0pt% +\rightmargini0pt +\rightmarginii0pt +\labelleftmargin2em% leftmargin for labels for first level only +\itemindenti-1em%%%%% hangindent +%\raggedright% +\def\labelenumi{}% +\def\labelenumii{}% +\def\listfont{\normalfont} +\def\listlabelfont{\normalfont} +\myenumerate{#1}% +}{\endlist} +% +\gdef\tab#1{\begin{tabular}{#1}} +% +\newenvironment{mclist}[1]{%\par\vskip6pt plus2pt minus0pt +\parindent0pt\mclistfont +\list{}{\topsep6pt% + \parsep0pt% + \itemindent0pt + \leftmargin0pt}\item[]#1} +{\end{tabular}\endlist}% +% +%%%%%%%%%%%%%%%%%%%% ** MATHS ** %%%%%%%%%%%%%%%%%%% +% +\renewcommand \theequation {{\bf\@arabic\c@equation}} +\setlength\arraycolsep{1.5\p@} +\setlength\arrayrulewidth{.4\p@} + +%%% To get better spacing in the subscript +%%% \ldots and + +\DeclareMathSymbol{\ldotjs}{\mathord}{letters}{"3A} +\def\mymathellipsis{{\mathchoice + {\mathinner{\mskip0.05mu\ldotjs\mskip4mu\ldotjs\mskip4mu + \ldotjs\mskip4mu}}% + {\mathinner{\mskip0.05mu\ldotjs\mskip4mu\ldotjs\mskip4mu + \ldotjs\mskip4mu}}% + {\mathinner{\mskip2.6mu\ldotjs\mskip3.3mu\ldotjs\mskip3.3mu + \ldotjs\mskip3.3mu}}% + {\mathinner{\mskip2.6mu\ldotjs\mskip3.3mu\ldotjs\mskip3.3mu + \ldotjs\mskip3.3mu}}}}% +\DeclareRobustCommand{\mydots}{% + \ifmmode\mymathellipsis\else\textellipsis\fi}% +%\AtBeginDocument{\let\ldots=\mydots} + +\def\mathtight{% +\thickmuskip2mu +\thinmuskip1mu +\medmuskip=1.5mu\relax} + +%%% Standard math spacing +\def\MathSpS{% + \thinmuskip=3mu + \medmuskip=4mu plus 2mu minus 4mu + \thickmuskip=5mu plus 5mu\relax} +%%% With no extra declaration it is \MathSPS in effect + +%%% Standard math spacing with less flexibility +\def\MathSpSS{% + \thinmuskip=3mu + \medmuskip=4mu plus 1.5mu minus 2mu + \thickmuskip=5mu plus 2mu minus 1mu\relax} + +%%% Tight math spacing +\def\MathSpT{% + \thinmuskip=2mu + \medmuskip=2.8mu plus 1.5mu minus 1.5mu + \thickmuskip=3.7mu plus 2mu minus 1mu\relax} + +%%% Very tight math spacing +\def\MathSpTT{% + \thinmuskip=2mu + \medmuskip=2mu plus 1.2mu minus 0.8mu + \thickmuskip=2.6mu plus 1.5mu minus 1mu\relax} + +\jot=3pt +\def\DS{\displaystyle} +\mathchardef\@m=1500 % adapted value +\mathtight +% +%%%%%%%%%%%%%%%%%%%% ** OTHER ENVIR. ** %%%%%%%%%%%%%%%%%%% +% +\newenvironment{extract} + {\begin{list}{} + {% + \extractfont + \setlength{\topsep}{6pt} + \setlength{\leftmargin}{1em} + \setlength{\rightmargin}{0em} + \setlength{\parsep}{0pt} + \setlength{\itemsep}{18pt} + \setlength{\itemindent}{0pt} + \setlength{\listparindent}{12pt} + }\item[]} + {\end{list}} +\def\source#1{{\par\selectfont\leftskip0pt plus1fill #1\par}} +% +\newenvironment{ack}[1][\ackname] + {\section*{#1}% + \ackfont\list{}{\rightmargin0pt\leftmargin0pt}% + \item\relax} + {\endlist} +% +%%%%%%%%%%%%%%%%%%%% ** FIGURE & TABLE ** %%%%%%%%%%%%%%%%%%% +% +\setlength\tabcolsep{6\p@} +\setlength\doublerulesep{2\p@} +\setlength\tabbingsep{\labelsep} +% +\newcounter{figure} +\def\thefigure{\@arabic\c@figure} +\def\fps@figure{tbp} +\def\ftype@figure{1} +\def\ext@figure{lof} +\def\fnum@figure{\figurename~\thefigure} +% +\newcounter{table} +\def\thetable{\@arabic\c@table} +\def\fps@table{tbp} +\def\ftype@table{2} +\def\ext@table{lot} +\def\fnum@table{\tablename~\thetable} +% +\newenvironment{figure} + {\let\@makecaption\@figurecaption\@float{figure}} + {\end@float} +\newenvironment{figure*} + {\let\@makecaption\@figurecaption\@dblfloat{figure}} + {\end@dblfloat} +\newenvironment{intextfigure} + {\par\addvspace{12pt plus2pt minus2pt}\begin{minipage}{\textwidth}\centering}% + {\end{minipage}\par\addvspace{12pt plus2pt minus2pt}\@endparenv} +% +\newenvironment{table} + {\let\@makecaption\@tablecaption\@float{table}} + {\end@float} +\newenvironment{table*} + {\let\@makecaption\@tablecaption\@dblfloat{table}} + {\end@dblfloat} +% +\newlength\abovecaptionskip +\newlength\belowcaptionskip +\setlength\abovecaptionskip{7\p@} +\setlength\belowcaptionskip{4.2\p@} +% +\long\def\@makecaption#1#2{% + \vskip\abovecaptionskip + \sbox\@tempboxa{#1: #2}% + \ifdim \wd\@tempboxa >\hsize + #1: #2\par + \else + \global \@minipagefalse + \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \vskip\belowcaptionskip} +% +\long\def\@figurecaption#1#2{% +\ifx\@webpdf\undefined\else% +\def\HyperRaiseLinkDefault{\figureheight}% +\advance\HyperRaiseLinkDefault\abovecaptionskip% +\fi% + \vskip\abovecaptionskip% + \sbox\@tempboxa{\figurecaptionfont {\figurenumberfont #1.}\hskip0.5em#2}% + \ifdim \wd\@tempboxa > \hsize + {\figurecaptionfont {\figurenumberfont #1.}\hskip0.5em#2\par} + \else + \global \@minipagefalse + \hb@xt@\hsize{{\unhbox\@tempboxa\hfill}}% + \fi} +% +\graphicspath{{\artdir}{\artdir}} +% +\newdimen\figurewidth +\newdimen\figureheight% +\def\EPSfbox#1{\centering% +\settowidth{\figurewidth}{\epsfbox{#1}}% +\settoheight{\figureheight}{\epsfbox{#1}}% +\vspace*{\@fptop}% +\epsfbox{#1} +}% +% +\newdimen\dwidth +\newdimen\dheight +\newcount\ncolumns +\newcount\nrows +% +\def\showtiff#1#2#3#4{% +\dwidth=#2\dheight=#2 +\ncolumns=#3\nrows=#4 +\divide\dheight by \ncolumns +\multiply\dheight by \nrows +\edef\width{\number\dwidth}\edef\height{\number\dheight}\hbox{\vbox to +\dheight{\vfill\hbox to \dwidth{\special{insertimage:#1 \width \space +\height}\hfill}}}\vspace{4pt}}% +% +% TABLE +% +\newdimen\tablewd +\newdimen\tablewidth +\newdimen\captionwd +\newbox\tempbox +\newskip\tableleftskip% +\newskip\tablerightskip% +\newskip\tablecapleftskip% +\newskip\tablecaprightskip% +\newskip\tablefootleftskip% +\newskip\tablefootrightskip% +% +\newcolumntype{d}[1]{D{.}{.}{#1}} +% +\def\TCH#1{\TCHfont #1} %Table col-heads +\def\SCH#1{\SCHfont #1} %Table col-heads +% +\def\@tablecaption#1#2{% + \vspace*{\@fptop}% + \settowidth{\global\captionwd}{\hbox{\tablecaptionfont{\tablenumberfont #1.}\hskip.5em#2\vphantom{pyg}}}% + {\tablecaptionfont{\tablenumberfont #1.}\hskip.5em#2\vphantom{pyg}\par} + \vskip\belowcaptionskip} +% +\long\def\tableparts#1#2#3{%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #1-caption #2-body #3-footnote + \setbox\tempbox\vbox{#1} %% to calculate width caption + \addtocounter{table}{-1} %% + \settowidth{\global\tablewd}{\tablebodyfont#2} %% \captionwd - caption of width + \tablewidth\hsize %% \tablewd - table width + \advance\tablewidth-\tablewd + \divide\tablewidth 2 + \global\tableleftskip\tablewidth + \global\tablerightskip\tablewidth + \ifdim\captionwd>\hsize + \global\tablecapleftskip\tablewidth + \global\tablecaprightskip\tablewidth %plus2fill + \else + \global\tablecapleftskip\tablewidth %plus2fill + \global\tablecaprightskip\tablewidth plus2fill + \fi + \global\tablefootleftskip\tablewidth + \global\tablefootrightskip\tablewidth %plus2fill + {#1 \par}% + {\tablebodyfont #2\par}% + {\tablefootfont #3\par}% +} +% +% Tablenotes +\long\def\tablenote#1{\par\textit{Note}:\ #1\par} +\long\def\tablesource#1{\par\textit{Source}:\ #1\par} +\long\def\tablefoot#1{\par#1\par} +% +\def\tfmark#1{\if#1**\else\textsuperscript{\smash{#1}}\fi} +% +\def\myhline#1{% + \noalign{\ifnum0=`}\fi\hrule \@height #1 \futurelet + \reserved@a\@xhline}% +% +%\def\toprule{\myhline{1pt}\vrule height12pt depth0pt width0pt}% +%\def\colrule{\vrule height0pt depth5pt width0pt\\\myhline{1pt}\vrule height12pt depth0pt width0pt}% +%\def\botrule{\vrule height0pt depth5pt width0pt\\\myhline{1pt}\omit {\vspace*{4pt}}}% +% + +\newcommand{\up}{\HD{12}{0}} +\newcommand{\down}{\HD{0}{8}} +\newcommand{\Ndown}{\HD{0}{6}} + +\def\toprule{\noalign{\ifnum0=`}\fi + \hrule \@height .5\p@ + \hrule \@height 6\p@ \@width \z@ + \futurelet \@tempa\@xhline} + +\def\colrule{\noalign{\ifnum0=`}\fi + \hrule \@height 3.5\p@ \@width \z@ + \hrule \@height .5\p@ + \hrule \@height 5\p@ \@width\z@ + \futurelet \@tempa\@xhline} + +\def\botrule{\noalign{\ifnum0=`}\fi + \hrule \@height 3.25\p@ \@width \z@ + \hrule \@height .5\p@ + \hrule \@height 3.25\p@ \@width\z@ + \futurelet \@tempa\@xhline} + +%\def\crules#1{\vrule height0pt depth5pt width0pt\\#1\vrule height11pt depth0pt width0pt} + +\def\crules#1{\noalign{\hrule \@height 5.5\p@ \@width \z@}#1\noalign{\hrule \@height 5.5\p@ \@width \z@}} + +%%%%%%%%%%%%%%%%%%%% ** FLOAT PLACEMENT ** %%%%%%%%%%%%%%%%%%% +% +% Float placement parameters. +% +% The total number of floats that can be allowed on a page. +\setcounter{totalnumber}{9} +% The maximum number of floats at the top and bottom of a page. +\setcounter{topnumber}{9} +\setcounter{bottomnumber}{9} +% The maximum part of the top or bottom of a text page that can be +% occupied by floats. This is set so that at least four lines of text +% fit on the page. +\renewcommand\topfraction{.9} +\renewcommand\bottomfraction{.9} +% The minimum amount of a text page that must be occupied by text. +% This should accomodate four lines of text. +\renewcommand\textfraction{.1} +% The minimum amount of a float page that must be occupied by floats. +\renewcommand\floatpagefraction{.85}%{.91} +% The same parameters repeated for double column output +\setcounter{dbltopnumber}{2} +\renewcommand\dbltopfraction{.9} +\renewcommand\dblfloatpagefraction{.9} +% Space between floats +\setlength\floatsep{18\p@ \@plus 3\p@ \@minus \z@} +% Space between floats and text +\setlength\textfloatsep{22\p@ \@plus 3\p@ \@minus 3\p@} +% Space above and below an inline figure +\setlength\intextsep {6\p@ \@plus \z@ \@minus 2\p@} +% For double column floats +\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dbltextfloatsep{17\p@ \@plus 6\p@ \@minus 6\p@} + +% Space left at top, bottom and inbetween floats on a float page. +\setlength\@fptop{3.5\p@}% \@plus 1fil % no space above float page figures +\setlength\@fpsep{12\p@ \@plus 2fil} +\setlength\@fpbot{0\p@ \@plus 1fil} + +% The same for double column +\setlength\@dblfptop{0\p@} +\setlength\@dblfpsep{12\p@ \@plus 2fil} +\setlength\@dblfpbot{0\p@ \@plus 1fil} +% +%%%%%%%%%%%%%%%%%%%% ** TOC ** %%%%%%%%%%%%%%%%%%% +% +\newcommand\@pnumwidth{1.5em} +\newcommand\@tocrmarg{0em} +\newcommand\@dotsep{2} +\setcounter{tocdepth}{1} +\def\dotfill{\leaders\hbox to.3em{\hss .\hss}\hskip\z@ plus 1fill}% +% +\newcommand\tableofcontents{% + \section*{\contentsname + \@mkboth{% + \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}% + \@starttoc{toc}% + } +\newcommand*\l@part[3]{% + \ifnum \c@tocdepth >-2\relax + \addpenalty\@secpenalty + \addvspace{.5em \@plus\p@}% + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + {\leavevmode + \@hangfrom{\hbox to 10.5pc{\bfseries #1\hfill}}\textbf{#2} \hfil \hb@xt@\@pnumwidth{\hss #3}}\par + \nobreak + \if@compatibility + \global\@nobreaktrue + \everypar{\global\@nobreakfalse\everypar{}}% + \fi + \endgroup + \fi} +\newcommand*\l@subpart[3]{% + \ifnum \c@tocdepth >-2\relax + \addpenalty\@secpenalty + \addvspace{.5em \@plus\p@}% + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + {\leavevmode + \@hangfrom{\hbox to 10.5pc{\bfseries #1\hfill}}\textbf{#2} \hfil \hb@xt@\@pnumwidth{\hss #3}}\par + \nobreak + \if@compatibility + \global\@nobreaktrue + \everypar{\global\@nobreakfalse\everypar{}}% + \fi + \endgroup + \fi} +\newcommand*\l@section[2]{% + \ifnum \c@tocdepth >\z@ + \addpenalty\@secpenalty + \addvspace{1.0em \@plus\p@}% + \setlength\@tempdima{1.5em}% + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \bfseries + \advance\leftskip\@tempdima + \hskip -\leftskip + #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par + \endgroup + \fi} +% +\newcommand*\l@article[2]{% +\renewcommand\@pnumwidth{5pc} + \ifnum \c@tocdepth >\z@ + \addpenalty\@secpenalty + \addvspace{.6em \@plus\p@}% + \setlength\@tempdima{10.5pc}% + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \fontsize{9}{11}\selectfont + \advance\leftskip\@tempdima + %\hskip -\leftskip + {\bfseries #1}\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par + \endgroup + \fi} +% +\newcommand*\l@author[2]{% + \ifnum \c@tocdepth >\z@ + \addpenalty\@secpenalty + \addvspace{0em \@plus\p@}% + \setlength\@tempdima{10.5pc}% + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \fontsize{8}{9}\selectfont + \advance\leftskip\@tempdima + %\hskip -\leftskip + {#1}\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par + \endgroup + \fi} +% + +\def\@dottedtocline#1#2#3#4#5{% + \ifnum #1>\c@tocdepth \else + \vskip \z@ \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima #3\relax + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + {#4}\nobreak + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \nobreak + \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}% + \par}% + \fi} +% +\newcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}} +\newcommand*\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} +\newcommand*\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}} +\newcommand*\l@subparagraph{\@dottedtocline{5}{10em}{5em}} +\newcommand\listoffigures{% + \section*{\listfigurename + \@mkboth{\MakeUppercase\listfigurename}% + {\MakeUppercase\listfigurename}}% + \@starttoc{lof}% + } +\newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} +\newcommand\listoftables{% + \section*{\listtablename + \@mkboth{% + \MakeUppercase\listtablename}{\MakeUppercase\listtablename}}% + \@starttoc{lot}% + } +\let\l@table\l@figure +% +%%%%%%%%%%%%%%%%%%%% ** FOOTNOTES ** %%%%%%%%%%%%%%%%%%% +% +\setlength\footnotesep{6.65\p@} +\setlength{\skip\footins}{26\p@ \@plus 4\p@ \@minus 0\p@} +\skip\@mpfootins = \skip\footins +% +\renewcommand\footnoterule{% + \kern-5\p@ + \hrule\@width\textwidth \@height .5\p@ + \kern5\p@} +% +\def\footnum#1{\gdef\@footnum{#1}} +\footnum{\mbox{\fontsize{5.31}{5}\selectfont\arabic{footnote}}} +% +\newdimen\footnumskip +\def\@makefnmark{$^{\mbox{\fontsize{5.98}{6}\selectfont\arabic{footnote}}}$} +\long\def\@makefntext#1{\hspace*{\footnumskip}{\textsuperscript{\@footnum}}#1\footnumskip=0pt} +% +%%%%%%%%%%%%%%%%%%%% ** APPENDIX ** %%%%%%%%%%%%%%%%%%% +% +\newcommand\appendix{\par + \setcounter{section}{0}% + \setcounter{subsection}{0}% + \setcounter{table}{0}% + \setcounter{figure}{0}% + \setcounter{equation}{0}% + \gdef\thesection{\Alph{section}.1}% + \def\thefigure{\Alph{section}\@arabic\c@figure}% + \def\thetable{\Alph{section}\@arabic\c@table}% + \def\theequation {\Alph{section}\@arabic\c@equation}} +% +%%%%%%%%%%%%%%%%%%%% ** BIBLIOGRAPHY ** %%%%%%%%%%%%%%%%%%% +% +\newdimen\bibindent +\setlength\bibindent{11pt} +\def\@mybiblabel#1{\llap{\hbox to \leftmargin{\hfill#1\hskip\labelsep}\hskip-\labelsep}} +% +\newdimen\maxbibwd +\gdef\maxbib#1{% +\global\settowidth\maxbibwd{#1} +\leftskip-\maxbibwd} +\def\resetmaxbib{\leftskip0pt} +% +\newenvironment{thebibliography}[1] + {\bibsection% + \gdef\@bibmax{#1}% + \addcontentsline{toc}{section}{\protect\numberline{\relax}\refname} + \list{\ifx\@bibmax\empty\@biblabel{\@arabic\c@enumiv}\else\@mybiblabel{\@biblabel{\@arabic\c@enumiv}}\fi}% + {\bibfont% + \ifx\@bibmax\empty + \settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \else + \itemindent=0pt + \labelsep=3pt + \settowidth\bibindent{\@bibmax.} + \advance\bibindent\labelsep + \leftmargin\bibindent + \fi + \itemsep=0pt \@plus 0\p@ + \parsep=0pt + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \sloppy + \clubpenalty4000 + \@clubpenalty \clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist + } +% +\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em} +\let\@openbib@code\@empty +\newcommand{\bysame}{\leavevmode\hbox to5em{\hrulefill}\thinspace} +% + +% +%%%%%%%%%%%%%%%%%%%% ** INDEX ** %%%%%%%%%%%%%%%%%%% +% +\newenvironment{theindex} + {% + \columnseprule \z@ + \columnsep 12\p@ + \@mkboth{\MakeUppercase\indexname}% + {\MakeUppercase\indexname}% + \thispagestyle{plain}\parindent\z@ + \parskip\z@ \@plus .3\p@\relax + \let\item\@idxitem + \linewidth42pc\hsize42pc% + \multicolsep = 0pt plus 0pt minus 0pt% + \begin{multicols}{3}[\vspace*{2pc}]% + } + {\end{multicols}%\if@restonecol\onecolumn\else\clearpage\fi + } +\newcommand\@idxitem{\par\hangindent 18\p@} +\newcommand\subitem{\@idxitem \hspace*{9\p@}} +\newcommand\subsubitem{\@idxitem \hspace*{18\p@}} +\newcommand\indexspace{\par \vskip 16\p@ \@plus5\p@ \@minus3\p@\relax} +% +%%%%%%%%%%%%%%%%%%%% ** OTHER MACAROS ** %%%%%%%%%%%%%%%%%%% +% +\newif\iffirstpagegiven \firstpagegivenfalse +\newif\iflastpagegiven \lastpagegivenfalse + +% use \firstpage and \lastpage to set the page range explicitly +\newcommand\firstpage[1]{% + \gdef\@firstpage{#1} + \global\firstpagegiventrue% + } +\def\@firstpage{1} + +\newcommand\lastpage[1]{% + \xdef\@lastpage{#1}% + \global\lastpagegiventrue} +\def\@lastpage{0} + +\def\setlastpage{\iflastpagegiven\else + \edef\@tempa{@lastpage}% + \expandafter + \ifx \csname \@tempa \endcsname \relax + \gdef\@lastpage{0}% + \else + \xdef\@lastpage{\@nameuse{@lastpage}}% + \fi + \fi} + +\def\writelastpage{% + \iflastpagegiven + \else + \immediate\write\@auxout% + {\string\global\string\@namedef{@lastpage}{\thepage}} + \fi} + +\def\setfirstpage{% + \iffirstpagegiven + \else + \xdef\@firstpage{\thepage} + \fi} +% +\AtBeginDocument{\setfirstpage\setlastpage} +\AtEndDocument{\writelastpage% +} +% +\newcommand\ourcurrentdirectory{} +\def\filecontents{\chaptername\space\thechapter} +\AtBeginDocument{ +\filename@parse{\jobname} + \gdef\filename{\MakeLowercase{\filename@base}% + \if\filename@ext\relax.tex% + \else\MakeLowercase{\filename@ext}\fi}} +% calculate the time of day +\newcount\hours +\newcount\minutes +\hours=\time +\divide\hours by 60 +\minutes=-\hours +\multiply\minutes by 60 +\advance\minutes by \time +\def\timenow{\two@digits{\the\hours}:\two@digits{\the\minutes}} +%\font\slugfont=hv at 6pt +\font\slugfont=cmss10 at 6truept +\IfFileExists{crop.cfg}{}{% + \renewcommand*\CROP@@info{% + \lower 19\p@ + \hbox to \paperwidth{\slugfont% + \hskip 3mm + [\timenow\enskip\the\day/\the\month/\the\year\enskip \ourcurrentdirectory\filename] + \hfill + \space + \hfill Page:\space\thepage\quad\@firstpage--\@lastpage% + \hskip 3mm + }} + \renewcommand*\CROP@@ulc{% + \begin{picture}(0,0)\unitlength 1mm\thinlines + \put(-10,0){\line(1,0){9}} + \put(0,10){\line(0,-1){9}} + \end{picture}} + \renewcommand*\CROP@@urc{% + \begin{picture}(0,0)\unitlength 1mm\thinlines + \put(10,0){\line(-1,0){9}} + \put(0,10){\line(0,-1){9}} + \end{picture}} + \renewcommand*\CROP@@llc{% + \begin{picture}(0,0)\unitlength 1mm\thinlines + \put(-10,0){\line(1,0){9}} + \put(0,-10){\line(0,1){9}} + \end{picture}} + \renewcommand*\CROP@@lrc{% + \begin{picture}(0,0)\unitlength 1mm\thinlines + \put(10,0){\line(-1,0){9}} + \put(0,-10){\line(0,1){9}} + \end{picture}} + \cropdef\CROP@@ulc\CROP@@urc\CROP@@llc\CROP@@lrc{cam} + \renewcommand*\CROP@kernel{\color@setgroup + \vbox to\z@{\vskip-1in + \hb@xt@\z@{\hskip-1in + \CROP@every + \vbox to\paperheight{% + \hb@xt@\paperwidth{% + \CROP@ulc\CROP@uedge\CROP@urc}% + \CROP@ledge + \hb@xt@\paperwidth{% + \setbox\z@\hbox{\CROP@info}% + \ht\z@\z@ \dp\z@\z@ \wd\z@\z@ \box\z@ + \CROP@llc\hfil\CROP@lrc}}% + \hss}% + \vss}\color@endgroup} + } + +\if@cropmarkson \crop[cam] \fi +% +\newdimen\grid@sidemargin +\newdimen\grid@wd +\newdimen\grid@ht +\newdimen\grid@linewd\grid@linewd=0.1pt +\newdimen\grid@topofline +\grid@topofline\headheight% +\advance\grid@topofline\headsep% +\advance\grid@topofline.35\topskip% +% +%%%%%%%%%%%%%%%%%%% ** LETTER SPACING & TRACKING %%%%%%%%%%%%%%%%%% +% +\sodef\textso{}{-.015em}{.3em\@plus.08em\@minus.06em}% + {.55em\@plus.275em\@minus.183em}% +% +\def\dolist{\afterassignment\dodolist\let\next= } +\def\dodolist{\ifx\next\endlist \let\next\relax + \else \\\let\next\dolist \fi + \next} +% +\def\track#1#2{% +\def\\{\expandafter\if\space\next\setbox0=\hbox{\ }% + \else \setbox0=\hbox{\next}\fi% + \box0\kern#1}% +\leavevmode\hbox{\dolist#2\endlist\unkern}} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%% SMALL CAP %%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +\newdimen\currfontsize +\def\makesc#1#2{% +\currfontsize=1em +\def\scsize{\fontsize{#1\currfontsize}{1em}\selectfont}% +\def\\{\expandafter\if\space\next\gdef\xxx{\ }% + \else\gdef\eachchar{% + \ifx\next a{\scsize A}\else% + \ifx\next b{\scsize B}\else% + \ifx\next c{\scsize C}\else% + \ifx\next d{\scsize D}\else% + \ifx\next e{\scsize E}\else% + \ifx\next f{\scsize F}\else% + \ifx\next g{\scsize G}\else% + \ifx\next h{\scsize H}\else% + \ifx\next i{\scsize I}\else% + \ifx\next j{\scsize J}\else% + \ifx\next k{\scsize K}\else% + \ifx\next l{\scsize L}\else% + \ifx\next m{\scsize M}\else% + \ifx\next n{\scsize N}\else% + \ifx\next o{\scsize O}\else% + \ifx\next p{\scsize P}\else% + \ifx\next q{\scsize Q}\else% + \ifx\next r{\scsize R}\else% + \ifx\next s{\scsize S}\else% + \ifx\next t{\scsize T}\else% + \ifx\next u{\scsize U}\else% + \ifx\next v{\scsize V}\else% + \ifx\next w{\scsize W}\else% + \ifx\next x{\scsize X}\else% + \ifx\next y{\scsize Y}\else% + \ifx\next z{\scsize Z}\else% + \next\kern-.25pt\unskip\fi\fi\fi\fi\fi\fi\fi\fi\fi% + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi% + }\fi\eachchar}% +\leavevmode\hbox{\dolist#2\endlist\unkern}} +% +%%%%%%%%%%%%%%%%%%%% ** Author's COMMANDS ** %%%%%%%%%%%%%%%%%%% +% +%%%%for smaller size text +\newenvironment{methods}{% + \begingroup + \let\bulletlist\methbulletlist% + \let\endbulletlist\endmethbulletlist% +\footnotesize + \par} +{\par\endgroup}%\bigskip\@afterheading\@afterindentfalse +% +\setlength{\jot}{5\p@} +\mathchardef\@m=1500 % adapted value +% +\language=2 +\hyphenation{Figure Table Figures Tables} + +\def\sbond{\ensuremath{\raise.25ex\hbox{${-}\!\!\!\!{-}$}}\kern -.9pt} +\def\dbond{\ensuremath{\raise.25ex\hbox{=$\!$=}}} +\def\tbond{\ensuremath{\raise.20ex\hbox{${\equiv}\!\!\!{\equiv}$}}} + +% +%%%%%%%%%%%%%%%%%%%% ** USER COMMANDS ** %%%%%%%%%%%%%%%%%%% +% +\twocolumn +\pagestyle{myheadings} +\pagenumbering{arabic} +\sloppy +\flushbottom +% + +\usepackage{amsthm} +% Theorems +\def\th@plain{% +\thm@headfont{\quad\scshape}% heading font is bold +\thm@notefont{\upshape\mdseries}% same as heading font +\thm@headpunct{.}% no period after heading +\thm@headsep 5\p@ plus\p@ minus\p@\relax +\itshape % body font +} + +\renewenvironment{proof}[1][\proofname]{\par + \normalfont \topsep6\p@\@plus6\p@\relax + \labelsep 0.5em + \trivlist + \item[\hskip\labelsep\hskip1em\textsc{#1}.]\ignorespaces +}{\endtrivlist\@endpefalse} + +\def\editorialhead#1{{\fontfamily{\sfdefault}\fontsize{21}{21}\fontseries{b}\fontshape{it}\selectfont\leftskip0pt\rightskip0pt +plus1fill \noindent #1\par\vskip\baselineskip}} + +\makeindex +\def\au#1{\index{#1}} + +\endinput +%% +%% End of file `GR.cls'. diff --git a/doc/publications/2012-05_NAR/GR_submission/GR_KEGGtranslatorMethod.tex b/doc/publications/2012-05_NAR/GR_submission/GR_KEGGtranslatorMethod.tex new file mode 100644 index 0000000..cae1f7e --- /dev/null +++ b/doc/publications/2012-05_NAR/GR_submission/GR_KEGGtranslatorMethod.tex @@ -0,0 +1,794 @@ +\documentclass[a4,nocrop,onecolumn,final,center,fleqn]{GR} + +\usepackage{graphicx} +\usepackage{booktabs} % allows \toprule and other table formatting utilities +\usepackage{multirow} % merge cells vertically +%\usepackage{lscape} % Landscape orientation (used for tables) +\usepackage{colortbl} % Allows for alternate coloring the table +\usepackage[table]{xcolor} % U.a. allows for defining colors in HTML models +\usepackage{rotating} % Landscape orientation (used for tables) +\usepackage{color} % Only required for the TODO macro. + +\usepackage{amssymb} % Symbols like checkmark + +%\usepackage{cite} +\usepackage{natbib} % do NOT sort (e.g., SBML & BioPAX references must be printed in given order) + +% In-Text Citation formatting for "Genome Research" +\bibpunct{(}{)}{,}{a}{}{,} % see http://de.wikibooks.org/wiki/LaTeX-W%C3%B6rterbuch:_bibpunct + +\usepackage[pdfborder={0 0 0}]{hyperref} % links, but no colored boxes + +\hypersetup{breaklinks=true, +pagecolor=white, +colorlinks=false} +\urlstyle{rm} %so it doesn’t use a typewriter font for url’s. + +% Allow line breaks in texttt +\newcommand{\origttfamily}{}% sollte noch nicht definiert sein! +\let\origttfamily=\ttfamily % alte Definition von \ttfamily sichern +\renewcommand{\ttfamily}{\origttfamily \hyphenchar\font=`\-} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% 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 +} + + + +% Enter dates of publication +\copyrightyear{2012} +\pubdate{04 June 2012} +\pubyear{2012} +%\jvolume{37} +%\jissue{12} + +%\articlesubtype{Systems biology} + +\begin{document} + +\title[Generation of systems biology models from KEGG]{Precise generation of systems biology models from KEGG pathways} + +\author[Clemens Wrzodek \textit{et~al}]{% +Clemens Wrzodek\,$^{1,*}$, +Finja B\"uchel\,$^{1}$, +Andreas Dr\"ager\,$^{1}$, +Manuel Ruff\,$^{1}$ and +Andreas Zell\,$^{1}$% +%\footnote{ +% To whom correspondence should be addressed. +% %Tel: +49 7071 2970436; Fax: +49 7071 295091; +% Email: clemens.wrzodek@uni-tuebingen.de +%} +} + + +\address{% +$^{1}$Center for Bioinformatics Tuebingen (ZBIT), University of Tuebingen, Sand 1, 72076 T\"ubingen, Germany +\\$^{*}$ To whom correspondence should be addressed. E-mail: clemens.wrzodek@uni-tuebingen.de, Fon: +49 7071 2970436%, Fax: +49 7071 295091 +} + +%\history{% +%Received January 1, 2012; +%Revised February 1, 2012; +%Accepted March 1, 2012} + +\maketitle + +\begin{abstract} +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. + +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. +\newline\indent +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. +\vspace{2mm}\newline\indent\textbf{Keywords:} KEGG, KGML, SBML, BioPAX, modeling, systems biology, qualitative modeling, conversion, translation, correction, KEGG converter, comparison +\end{abstract} + + +\section{Introduction} + +The KEGG PATHWAY database provides a valuable resource for initial modeling approaches of specific biological networks \citep{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 \citep{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, \citealp{Finney2003}) and Biological Pathway Exchange (BioPAX, \citealp{Demir2010_short}). These formats can be used with graphical modeling applications (e.g., CellDesigner, \citealp{Funahashi2008} or Cytoscape, \citealp{Cytoscape}), complemented with rate laws (e.g., SBMLsqueezer, \citealp{SBMLSqueezer}), used for flux balance analysis (e.g., FASIMU, \citealp{Fasimu}), and many more applications. Therefore, converters exist that perform mostly basic conversions from KGML to those formats \citep{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 \citep{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~\ref{fig:conversionScheme}. + +\subsection{The KEGG Markup Language (KGML)} +KEGG uses the KGML format to encode its pathways \citep{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} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% BEGIN FLOWCHART FIGURE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{figure*}[htbp] +\centering \includegraphics[width=.7\textwidth]{Wrzodek_Fig1.jpg} +\caption{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. +} +\label{fig:conversionScheme} +\end{figure*} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% END FLOWCHART FIGURE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%\definecolor{tableShade}{HTML}{F1F5FA} +%\definecolor{tableShade2}{HTML}{ECF3FE} +\definecolor{tableShade2}{gray}{0.95} +%\rowcolors{1}{white}{tableShade2} +%\rowcolors{3}{white}{tableShade2} + +%%%%%%%%%%%%%%%%%%%%%%%% ENTRY TABLE %%%%%%%%%%%%%%%%%%%%%%%% +\begin{table}[t] +%\tableparts{ +\caption{BioPAX instances and SBO terms corresponding to KGML entry types.} +\label{tab:KGMLentries2X} +%} +{ +\begin{tabular*}{1.0\columnwidth}{@{\extracolsep{\fill}} lll} +\toprule + +Entry type & BioPAX element & SBO term \\ +\midrule +compound & smallMolecule & 247 (simple chemical) \\ +enzyme & protein & 252 (polypeptide chain) \\ +gene & protein & 252 (polypeptide chain) \\ +ortholog & protein & 252 (polypeptide chain) \\ +% genes & complex & 253 (non-covalent complex) \\ +group & complex & 253 (non-covalent complex) \\ +map & pathway & 552 (reference annotation) \\ +%reaction & interaction & SBO:0000 \\ + +\bottomrule +\end{tabular*} +} +\small{ +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)", see \citealp{KGML} for both quotes. 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. +} +\end{table} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +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} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% BEGIN 2BioPAX FIGURE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{figure*}[htb] +\centering \includegraphics[width=1.5\columnwidth]{Wrzodek_Fig2.jpg} +\caption{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~\ref{tab:KGMLentries2X}). 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~\ref{tab:KGMLrelations2X}). 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. +} +\label{fig:KGML2BioPAX} +\end{figure*} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% END 2BioPAX FIGURE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +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~\ref{fig:KGML2BioPAX} 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~\ref{tab:KGMLentries2X}. 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~\ref{tab:KGMLrelations2X} shows in detail how each relation is converted and which SBO and GO terms are being used. + + + + + +%%%%%%%%%%%%%%%%%%%%%%%% RELATION TABLE %%%%%%%%%%%%%%%%%%%%%%%% +\setlength{\tabcolsep}{8pt} +\begin{table*}[htbp] +%\centering +\caption{BioPAX instances and SBO terms corresponding to KGML relation subtypes} +\label{tab:KGMLrelations2X} +%\rowcolors{1}{white}{tableShade2} +%\renewcommand{\arraystretch}{2}\addtolength{\tabcolsep}{-1pt} +\setlength{\tabcolsep}{6.9pt} % TODO: This must be customized to fit the total width +\begin{tabular*}{1.0\textwidth}{llllll} +\toprule +Relation subtype & BioPAX element & SBO term & SBO name & GO term & GO name\\ +\midrule +%\multicolumn{2}{c}{\centering \textbf{BioPAX Level~2}}\\ +%\midrule +%compound +%hidden compound +\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*} + +\small{ + +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. + +} +\end{table*} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\subsection{KEGG to SBML} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% BEGIN FIGURE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{figure*}[htb] +\centering \includegraphics[width=1.5\columnwidth]{Wrzodek_Fig3.jpg} +\caption{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~\ref{tab:KGMLentries2X} and~\ref{tab:KGMLrelations2X} 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.} +\label{fig:KGML2SBML} +\end{figure*} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% END FIGURE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +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~\ref{fig:KGML2SBML}. 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, \citealp[see][]{SBO}). These SBO terms are hierarchically organized and only SBO terms from the `material entity' branch should be used to encode the entities. Table~\ref{tab:KGMLentries2X} 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 \citep{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 \citep{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 \citep{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~\ref{tab:KGMLrelations2X}, 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]", \citealp[see][]{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. + + + +\section{Implementation and availability of the method} +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 \citep{JSBML} and supports SBML Level~2 Version~4 \citep{SBMLl2} and SBML Level~3 Version~1 \citep{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 \citep{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} + +%%%%%%%%%%%%%%%%% Converter Comparison TABLE %%%%%%%%%%%%%%%%% +\newcolumntype{C}{>{\centering\arraybackslash}p{2cm}} +\begin{table*}[htb] +\caption{Comparison of different available converters for KEGG pathways.} +\label{tab:AppVergleich} +%\rowcolors{1}{white}{tableShade2} +\setlength{\tabcolsep}{6.2pt} % TODO: This must be customized to fit the total width +\makebox[\textwidth]{ +\begin{tabular*}{\textwidth}{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 & \citeauthor{KEGG2SBML} & \citeauthor{Kuentzer2007} & \citeauthor{KEGGconverter} & \citeauthor{KEGG2BioPAX_and_SBML} & \multicolumn{2}{c}{\citeauthor{Wrzodek2011}} \\ +%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.}} \\ +%URL & http://tinyurl.com/bpca4rd & http://tinyurl.com/cu6ze8e & http://tinyurl.com/d7npkfv & http://tinyurl.com/bmgucdu & \multicolumn{2}{c}{http://tinyurl.com/crlmeeo} \\ +\midrule + +\multicolumn{7}{l}{\textbf{Supported model formats}} \\ +%Available? +%Stand-alone +\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*} +} +{ + +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}). +% +} +\end{table*} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +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~\ref{tab:AppVergleich} 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 \citep{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 \citep{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 \citep{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++ \citep{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" \citep[see][]{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 \citep{Cytoscape}, which provides KGMLReader (freely available at \url{http://code.google.com/p/kgmlreader/}), a plugin to read KGML documents, and BiNOM \citep{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 \citep{PathVisio}, Subio (\url{http://www.subio.jp}), or VANTED \citep{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 \citep{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. + + + +\section{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. +% + + + +%\section{FUNDING} +%This work was supported by the Federal Ministry of Education and Research (BMBF, Germany) in the projects Virtual Liver [grant number 0315756]; Spher4Sys [grant number 0315384C]; and the National Genome Research Network (NGFN-PLUS Functional Genomics of Parkinson´s Disease, [grant number 01GS08134]). +% + +\section{ACKNOWLEDGEMENTS} +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.\newline + +\paragraph{Funding:} +This work was supported by the Federal Ministry of Education and Research (BMBF, Germany) in the projects Virtual Liver [grant number 0315756]; Spher4Sys [grant number 0315384C]; and the National Genome Research Network (NGFN-PLUS Functional Genomics of Parkinson´s Disease, [grant number 01GS08134]).\newline + +\paragraph{Conflict of interest:} None declared. + +%\subsubsection{Conflict of interest:} None declared. +%\newpage + +\begin{thebibliography}{30} +\providecommand{\natexlab}[1]{#1} + +\bibitem[{Bauer-Mehren et~al.(2009)Bauer-Mehren, Furlong, and + Sanz}]{Bauer-Mehren2009} +Bauer-Mehren A, Furlong LI, and Sanz F. 2009. +\newblock Pathway databases and tools for their exploitation: benefits, current + limitations and challenges. +\newblock \emph{Mol Syst Biol} \textbf{5}: 290. + +\bibitem[{Berenguier et~al.(2011)Berenguier, Chaouiya, Naldi, Thieffry, and van + Iersel}]{QualSpecification} +Berenguier D, Chaouiya C, Naldi A, Thieffry D, and van Iersel MP. 2011. +\newblock {Qualitative Models} (qual). +\newblock Specification available at + \url{http://sbml.org/Community/Wiki/SBML\_Level\_3\_Proposals/Qualitative\_Models}. + Accessed 2012, March 22. + +\bibitem[{Courtot et~al.(2011)Courtot, Juty, Kn\"{u}pfer, Waltemath, Zhukova, + Dr\"{a}ger, Dumontier, Finney, Golebiewski, Hastings et~al.}]{SBO} +Courtot M, Juty N, Kn\"{u}pfer C, Waltemath D, Zhukova A, Dr\"{a}ger A, + Dumontier M, Finney A, Golebiewski M, Hastings J, et~al. 2011. +\newblock Controlled vocabularies and semantics in systems biology. +\newblock \emph{Mol Syst Biol} \textbf{7}: 543. + +\bibitem[{Demir et~al.(2010)Demir, Cary, Paley, Fukuda, Lemer, Vastrik, Wu, + D'Eustachio, Schaefer, Luciano et~al.}]{Demir2010_short} +Demir E, Cary MP, Paley S, Fukuda K, Lemer C, Vastrik I, Wu G, D'Eustachio P, + Schaefer C, Luciano J, et~al. 2010. +\newblock The {BioPAX} community standard for pathway data sharing. +\newblock \emph{Nat Biotechnol} \textbf{28}: 935--942. + +\bibitem[{Dr\"ager et~al.(2008)Dr\"ager, Hassis, Supper, Schr\"oder, and + Zell}]{SBMLSqueezer} +Dr\"ager A, Hassis N, Supper J, Schr\"oder A, and Zell A. 2008. +\newblock {SBMLsqueezer: a CellDesigner plug-in to generate kinetic rate + equations for biochemical networks}. +\newblock \emph{BMC Systems Biology} \textbf{2}: 39. + +\bibitem[{Dr\"ager et~al.(2011)Dr\"ager, Rodriguez, Dumousseau, D\"orr, + Wrzodek, {Le Nov\`{e}re}, Zell, and Hucka}]{JSBML} +Dr\"ager A, Rodriguez N, Dumousseau M, D\"orr A, Wrzodek C, {Le Nov\`{e}re} N, + Zell A, and Hucka M. 2011. +\newblock {JSBML: a flexible Java library for working with SBML}. +\newblock \emph{Bioinformatics} \textbf{27}: 2167--2168. + +\bibitem[{Finney and Hucka(2003)}]{Finney2003} +Finney A and Hucka M. 2003. +\newblock Systems biology markup language: Level 2 and beyond. +\newblock \emph{Biochem Soc Trans} \textbf{31}: 1472--1473. + +\bibitem[{Funahashi et~al.(2004)Funahashi, Jouraku, and Kitano}]{KEGG2SBML} +Funahashi A, Jouraku A, and Kitano H. 2004. +\newblock {Converting KEGG pathway database to SBML}. +\newblock \emph{8\textsuperscript{th} Annual International Conference on + Research in Computational Molecular Biology (RECOMB)} . + +\bibitem[{Funahashi et~al.(2008)Funahashi, Matsuoka, Jouraku, Morohashi, + Kikuchi, and Kitano}]{Funahashi2008} +Funahashi A, Matsuoka Y, Jouraku A, Morohashi M, Kikuchi N, and Kitano H. 2008. +\newblock {CellDesigner 3.5: A Versatile Modeling Tool for Biochemical + Networks}. +\newblock \emph{Proceedings of the IEEE} \textbf{96}: 1254 --1265. + +\bibitem[{Hoppe et~al.(2011)Hoppe, Hoffmann, Gerasch, Gille, and + Holzh\"utter}]{Fasimu} +Hoppe A, Hoffmann S, Gerasch A, Gille C, and Holzh\"utter HG. 2011. +\newblock {FASIMU}: flexible software for flux-balance computation series in + large metabolic networks. +\newblock \emph{BMC Bioinformatics} \textbf{12}: 28. + +\bibitem[{Hucka(2009)}]{SBMLgroups} +Hucka M. 2009. +\newblock Groups proposal. +\newblock Specification available from + \url{http://sbml.org/Community/Wiki/SBML_Level_3_Proposals/Groups_Proposal_%282009-10%29}. + Accessed 2012, April 23. + +\bibitem[{Hucka et~al.(2010)Hucka, Bergmann, Hoops, Keating, Sahle, Schaff, + Smith, and Wilkinson}]{SBMLl3} +Hucka M, Bergmann FT, Hoops S, Keating S, Sahle S, Schaff JC, Smith LP, and + Wilkinson DJ. 2010. +\newblock {The Systems Biology Markup Language (SBML): Language Specification + for Level 3 Version 1 Core}. +\newblock Specification available from Nature Precedings + \url{http://dx.doi.org/10.1038/npre.2010.4959.1}. Accessed 2012, March 22. + +\bibitem[{Hucka et~al.(2008)Hucka, Hoops, Keating, {Le Nov\`{e}re}, Sahle, and + Wilkinson}]{SBMLl2} +Hucka M, Hoops S, Keating S, {Le Nov\`{e}re} N, Sahle S, and Wilkinson DJ. + 2008. +\newblock {Systems Biology Markup Language (SBML) Level 2: Structures and + Facilities for Model Definitions}. +\newblock Specification available from Nature Precedings + \url{http://dx.doi.org/10.1038/npre.2008.2715.1}. Accessed 2012, March 22. + +\bibitem[{Juty et~al.(2012)Juty, {Le Nov\`{e}re}, and Laibe}]{Juty2012} +Juty N, {Le Nov\`{e}re} N, and Laibe C. 2012. +\newblock {Identifiers.org and MIRIAM Registry: community resources to provide + persistent identification.} +\newblock \emph{Nucleic Acids Res} \textbf{40}: D580--D586. + +\bibitem[{Kanehisa and Goto(2000)}]{Kanehisa2000} +Kanehisa M and Goto S. 2000. +\newblock {KEGG: Kyoto Encyclopedia of Genes and Genomes}. +\newblock \emph{Nucleic Acids Res} \textbf{28}: 27--30. + +\bibitem[{Kanehisa et~al.(2006)Kanehisa, Goto, Hattori, Aoki-Kinoshita, Itoh, + Kawashima, Katayama, Araki, and Hirakawa}]{KEGG} +Kanehisa M, Goto S, Hattori M, Aoki-Kinoshita KF, Itoh M, Kawashima S, Katayama + T, Araki M, and Hirakawa M. 2006. +\newblock From genomics to chemical genomics: new developments in {KEGG}. +\newblock \emph{Nucleic Acids Res} \textbf{34}: D354--D357. + +\bibitem[{{KEGG team}(2010)}]{KGML} +{KEGG team}. 2010. +\newblock \emph{{KEGG Markup Language}.} +\newblock Specification available from the {KEGG} homepage at + \url{http://www.kegg.jp/kegg/xml/docs/}. Accessed 2012, April 23. + +\bibitem[{Klukas and Schreiber(2010)}]{VANTED} +Klukas C and Schreiber F. 2010. +\newblock Integration of -omics data and networks for biomedical research with + {VANTED}. +\newblock \emph{J Integr Bioinform} \textbf{7}: 112. + +\bibitem[{K\"untzer et~al.(2007)K\"untzer, Backes, Blum, Gerasch, Kaufmann, + Kohlbacher, and Lenhof}]{Kuentzer2007} +K\"untzer J, Backes C, Blum T, Gerasch A, Kaufmann M, Kohlbacher O, and Lenhof + HP. 2007. +\newblock {BNDB -- the Biochemical Network Database}. +\newblock \emph{BMC Bioinformatics} \textbf{8}: 367. + +\bibitem[{{Le Nov\`{e}re} et~al.(2005){Le Nov\`{e}re}, Finney, Hucka, Bhalla, + Campagne, Collado-Vides, Crampin, Halstead, Klipp, Mendes + et~al.}]{Novere2005} +{Le Nov\`{e}re} N, Finney A, Hucka M, Bhalla US, Campagne F, Collado-Vides J, + Crampin EJ, Halstead M, Klipp E, Mendes P, et~al. 2005. +\newblock Minimum information requested in the annotation of biochemical models + {(MIRIAM)}. +\newblock \emph{Nat Biotechnol} \textbf{23}: 1509--1515. + +\bibitem[{Lee et~al.(2010)Lee, Jang, Rhie, Thong, Yang, and + Park}]{KEGG2BioPAX_and_SBML} +Lee KE, Jang MH, Rhie A, Thong CT, Yang S, and Park HS. 2010. +\newblock {Java DOM Parsers to Convert KGML into SBML and BioPAX Common + Exchange Formats}. +\newblock \emph{Genomics \& Informatics} \textbf{8}: 94--96. + +\bibitem[{Moutselos et~al.(2009)Moutselos, Kanaris, Chatziioannou, + Maglogiannis, and Kolisis}]{KEGGconverter} +Moutselos K, Kanaris I, Chatziioannou A, Maglogiannis I, and Kolisis FN. 2009. +\newblock {KEGGconverter: a tool for the \emph{in-silico} modelling of + metabolic networks of the KEGG Pathways database}. +\newblock \emph{BMC Bioinformatics} \textbf{10}: 324. + +\bibitem[{Oberhardt et~al.(2009)Oberhardt, Palsson, and Papin}]{Oberhardt2009} +Oberhardt MA, Palsson B{\O}, and Papin JA. 2009. +\newblock Applications of genome-scale metabolic reconstructions. +\newblock \emph{Mol Syst Biol} \textbf{5}: 320. + +\bibitem[{Raymond~GM and JB(2003)}]{JSim} +Raymond~GM BE and JB B. 2003. +\newblock {JSIM: Free software package for teaching phyiological modeling and + research}. +\newblock \emph{Exper Biol} \textbf{280}: p102. + +\bibitem[{Smoot et~al.(2011)Smoot, Ono, Ruscheinski, Wang, and + Ideker}]{Cytoscape} +Smoot ME, Ono K, Ruscheinski J, Wang PL, and Ideker T. 2011. +\newblock Cytoscape 2.8: new features for data integration and network + visualization. +\newblock \emph{Bioinformatics} \textbf{27}: 431--432. + +\bibitem[{Swainston et~al.(2011)Swainston, Smallbone, Mendes, Kell, and + Paton}]{SuBliMinaL} +Swainston N, Smallbone K, Mendes P, Kell D, and Paton N. 2011. +\newblock The {SuBliMinaL Toolbox}: automating steps in the reconstruction of + metabolic networks. +\newblock \emph{J Integr Bioinform} \textbf{8}: 186. + +\bibitem[{{van Iersel} et~al.(2008){van Iersel}, Kelder, Pico, Hanspers, Coort, + Conklin, and Evelo}]{PathVisio} +{van Iersel} MP, Kelder T, Pico AR, Hanspers K, Coort S, Conklin BR, and Evelo + C. 2008. +\newblock Presenting and exploring biological pathways with {PathVisio}. +\newblock \emph{BMC Bioinformatics} \textbf{9}: 399. + +\bibitem[{Wittig et~al.(2012)Wittig, Kania, Golebiewski, Rey, Shi, Jong, Algaa, + Weidemann, Sauer-Danzwith, Mir et~al.}]{SabioRK} +Wittig U, Kania R, Golebiewski M, Rey M, Shi L, Jong L, Algaa E, Weidemann A, + Sauer-Danzwith H, Mir S, et~al. 2012. +\newblock {SABIO-RK}--database for biochemical reaction kinetics. +\newblock \emph{Nucleic Acids Res} \textbf{40}: D790--D796. + +\bibitem[{Wrzodek et~al.(2011)Wrzodek, Dr\"{a}ger, and Zell}]{Wrzodek2011} +Wrzodek C, Dr\"{a}ger A, and Zell A. 2011. +\newblock {KEGGtranslator: visualizing and converting the KEGG PATHWAY database + to various formats}. +\newblock \emph{Bioinformatics} \textbf{27}: 2314--2315. + +\bibitem[{Zinovyev et~al.(2008)Zinovyev, Viara, Calzone, and + Barillot}]{Zinovyev2008} +Zinovyev A, Viara E, Calzone L, and Barillot E. 2008. +\newblock {BiNoM: a Cytoscape plugin for manipulating and analyzing biological + networks}. +\newblock \emph{Bioinformatics} \textbf{24}: 876--877. + +\end{thebibliography} + + + +\end{document} diff --git a/doc/publications/2012-05_NAR/GR_submission/Wrzodek2012.pdf b/doc/publications/2012-05_NAR/GR_submission/Wrzodek2012.pdf new file mode 100644 index 0000000..c9bcd3a Binary files /dev/null and b/doc/publications/2012-05_NAR/GR_submission/Wrzodek2012.pdf differ diff --git a/doc/publications/2012-05_NAR/GR_submission/Wrzodek_Fig1.jpg b/doc/publications/2012-05_NAR/GR_submission/Wrzodek_Fig1.jpg new file mode 100644 index 0000000..742b8b6 Binary files /dev/null and b/doc/publications/2012-05_NAR/GR_submission/Wrzodek_Fig1.jpg differ diff --git a/doc/publications/2012-05_NAR/GR_submission/Wrzodek_Fig2.jpg b/doc/publications/2012-05_NAR/GR_submission/Wrzodek_Fig2.jpg new file mode 100644 index 0000000..6513522 Binary files /dev/null and b/doc/publications/2012-05_NAR/GR_submission/Wrzodek_Fig2.jpg differ diff --git a/doc/publications/2012-05_NAR/GR_submission/Wrzodek_Fig3.jpg b/doc/publications/2012-05_NAR/GR_submission/Wrzodek_Fig3.jpg new file mode 100644 index 0000000..6f16a08 Binary files /dev/null and b/doc/publications/2012-05_NAR/GR_submission/Wrzodek_Fig3.jpg differ diff --git a/doc/publications/2012-05_NAR/GR_submission/times.sty b/doc/publications/2012-05_NAR/GR_submission/times.sty new file mode 100644 index 0000000..fec2ce8 --- /dev/null +++ b/doc/publications/2012-05_NAR/GR_submission/times.sty @@ -0,0 +1,28 @@ +%% +%% This is file `times.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% psfonts.dtx (with options: `times') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% You are *not* allowed to modify this file. +%% +%% You are *not* allowed to distribute this file. +%% For distribution of the original source see the terms +%% for copying and modification in the file psfonts.dtx. +%% +\ProvidesPackage{times} +[2000/01/12 PSNFSS-v8.1 +Times font as default roman (SPQR) +] +\renewcommand{\sfdefault}{cmss} +\renewcommand{\rmdefault}{ptm} +\renewcommand{\ttdefault}{pcr} +\endinput +%% +%% End of file `times.sty'.