Project

From 2007.igem.org

(Difference between revisions)
(DNA as Logic Gates)
(Logic Gates and Implementing an Adder)
Line 81: Line 81:
   </tr>
   </tr>
   <tr valign="middle" style="border-top: 1px solid black;border-bottom: 1px solid black;">
   <tr valign="middle" style="border-top: 1px solid black;border-bottom: 1px solid black;">
-
     <td>OR</td>
+
     <td>a OR b</td>
-
     <td></td>
+
     <td>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 black;border-bottom: 1px solid black;">
-
     <td>XOR</td>
+
     <td>a XOR b</td>
-
     <td></td>
+
     <td>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 black;border-bottom: 1px solid black;">
     <td>AND</td>
     <td>AND</td>
-
     <td>&nbsp;</td>
+
     <td>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 black;">
-
     <td>NOT</td>
+
     <td>NOT a</td>
-
     <td>&nbsp;</td>
+
     <td>If a is false</td>
     <td>[[Image:UW_NOT_TABLE.jpg]]</td>
     <td>[[Image:UW_NOT_TABLE.jpg]]</td>
   </tr>
   </tr>

Revision as of 16:10, 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.

STATEMENT FUNCTION NAME TRUTH TABLES
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

OR Gate

Consider the statement "A OR B". If either A or B is true, the statement is said to be true. The only time this statement will be false is when both A and B are false. This is the meaning of the OR operation.

An OR gate accepts two binary inputs, where a 1 represents "true" and a 0 represents "false". The output of the OR gate is also binary, and similarly represents either "true" or "false".

To illustrate,

0 OR 0 = 0

1 OR 0 = 0 OR 1 = 1

1 OR 1 = 1

XOR Gate

XOR is an abbreviation for "exclusive OR". The XOR gate is similar to the OR gate, the only difference being that it will return false if both inputs are true.

For example,

1 XOR 0 = 1

1 XOR 1 = 0

AND gate

The AND gate will return 1 (true) only if both the inputs are 1 (true). Otherwise, it will return a 0.

To illustrate,

0 AND 0 = 0

1 AND 0 = 0 AND 1 = 0

1 AND 1 = 1

NOT gate

The NOT gate accepts one input, and simply switches its value.

NOT 1 = 0

NOT 0 = 1

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

Inputs and Output of the Biological Half-Adder

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.



Molecular Mechanism

Gene Diagram for the Half Adder Construction

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.

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:

Case 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.

Case 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.

Case 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.

Case 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