ETH2006 xor


Jump to: navigation, search

back to main page


XOR gate

The XOR gate's PoPS output activity should be correlated to the PoPS input activity as shown in the picture:

 input A ^
         | H  D  L
         | D  D  D
         | L  D  H
            input B

 output: High, Low, Dont care


Implementation alternatives

We came up with a number of concepts for the implementation of the XOR, initially without considering the existence such biological systems. Then, while our biologists started searching the literature, we modelled the variants to see which we might want to favor.

Here we pick out two variants with corresponding simulation results to give an idea of the process of development. Note that at this stage, the models still contain minor inaccuracies such as missing ribosome binding sites, which we corrected later on.

XOR gate, implementation variant 1
XOR gate, implementation variant 2

Further development of the first variant resulted in the current implementation of the XOR gate.

Current implementation

Part to be used in the prototype system: BBa_J34200

An XOR gate produces an output only if one of the two possible input signals is present. In our implementation the gene expression triggered by Signal 1 inhibits the gene expression triggered by Signal 2 and vice versa.

Signal 1 leads to the expression of a bi-modular transcription factor where the DNA binding domain is separated from the transcriptional activation domain by a Tobacco Etch Virus (TEV) protease cleavage site. Moreover, Signal 1 triggers the expression of the highly sequence-specific Tobacco Vein Mottling Virus (TVMV) protease. On the other hand, Signal 2 leads to the expression of an almost identical transcription factor, but in this case the DNA binding domain is separated from the transcriptional activation domain by a TVMV protease cleavage site. In addition, Signal 2 induces the transcription of the TEV protease. Therefore, the presence of either one of the signals leads to a stable transcription factor, which can initiate the transcription of a downstream reporter, while the presence of both signals leads to the mutual cleavage of both transcription factors by the specific proteases.

Our bi-modular transcription factor consists of the DNA binding domain of the bacteriophage lambda repressor protein (λcI) fused to the N-terminal domain of the RNA polymerase α subunit. Binding of this transcription factor to its cognate promoter – the λ operator – initiates the transcription of a downstream reporter (in this case mCherry).

The DNA binding domain (λcI) of the transcription factor is linked to N terminal domain of the α subunit of the RNA polymerase by a linker sequence consisting of three alanines, followed by the cognate protease cleavage sites and two alanines (AAA protease cleavage sequence AA).


  • Hu JC, Kornacker MG, Hochschild A. Escherichia coli one- and two-hybrid systems for the analysis and identification of protein-protein interactions. Methods. 2000 Jan;20(1):80-94.
  • Nallamsetty S, Kapust RB, Tozser J, Cherry S, Tropea JE, Copeland TD, Waugh DS. Efficient site-specific processing of fusion proteins by tobacco vein mottling virus protease in vivo and in vitro. Protein Expr Purif. 2004 Nov;38(1):108-15.
  • Kapust RB, Waugh DS. Controlled intracellular processing of fusion proteins by TEV protease. Protein Expr Purif. 2000 Jul;19(2):312-8.
  • Hochschild A., personal communication
current XOR gate implementation


We are interested in the input/output behavior at steady-state, that is when the system has reached equilibra and the concentrations of concerned species don't change anymore. Since we have 2 inputs and 1 ouptut, simulation results will be illustrated as a surface plot, inputs on the x/y axes and output on the z axis.

Some Formulas

(general explanatory notes from this template)

To get our models into a form which can be simulated, we needed to transform the wiring diagrams into a set of ODEs (ordinary differential equations), which in our case will be non-linear.

For every concerned species X, we write

d[X]/dt = production - consumption

For enzymatic transformation of substrate S into product P (catalyzed by enzyme E), we write

       k+1      k2
S + E <==> E•S --> P + E

d[S]/dt   = −k+1[S][E] + k−1[E•S]           − dS[S]
d[E]/dt   = −k+1[S][E] + k−1[E•S] + k2[E•S] − dE[E]
d[E•S]/dt =  k+1[S][E] − k−1[E•S] − k2[E•S] − dES[E•S]
d[P]/dt   =                       + k2[E•S] − dP[P]

[S]   : substrate concentration
[E]   : enzyme conc.
[E•S] : concentration of enzyme-substrate complex
[P]   : product concentration

kinetic constants:
  kk+1 : building enzyme-substrate complex (forward)
  kk−1 : resolving enzyme-substrate complex (backward)
  k2   : product formation
  dXXX : degradation constants

For constitutive transcription, we have constant production rate and simply write

d[M]/dt = ktr•u − dM[M]

[M]  : mRNA concentration
ktr  : kinetic constant (transcription)
u    : system input, e.g. transcription rate (≅PoPS)
dM   : degradation constant for mRNA

A transcriptional regulatory module can be described by and ODE of the following form:

d[M]/dt = ktr ( a + −−−−−−−−−−−−−− ) − dM[M]
                    1 + (K/[S])α•n

[M]  : mRNA concentration
ktr  : kinetic constant (transcription)
a    : constitutive portion, 0 ≤ a < 1
[S]  : inducer (α=+1) / repressor (α=−1) concentration
K    : hill constant
n    : hill coefficient
α    : α=+1 for induction, α=−1 for repression
dM   : degradation constant for mRNA

Finally, translation is usually modeled like this:

d[P]/dt = ktl[M] − dP[P]

[P]  : product (protein) concentration
[M]  : mRNA concentration
ktl  : kinetic constant (translation)
dP   : degradation constant for protein P


  • Modeling Molecular Interaction Networks with Nonlinear Ordinary Differential Equations. Emery D. Conrad and John J. Tyson
    in System Modeling in Cellular Biology. From Concepts to Nuts and Bolts.
    Editors: Zoltan Szallasi, Jorg Stelling and Vipul Periwal, MIT Press.
  • Synthetic Gene Regulatory Systems. Mads Kaern and Ron Weiss
    in System Modeling in Cellular Biology. From Concepts to Nuts and Bolts.
    Editors: Zoltan Szallasi, Jorg Stelling and Vipul Periwal, MIT Press.

Ideal xor gate

The expected input/output behavior of an ideal xor gate looks like this (better with less green and steeper flanks):

top view 3d surface plot
behavior of an ideal XOR gate, topside view
behavior of an ideal XOR gate, 3d surface plot
behavior of an ideal XOR gate
(x/y: inputs, z: output)

Note that the anterior low (blue) part has low inputs, the rear one has high inputs.

Early simulation results of variants

The following figures show early simulation results of the implementation variants 1 and 2. Note that also the models contain inaccuracies and even defects at this stage.

Variant 1 Variant 2
surface plot of simulation results for XOR variant 1
surface plot of simulation results for XOR variant 2
surface plot of simulation results for XOR variants 1 and 2
(x/y: inputs, z: output)

Both plots show behaviors far from that of the ideal XOR gate, but the first variant at least has high output if one or the other, but not both inputs are high. Further on, the first variant seemed to be less sensitive to parameter changes. In fact, it was very hard to find any parameter values for model 2 at all which showed XOR-like behavior at least in the broadest sense.

Not only because of these results (biology also had a voice in this chapter), but definitely backing the decision, we went for variant 1 from here on.

Current simulation results

top view, htProt=2h 3d surface plot, htProt=2h 3d surface plot, htProt=5h
topside view of simulation results for XOR gate, protein halflife period: 2h
3d surface plot of simulation results for XOR gate, protein halflife period: 2h
3d surface plot of simulation results for XOR gate, protein halflife period: 5h
simulation results for XOR gate, different protein halflife periods
top / bottom: output (z axis) is mRNA rate (∼PoPS) / reporter concentration

(x/y: inputs, z: output, htProt: protein halflife period)

For every plot, 25 (left) / 100 (middle, right) ODE simulations were performed, simulating a time period of 12h. Simulations with 2h / 5h halflife period for proteins have been run, showing little difference in the qualitative outcome, though. Complete parameter allocation can be found in the matlab scripts as well as the system of ordinary differential equations (ODEs).

About input rates (general explanatory notes from this template)

The input rates (PoPS) have been chosen in the range of mRNA transcription rate, which was estimated according to the following assumptions:
  • E.coli cytoplasm volume is approximately 6.7*10-16 l
  • average number of mRNA molecules: 10
    → concentrationmRNA = 10/(6.7*10-16 * 6.022*1023) M = 0.0248 μM
  • at equilibrum, mRNA rate and degredation balance each other. Assuming half life period of 30min for mRNA, the result is
    → ratemRNA = concentrationmRNA * log(2)/30 μM/min = 5.7265e-04 μM/min

Amplifying/damping the input rates by small constant factors has influence on the qualitative outcome of the simulation.

  • it is thus important to know how strong the input of the gate has to be.
  • we can regulate this by choosing/designing the predecessor gate accordingly or
  • by changing the ribosome binding sites to strengthen/weaken the input signal.

We accounted for this by adding restriction enzyme sites to the DNA, so that we can cut out current RBS to replace it by another of different strength.

In order to find out about other important, say sensitive parameters, we wanted to do this more systematically. The keyword has already been given: sensitivity analisys.

Sensitivity analysis

Sensitivity matrices (general explanatory notes from this template)

To analyze the sensitivity of the system for all concerned parameters, we compute the sensitivity matrix S:
S = (∂x/x) / (∂p/p) = (∂x/∂p) * (p/x)
S : sensitivity matrix, #x rows, #p columns
x : states (concentrations)
p : parameters

We use jacobian matrices of the system equations to compute the sensitivity matrix S. We therefore augment the set of differential equations by

dS(t)/dt = Jx(t) S(t) + Jp(t)

Jx(t) = ∂f(x,p,t)/∂x
Jp(t) = ∂f(x,p,t)/∂p

Since we are interested in the output sensitivities at steady state, we set dS(t)/dt = 0 and can solve for S:

S = − Jx \ Jp

\ : matrix left division

We computed sensitivity matrices for different input combinations. The results for the XOR gate are illustrated in the following bar3 plot:

XOR: Sensitivity Analysis
Normalized Sensitivity of the parameters for XOR gate
Normalized Sensitivity of the parameters for XOR gate

The z axis shows the absolute normalized sensitivities, the other axes correspond to different input combinations (shorter axis) and the parameters. The left most series show inputs, not sensitivities (3x3 inputs, each [low, medium, high]). The unlabeled series is a placeholder for aesthetic purposes only. Detailed explanation of the parameter abbreviations can be found here. Parameters are postfixed with the state variable they belong to:

I1/I2           : Transcription factors TF1/TF2 
I1p/I2p         : Proteases P1/P2
I1inact/I2inact : Unfunctional cleaved transcription factors T+F1 / T+F2
Out             : Reporter protein, here RFP (mCherry)
mOut            : mRNA for Out

The figure shows

  • Insensitivity with respect to the parameters d-I1inact/d-I2inact, and indeed degredation rate of the unfunctional cleaved transcription factors has no influence on the system ouput
  • No sensitivity to various k parameters involved in the cleavage reactions if either one or the other input is 0. This makes sense since 0 rate on one input means no action on both cleavage reactions, and thus the concerned parameters just don't matter.
  • Relatively high sensitivity to changes in the input rates, which is actually what we want!
  • High sensifivity regarding the k-I1 / k-I2 values for the transcription factors, and lower sensivitity for k-I1p / k-I2p. These k values act as amplification factors for protein synthesis, and indeed it is important that transcription factor concentration is high enough, where already little protease concentrations are sufficient. By the way, we can affect these k values by using ribosome binding sites of different strengths.
  • ...

More (old) simulation results

simulation results / sensitivity analysis



back to main page

Personal tools
Past/present/future years