Thursday, May 26, 2011

MAPK: Feedback Amplifier, Part I

Originally Posted on  by hsauro

A recent paper by Sturm et al., reports results that support the hypothesis that the MAPK cascade acts as a negative feedback amplifier.

The systems biology literature is full of reviews and articles about oscillators and bistable systems and very little else other than Uri Alon et al’s refreshingly unique work on feedforward systems. An alien race, upon reading the literature, would most likely believe that the only thing biochemical networks can do is oscillate, show bistability, and perhaps a little ultrasensitivity. This is probably because many of the modelers and theoreticians in systems biology are unaware of the possible signal processing capabilities offered by the engineering field. For example, an engineer looking at the MAPK cascade would probably immediately think of a negative feedback amplifier. Mention the word negative feedback amplifier to a systems biologist however and you’re likely to get a blank stare. So what is a negative feedback amplifier? Let’s start with some recent history.

Industrial Revolution

Probably the most famous modern device that employed negative feedback was the governor. Thomas Mead in 1787 took out a patent on a device that could regulate the speed of windmill sails. His idea was to measure the speed of the mill by the centrifugal motion of a revolving pendulum and use this to regulate the position of the sail. Very shortly afterward in early 1788, James Watt is told of this device in a letter from his partner, Matthew Boulton. Watt recognizes the utility of the governor as a device to regulate the new steam engines that were rapidly becoming an important source of new power for the industrial revolution. The image below illustrates an engraving of a governor from an early book entitled ”An Elementary Treatise on Stream and the Steam-engine by Clark and Sewell published in 1892.

The operation of the governor is simple (See Figure below), its purpose is to maintain the speed of a rotating engine at a constant predetermined value in spite of changes in load and steam pressure. The vertical axle of the governor is connected to the rotation of the steam engine. As the steam engine, for one reason or another, speeds up, the rotation increases, thereby causing the centrifugal pendulums to swing out. A linkage transmits this motion to the stream valve in such a manner that the flow of steam is reduced thus slowing down the engine. If the engine slows down too much, as a result of a sudden load, the flyweights will swing back and the steam value is opened so that the steam engine can accelerate. The governor was a highly successful device and it is estimated that by 1868, 75,000 governors where in operation (A History of Control Engineering, 1800-1930 By Stuart Bennett, 1979).

Monday, May 23, 2011

Drawing Pathways with TikZ: Part 2

Originally Posted on  by hsauro

Timo Maarleveld, as part of his thesis writing, started using TikZ to draw some of his network diagrams. To give you an example, the figure below was generated by the code listed at the end. IT gives some idea of the potential of using Tikz.




\documentclass{article}

\usepackage{tikz}
\usepackage{subfig}
\usetikzlibrary{shapes,arrows,automata}
\begin{document}

\begin{figure}
\tikzstyle{square}=[rectangle,thick,minimum size=0.5cm,draw=blue!80,fill=blue!20]
\tikzstyle{vspecies}=[rectangle, minimum size=0.5cm,draw=blue!80,fill=blue!20]
\tikzstyle{square}=[rectangle,thick,minimum size=0.5cm,draw=red!80,fill=blue!20]
\tikzstyle{fspecies}=[rectangle, minimum size=0.5cm,draw=red!80,fill=red!20]
\subfloat[Two enzyme linear protein network]{
\begin{tikzpicture}[auto, outer sep=3pt, node distance=2cm,>=latex']
\node [fspecies] (S) {S};
\node [vspecies, right of = S] (X) {X};
\node [fspecies, right of = X] (P) {P};
\draw [<->,thick] (S) --  node {$V_1$} (X) ;
\draw [<->,thick] (X) --  node {$V_2$}(P);
\end{tikzpicture}}

\hspace{15mm}

\subfloat[Six enzyme branched protein network]{
\begin{tikzpicture}[auto, outer sep=3pt, node distance=2cm,>=latex']
\node [fspecies] (S) {S};
\node [vspecies, right of = S] (X1) {$X_{1}$};
\node [vspecies, right of = X1] (X2) {$X_{2}$};
\node [vspecies, above right of = X2] (X3) {$X_{3}$};
\node [vspecies, below right of = X2] (X4) {$X_{4}$};
\node [fspecies, right of = X3] (P1) {$P_{1}$};
\node [fspecies, right of = X4] (P2) {$P_{2}$};
\draw [<->,thick] (S) --  node {$V_1$} (X1) ;
\draw [<->,thick] (X1) --  node {$V_2$}(X2);
\draw [<->,thick] (X2) --  node {$V_3$}(X3);
\draw [<->,thick] (X2) --  node {$V_4$}(X4);
\draw [<->,thick] (X3) --  node {$V_5$}(P1) ;
\draw [<->,thick] (X4) --  node {$V_6$}(P2);
\end{tikzpicture}}

\vspace{10mm}

\subfloat[Three enzyme branched protein network ]{
\begin{tikzpicture}[auto, outer sep=3pt, node distance=2cm,>=latex']
\node [fspecies] (S) {S};
\node [vspecies, right of = S] (X) {$X$};
\node [fspecies,above right of = X] (P1) {$P_{1}$};
\node [fspecies,below  right of = X] (P2) {$P_{2}$};
\draw [<->,thick] (S) --  node {$V_1$} (X) ;
\draw [<->,thick] (X) --  node {$V_2$}(P1) ;
\draw [<->,thick] (X) --  node {$V_3$}(P2);
\end{tikzpicture}}        \hspace{20mm}
\subfloat[Three enzyme linear pathway with moiety conservation]{
\begin{tikzpicture}[auto, outer sep=3pt, node distance=2cm,>=latex']
\node [fspecies] (S) {S};
\node [vspecies] at (0.25,1.2) (CD) {CD};
\draw [<->,thick] (0.25,0.725)  arc (180:360:20pt);
\node [vspecies, right of = S] (SC) {SC};
\node [vspecies] at (1.75,1.2)(D) {D};
\node [vspecies, right of = SC] (PC) {PC};
\node [vspecies] at (4.35,1.2) (D) {D};
\draw [<->,thick] (4.35,0.725)  arc (180:360:20pt);
\node [fspecies, right of = PC] (P) {P};
\node [vspecies] at (5.85,1.2) (CD) {CD};
\draw [<->,thick] (S) --  node {$V_1$} (SC) ;
\draw [<->,thick] (SC) --  node {$V_2$}(PC);
\draw [<->,thick] (PC) --  node {$V_3$}(P);
\end{tikzpicture}}

\vspace{10mm}

\hspace{25mm}
\subfloat[Four enzyme linear pathway with negative feedback]{
\begin{tikzpicture}[auto, outer sep=3pt, node distance=2cm,>=latex']
\node [fspecies] (S) {S};
\node [vspecies, right of = S] (X1) {$X_{1}$};
\node [vspecies, right of = X1] (X2) {$X_{2}$};
\node [vspecies, right of = X2] (X3) {$X_{3}$};
\node [fspecies, right of = X3] (P) {P};
\draw [<->,thick] (S) --  node {$V_1$} (X1);
\draw [<->,thick] (X1) --  node {$V_2$} (X2);
\draw [<->,thick] (X2) --  node {$V_3$} (X3);
\draw [<->,thick] (X3) --  node {$V_4$}(P);
\draw [line width = 1pt,dotted,red] (X3) |-  (1,-1);
\draw [line width = 1pt,dotted,red] (1,-1) --  (1,-0.25);
\draw [line width = 1pt,dotted,red] (0.75,-0.25) --  (1.30,-0.25);
\end{tikzpicture}}
\end{figure}

\end{document}

Monday, May 16, 2011

Top 10 LaTeX Packages

May 16, 2011 4:10 pm

1. amsmath, amsfonts

Particularly handy for rendering matrices. amsmath has a set of tailored matrix environments. For example here are three examples that use pmatrix, bmatrix and Bmatrix. ams also provide a host of new symbols, such as $\therefore$, $\varnothing$, and $\thickapprox$ and new alignment environments. See the user document for further details.

$$\begin{pmatrix} 1 & 2 & 3 & 4\\ 5 & 6 & 7 & 8\\ 9 &10 &11 &12\\ 13&14 &15 &16 \end{pmatrix} \begin{bmatrix} 1 & 2 & 3 & 4\\ 5 & 6 & 7 & 8\\ 9 &10 &11 &12\\ 13&14 &15 &16 \end{bmatrix} \begin{Bmatrix} 1 & 2 & 3 & 4\\ 5 & 6 & 7 & 8\\ 9 &10 &11 &12\\ 13&14 &15 &16 \end{Bmatrix} $$

2. TikZ/Pgf

The TeX world has gone through many approaches that permit the inclusion of figures into LaTeX documents. The latest approach and one gaining popularity is TikZ/Pgf. The best way to appreciate this package is to visit the examples site where numerous user contributed examples can be found. TikZ has a steep learning curve but the results are outstanding.

3. pgfplots

Along side TikZ there is the companion package pgfplots which removes much of the effort in drawing data or function plots within LaTeX documents. See the example site for numerous examples of what pgfplots can do, including 3D plots.

4. geometry

Every struggled with getting page dimensions set for your latest work? If so, the geometry package is the answer. The geometry package can be used to control the overall margins, and text area of your document. For example, the following sets up pages for a standard 6 by 9 book format with additional space for the binding edge, taking into account that the pages will be double-sided.

\usepackage[paperwidth=6in,paperheight=9in,top=1in,left=0.66in,right=0.66in,textheight=6.8in,bindingoffset=5mm,twoside]{geometry}

5. xcolor

If you want driver-independent color and access to different kinds of color specifications, then xcolor is the package. xcolor comes with an enormous set of standard colors in addition to being able to mix your own in a wide variety of ways, including rgb, cmyk, hsb, to name but a few.

6. booktabs

The standard tables support in LaTeX isn't very good at spacing the rows. Instead I use booktabs which does a much better job.

\begin{center}
{\bfseries Normal LaTeX}\newline\newline
\begin{tabular}{llr}
\hline \multicolumn{2}{c}{Item} \\ \cline{1-2} Animal & Description & Price (\$) \\ \hline Gnat  & per gram & 13.65 \\ & each     &  0.01 \\ Gnu   & stuffed  & 92.50 \\ Emu   & stuffed  & 33.33 \\ Armadillo & frozen & 8.99 \\ \hline \end{tabular} \end{center} [+preamble] \usepackage{booktabs} [/preamble] \begin{center}  \newline\newline{\bfseries With Booktabs}\newline\newline   \begin{tabular}{llr} \toprule \multicolumn{2}{c}{Item} \\ \cmidrule(r){1-2} Animal & Description & Price (\$) \\ \midrule Gnat  & per gram & 13.65 \\ & each     &  0.01 \\ Gnu   & stuffed  & 92.50 \\ Emu   & stuffed  & 33.33 \\ Armadillo & frozen & 8.99 \\ \bottomrule
\end{tabular}
\end{center}

7. fancyhdr

fancyhdr is useful for customizing the headers and footers in your document. For example, to place today's date on the right hand side of the page header and the title of the document on the left side, one can use:

\lhead{My Thesis}
\rhead{\today}

fancyhdr also comes with an additional pagestyle called fancy, as in \pagestyle{fancy}. fancy will add a line at the top of every page (except pages such as new chapter, title page etc.).

8. quotchap

quotchap redesigns the chapter heading page. In particular it will put a large grey chapter number to the right of the page and can also be used to optionally add chapter quotations

9. hyperref

I tend to always use pdflatex these days to generate my output. In generating pdf files, it is very useful to have hyperlinks automatically inserted into the document. hyperref is the package to use.  These include hyperlinks from the chapter contents page, equation references, figure references and index references. Adding hyperlinks to your pdf output is very simple, just include the line:

\usepackage{hyperref}

near the start of your document. There are many options for changing the style, including color and how the hyperlink is presented.

10. kbordermatrix

Adding column and row labels to matrices is not always easy. kbordermatrix however does the trick. An example is shown below. There is a lot more flexibility to kbordermatrix than shown here so I refer you to the documentation for more details.

\kbordermatrix{\mbox{indices}&1&2&3&4\\
1&M_{1,1}&M_{1,2}&M_{1,3}&M_{1,4}\\
2&M_{2,1}&M_{2,2}&M_{2,3}&M_{2,4}
}

I am sure others will have their own favorites.

Packages I've used on Occasion

1. KOMA-Script and Memoir class

Koma-Script and Memoir class are both replacements for the traditional article/report/book classes in LaTeX with the memoir class being a replacement for report and book. Both come with extensive documentation an require some initial effort to use. A summary of the capabilities of Koma-script can be found at stackexchange.

Details on the memoir class can be found at the PracTeX Journal article. To use these packages effectively requires a thorough reading of the manuals.

2. natbib

natbib is a reimplementation of the \cite command. As a result it is much more flexible in the way references can be cited.  See reference sheet for details.

3. subfigure

subfigure is the package to use if you need to place small figure or tables within a single figure. It supports options to set the position and captioning. The following code will place three figures in a line. If there isn't enough space, the package will automatically place the overflow subfigures on to the next line.

\begin{figure}[htb]

\subfigure[Subfigure 1 caption]{
   \includegraphics{subfigure1.pdf}
   \label{fig:subfig1}
 }

 \subfigure[Subfigure 2 caption]{
   \includegraphics{subfigure2.pdf}
   \label{fig:subfig2}
 }

 \subfigure[Subfigure 3 caption]{
   \includegraphics{subfigure3.pdf}
   \label{fig:subfig3}
 }

\label{myfigure}
\caption{Global figure caption}
\end{figure}


Friday, May 13, 2011

Symbolic MCA

Many years ago, Simon Thomas and David Fell (1) wrote a program called MetaCon that could compute the control coefficient equations given an arbitrary network. At the time it was very useful but for various reasons it could not be maintained. Now 17 years later Timothy Akhurst and Johann Rohwer have developed and released a new symbolic tool (called SymCA) for followers of metabolic control analysis. A complete description can be found in Timothy's PhD thesis, Symbolic control analysis of cellular systems. The source code and binaries can be obtained from the PySCeS sourceforge site. Those of you who are familiar with PySCeS will know that PySCeS is a python tool. SymCA is an addon to PySCeS. The advantage of this is that SymCA can be used from python which is familiar to many and it can exploit the existing resources provided by PySCeS. SymCA uses Maxima to carry out the symbolic operations. Installation might be difficult for the uninitiated so here is a summary of what to do on the Windows platform:

  1. Install Maxima
  2. Make sure the Maxima bin directory (C:\Program Files\Maxima-5.24.0\bin) is in the windows path
  3. Install Python 2.6
  4. Install PySCeS by downloading version 2.6
  5. From the same PySCeS site as 4. install, NumPy, SciPy and Matplotlib
  6. If you need SBML support download libSBML (link at the PySCeS site)
  7. The PySCeS authors also recommend using Enthought Python Distribution which includes many of the above.
  8. Install symca by downloading symca-0.2.9.4.win32.exe

That should complete the installation. Now start python26 and type import symca at the python prompt. To make sure symca is installed correctly, type the self test command: symca.test()

If the self test worked you can now try your own model, for example the following is a simple linear chain, copy this text, paste into a text editor and save it to: C:\Pysces\psc assuming you did a standard install. Call the file, linear4.psc

[stextbox id="custom"]

FIX: X0 X1

R1: X0 = S1
k1*X0

R2: S1 = S2
k2*S1

R3: S2 = S3
k3*S2

R4: S3 = X1
k4*S3

X0 = 5
X1 = 0
k1 = 1
k2 = 1
k3 = 1
k4 = 1
S1 = 0.1
S2 = 0.1
S3 = 0.1

[/stextbox]

To obtain the control coefficient equations for this model type the following:

import symca
sym = symca.symca ('linear4')
sym.doSca()
sym.controlPatterns()
sym.writeData ('cc')

This will cause a latex file to be generated with the results of the analysis:

$$C^{R1}_{R4}=\left( - \varepsilon^{R1}_{S1} \hspace{1mm} \varepsilon^{R2}_{S2} \hspace{1mm} \varepsilon^{R3}_{S3} \right)/\sum$$ $$C^{R1}_{R3} =\left( \varepsilon^{R1}_{S1} \hspace{1mm} \varepsilon^{R2}_{S2} \hspace{1mm} \varepsilon^{R4}_{S3} \right)/\sum$$ $$C^{R1}_{R2} =\left( - \varepsilon^{R1}_{S1} \hspace{1mm} \varepsilon^{R3}_{S2} \hspace{1mm} \varepsilon^{R4}_{S3} \right)/\sum$$ $$C^{R1}_{R1} =\left( \varepsilon^{R2}_{S1} \hspace{1mm} \varepsilon^{R3}_{S2} \hspace{1mm} \varepsilon^{R4}_{S3} \right)/\sum$$

1. S. Thomas and D. A. Fell. A computer program for the algebraic determination
of control coefficients in metabolic control analysis. The Biochemical Journal,
292:351-360, 1993.

Saturday, May 7, 2011

Systems Thinking in Systems Biology: Part 2

 May 7, 2011 8:37 am

In the last post I posed the question, what would happen to a metabolic pathway if we added an inhibitory drug to the middle enzyme in a linear sequence of steps? Here is the answer.

Take a sequence of enzymes that form a linear chain. Let the pathway reach steady state, now apply a drug that will inhibit the middle enzyme, what will happen?

  1. The initial rate of the middle enzyme will decrease.
  2. Since the substrate is now consumed at a lower rate, the substrate concentration will increase.
  3. Since the product is now produced at a lower rate, the product concentration will decrease.
  4. With the product decreasing, the immediate enzyme downstream will slow down.
  5. With the substrate increasing, the immediate enzyme upstream will slow down due to product inhibition.
  6. Because the immediate enzyme upstream slows down, its substrate increases.
  7. Because the immediate enzyme downstream slows down, its product decreases.
  8. Similar changes now ripple up and downstream.
  9. The net effect is that all metabolites upstream increase in concentration and all metabolites downstream decrease in concentration.
  10. The net flux through the pathway decreases.

Thursday, May 5, 2011

Graphics and LaTeX

May 1, 2011 4:17 pm

I've been using TeX/LaTex for many years and have observed at close hand how LaTeX has evolved with the addition of new editors, bibliography support and particularly support for graphics. In my book "Enzyme Kinetics for Systems Biology", I use three mechanisms for including illustrations. The first is simply to use \includeGraphics to include an external file. I use pdflatex exclusively now and in this case I include external pdf files into the document. For example the following LaTeX snippet will include the external pdf file called "externalPdfFile". includeGraphics has a lot of flexibility for scaling the image, rotating the image etc.

\begin{figure}[htb]
\begin{center}
\includegraphics[scale = 0.5]{externalPdfFile}
\caption{Include an external pdf file into the document.}
\label{fig:externalPdfFile}
\end{center}
\end{figure}

Pdf illustrations can be either produced by commercial products such as Adobe Illustrator or open source offerings such as Inkscape.

A modern TeX/LaTeX based solution to illustrations and data graphing is PGF/Tikz and PGFPlot. Both these tools are extremely useful for creating diagrams and data plots. The example below illustrates a simple plot generated using pdfplot showing the difference between a hyperbolic and sigmoidal response. The advantage, as least I see it as an advantage, to using something like PGFPlot, it that the information to generate the plot can be embedded in the text itself. Now I know many will say it is good practice to separate presentation from content but from my point of view including them in the same file save a lot of trouble. The code itself is given below the graph.




\begin{tikzpicture}
\begin{axis}[
xlabel={Substrate Concentration},
ylabel={Reaction Rate},
xmin=0, xmax=3,
ymin=0, ymax=1,
width=8cm, height=6cm]
\addplot[color=orange,line width=1.5pt] expression[domain=0:3,samples=20]{x^4./(1+x^4.)};
\addplot[color=blue,line width=1.5pt] expression[domain=0:3,samples=20]{x/(0.3+x)};
\end{axis}
\end{tikzpicture}

PGFPlot is based on PGF/Tikz. PGF/Tikz is itself a general-purpose illustration package for LaTeX or TeX. PGF is the low-level language component, while Tikz is a set of higher-level calls to PGF. For most users, the Tikz layer (now at version 2.10) is the most appropriate to use. The Tikz manual (over 700 pages) is one of the best manuals I've come across, containing many examples and tutorials. The small biochemical network below was produced using Tikz. For those who use SBML (Systems Biology Markup Language), there is also the package SBML2Tilkz that can convert SBML models into ready-to-go Tikz files.



The code for the above diagram is given here:

\begin{tikzpicture}
\draw(38pt,50pt) node[anchor=west] {$S_1$};
\draw(102pt,50pt) node[anchor=west] {$S_2$};

\draw[-stealth,color=blue,very thick] (50pt,60pt) to [controls=+(50:1) and +(130:1)] (110pt,60pt);
\draw[stealth-,color=blue,very thick] (50pt,40pt) to [controls=+(130:-1) and +(50:-1)] (110pt,40pt);

\draw[-stealth,color=blue,very thick] (50pt,93.5pt) to [controls=+(130:-1) and +(50:-1)] (110pt,93.5pt);
\draw[stealth-,color=blue,very thick] (50pt,6.5pt) to [controls=+(50:1) and +(130:1)] (110pt,6.5pt);

\draw(72pt,15pt) node[anchor=west] {$v_1$};
\draw(72pt,85pt) node[anchor=west] {$v_2$};

\draw(36pt,100pt) node[anchor=west] {$A$};
\draw(105pt,100pt) node[anchor=west] {$B$};

\draw(36pt,0pt) node[anchor=west] {$D$};
\draw(105pt,0pt) node[anchor=west] {$C$};
\end{tikzpicture}

Note that the WordPress QuickLaTex allows one to embed PGFPlot or Tikz code in the WordPress page itself although it can be a bit slow to render. The above figures were in fact rendered first using QuickLaTeX then png copies were extracted using "right-click" and "Save image as". The images were then inserted into the WordPress page. This significantly improved the rendering speed.


Wednesday, May 4, 2011

Drawing Pathways with TikZ: Part 1

May 4, 2011 9:45 am

Drawing biochemical pathway diagrams has never been easy. Many of us probably use a combination of Power Point, illustrator, Inkscape, or even MS Paint. Of these Illustrator and Inkscape are probably the most useful but Illustrator is expensive and Inkscape is sometimes a little buggy. Power Point is of course a favorite because it's used so often, perhaps too often in our everyday work. In using these tools we are also forced to maintain separate files from our LaTeX document and in formats that are not related to LaTeX itself.

Although there is an initial learning curve, the LaTeX extension, PGF/TikZ is an alternative to drawing pathway diagrams. Timo Maarleveld, who is doing a graduate project at UW, has played around with TikZ and inspired me to take a second look at TikZ. Last year one of my students published an article on converting SBML to TikZ (www.SBML2Tikz.org) but that approach used absolute coordinates to layout the network. In the following example I have a very simple cycle that is drawn using TikZ that uses some relative positioning though the intersection of the curves is still done using an absolute distance.


\begin{tikzpicture}[>=latex',node distance = 2cm]
\node (S1) {$S_1$};
\node [left of = S1] (S2) {$S_2$};
\node [above of = S2,node distance=1.04cm] (A) {$A$};
\node [above of = S1,node distance=1.04cm] (B) {$B$};
\node [below of = S2,node distance=1.04cm] (C) {$C$};
\node [below of = S1,node distance=1.04cm] (D) {$D$};

\draw [->,thick] (S1) to[bend left=40] node {} (S2);
\draw [->,thick] (S2) to[bend left=40] node {} (S1);
\draw [->,thick] (A) to[bend right=40] node {} (B);
\draw [->,thick] (D) to[bend right=40] node {} (C);
\end{tikzpicture}

I wasn't particularly satisfied with this solution mainly because I use absolute dimensions (The 1.04cm) to make sure that the curves intersected at the midpoint. I therefore tried tex.stackexchange where I got the following answer from Dmitry F. Volosnykh:

\documentclass{minimal}

\usepackage{tikz}
\usetikzlibrary{arrows,positioning}

\def \coeffx{0.29}
\def \coeffy{0.91}
\def \nodedistancex{4cm}
\def \nodedistancey{1cm}
\def \offsetx{\nodedistancex*\coeffx}
\def \offsety{\nodedistancey*\coeffy}

\begin{document}

\begin{tikzpicture}[>=latex', node distance=\nodedistancey and \nodedistancex]
 \node (S1) {$S_1$};
 \node[left=of S1] (S2) {$S_2$};
 \node[above=of S2] (A) {$A$};
 \node[above=of S1] (B) {$B$};
 \node[below=of S2] (C) {$C$};
 \node[below=of S1] (D) {$D$};

 \draw[->,thick] (S1) .. controls +(-\offsetx,\offsety) and +(\offsetx,\offsety) .. (S2);
 \draw[->,thick] (S2) .. controls +(\offsetx,-\offsety) and +(-\offsetx,-\offsety) .. (S1);
 \draw[->,thick] (A) .. controls +(\offsetx,-\offsety) and +(-\offsetx,-\offsety) .. (B);
 \draw[->,thick] (D) .. controls +(-\offsetx,\offsety) and +(\offsetx,\offsety) .. (C);
\end{tikzpicture}

\end{document}

There was an additional answer from Frédéric which you can see form this link.

Sunday, May 1, 2011

Systems Thinking in Systems Biology: Part 1

May 4, 2011 10:33 am

Let's say we inhibit an enzyme in a metabolic pathway by perhaps reducing the expression of the gene that makes the enzyme or more easily by adding a drug that inhibits the enzyme.What do you think will happen?

When I ask my students in class a similar question I will get all sorts of answers ranging from utterly wrong to almost right. I suspect I'd get a similar range of answers from my colleagues. Here are some of the answers I've had in the past:

  1. The reaction rate of the inhibited enzyme slows down, but nothing else happens.
  2. The reaction being inhibited must be the rate-limiting step otherwise nothing will happen.
  3. Nothing happens unless the drug acts on the first enzyme in the pathway.
  4. The enzyme rate changes and this affects the substrate concentration, the product concentration stays the same because it is being continually used up by the next enzyme.
  5. All the steps before the inhibited enzyme slow down, the other enzymes are unaffected.
  6. The inhibited enzyme gets 'knocked out' so that its rate goes to zero, this kills the cell (somehow).

All the above answers are of course wrong, the question is why are so many students (and even colleagues) unable to think through the effects of a drug? Considering that the NIH and NSF spend literally billions on drug research one would think we'd have a firm grasp (at theoretically) of what happens at the systems level.

If I asked a similar question to an electrical engineer I would get a different response. Ask an electrical engineer the following question. I have a complicated circuit, I double the resistance of a particular resistor in the circuit, what will happen? An electrical engineer will immediately think in terms of the entire circuit. For one, the current will start to decrease through the resistor, this in turn will change the immediate voltages which will affect further currents and so on until the change we made has rippled through the entire circuit. This way of thinking is natural to an electrical engineer and from my own experience strangely alien to a biologist. For some reason, and I don't have an explanation, we don't teach our students to think of cells as systems where a change in one place will ripple through the rest of the cell. The advent of high throughput technologies in the last 10 years or so has helped enormously to change this way of thinking because it is easily shown that one change can often lead to many changes in gene expression. And yet, ask the question I posted above to a class and you might be surprised at the range of answers you'll get. For some reason we still find it difficult to think systems.

I will give the answer to the original question in the next post.