Finite Buffer dCME

Finite Buffer dCME

An optimal state space truncation and enumeration method for direct solution of discrete chemical master equation

Youfang Cao
Hsiao-Mei Lu
Anna Terebus
Jie Liang (PI)

Developed by:
Liang lab at Department of Bioengineering,
University of Illinois at Chicago

Finite Buffer dCME provides an efficient and optimal algorithm for enumerating state spaces and directly solving discrete Chemical Master Equations, which is a fundamental method for modeling stochastic gene regulatory networks in systems biology. Instead of running millions of stochastic simulation trajectories using Gillespie's algorithm (Gillespie, 1977), Finite Buffer method can accurately and efficiently capture the important rare events in biological networks by directly solving full stochastic probability landscapes for both time evolution and steady state of reaction networks with arbitrary stoichiometry. Finite Buffer method has been successfully applied to study many critical biological processes, such as the cell fate determination and switching efficiency and stability issues in the epigenetic circuits of phage lambda, a virus to E. coli cell (Cao et al. 2010). Finite Buffer dCME can be applied to study broad issues in systems biology, such as the regulation of stem cell development and differentiation, and cell cancerogenesis. It has also been used to identify key interactions in a complex regulatory network (Cao et al. 2010), which can potentially be used to aid in discovering novel drug targets and designing/optimizing genetic circuits in synthetic biology. 


The FB-dCME depends on the libSBML package for parsing reaction networks represended in the SBML format. The libSBML package needs to be properly installed and setted up in order to successfully compile the FB-dCME package. The FB-dCME has been tested compatible with libSBML 3.x, which can be downloaded from or locally from here. A XML parser package may be required by the libSBML. The xerces-lib 3.1.1 has been tested successfully compatible with libSBML and FB-dCME. The xerces-lib can be downloaded from the official site or locally from here.

File format: the initial condition

Format of initial condition file:

$cat pdv-eg.txt
6 1
3 0 0 0 0 0, 1

The first line of the initial condition file contains two integer, the first one is the number of molecular species, the second one is the number of the initial states, it'll be one in most cases. The second line of this file is the initial state and the probability of this state in the initial time. They are seperated with a comma and whitespace. The initial state consists of n integers, n is the first integer in the first line, and they are also seperated with whitespaces. The numbers in the initial state represent the copy number of each molecular species in the model. The sequence of numbers in the initial state is corresponding to the sequence of molecular species defined in the SBML model.

How to enumerate the state space using buildStateSpace

The buildStateSpace program is designed for generating the state space of a biological reaction network starting from a given initial condition. The biological reaction network is defined in a SBML file, which includes all molecular species, reactions schemes, and parameters. The initial condition is defined in a seperate file as described above. Below is the command line parameters should be provided.

-h --help Prints this help
-m --sbml <sbmlfile> Input SBML file
-i --init <initfile> Initial condition file
-s --statespace <ssfile> Output state space file
-v --verbose Switch for more output
buildStateSpace -m mToggle.xml -i init.txt -s statespace.txt

How to generate the rate matrix using net2matrix

The net2matrix program is designed to generate the transition rate matrix from finite state space enumerated using the buildStateSpace program described above. The net2matrix takes the same SBML file and the enumerated state space file as inputs, and outputs the generated transition rate matrix.

-h --help Prints this help
-m --sbml <sbmlfile> Input SBML file
-s --statespace <ssfile> State space file
-t --omatrix <tmfile> Output transition matrix file
-r --rlabel Put reaction labels aside the matrix entries
-x --reaction <n> About which single reaction you want the matrix to be
-v --verbose 0 Switch for more output
net2matrix -m mToggle.xml -s statespace.txt -t transmatrix.txt

How to solve the steady state probability landscapes?

A number of numerical solvers can be used to efficiently solve the steady state probability distribution of the dCME using the transition rate matrix generated using the net2matrix program. In this package, we included an iterative solver program ssor based on the Successive Over Relaxation method (SOR). Other methods, such as BiCGSTAB and GMRES, can be easily applied. The ssor program takes the transition rate matrix generated using the net2matrix program as the only input, and computes the steady state probability distribution over the enumerated finite state space.

-h --help Prints this help
-m --mtrx <matrix file> Input matrix file
-s --steady <steady state file> Output steady state distribution file
-o --omega <omega value> Omega value for Succesive Over Relaxation
-t --tol <tolerance> Error tolerance
-v --verbose 0 Switch for more output
ssor -m transmatrix.txt -s steadystate.txt

How to compute the time-evolving probability landscapes?

The mxexp program in the FB-dCME can compute the time-evolving probability landscapes of the dCME based on the Expokit package. The mxexp program takes the transition rate matrix generated using the net2matrix program as an input along with the specified the lengths of total time and time interval, and it outputs a probability distribution for each time interval to the specified directory.

-m --tm <matrixfile> Input rate matrix file
-t --time 100 Total time for time evolution
-d --dt 10 Time step
-p --p0 <p0file> Initial distribution file
-i --idir <./> Intermediate directory
mxexp -m transmatrix.txt -t 300000 -d 10 -p inputd1.txt -i ./fptd_dt10/

How to parse the probability distributions and visualize?

The probability distribution can be projected as a probability landscape onto a 1D or 2D plane of biologically interesting molecular species. Simple Perl scripts have been developed to parse the resulting probability landscapes and generate the desired 1D and 2D projected landscapes. These projected landscapes can be visualized using the R plotting scripts. All these scripts can be found in the example/scripts folder of the package, and they can be easily adapted to parse and plot different molecular species.


(Please cite following papers for using Finite Buffer dCME)

1. Youfang Cao, Hsiao-Mei Lu and Jie Liang (2010). Probability landscape of heritable and robust epigenetic state of lysogeny in phage lambda. Proceedings of the National Academy of Sciences USA, 107(43), 18445–18450.

2. Youfang Cao and Jie Liang (2008). Optimal enumeration of state space of finitely buffered stochastic molecular networks and accurate computation of steady state landscape probability. BMC Systems Biology 2:30.

   © All rights reserved. Liang Lab 2014