Project

From 2007.igem.org

(Difference between revisions)
(Molecular Mechanism)
(Logic Gates and Implementing an Adder)
Line 73: Line 73:
For the following explanations, A and B represent statements that can be either true or false.  
For the following explanations, A and B represent statements that can be either true or false.  
-
<table width="100%" cols="3" style="border-collapse: collapse; padding-top:15px; padding-bottom:15px;">   
+
<center><table cols="3" style="border: 1px solid gray; border-collapse: collapse; padding:15px; ">   
   <tr style="background-color:#CCCCCC; text-align:left;">
   <tr style="background-color:#CCCCCC; text-align:left;">
-
     <td colspan="1"><strong>Operator</strong></td>
+
     <th>Operator</th>
-
     <td colspan="1"><strong>Condition </strong></td>
+
     <th>Condition </th>
-
     <td colspan="1"><strong>Truth Table </strong></td>
+
     <th>Truth Table</th>
   </tr>
   </tr>
-
   <tr valign="middle" style="border-top: 1px solid black;border-bottom: 1px solid black;">
+
   <tr valign="middle" style="border-top: 1px solid gray;border-bottom: 1px solid gray;">
-
     <td>a OR b</td>
+
     <td style="padding:2em;">a OR b</td>
-
     <td>If a, b, or both are true</td>
+
     <td style="padding:2em;">If a, b, or both are true</td>
     <td>[[Image:UW_Or_TABLE.jpg]]</td>
     <td>[[Image:UW_Or_TABLE.jpg]]</td>
   </tr>
   </tr>
-
   <tr valign="middle" style="border-top: 1px solid black;border-bottom: 1px solid black;">
+
   <tr valign="middle" style="border-top: 1px solid gray;border-bottom: 1px solid gray;">
-
     <td>a XOR b</td>
+
     <td style="padding:2em;">a XOR b</td>
-
     <td>If a and b are different</td>
+
     <td style="padding:2em;">If a and b are different</td>
     <td>[[Image:UW_XOR_TABLE.jpg]]</td>
     <td>[[Image:UW_XOR_TABLE.jpg]]</td>
   </tr>
   </tr>
-
   <tr valign="middle" style="border-top: 1px solid black;border-bottom: 1px solid black;">
+
   <tr valign="middle" style="border-top: 1px solid gray;border-bottom: 1px solid grayk;">
-
     <td>AND</td>
+
     <td style="padding:2em;">AND</td>
-
     <td>If both are true</td>
+
     <td style="padding:2em;">If both are true</td>
     <td>[[Image:UW_And_TABLE.jpg]]</td>
     <td>[[Image:UW_And_TABLE.jpg]]</td>
   </tr>
   </tr>
-
   <tr valign="middle" style="border-top: 1px solid black;">
+
   <tr valign="middle" style="border-top: 1px solid gray;">
-
     <td>NOT a</td>
+
     <td style="padding:2em;">NOT a</td>
-
     <td>If a is false</td>
+
     <td style="padding:2em;">If a is false</td>
     <td>[[Image:UW_NOT_TABLE.jpg]]</td>
     <td>[[Image:UW_NOT_TABLE.jpg]]</td>
   </tr>
   </tr>
-
</table>
+
</table></center>

Revision as of 21:06, 26 October 2007

Contents

Background

Binary Addition

Decimal
(Base 10)
Binary
(Base 2)
0
00
1
01
2
10
3
11
4
100
5
101
6
110

When working in binary, only two digits are used: 0 and 1. A single binary digit is called a bit. Counting proceeds as: To add two binary numbers, the process is much the same as adding two decimal (ordinary) numbers, except that instead of carrying when two digits add to ten, carrying must be performed when two digits add to two. In other words, 0 + 1 adds to 1, but 1 + 1 adds to 0 with a carry of 1, which gives 10 (just as in decimal 1 + 9 would add to 0 with a carry of 1, to give 10). A complete list of the possibilities is as follows:

Here is an example of long addition:

000.jpg222.jpg

Half-Adder vs. Full-Adder

Figure 1: Half-Adder Truth Table
Figure 2: Full Adder Truth Table

Any construct designed to add two numbers will either be a half-adder or a full-adder. A half-adder can only add together two single digits, whereas a full-adder is needed to add two numbers consisting of more than one digit.


For example, a half-adder could perform the addition 1 + 0 = 1, or 1 + 1 = 10, but it would take a full-adder to be able to perform 1100101 + 100101.

In terms of implementation, a half-adder accepts two inputs (the two digits to be summed) and returns two outputs (the "sum bit" and the "carry bit"). To add 1 + 1, the two inputs would each be 1, the sum bit would be 0, and the carry bit would be 1. A full list of the possibilities is shown in Figure 1.


A full-adder is merely a half-adder that accepts an extra input; namely, the carry bit from another full-adder. Each full-adder is responsible for adding one pair of corresponding digits from the two numbers to be added, and it must add to that the carry bit from the previous full-adder. The full-adder will output the resulting sum bit and carry bit, and the process will continue until all the digits have been added. Such a chain of full-adders is called a ripple carry adder. See Figure 2 for a full list of possibilities.

Logic Gates and Implementing an Adder

A logic gate performs a logical operation on one or more logic inputs and produces a logic output. Usually the inputs and outputs are binary, meaning they each have a value of either 0 or 1. Also, it is often useful to think of of 0 as representing "false", and 1 as representing "true". A list of relevant logic gates is as follows:

  • OR gate
  • XOR gate
  • AND gate
  • NOT gate

For the following explanations, A and B represent statements that can be either true or false.

Operator Condition Truth Table
a OR b If a, b, or both are true UW Or TABLE.jpg
a XOR b If a and b are different UW XOR TABLE.jpg
AND If both are true UW And TABLE.jpg
NOT a If a is false UW NOT TABLE.jpg


Using logic gates to make an adder

Given two binary inputs A and B, their sum can be computed by passing these inputs through various logic gates. The process is illustrated in Figures 4 and 5.

Figure 4: Half-adder circuit diagram
Figure 5: Full-adder circuit diagram


DNA as Logic Gates

Our project focuses on using DNA as logic gates. The output of a logical operation is the protein product of a certain gene; the inputs are external stimuli that cause allosteric changes in the conformation of proteins that can induce or inhibit transcription by acting on promoter elements. Whether or not the gene is turned 'on' or 'off' depends on the logic gate implemented.

For example, consider a positively-regulated gene G that codes for protein X. By default, the gene is not expressed (to be precise, there is a low basal level of expression that we can disregard). If the inputs A and B are on and together can turn on expression of gene G, the expressed protein X represents the output of an AND gate. The inputs would be the "presence" or "absence" of A and the "presence" or "absence" of B (both representing 0 and/or 1 as inputs), and the output would be the "presence" or "absence" of X (where "presence" and "absence" should be read as high and low intensity/concentration, respectively).

Alternatively, consider a negatively regulated gene H that codes for protein Y. By default, the

This is the type of approach used to construct our biological adder. Further details are given under the Project Details section.

Project Details

Input and Output

As a half-adder, our device requires two binary inputs; the possible 1 and 0 values of these inputs are represented by the presence and absence of two stimuli. For the first input, the presence of red light represents a 0 and the absence represents a 1. For the second input, the absence of tetracycline represents a 0 and the presence represents a 1.

We chose to use light as an input because it does not require altering the media, it can be turned on and off rapidly, and it has extremely high resolution and accuracy. The red light will be detected by Cph8, the previously used Cph1/EnvZ fusion protein.

Tetracycline was used as a second input since it inactivates the repressor TetR, thereby derepressing expression at the PtetR locus.

Depending on the result of the calculation, the bacteria will produce either red fluorescent protein (RFP), green fluorescent protein (GFP), or neither. A diagram of the biological half adder in culture is shown above, depicting the possible outcomes for each combination of inputs.

Inputs and Output of the Biological Half-Adder


Molecular Mechanism

As components of a natural quorum sensing system, LuxR and LuxI proteins are ideal for producing the AND logic function required to create 1-bit half-adder. LuxR enhances transcription at Plux when activated by an inducer produced by LuxI. The expression of both LuxR and LuxI is therefore necessary to "turn on" the promoter Plux. LasR and LasI have analogous roles in another quorum sensing system, and contribute to the XOR logic function in our design. Below is a diagram showing all of the gene constructs that are involved in the biological half adder.

Gene Diagram for the Half Adder Construction

The products in the first two constructs are always produced and the last four are controlled by various proteins that either induce or inhibit the production of the proteins that these genes encode for.


The behaviour of the half-adder falls under four possible cases as mentioned before, which are simulated in the genetic system as follows:

Tube00.jpgCase 1: 0 + 0 = 0

This is achieved through the absence of both red light and tetracycline.

In the absence of tetracycline, the tetR repressor protein that is always being produced by the first construct will bind to the operator on the fourth construct preventing the production of lasR and luxR.

In the absence of red light, the components cph8, ho1, and pcyA, which are also always produced, will not combine to form the active complex ompR. Without ompR, the proteins lasR and luxI will not be produced.

The protein lasR is required for the production of Green Fluroescent Protein (GFP). For Red Fluroescent Protein (RFP) be produced, the proteins luxI and luxR must both be present in the cell.

In the absence of lasR, luxI, and luxR, neither of the reporter genes RFP or GFP will be produced.

Consequently, there will not be any output representing a result of 0 for the computation.

Tube10.jpgCase 2: 1 + 0 = 1

This is achieved through the presence of red light and absence of tetracycline.

In the absence of tetracycline, the tetR repressor binds to the operator on the fourth construct preventing the production of lasR and luxR.

In the presence of red light, however, the components cph8, ho1, and pcyA will combine to form an active complex called ompR. This complex will bind to the promoter of the third construct activating the production of the proteins lasR and luxI.

Since the lasR protein is now present, this protein acts on the promoter of the last construct and induces the production of GFP.

However, the presence of the luxI protein alone is insufficient to activate the production of the cI repressor protein and RFP.

Consequently, the output is green.

Tube01.jpgCase 3: 0 + 1 = 1

This case is similar to Case 2. This is achieved through the absence of red light and presence of tetracycline.

In the absence of red light, the proteins cph8, ho1, and pcyA do not form the active complex ompR. Thus, nothing acts on the promoter in the third construct to induce the production of lasR and luxI proteins.

When tetracycline is present, tetracycline binds to the repressor protein tetR, which causes a conformational change to tetR and prevents tetR from binding to the operator on the fourth construct. This allows the proteins lasR and luxR to be produced.

The lasR protein then acts on the promoter of the last construct inducing the production of GFP. However, luxR alone cannot induce the production of luxI and thus RFP cannot be produced but GFP continues to be produced.

Consequently, the output is green.

Tube11.jpgCase 4: 1 + 1 = 10

This is achieved through the presence of both red light and tetracycline.

In the presence of red light, the proteins cph8, ho1, and pcyA combine to form the active complex ompR. This complex then binds to the promoter of the third construct and induces the production of the lasR and luxI proteins.

In the presence of tetracycline, tetR undergoes a conformational change that prevents it from binding to the operator of the fourth construct. As a result, lasR and luxR proteins are produced.

Since the proteins luxI and luxR are present, they induce the production of the cI repressor protein and RFP under the Plux promoter. The cI repressor protein then binds to the operator of the last construct, inhibiting the production of GFP.

Consequently, the output is red.

  Home  |  Project |  Mathematical Modelling |  Construction & Testing |  Future Work