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
5. From the same PySCeS site as 4. install, NumPy, SciPy and Matplotlib
7. The PySCeS authors also recommend using Enthought Python Distribution which includes many of the above.

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.