Lewis Hatcher, Aria Rosensweig – Renaissance School, Charlottesville, Virginia, United States of America
Reviewed on 4 May 2024; Accepted on 10 June 2024; Published on 26 October 2024
With help from the 2024 BioTreks Production Team.
In DNA computing, it is common for algorithms to be built into DNA, meaning that they are constructed by biologists out of nucleotide base pairs to compute one specific problem. This makes them extremely accurate, but only applicable to one problem which makes them difficult to engineer and expensive to create. New research has found methods for creating general-purpose DNA computers that mimic the techniques used in electronic computing, utilizing biological components to achieve the same effects. The basis of these computers is the strand displacement reaction (SDR) which allows for DNA to act as a switch or transistor, creating the possibility of implementing boolean logic gates, which, when constructed into an array, can act as a general-purpose tool for implementing any given algorithm. This allows for much more nuanced genetic control at a much more accessible level. However, these DNA programmable gate arrays (DPGAs) are complicated to understand for the average biologist. The aim of this review is to explain these concepts simply and concisely.
Keywords: DNA, logic gate, strand displacement reaction, DNA programmable gate array
Authors are listed in alphabetical order. Anna Minutella mentored the group. Please direct all correspondence to aminutella@renaissanceschool.org.
Background
A logic gate is a simple form of computing, which takes at least one input and depending on the type of gate and the inputs, outputs something (Khan Academy). In computing this is done with Boolean functions. A Boolean function is a function with inputs and outputs that are either true or false. For example, a simple switch is a boolean function, as it can either be on or off. In computing, the basic language is binary, which means that computers only use one’s and zero’s to communicate. Boolean functions in computing use one and zero in place of on and off, or true and false. However, logic gates get more complicated than just a simple on/off switch. They are able to take multiple inputs and output either one or zero based on the type of logic gate used.
The most simple gate is a NOT gate, sometimes called an inverter (Fletcher, 2023). NOT gates take an input and invert it, for example if the input is true, it would be inverted to false and vice versa. OR gates are the next step up. OR gates only output true if either, or both, of the inputs are true. If both of the inputs are false, however, it outputs false. XOR gates, or exclusive OR gates, only output true if one of the two inputs is true. If both of the inputs are true or false, the output is false. AND gates are slightly more complex, only outputting true if both of the inputs are also true, otherwise it outputs false (Gillis, 2023). One can think of logic gates as a series of draw bridges leading into a city. For example an AND gate would be two bridges back to back, if one was down then you still could not get all the way into the city because the other one would be up, but if they are both down then you can pass through with ease. An OR gate would be two separate bridges, both of which lead into the city, if either one of them is down then you can cross and if both are down then you can cross at either one.
The main concept that connects logic gates to computing is binary. Binary is a base two number system, it represents numbers as strings of ones and zeros, zero is 0, one is 1, two is 10, three is 11, four is 100 and so on. With electricity you can represent these states as on and off, which can then be fed into logic gates which can be chained to do calculations. As an example the most basic form of addition is between two bits, they run into an AND gate and an XOR gate.
Figure 1: Half adder logic diagram. |
In this situation if one of the inputs is on but not the other then the lower output will be on, and if both of them are on then the upper output will be on, going back to binary this is a 01 (one) or a 10 (two). Let’s explain how the field programmable gate array (FPGA) works. To start with, we should define an array essentially as just a group of things, in this case logic gates, the logical diagram of an FPGA is essentially just a big map of logic gates which can be told to send electricity between any arbitrary gate. So on the inside of an FPGA the half adder that was shown in Figure 1 may not look as concise, but it would have the same function.
The basis of a DNA computer is the strand displacement reaction, SDR, specifically an enzyme free implementation known as toehold mediated strand displacement, TMSD. These reactions are simple in premise, but the underlying biophysics is extremely complex. Luckily biophysics is not necessary to understand in order to work with this technology. So on a very simple level, a TMSD happens between three strands of DNA, two of which are bound together, known as a complex, and an invader strand which is what will do the displacement. The two strands that are bound together are not the same length, the substrate strand is longer than the strand that it is bound to, the incumbent, and the overhang is known as the toeholds. The invader strand is fully complementary to the substrate strand and is able to bind to the toeholds using that as a foothold to kick the incumbent strand off (Srinivas et al., 2013).
This is already an extremely valuable tool for creating DNA nanomachinery, essentially the equivalent of mechanical engineering using DNA, this technology was originally used to create machinery such as tweezers, strands of DNA that moved in an opening and closing motion similar to tweezers in response to stimuli and automata essential robots which moved around and completed tasks such as picking up gold molecules (Zhang et al., 2011). This is not yet a computer, but just computer engineering followed mechanical engineering in the large scale world, so it does here. The basic idea of using SDRs to create logic is to think about the incumbent strand as a signal which can turn into the invader strand to another complex, then similar to electricity it is possible to have a signal flowing through a “circuit”. This still is not computation, the next element to introduce is the “block”, this allows for a signal to bind to a complex while not displacing the next signal, and thus allowing for more input.
Figure 2 shows the use of these three basic elements to create an AND gate, a boolean logic gate that takes in two inputs and outputs a signal when both are “on”. Using switches this looks very simple, essentially just two doors which both have to be closed for electricity to pass through, but the same concept implemented through DNA looks much more complex. The first input can be a simple switch (Figure 3) which is just one SDR which takes in an input strand and then outputs the signal. The second switch has to be more complicated. It starts with a block which the signal replaces, this primes it so that the second input can come in and replace the signal which can then go on to the output. Let’s look at some cases where this would not happen, for instance if you only had input B then it would come in and replace the block which, since it is not complementary to the output, it is unable to bind as a signal, thus it is as if the first switch is off and the second is on in an electronic circuit.
Figure 2. AND gate and its DNA implementation |
Figure 3. Switch and its DNA implementation. |
When combined as one large array of switches it is possible to create more complex computational devices such as a full adder, or a circuit that calculates square roots (Wang et al., 2020). However, we are still not at DNA programmable gate array (DPGA). In order to reach that level we have to abstract one more layer, rather than an array of switches that we turn into gates we need to create an array of gates which we turn into programs. Scaling up to this level is not easy however. The scientists behind the creation of the DPGA defined around 1000 unique “instructions” which are essentially different combinations of blocks, inputs, and signals so that one could address any type of gate in the array from any other type of gate. These instructions were broken down in four types, WIR1 which was between input and the first gate, WIR2 which is between gate and gate, WIR3 which is between gate and output, and WIR4 which is between one DPGA and another (Lv et al., 2023). On a DPGA the half adder from Figure 1 would be constructed using WIR1s for the inputs then WIR3s for the outputs, in a more complex adder you would use WIR2s in order to connect gates to each other. The reason that WIR4s exist is so that logic can be broken up into different smaller circuits which can exist on separate DPGAs and can be connected together to create more complex logic without overrunning the constraints of a single DPGA.
These DPGAs have been used to create more complex algorithms such as one that calculates the square root of any 6 bit number with 4 bits used for decimals (Lv et al., 2023) According to the authors of the paper the current implementation of the DPGA has enough instructions to create general purpose computing, though that would look much more like the computers from the eighties rather than the modern day laptop or desktop.
In short, DPGAs are an interesting new way to interact with genetic engineering, they have the potential to revolutionize how genetic circuits are created, and allow for extremely nuanced genetic control. There is still much research to be done and many advancements to be made but the future of this technology is bright.
Next steps
The potentialnext step would be the construction of a physical DPGA, but that would fall outside the scope of a highschool laboratory. Some achievable next steps might be performing more research on the underlying biophysics of the TSDM, as well, there are a few increasingly accurate digital DNA simulation tools which may be able to provide a platform to implement a proof of concept DPGA.
Author contributions
L.H. and A.R. both conducted research and gathered resources. A.R. described the TSDM, DSC, and DPGA. A.R. described Binary and its application to logic gates. A.R. created the figures. L.H. described logic gates and their uses. L.H. revised the paper and provided edits.
Acknowledgements
The authors would like to acknowledge Ms. Anna Minutella and the Renaissance High School, who provided critical feedback and furthered understanding of this field. The authors would also like to acknowledge WIlliam Bradford, a student and the University of Virginia, who provided feedback and edits to the manuscript.
References
Fletcher, S. (2023). Gate in computer science: A basic logic gate reference for those new to Cs. Computer Engineering for Babies. https://computerengineeringforbabies.com/blogs/engineering/gate-in-computer-science
Gillis, A. S. (2023). What are logic gates? Definition from TechTarget. https://www.techtarget.com/whatis/definition/logic-gate-AND-OR-XOR-NOT-NAND-NOR-and-XNOR
Khan Academy. (n.d.). Logic gates, AP CSP. https://www.khanacademy.org/computing/computers-and-internet/xcae6f4a7ff015e7d:computers/xcae6f4a7ff015e7d:logic-gates-and-circuits/a/logic-gates#:~:text=A%20logic%20gate%20is%20a,than%20a%20single%20binary%20digit
Lv, H., Xie, N., Li, M., Dong, M., Sun, C., Zhang, Q., Zhao, L., Jiang, L., Zuo, X., Chen, H., Wang, F., & Fan, C. (2023). DNA-based programmable gate arrays for general-purpose DNA computing. Nature, 622(7982), 292–300. https://doi.org/10.1038/s41586-023-06484-9
Srinivas, N., Ouldridge, T. E., Sulc, P., Schaeffer, J. M., Yurke, B., Louis, A. A., Doye, J. P. K., & Winfree, E. (2013r). On the biophysics and kinetics of toehold-mediated DNA strand displacement. Nucleic acids research, 41(22), 10641–10658. https://doi.org/10.1093/nar/gkt801
Wang, F., Lv, H., Li, Q., Li, J., Zhang, X., Shi, J., Wang, L., & Fan, C. (2020). Implementing digital computing with DNA-based switching circuits. Nature Communications, 11, 121. https://doi.org/10.1038/s41467-019-13980-y
Zhang, D. Y., & Seelig, G. (2011). Dynamic DNA nanotechnology using strand-displacement reactions. Nature Chemistry, 3, 103-113. https://doi.org/10.1038/nchem.957