Natural computing

From Wikipedia, the free encyclopedia
Jump to: navigation, search
For the scientific journal, see Natural Computing (journal).

Natural computing,[1] also called Natural computation, is a terminology introduced to encompass three classes of methods: 1) those that take inspiration from nature for the development of novel problem-solving techniques; 2) those that are based on the use of computers to synthesize natural phenomena; and 3) those that employ natural materials (e.g., molecules) to compute. The main fields of research that compose these three branches are artificial neural networks, evolutionary algorithms, swarm intelligence, artificial immune systems, fractal geometry, artificial life, DNA computing, and quantum computing, among others.

Computational paradigms studied by natural computing are abstracted from natural phenomena as diverse as self-replication, the functioning of the brain, Darwinian evolution, group behavior, the immune system, the defining properties of life forms, cell membranes, and morphogenesis. Besides traditional electronic hardware, these computational paradigms can be implemented on alternative physical media such as biomolecules (DNA, RNA), or trapped-ion quantum computing devices.

Dually, one can view processes occurring in nature as information processing. Such processes include self-assembly, developmental processes, gene regulation networks, protein-protein interaction networks, biological transport (active transport, passive transport) networks, and gene assembly in unicellular organisms. Efforts to understand biological systems also include engineering of semi-synthetic organisms, and understanding the universe itself from the point of view of information processing. Indeed, the idea was even advanced that information is more fundamental than matter or energy. The Zuse-Fredkin thesis, dating back to the 1960s, states that the entire universe is a huge cellular automaton which continuously updates its rules.[2][3] Recently it has been suggested that the whole universe is a quantum computer that computes its own behaviour.[4]

Nature-inspired models of computation[edit]

The most established "classical" nature-inspired models of computation are cellular automata, neural computation, and evolutionary computation. More recent computational systems abstracted from natural processes include swarm intelligence, artificial immune systems, membrane computing, and amorphous computing. In fact, all major methods and algorithms are nature-inspired metaheuristic algorithms[5] including cellular automata, evolutionary computation, swarm intelligence and others. The detailed review can be found in many books [6][7]

Cellular automata[edit]

Further information: Cellular automaton

A cellular automaton is a dynamical system consisting of a two-dimensional grid of cells. Space and time are discrete and each of the cells can be in a finite number of states. The cellular automaton updates the states of its cells synchronously according to the transition rules given a priori. The next state of a cell is computed by a transition rule and it depends only on its current state and the states of its neighbors.

Conway's game of life is one of the best-known examples of cellular automata, shown to be computationally universal. Cellular automata have been applied to modelling a variety of phenomena such as communication, growth, reproduction, competition, evolution and other physical and biological processes.

Neural computation[edit]

Further information: Neural computation

Neural computation is the field of research that emerged from the comparison between computing machines and the human nervous system.[8] This field aims both to understand how the brain of living organisms works (brain theory or computational neuroscience), and to design efficient algorithms based on the principles of how the human brain processes information (Artificial Neural Networks, ANN [9]).

An artificial neural network is a network of artificial neurons.[10] An artificial neuron A is equipped with a function f_A, receives n real-valued inputs x_1, x_2, \ldots, x_n with respective weights w_1, w_2, \ldots, w_n, and it outputs f_A(w_1x_1 + w_2x_2 + \ldots + w_nx_n). Some neurons are selected to be the output neurons, and the network function is the vectorial function that associates to the n input values, the outputs of the m selected output neurons. Note that different choices of weights produce different network functions for the same inputs. Back-propagation is a supervised learning method by which the weights of the connections in the network are repeatedly adjusted so as to minimize the difference between the vector of actual outputs and that of desired outputs. Learning algorithms based on backwards propagation of errors can be used to find optimal weights for given topology of the network and input-output pairs.

Evolutionary computation[edit]

Further information: Evolutionary computation

Evolutionary computation[11] is a computational paradigm inspired by Darwinian evolution.

An artificial evolutionary system is a computational system based on the notion of simulated evolution. It comprises a constant- or variable-size population of individuals, a fitness criterion, and genetically inspired operators that produce the next generation from the current one. The initial population is typically generated randomly or heuristically, and typical operators are mutation and recombination. At each step, the individuals are evaluated according to the given fitness function (survival of the fittest). The next generation is obtained from selected individuals (parents) by using genetically inspired operators. The choice of parents can be guided by a selection operator which reflects the biological principle of mate selection. This process of simulated evolution eventually converges towards a nearly optimal population of individuals, from the point of view of the fitness function.

The study of evolutionary systems has historically evolved along three main branches: Evolution strategies provide a solution to parameter optimization problems for real-valued as well as discrete and mixed types of parameters. Evolutionary programming originally aimed at creating optimal "intelligent agents" modelled, e.g., as finite state machines. Genetic algorithms[12] applied the idea of evolutionary computation to the problem of finding a (nearly-)optimal solution to a given problem. Genetic algorithms initially consisted of an input population of individuals encoded as fixed-length bit strings, the genetic operators mutation (bit flips) and recombination (combination of a prefix of a parent with the suffix of the other), and a problem-dependent fitness function. Genetic algorithms have been used to optimize computer programs, called genetic programming, and today they are also applied to real-valued parameter optimization problems as well as to many types of combinatorial tasks.

Swarm intelligence[edit]

Swarm intelligence,[13] sometimes referred to as collective intelligence, is defined as the problem solving behavior that emerges from the interaction of individual agents (e.g., bacteria, ants, termites, bees, spiders, fish, birds) which communicate with other agents by acting on their local environments.

Particle swarm optimization applies this idea to the problem of finding an optimal solution to a given problem by a search through a (multi-dimensional) solution space. The initial set-up is a swarm of particles, each representing a possible solution to the problem. Each particle has its own velocity which depends on its previous velocity (the inertia component), the tendency towards the past personal best position (the nostalgia component), and its tendency towards a global neighborhood optimum or local neighborhood optimum (the social component). Particles thus move through a multidimensional space and eventually converge towards a point between the global best and their personal best. Particle swarm optimization algorithms have been applied to various optimization problems, and to unsupervised learning, game learning, and scheduling applications.

In the same vein, ant algorithms model the foraging behaviour of ant colonies. To find the best path between the nest and a source of food, ants rely on indirect communication by laying a pheromone trail on the way back to the nest if they found food, respectively following the concentration of pheromones if they are looking for food. Ant algorithms have been successfully applied to a variety of combinatorial optimization problems over discrete search spaces.

Artificial immune systems[edit]

Artificial immune systems (a.k.a. immunological computation or immunocomputing) are computational systems inspired by the natural immune systems of biological organisms.

Viewed as an information processing system, the natural immune system of organisms performs many complex tasks in parallel and distributed computing fashion.[14] These include distinguishing between self and nonself,[15] neutralization of nonself pathogens (viruses, bacteria, fungi, and parasites), learning, memory, associative retrieval, self-regulation, and fault-tolerance. Artificial immune systems are abstractions of the natural immune system, emphasizing these computational aspects. Their applications include computer virus detection, anomaly detection in a time series of data, fault diagnosis, pattern recognition, machine learning, bioinformatics, optimization, robotics and control.

Membrane computing[edit]

Membrane computing investigates computing models abstracted from the compartmentalized structure of living cells effected by membranes.[16] A generic membrane system (P-system) consists of cell-like compartments (regions) delimited by membranes, that are placed in a nested hierarchical structure. Each membrane-enveloped region contains objects, transformation rules which modify these objects, as well as transfer rules, which specify whether the objects will be transferred outside or stay inside the region. Regions communicate with each other via the transfer of objects. The computation by a membrane system starts with an initial configuration, where the number (multiplicity) of each object is set to some value for each region (multiset of objects). It proceeds by choosing, nondeterministically and in a maximally parallel manner, which rules are applied to which objects. The output of the computation is collected from an a priori determined output region.

Applications of membrane systems include machine learning, modelling of biological processes (photosynthesis, certain signaling pathways, quorum sensing in bacteria, cell-mediated immunity), as well as computer science applications such as computer graphics, public-key cryptography, approximation and sorting algorithms, as well as analysis of various computationally hard problems.

Amorphous computing[edit]

In biological organisms, morphogenesis (the development of well-defined shapes and functional structures) is achieved by the interactions between cells guided by the genetic program encoded in the organism's DNA.

Inspired by this idea, amorphous computing aims at engineering well-defined shapes and patterns, or coherent computational behaviours, from the local interactions of a multitude of simple unreliable, irregularly placed, asynchronous, identically programmed computing elements (particles).[17] As a programming paradigm, the aim is to find new programming techniques that would work well for amorphous computing environments. Amorphous computing also plays an important role as the basis for "cellular computing" (see the topics synthetic biology and cellular computing, below).

Synthesizing nature by means of computing[edit]

Artificial life[edit]

Artificial life (ALife) is a research field whose ultimate goal is to understand the essential properties of life organisms [18] by building, within electronic computers or other artificial media, ab initio systems that exhibit properties normally associated only with living organisms. Early examples include Lindenmayer systems (L-systems), that have been used to model plant growth and development. An L-system is a parallel rewriting system that starts with an initial word, and applies its rewriting rules in parallel to all letters of the word.[19]

Pioneering experiments in artificial life included the design of evolving "virtual block creatures" acting in simulated environments with realistic features such as kinetics, dynamics, gravity, collision, and friction.[20] These artificial creatures were selected for their abilities endowed to swim, or walk, or jump, and they competed for a common limited resource (controlling a cube). The simulation resulted in the evolution of creatures exhibiting surprising behaviour: some developed hands to grab the cube, others developed legs to move towards the cube. This computational approach was further combined with rapid manufacturing technology to actually build the physical robots that virtually evolved.[21] This marked the emergence of the field of mechanical artificial life.

The field of synthetic biology explores a biological implementation of similar ideas. Other research directions within the field of artificial life include artificial chemistry as well as traditionally biological phenomena explored in artificial systems, ranging from computational processes such as co-evolutionary adaptation and development, to physical processes such as growth, self-replication, and self-repair.

Nature-inspired novel hardware[edit]

All of the computational techniques mentioned above, while inspired by nature, have been implemented until now mostly on traditional electronic hardware. In contrast, the two paradigms introduced here, molecular computing and quantum computing, employ radically different types of hardware.

Molecular computing[edit]

Molecular computing (a.k.a. biomolecular computing, biocomputing, biochemical computing, DNA computing) is a computational paradigm in which data is encoded as biomolecules such as DNA strands, and molecular biology tools act on the data to perform various operations (e.g., arithmetic or logical operations). The first experimental realization of special-purpose molecular computer was the 1994 breakthrough experiment by Leonard Adleman who solved a 7-node instance of the Hamiltonian Path Problem solely by manipulating DNA strands in test tubes.[22] DNA computations start from an initial input encoded as a DNA sequence (essentially a sequence over the four-letter alphabet {A, C, G, T}), and proceed by a succession of bio-operations such as cut-and-paste (by restriction enzymes and ligases), extraction of strands containing a certain subsequence (by using Watson-Crick complementarity), copy (by using polymerase chain reaction that employs the polymerase enzyme), and read-out.[23] Recent experimental research succeeded in solving more complex instances of NP-complete problems such as a 20-variable instance of 3SAT, and wet DNA implementations of finite state machines with potential applications to the design of smart drugs.

DNA tile self-assembly of a Sierpinski triangle, starting from a seed obtained by the DNA origami technique[24]

One of the most notable contributions of research in this field is to the understanding of self-assembly.[25] Self-assembly is the bottom-up process by which objects autonomously come together to form complex structures. Instances in nature abound, and include atoms binding by chemical bonds to form molecules, and molecules forming crystals or macromolecules. Examples of self-assembly research topics include self-assembled DNA nanostructures[26] such as Sierpinski triangles[27] or arbitrary nanoshapes obtained using the DNA origami[28] technique, and DNA nanomachines[13] such as DNA-based circuits (binary counter, bit-wise cumulative XOR), ribozymes for logic operations, molecular switches (DNA tweezers), and autonomous molecular motors (DNA walkers).

Theoretical research in molecular computing has yielded several novel models of DNA computing (e.g. splicing systems introduced by Tom Head already in 1987) and their computational power has been investigated.[29] Various subsets of bio-operations are now known to be able to achieve the computational power of Turing machines[citation needed].

Quantum computing[edit]

Further information: Quantum computing

A quantum computer[30] processes data stored as quantum bits (qubits), and uses quantum mechanical phenomena such as superposition and entanglement to perform computations. A qubit can hold a "0", a "1", or a quantum superposition of these. A quantum computer operates on qubits with quantum logic gates. Through Shor's polynomial algorithm for factoring integers, and Grover's algorithm for quantum database search that has a quadratic time advantage, quantum computers were shown to potentially possess a significant benefit relative to electronic computers.

Quantum cryptography is not based on the complexity of the computation, but on the special properties of quantum information, such as the fact that quantum information cannot be measured reliably and any attempt at measuring it results in an unavoidable and irreversible disturbance. A successful open air experiment in quantum cryptography was reported in 2007, where data was transmitted securely over a distance of 144 km.[31] Quantum teleportation is another promising application, in which a quantum state (not matter or energy) is transferred to an arbitrary distant location. Implementations of practical quantum computers are based on various substrates such as ion-traps, superconductors, nuclear magnetic resonance, etc. As of 2006, the largest quantum computing experiment used liquid state nuclear magnetic resonance quantum information processors, and could operate on up to 12 qubits.[32]

Nature as information processing[edit]

The dual aspect of natural computation is that it aims to understand nature by regarding natural phenomena as information processing. The two main directions of research in this area are systems biology and synthetic biology.

Systems biology[edit]

Further information: systems biology

Computational systems biology (or simply systems biology) is an integrative and qualitative approach that investigates the complex communications and interactions taking place in biological systems. Thus, in systems biology, the focus of the study is the interaction networks themselves and the properties of biological systems that arise due to these networks, rather than the individual components of functional processes in an organism. This type of research on organic components has focused strongly on four different interdependent interaction networks:[33] gene-regulatory networks, biochemical networks, transport networks, and carbohydrate networks.

Gene regulatory networks comprise gene-gene interactions, as well as interactions between genes and other substances in the cell. Genes are transcribed into messenger RNA (mRNA), and then translated into proteins according to the genetic code. Each gene is associated with other DNA segments (promoters, enhancers, or silencers) that act as binding sites for activators or repressors for gene transcription. Genes interact with each other either through their gene products (mRNA, proteins) which can regulate gene transcription, or through small RNA species that can directly regulate genes. These gene-gene interactions, together with genes' interactions with other substances in the cell, form the most basic interaction network: the gene regulatory networks. They perform information processing tasks within the cell, including the assembly and maintenance of other networks. Models of gene regulatory networks include random and probabilistic Boolean networks, asynchronous automata, and network motifs.

Another viewpoint is that the entire genomic regulatory system is a computational system, a genomic computer. This interpretation allows one to compare human-made electronic computation with computation as it occurs in nature.[34]

A comparison between genomic and electronic computers
Genomic computer Electronic computer
Architecture changeable rigid
Components construction as-needed basis from the start
Coordination causal coordination temporal synchrony
Distinction between hardware and software No Yes
Transport media molecules and ions wires

In addition, unlike a conventional computer, robustness in a genomic computer is achieved by various feedback mechanisms by which poorly functional processes are rapidly degraded, poorly functional cells are killed by apoptosis, and poorly functional organisms are out-competed by more fit species.

Biochemical networks refer to the interactions between proteins, and they perform various mechanical and metabolic tasks inside a cell. Two or more proteins may bind to each other via binding of their interactions sites, and form a dynamic protein complex (complexation). These protein complexes may act as catalysts for other chemical reactions, or may chemically modify each other. Such modifications cause changes to available binding sites of proteins. There are tens of thousands of proteins in a cell, and they interact with each other. To describe such a massive scale interactions, Kohn maps[35] were introduced as a graphical notation to depict molecular interactions in succinct pictures. Other approaches to describing accurately and succinctly protein-protein interactions include the use of textual bio-calculus[36] or pi-calculus enriched with stochastic features.[37]

Transport networks refer to the separation and transport of substances mediated by lipid membranes. Some lipids can self-assemble into biological membranes. A lipid membrane consists of a lipid bilayer in which proteins and other molecules are embedded, being able to travel along this layer. Through lipid bilayers, substances are transported between the inside and outside of membranes to interact with other molecules. Formalisms depicting transport networks include membrane systems and brane calculi.[38]

Synthetic biology[edit]

Further information: synthetic biology

Synthetic biology aims at engineering synthetic biological components, with the ultimate goal of assembling whole biological systems from their constituent components. The history of synthetic biology can be traced back to the 1960s, when Francois Jacob and Jacques Monod discovered the mathematical logic in gene regulation. Genetic engineering techniques, based on recombinant DNA technology, are a precursor of today's synthetic biology which extends these techniques to entire systems of genes and gene products.

Along with the possibility of synthesizing longer and longer DNA strands, the prospect of creating synthetic genomes with the purpose of building entirely artificial synthetic organisms became a reality. Indeed, rapid assembly of chemically synthesized short DNA strands made it possible to generate a 5386bp synthetic genome of a virus.[39]

Alternatively, Smith et al. found about 100 genes that can be removed invidually from the genome of Mycoplasma Genitalium. This discovery paves the way to the assembly of a minimal but still viable artificial genome consisting of the essential genes only.

A third approach to engineering semi-synthetic cells is the construction of a single type of RNA-like molecule with the ability of self-replication.[40] Such a molecule could be obtained by guiding the rapid evolution of an initial population of RNA-like molecules, by selection for the desired traits.

Another effort in this field is towards engineering multi-cellular systems by designing, e.g., cell-to-cell communication modules used to coordinate living bacterial cell populations.[41]

Cellular computing[edit]

Computation in living cells (a.k.a. cellular computing, or in-vivo computing) is another approach to understand nature as computation. One particular study in this area is that of the computational nature of gene assembly in unicellular organisms called ciliates. Ciliates store a copy of their DNA containing functional genes in the macronucleus, and another "encrypted" copy in the micronucleus. Conjugation of two ciliates consists of the exchange of their micronuclear genetic information, leading to the formation of two new micronuclei, followed by each ciliate re-assembling the information from its new micronucleus to construct a new functional macronucleus. The latter process is called gene assembly, or gene re-arrangement. It involves re-ordering some fragments of DNA (permutations and possibly inversion) and deleting other fragments from the micronuclear copy. From the computational point of view, the study of this gene assembly process led to many challenging research themes and results, such as the Turing universality of various models of this process.[42] From the biological point of view, a plausible hypothesis about the "bioware" that implements the gene-assembly process was proposed, based on template guided recombination.[43][44]

Other approaches to cellular computing include developing an in vivo programmable and autonomous finite-state automaton with E. coli,[45] and designing and constructing in vivo cellular logic gates and genetic circuits that harness the cell's existing biochemical processes (see for example [46][47]).

See also[edit]

Further reading[edit]

This article was written based on the following references with the kind permission of their authors:

Many of the constituent research areas of natural computing have their own specialized journals and books series. Journals and book series dedicated to the broad field of Natural Computing include the journals International Journal of Natural Computing Research (IGI Global),Natural Computing (Springer Verlag), Theoretical Computer Science, Series C: Theory of Natural Computing (Elsevier), the Natural Computing book series (Springer Verlag), and the Handbook of Natural Computing (G.Rozenberg, T.Back, J.Kok, Editors, Springer Verlag).

  • Ridge, E.; Kudenko, D.; Kazakov, D.; Curry, E. (2005). "Moving Nature-Inspired Algorithms to Parallel, Asynchronous and Decentralised Environments". Self-Organization and Autonomic Informatics (I) 135: 35–49. CiteSeerX: 10.1.1.64.3403. 
  • Swarms and Swarm Intelligence by Michael G. Hinchey, Roy Sterritt, and Chris Rouff,

References[edit]

  1. ^ G.Rozenberg, T.Back, J.Kok, Editors, Handbook of Natural Computing, Springer Verlag, 2012
  2. ^ Fredkin, F. Digital mechanics: An informational process based on reversible universal CA. Physica D 45 (1990) 254-270
  3. ^ Zuse, K. Rechnender Raum. Elektronische Datenverarbeitung 8 (1967) 336-344
  4. ^ Lloyd, S. Programming the Universe: A Quantum Computer Scientist Takes on the Cosmos. Knopf, 2006
  5. ^ Yang, X.-S., Nature-inspired metaheuristic algorithms, Luniver Press, (2008).
  6. ^ Olarius S., Zomaya A. Y., Handbook of Bioinspired Algorithms and Applications, Chapman & Hall/CRC, 2005.
  7. ^ de Castro, L. N., Fundamentals of Natural Computing: Basic Concepts, Algorithms, and Applications, CRC Press, 2006.
  8. ^ von Neumann, J. The Computer and the Brain. Yale University Press, 1958
  9. ^ Arbib, M., editor. The Handbook of Brain Theory and Neural Networks. MIT Press, 2003.
  10. ^ Rojas, R. Neural Networks: A Systematic Introduction. Springer, 1996
  11. ^ Bäck, T., Fogel, D., Michalewicz, Z., editors. Handbook of Evolutionary Computation. IOP Publishing, U.K., 1997
  12. ^ Koza, J. Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, 1992
  13. ^ a b Engelbrecht, A. Fundamentals of Computational Swarm Intelligence. Wiley and Sons, 2005.
  14. ^ Dasgupta, D. editor. Artificial Immune Systems and Their Applications. Springer, 1998
  15. ^ de Castro, L., Timmis, J. Artificial Immune Systems: A New Computational Intelligence Approach. Springer, 2002.
  16. ^ Paun, G. Membrane Computing: An Introduction. Springer, 2002
  17. ^ Abelson, H., Allen, D., Coore, D., Hanson, C., Homsy, G., Knight Jr., T., Nagpal, R., Rauch, E., Sussman, G., Weiss, R. Amorphous computing. Communications of the ACM 43, 5 (May 2000), 74-82
  18. ^ Langton, C., editor. Artificial Life. Addison-Wesley Longman, 1990
  19. ^ Rozenberg, G. and Salomaa, A. The Mathematical Theory of L Systems. Academic Press, 1980
  20. ^ Brooks. R. Artificial life: from robot dreams to reality. Nature 406 (2000), 945-947
  21. ^ Lipson, P., Pollack, J. Automatic design and manufacture of robotic lifeforms. Nature 406 (2000), 974-978
  22. ^ Adleman, L. Molecular computation of solutions to combinatorial problems. Science 266 (1994), 1021-1024
  23. ^ Kari, L. DNA computing - the arrival of biological mathematics. The Mathematical Intelligencer 19, 2 (1997) 9-22
  24. ^ Fujibayashi, K., Hariadi, R., Park, S-H., Winfree, E., Murata, S. Toward reliable algorithmic self-assembly of DNA tiles: A fixed-width cellular automaton pattern. Nano Letters 8(7) (2007) 1791-1797.
  25. ^ Reif, J. and LaBean, T. Autonomous programmable biomolecular devices using self-assembled DNA nanostructures. Communications of the ACM 50, 9 (Spet. 2007), 46-53
  26. ^ Seeman, N. Nanotechnology and the double helix. Scientific American Reports, 17. 3 (2007), 30-39
  27. ^ Rothemund, P., Papadakis, N., Winfree, E. Algorithmic self-assembly of DNA Sierpinski triangles. PLoS Biology 2, 12 (December 2004)
  28. ^ Rothemund, P. Folding DNA to create nanoscale shapes and patterns. Nature 440 (2006) 297-302.
  29. ^ Paun, G., Rozenberg, G., Salomaa, A. DNA Computing: New Computing Paradigms. Springer, 1998
  30. ^ Hirvensalo, M. Quantum Computing, 2nd Ed. Springer, 2004
  31. ^ Ursin, R. et al. Entanglemen-based quantum communication over 144km. Nature Physics 3 (2007) 481-486
  32. ^ Negrevergne, C. et al. Benchmarking quantum control methods on a 12-qubit system. Physical Review Letters 96:art170501, 2006
  33. ^ Cardelli, L. Abstract machines of systems biology Bulletin of the EATCS 93 (2007), 176-204
  34. ^ Istrail, S., De-Leon, B-T., Davidson, E. The regulatory genome and the computer. Developmental Biology 310 (2007), 187-195
  35. ^ Kohn, K. Molecular interaction map of the mammalian cell cycle control and DNA repair systems. Molecular Biology of the Cell 10(8) (1999) 2703-2734.
  36. ^ Nagasaki, M., Onami, S., Miyano, S., Kitano, H. Bio-calculus: its concept and molecular interaction. Genome Informatics 10 (1999) 133-143.
  37. ^ Regev, A., Shapiro, E. Cellular abstractions: Cells as computation. Nature 419 (2002) 343
  38. ^ Cardelli, L. Brane calculi: Interactions of biological membranes. In LNCS 3082, pages 257-280. Springer, 2005.
  39. ^ Smith, H., Hutchison III, C., Pfannkoch, C., and Venter, C. Generating a synthetic genome by whole genome assembly: {phi}X174 bacteriophage from synthetic oligonucleotides. PNAS 100, 26 (2003), 15440-15445.
  40. ^ Sazani, P., Larralde, R., Szostak, J. A small aptamer with strong and specific recognition of the triphosphate of ATP. Journal of the American Chemical Society, 126(27) (2004) 8370-8371
  41. ^ Weiss, R., Knight, Jr., T. Engineered communications for microbial robotics. In LNCS 2054, pages 1-16, Springer, 2001
  42. ^ Landweber, L. and Kari, L. The evolution of cellular computing: Nature's solution to a computational problem. Biosystems, 52, 1/3 (1999) 3-13.
  43. ^ Angeleska, A.; Jonoska, N.; Saito, M.; Landweber, L. (2007). "RNA-guided DNA assembly". Journal of Theoretical Biology 248: 706–720. doi:10.1016/j.jtbi.2007.06.007. 
  44. ^ Prescott, D., Ehrenfeucht, A., and Rozenberg, G. Template-guided recombination for IES elimination and unscrambling of genes in stichotrichous ciliates. J. Theoretical Biology 222, 3 (2003), 323-330.
  45. ^ Nakagawa, H., Sakamoto, K., Sakakibara, Y. Development of an in vivo computer based on Escherichia Coli. In LNCS 3892, pages 203-212, Springer, 2006
  46. ^ Zabet NR, Hone ANW, Chu DF Design principles of transcriptional logic circuits. In Artificial Life XII Proceedings of the Twelfth International Conference on the Synthesis and Simulation of Living Systems, pages 186-193. MIT Press, August 2010.
  47. ^ Zabet NR Towards Modular, Scalable and Optimal Design of Transcriptional Logic Systems.2010.