Skip to main content
Molecules logoLink to Molecules
. 2018 May 29;23(6):1307. doi: 10.3390/molecules23061307

Small Universal Bacteria and Plasmid Computing Systems

Xun Wang 1, Pan Zheng 2, Tongmao Ma 1, Tao Song 1,3,*
PMCID: PMC6099791  PMID: 29844281

Abstract

Bacterial computing is a known candidate in natural computing, the aim being to construct “bacterial computers” for solving complex problems. In this paper, a new kind of bacterial computing system, named the bacteria and plasmid computing system (BP system), is proposed. We investigate the computational power of BP systems with finite numbers of bacteria and plasmids. Specifically, it is obtained in a constructive way that a BP system with 2 bacteria and 34 plasmids is Turing universal. The results provide a theoretical cornerstone to construct powerful bacterial computers and demonstrate a concept of paradigms using a “reasonable” number of bacteria and plasmids for such devices.

Keywords: bacterial computing, bacteria and plasmid system, Turing universality, recursively enumerable function

1. Introduction

In cell biology, bacteria, despite their simplicity, contain a well-developed cell structure that is responsible for some of their unique biological structures and pathogenicity. The bacterial DNA resides inside the bacterial cytoplasm, for which transfer of cellular information, transcription, and DNA replication occurs within the same compartment [1,2]. Along with chromosomal DNA, most bacteria also contain small independent pieces of DNA called plasmids, which can be conveniently obtained and released by a bacterium to act as a gene delivery vehicle between bacteria in the form of horizontal gene transfer [3].

Bacterial computing was coined with the purpose of building biological machines, which are developed to solve real-life engineering and science problems [4]. Practically, bacterial computing proves mechanisms and the possibility of using bacteria for solving problems in vivo. If an individual bacterium can perform computation work as a computer, this envisions a way to build millions of computers in vivo. These “computers”, combined together, can perform complicated computing tasks with efficient communication via plasmids. Using such conjugation, DNA molecules, acting as information carriers, can be transmitted from one cell to another. On the basis of the communication, information in one bacteria can be moved to another and can be used for further information processing [5,6].

Bacterial computing models belong to the field of bio-computing models, such as DNA computing models [7,8,9] and membrane computing models [10,11,12]. Because of the computational intelligence and parallel information processing strategy in biological systems, most of the bio-computing models have been proven to have the desired computational power. Most of these can do what a Turing machine can do (see, e.g., [13,14,15,16,17,18,19]). The proposed bacterial computing models can provide powerful computing models at the theoretical level but a lack of practical results. Current bacterial computing models are designed for solving certain specific biological applications, such as bacteria signal pathway detecting, but give no result for computing power analysis.

In general bacterial computing models, information to be processed is encoded by DNA sequences, and conjugation is the tool for communicating among bacteria. The biological process is shown in Figure 1.

Figure 1.

Figure 1

Bacteria conjugation from biological point of view.

Looking for small universal computing devices, such as small universal Turing machines [20,21], small universal register machines [22], small universal cellular automata [23], small universal circular Post machines [24], and so on, is a natural and well-investigated topic in computer science. Recently, this topic started to be considered also in the framework of bio-computing models [25,26,27,28,29,30,31].

In this work, we focus on designing small universal bacteria and plasmid computing systems (BP systems); that is, we construct Turing universal BP systems with finite numbers of bacteria and plasmids. Specifically, we demonstrate that a BP system with 2 bacteria and 34 plasmids is universal for computing recursively enumerable functions and families of sets of natural numbers. In the universality proofs, 2 bacteria are sufficient, as in [32], but the numbers of plasmids needed are reduced to about 10 from a possible infinite number. The results provide a theoretical cornerstone to construct powerful “bacterial computers” and demonstrate a concept of paradigms using a “reasonable” number of bacteria and plasmids for these devices.

2. The Bacteria and Plasmid System

In this work, as for automata in automata theory, the BP system is formally designed and defined. In general, the system is composed of three main components:

  • a set of bacteria;

  • a set of plasmids;

  • a set of evolution rules in each bacterium, including conjugation rules and gene-editing (inserting/deleting) rules.

The evolution rules are in the form of productions in formal language theory, which are used to process and communicate information among bacteria. Such a system is proven to be powerful for a number of computing devices; that is, they can compute the sets of natural numbers that are Turing computable. However, in the universality proof, the number of plasmids involved is not limited. It is possible to use an infinite number of plasmids for information processing and exchanging. Such a feature is acceptable (as for the infinite tape in Turing machines) in mathematic theory but is not feasible with the biological facts.

A BP system of degree m is a construct of the following form:

Π=(O,b1,b2,,bm,P,bout),wherethefollowingaretrue.
  • O={g1,g2,,gn} is a set of genes in the chromosomal DNA of bacteria.

  • P=PcrisprPtemp{pnull} is a set of plasmids.
    • Plasmids in Pcrispr are of the form (cas9,gRNAgiα) with α{insert,delete}, which is used for cutting specific genes.
    • Plasmids in Ptemp are of the form (gRNAgitemplate), which takes templates of genes to be inserted.
    • Plasmid pnull is of the form (ProRapRel) for bacteria conjugation.
  • Variables b1,b2,,bm are m bacteria of the form bi=(wi,Ri), where
    • wi is a set of genes over O initially placed in bacterium bi;
    • Ri is a set of rules in bacterium bi of the following forms:
      • (1)
        Conjugation rule is of the form (ATP-Pc,bi/bj,ATP-Pc), by which ATP in bacterium bi is consumed and a set of plasmids PcP associated with ATP is transmitted into bacterium bj.
      • (2)
        CRISPR/Cas9 gene inserting rule is of the form pipsi×(gj,gk), where piPcrispr, α=insert, psiPtemp, and gj and gk are two neighboring genes. The insertion is operated if and only if gj and gk are neighboring genes and plasmids pipsi are present in the bacterium.
      • (3)
        CRISPR/Cas9 gene deleting rule is of the form pi×(gj,gk) with pipnullPcrispr, α=detele, and gj and gk being two neighboring genes. The rule can be used if and only there exists gene gi placed between the two neighboring genes.
  • Variable bout is the output bacterium.

It is possible to have more than one enabled conjugation rule at a certain moment in a bacterium, but only one is non-deterministically chosen for use. This is due to the biological fact that ATP can support the transmission of one plasmid but not all of the plasmids. If a bacterium has more than one CRISPR/Cas9 operating rule associated with a certain common plasmid, only one of the rules is non-deterministically chosen for use; if the enabled CRISPR/Cas9 operating rules are associated with different plasmids, all of them will be used to edit the related genes.

The configuration of the system is described by chromosomal DNA encoding the information in each bacterium. Thus, the initial configuration is (w1,w2,,wm. Using the conjugation and CRISPR/Cas9 rules defined above, we can define the transitions among configurations. Any sequence of transitions starting from the initial configuration is called a computation. A computation is called successful if it reaches a halting configuration, that is, no rule can be used in any bacterium. The computational result is encoded by the chromosomal DNA in bacterium bout when the system halts, where bout{b1,b2,,bm} denotes the output bacterium. There are several ways to encode numbers by the chromosomal DNA. We use the number of genes in the chromosomal DNA to encode different numbers computed by the system.

The set of numbers computed by system Π is denoted by N(Π). We denote by NBP(bactj,plask) the family of sets of numbers computed/generated by BP systems with m bacteria and k plasmids (if no limit is imposed on the values of parameters m and k, then the notation is replaced by *).

We need an input bacterium to receive genetic signals in the form of short DNA segments from the environment or certain bacteria, as well as an output bacteria, with which the system can compute functions. The input bacterium is denoted by bin with bin{b1,b2,,bm}. Input bacterium bin can read/receive information from the environment, where information is encoded by DNA segments or a string of genes. When a BP system has both input and output bacteria, it starts by reading/receiving information from the environment through input bacterium bin. After reading the input information, the system starts its computation by using the conjugation and CRISPR/Cas9 gene inserting/deleting rules; it then finally halts. The computational result is stored in the output bacterium bout encoded by a number of certain genes.

Mathematically, if the input information is x, which is encoded by DNA segments composed of x genes, when the system halts, bacterium bout holds y genes. It is said that the BP system can compute the function f(x)=y. In general, if the inputs are x1,x2,,xn in the form of DNA strands containing xi copies of gene gi with i=1,2,,n, when the system halts, we obtain the computational result y in the output bacterium in the form of y copies of genes. The system is said to compute the function f(x1,x2,,xn)=y.

3. Universality Results

In this section, we construct two small universal BP systems. Specifically, we construct a Turing universal BP system with 2 bacteria and 34 plasmids to compute recursively enumerable functions. As a natural-number computing device, a universal BP system with 2 bacteria and 34 plasmids is achieved.

In the following universality proofs, the notion of a register machine is used. A register machine is a construct of the form M=(m,H,l0,lh,R), where m is the number of registers, H is the set of instruction labels, l0 is the start label, lh is the halt label (assigned to instruction HALT), and R is the set of instructions; each label from H labels only one instruction from R, thus precisely identifying it. The instructions are of the following forms:

  • li:(ADD(r),lj,lk) (add 1 to register r and then go to one of the instructions with labels lj and lk);

  • li:(SUB(r),lj,lk) (if register r is non-zero, then subtract 1 from it, and go to the instruction with label lj; otherwise, go to the instruction with label lk);

  • lh: HALT (the halt instruction).

A register machine M generates a set N(M) of numbers in the following way: it starts with all registers being empty (i.e., storing the number zero) and then applies the instruction with label l0; it continues to apply instructions as indicated by the labels (and made possible by the contents of registers). If the register machine finally reaches the halt instruction, then the number n present in specified register 0 at that time is said to be generated by M. If the computation does not halt, then no number is generated. It is known (e.g., see [33]) that register machines generate all sets of numbers that are Turing computable.

A register machine can also compute functions. In [22], register machines are proposed for computing functions, with the universality defined as follows: Let φx(y) be a fixed admissible enumeration of the unary partial recursive functions. A register machine M is said to be universal if there is a recursive function g such that for all natural numbers x and y, it holds φx(y)=M(g(x),y); that is, with input g(x) and y introduced in registers 1 and 2, the result φx(y) is obtained in register 0 when M halts.

A specific universal register machine Mu shown in Figure 2 is used here, which was modified by a universal register machine from [22]. Specifically, the universal register machine from [22] contains a separate check for zero of register 6 of the form l8: (SUB(6), l0,l10); this instruction was replaced in Mu by l8: (SUB(6), l9,l0), l9:(ADD(6), l10) (see Figure 2). Therefore, in the modified universal register machine, there are 8 registers (numbered from 0 to 7) and 23 instructions (hence 23 labels), the last instruction being the halting instruction. The input numbers are introduced in registers 1 and 2, and the result is obtained in register 0.

Figure 2.

Figure 2

The universal register machine for computing Turing-computable functions [22].

3.1. A Small Universal BP System as Function Computing Device

Theorem 1.

There exists a Turing universal BP system with 2 bacteria and 34 plasmids that can compute Turing-computable recursively enumerable functions.

Proof. 

To this aim, we construct a BP system Π with 2 bacteria and 34 plasmids to simulate the register machine Mu shown in Figure 2. The system Π is of the following form:

Π=(O,b1,b2,P,bin,bout),where the following are true.
  • O={g0,g1,,g7,gm} is set of genes in chromosomal DNA of bacteria.

  • P=PcrisprPtemp{pnull} is a set of plasmids shown in Table 1, where
    • Pcrispr={p1,p2,,p22,ph}, whose elements associated with the labels of instructions are used for gene cutting;
    • Ptemp={psii=1,2,5,7,9,16,17,20,21} are plasmids taking templates of genes to be inserted, which are used for simulating ADD instructions;
    • plasmid pnull for bacteria conjugation is used for simulating SUB instructions.
  • b1=(w1,R1), where w1=λ, meaning no initial chromosomal DNA is placed in bacteria b1; the set of rules R1 is shown in Table 2.

  • b2=(w2,R2), where w2=g0gmg1gmg2gmg3gmg4gmg5gmg6gmg7gm, indicating the initially placed chromosomal DNA in bacterium b2; the set of rules R2 is shown in Table 2.

  • bin=bout=b2, which means bacterium b2 can read signals from the environment, and when the system halts, the computational result is stored in bacterium b2.

In general, for each add instruction li acting on register r{0,1,2,3,4,5,6,7}, plasmids pi=(cas9,gRNAgrinsert) and psi=(gRNAgrtemplate) are associated; for any SUB instruction li acting on register r{0,1,2,3,4,5,6,7}, a plasmid pi=(cas9,gRNAgrdelete) is associated in system Π. The numbers stored in register r are encoded by the number of copies of gene gr with r{0,1,2,3,4,5,6,7} in chromosomal DNA of bacterium b2. Specifically, if the number stored in register r is n0, then bacterium b2 contains n+1 copies of gene gr.

During the simulation of register machine Mu by system Π, when bacterium b1 holds a pair of plasmids pipsi (respectively pipnull) and ATP, the system starts to simulate an ADD instruction (respectively a SUB instruction) li of Mu: plasmids pipsi (respectively pipnull) are transmitted to bacterium b2 by the conjugation rule; then one copy of gene gr between neighboring genes gr and gm is inserted (respectively deleted) to simulate increasing (respectively decreasing) the number in register r by 1; after this, bacterium b2 sends ATP and plasmids pjpnull to bacterium b1 if the proceeding instruction lj is a SUB instruction or plasmids pjpsj if the proceeding lj is an ADD instruction.

Initially, there is no chromosomal DNA initially placed in bacterium b1, but bacterium b2 has genes w2=g0gmg1gmg2gmg3gmg4gmg5gmg6gmg7gm. At the beginning, the system receives g(x) copies of gene g1 and y copies of gene g2 from the environment through input bacterium b2, which simulates the numbers g(x) and y being introduced in registers 1 and 2 for register machine Mu. In this way, the chromosomal DNA of bacterium b2 becomes

g0gmg1g(x)+1gmg2y+1gmg3gmg4gmg5gmg6gmg7gm.

Once completing the reading of information from the environment, a pair of plasmids p0ps0 and one unit of ATP is placed in bacterium b1 to trigger the computation; meanwhile no plasmid or ATP is initially contained in bacterium b2. The transition of system Π by reading input signals encoded by g(x) copies of genes g1 and y copies of gene g2 through input bacterium b2 is shown in Figure 3.

In what follows, we explain how system Π simulates ADD instructions and SUB instructions and outputs the computational result.

Simulating the ADD instruction:li: (DD(r), lj).

We assume at a certain moment that system Π starts to simulate an ADD instruction li of Mu, acting on register r{0,1,2,,7}. At that moment, bacterium b1 holds two plasmids pipsi and ATP, such that the conjugation rule (ATP-pipsi,b1/b2,ATP-pipsi) is used. By using the conjugation rule, plasmids pipsi and ATP are transmitted to bacterium b2. In system Π, plasmids pi and psi are associated with the ADD instruction li, where plasmid pi is of the form pi=(cas9,gRNAgrinsert) for cutting a certain site of chromosomal DNA, and psi is of the form pi=(gRNAgrtemplate) carrying the gene to be inserted.

In bacterium b2, the CRISPR/Cas9 inserting rule pi×(gr,gm) is used to insert gene gr between neighboring genes gr and gm. In this way, the number of gene gr of bacterium b2 is increased by 1, which simulates the number in register r being increased by 1. We note that there is a unique position at which gene gr can be inserted with the context of neighboring gr and gm.

By using the CRISPR/Cas9 inserting rule, plasmid pi is consumed, and plasmid psi and ATP remain in bacterium b2. The conjugation rule in bacterium b2 is designed by the operation of the proceeding instruction lj. One of the following two cases occurs in bacterium b2.

  • If instruction lj is an ADD instruction, then bacterium b2 has the conjugation rule (ATP-psi,b2/b1,ATP-pjpsj). By using the rule, plasmids pjpsj and ATP are conjugated to bacterium b1. In this case, system Π starts to simulate the proceeding ADD instruction lj.

  • If instruction lj is a SUB instruction, then bacterium b2 has the conjugation rule (ATP-psi,b2/b1,ATP-pjpnull), by which plasmids pjpnull and ATP are transmitted to bacterium b1. In this case, system Π starts to simulate the proceeding SUB instruction lj.

Therefore, system Π can correctly simulate the ADD instruction of Mu. The system starts from bacterium b1 having plasmid pipsi and ATP, which are transmitted to bacterium b2 by the conjugation rule. In bacterium b2, the number of gene gr in chromosomal DNA is increased by 1 using the CRISPR/Cas9 gene inserting rule, and plasmids pjpsj (if the proceeding instruction lj is an ADD instruction) or pjpnull (if the proceeding instruction lj is a SUB instruction) are transmitted to bacterium b1, which means that system Π starts to simulate instruction lj.

Simulating the SUB instruction:li: (SUB(r), lj,lk).

We suppose at a certain computation step that system Π has to simulate a SUB instruction li: (SUB(r), lj,lk). For any SUB instruction li, plasmid pi of the form pi=(cas9,gRNAgrdelete) is associated in system Π. In bacterium b1, there are plasmids pipnull and ATP such that the conjugation rule (ATP-pipnull,b1/b2,ATP-pipnull) can be used. In bacterium b2, it has the following two cases.

  • If there is at least one gene gr existing between neighboring genes gr and gm in chromosomal DNA of bacterium b2 (corresponding to the case that the number stored in register r is n>0), then the CRISPR/Cas9 deleting rule pi×(g1,gm) is used to delete one copy of gene gr from chromosomal DNA. This simulates the number stored in register r being decreased by 1. By consuming plasmid pi, bacterium b2 retains plasmid pnull and ATP such that a conjugation rule (ATP-pnull,b2/b1,ATP-pjpsj) or (ATP-pnull,b2/b1,ATP-pjpnull) is used, which depends on whether the proceeding instruction would be an ADD or a SUB instruction. In this way, plasmids pjpsj or pjpnull) and ATP are transmitted to bacterium b1. The system starts to simulate instruction lj.

  • If there is no gene gr existing between neighboring genes gr and gm in chromosomal DNA of bacterium b2 (corresponding to the case that the number stored in register r is 0), then the CRISPR/Cas9 deleting rule pi×(g1,gm) cannot be used, but a conjugation rule (ATP-pipnull,b2/b1,ATP-pkpsk) or (ATP-pipnull,b2/b1,ATP-pkpnull) is able to be used. Plasmids (pkpsk or pkpnull) and ATP are conjugated to bacterium b1, which means the system starts to simulate instruction lk.

We note that when plasmids pipnull are conjugated to bacterium b2 from bacterium b1, it may happen that both the CRISPR/Cas9 deleting rule pi×(g1,gm) and (ATP-pipnull,b2/b1,ATP-pkpsk) (or (ATP-pipnull,b2/b1,ATP-pkpnull)) can be used. In this case, the CRISPR/Cas9 deleting rule pi×(g1,gm) will be applied because of the fact that it has priority over the plasmid transferring rule.

The simulation of a SUB instruction is correct: System Π starts from bacterium b1 having plasmid pipnull and ATP and ends with plasmid pjpsj or pjpnull and ATP (if the number stored in register r is n>0) to start the simulation of instruction lj; otherwise it ends with plasmid pkpsk or pkpnull and ATP (if the number stored in register r is 0) to start the simulation of instruction lk.

Simulating the halt instruction:lh: HALT.

When register machine Mu reaches the halt instruction lh: HALT, the computation of register machine Mu halts. At that moment, bacterium b1 in system Π holds plasmids phpsh and ATP, and the conjugation rule (ATP-phpsh,b1/b2,ATP-phpsh) can be used. By using the rule, plasmids phpsh and ATP are transmitted to bacterium b2; no gene can be edited by plasmid ph, and no rule can be used. Hence, the computation of system Π finally halts.

The number of gene g0 in chromosomal DNA of bacterium b2 encodes the number stored in register 0 of Mu. If the number stored in register 0 is n>0, then there are n+1 copies of gene g0 in chromosomal DNA of bacterium b2. The computational result can be obtained by counting the number of gene g0 in chromosomal DNA of bacterium b2.

From the above description of system Π and its work, it is clear that system Π can simulate each computation of Mu. We can check that the constructed system Π has

  • 2 bacterium for conjugation with each other;

  • 22 plasmids pi for the 22 ADD and SUB instructions with i=0,1,2,21;

  • 9 plasmids psi for 9 ADD instructions with i=1,2,5,7,9,16,17,20,21;

  • 1 plasmid pnull for the 13 SUB instructions;

  • 2 plasmids ph and psh for the HALT instruction;

  • 8 genes gi for encoding numbers in registers i with i=0,1,27;

  • 1 gene gm for separating gene gi in chromosomal DNA.

This gives, in total, 2 bacteria, 34 plasmids, and 9 genes.

This concludes the proof. ☐

Table 1.

Plasmids in system Π.

Plasmid Forms of Plasmids Plasmid Forms of Plasmids
p0 p0=(cas9,gRNAg1delete) p16 p16=(cas9,gRNAg4insert)
p1 p1=(cas9,gRNAg7insert) p17 p17=(cas9,gRNAg2insert)
p2 p2=(cas9,gRNAg6insert) p18 p18=(cas9,gRNAg4delete)
p3 p3=(cas9,gRNAg5delete) p19 p19=(cas9,gRNAg3delete)
p4 p4=(cas9,gRNAg6delete) p20 p20=(cas9,gRNAg0insert)
p5 p5=(cas9,gRNAg5insert) p21 p21=(cas9,gRNAg3insert)
p6 p6=(cas9,gRNAg7delete) ph ph=(cas9,gRNAghdelete)
p7 p7=(cas9,gRNAg1insert) ps1 ps1=(gRNAg7template)
p8 p8=(cas9,gRNAg6delete) ps2 ps2=(gRNAg6template)
p9 p9=(cas9,gRNAg6insert) ps5 ps5=(gRNAg5template)
p10 p10=(cas9,gRNAg4delete) ps7 ps7=(gRNAg1template)
p11 p11=(cas9,gRNAg5delete) ps9 ps9=(gRNAg6template)
p12 p12=(cas9,gRNAg5delete) ps16 ps16=(gRNAg4template)
p13 p13=(cas9,gRNAg2delete) ps17 ps17=(gRNAg2template)
p14 p14=(cas9,gRNAg5delete) ps20 ps20=(gRNAg0template)
p15 p15=(cas9,gRNAg3delete) ps21 ps21=(gRNAg3template)
pnull (ProRapRel) psh psh=(ProRapRel)

Table 2.

Rules in each bacterium of system Π.

Sim. Rules Bac.
l0 (ATP-p0pnull,b1/b2,ATP-p0pnull) b1
p0×(g1,gm), (ATP-pnull,b2/b1,ATP-p1ps1), (ATP-p0pnull,b2/b1,ATP-p2ps2) b2
l1 (ATP-p1ps1,b1/b2,ATP-p1ps1) b1
p1×(g7,gm), (ATP-ps1,b2/b1,ATP-p0pnull) b2
l2 (ATP-p2ps2,b1/b2,ATP-p2ps2) b1
p2×(g6,gm), (ATP-ps2,b2/b1,ATP-p3pnull) b2
l3 (ATP-p3pnull,b1/b2,ATP-p3pnull) b1
p3×(g5,gm), (ATP-pnull,b2/b1,ATP-p2ps2), (ATP-p3pnull,b2/b1,ATP-p4pnull) b2
l4 (ATP-p4pnull,b1/b2,ATP-p4pnull) b1
p4×(g6,gm), (ATP-pnull,b2/b1,ATP-p5ps5), (ATP-p4pnull,b2/b1,ATP-p3pnull) b2
l5 (ATP-p5ps5,b1/b2,ATP-p5ps5) b1
p1×(g5,gm), (ATP-ps5,b2/b1,ATP-p6pnull) b2
l6 (ATP-p6pnull,b1/b2,ATP-p6pnull) b1
p6×(g7,gm), (ATP-pnull,b2/b1,ATP-p7ps7), (ATP-p6pnull,b2/b1,ATP-p8pnull) b2
l7 (ATP-p7ps7,b1/b2,ATP-p7ps7) b1
p7×(g1,gm), (ATP-p4pnull,b2/b1,ATP-p4pnull) b2
l8 (ATP-p8pnull,b1/b2,ATP-p8pnull) b1
p8×(g6,gm), (ATP-pnull,b2/b1,ATP-p9ps9), (ATP-p0pnull,b2/b1,ATP-p0pnull) b2
l9 (ATP-p9ps9,b1/b2,ATP-p9ps9) b1
p9×(g6,gm), (ATP-p10pnull,b2/b1,ATP-p10pnull) b2
l10 (ATP-p10pnull,b1/b2,ATP-p10pnull) b1
p10×(g4,gm), (ATP-p0pnull,b2/b1,ATP-p0pnull), (ATP-p10pnull,b2/b1,ATP-p11pnull) b2
l11 (ATP-p10pnull,b1/b2,ATP-p11pnull) b1
p11×(g5,gm), (ATP-pnull,b2/b1,ATP-p12pnull), (ATP-p11pnull,b2/b1,ATP-p13pnull) b2
l12 (ATP-p12pnull,b1/b2,ATP-p12pnull) b1
p12×(g5,gm), (ATP-pnull,b2/b1,ATP-p14pnull), (ATP-p12pnull,b2/b1,ATP-p15pnull) b2
l13 (ATP-p13pnull,b1/b2,ATP-p13pnull) b1
p13×(g2,gm), (ATP-pnull,b2/b1,ATP-p18pnull), (ATP-p13pnull,b2/b1,ATP-p19pnull) b2
l14 (ATP-p14pnull,b1/b2,ATP-p14pnull) b1
p14×(g5,gm), (ATP-pnull,b2/b1,ATP-p16ps16), (ATP-p14pnull,b2/b1,ATP-p17ps17) b2
l15 (ATP-p15pnull,b1/b2,ATP-p15pnull) b1
p15×(g3,gm), (ATP-pnull,b2/b1,ATP-p18pnull), (ATP-p15,b2/b1,ATP-p20ps20) b2
l16 (ATP-p16ps16,b1/b2,ATP-p16ps16) b1
p16×(g4,gm), (ATP-ps16,b2/b1,ATP-p11pnull) b2
l17 (ATP-p17ps17,b1/b2,ATP-p17ps17) b1
p17×(g2,gm), (ATP-ps17,b2/b1,ATP-p21ps21) b2
l18 (ATP-p18pnull,b1/b2,ATP-p18pnull) b1
p18×(g4,gm), (ATP-pnull,b2/b1,ATP-p0pnull), (ATP-p18pnull,b2/b1,ATP-phpsh) b2
l19 (ATP-p19pnull,b1/b2,ATP-p19pnull) b1
p19×(g3,gm), (ATP-pnull,b2/b1,ATP-p0pnull), (ATP-p15,b2/b1,ATP-p18pnull) b2
l20 (ATP-p20ps20,b1/b2,ATP-p20ps20) b1
p20×(g0,gm), (ATP-ps20,b2/b1,ATP-p0pnull) b2
l21 (ATP-p21ps21,b1/b2,ATP-p21ps21) b1
p0×(g3,gm), (ATP-ps21,b2/b1,ATP-p18pnull) b2
lh (ATP-phpsh,b1/b2,ATP-phpsh)

Figure 3.

Figure 3

The transition of system Π by reading input information encoded by g(x) copies of genes g1 and y copies of gene g2 through input bacterium b2.

3.2. A Small Universal BP System as a Number Generator

In this section, we construct a small universal BP system as a number generator. A BP system Πu is universal if, given a fixed admissible enumeration of the unary partial recursive functions (φ0,φ1,), there is a recursive function g such that for each natural number x, whenever we input the number g(x) in Πu, the set of numbers generated by the system is equal to {nN|φx(n) is defined}. In other words, after introducing the “code” g(x) of the partial recursive function φx in the form of g(x) copies of certain genes in chromosomal DNA of the input bacterium, the BP system generates all numbers n for which φx(n) is defined.

System Πu has the same topological structure, plasmids, and evolution rules as system Π constructed in Section 3.1, but the input bacterium is b2 and the output bacterium is b1. Differently from the universal computing devices considered in Section 3.1, the strategy to simulate a universal register machine as a number generator is as follows.

Step 1. The output bacterium b1 initially has n copies of gene gm.

Step 2. System Πu starts by loading g(x) copies of gene g1 and n copies of gene g2 in the input bacterium b2.

Step 3. The computation of Πu is activated by using plasmid p0pnull to simulate the register machine Mu from Figure 2, with g(x) stored in register 1, and number n stored in register 2.

If the computation in register machine Mu halts, instruction σlh can finally be activated. To simulate register machine Mu reaching the HALT instruction, system Πu holds plasmids phpsh and transmits them to bacterium b2. After this, system Πu halts, as no rule can be used in bacterium b2. When the system halts, the number of gene gm in the output bacterium b1 is the computational result, which is exactly the number n. Hence, the number n can be computed/generated by system Πu.

The difference between systems Π and Πu is the loading input information process. The initial configuration and transition of system Πu by reading input signals encoded by g(x) copies of genes g1 and n copies of gene g2 through input bacterium b2 are shown in Figure 4.

Figure 4.

Figure 4

The initial configuration and transition of system Πu by reading input information encoded by g(x) copies of genes g1 and n copies of gene g2 through input bacterium b2.

We can check that the constructed system Πu has

  • 2 bacterium for the conjugation with each other;

  • 22 plasmids pi for the 22 ADD and SUB instructions with i=0,1,2,21;

  • 9 plasmids psi for 9 ADD instructions with i=1,2,5,7,9,16,17,20,21;

  • 1 plasmid pnull for the 13 SUB instructions;

  • 2 plasmids ph and psh for the HALT instruction;

  • 8 genes gi for encoding numbers in registers i with i=0,1,27;

  • 1 gene gm for separating gene gi in chromosomal DNA.

This gives, in total, 2 bacteria, 34 plasmids, and 9 genes.

Therefore, we have the following theorem.

Theorem 2.

There is a Turing universal BP system with 2 bacteria and 34 plasmids that can compute a Turing-computable set of natural numbers.

4. Conclusions

In this work, we construct two small universal BP systems. Specifically, it is obtained that a BP system with 2 bacteria, 34 plasmids, and 9 genes is universal for both computing recursively enumerable functions and computing/generating a family of sets of natural numbers. It is obtained that 34 plasmids are sufficient for constructing Turing universal BP systems. This provides theoretical support as well as paradigms using a reasonable number of bacteria and plasmids to construct powerful bacterial computers.

Following the research line, finding smaller universal BP systems deserves further research. A possible way to slightly decrease the number of plasmids used in small universal BP systems is using code optimization, exploiting some particularities of the register machine Mu. For example, as considered in [25], for the sequence of two consecutive ADD instructions l17: (ADD(2),l21) and l21: (ADD(3),l18), without any other instruction addressing the label l21, the two ADD modules can be combined. However, a challenging problem regards what the minimum size of a universal BP system is—in other words, what the borderline between universality and non-universality is. Characterization of universality by BP systems is expected. A balance between the number of bacteria and plasmids in universal BP systems can be considered, that is, using more bacteria to reduce the number of plasmids.

It is worth developing the applications of BP systems. Bio-inspiring computing models perform well in computations, particularly in solving computational complex problems in feasible time [34,35,36]. It is of interest to use BP systems to solve computationally hard problems. Some specific applications using BP systems would be of interest to researchers from biological fields.

In artificial intelligence, there are many bio-inspired algorithms (see, e.g., [37,38]). It is worth designing bacteria-computing-inspired algorithms or introducing bacteria computing operators in classical algorithms. Additionally, it would be meaningful to construct powerful bacterial computers or computing devices in biological labs.

Acknowledgments

This work was supported by the National Natural Science Foundation of China (Grant Nos. 61502535, 61572522, 61572523, 61672033, and 61672248), PetroChina Innovation Foundation (2016D-5007-0305), Key Research and Development Program of Shandong Province (No. 2017GGX10147), Natural Science Foundation of Shandong Province (No. ZR2017MF004), Talent introduction project of China University of Petroleum (No. 2017010054), Research Project TIN2016-81079-R (AEI/FEDER, Spain-EU) and Grant 2016-T2/TIC-2024 from Talento-Comunidad de Madrid, Project TIN2016-81079-R (MINECO AEI/FEDER, Spain-EU), and the InGEMICS-CM Project (B2017/BMD-3691, FSE/FEDER, Comunidad de Madrid-EU).

Author Contributions

Conceptualization, X.W. and T.S.; Methodology, X.W.; Software, T.M.; Validation, P.Z., T.S. and X.W.

Conflicts of Interest

The authors declare no conflict of interest.

Footnotes

Sample Availability: Samples of the compounds are not available.

References

  • 1.Gitai Z. The new bacterial cell biology: Moving parts and subcellular architecture. Cell. 2005;120:577–586. doi: 10.1016/j.cell.2005.02.026. [DOI] [PubMed] [Google Scholar]
  • 2.Goldstein E., Drlica K. Regulation of bacterial dna supercoiling: Plasmid linking numbers vary with growth temperature. Proc. Natl. Acad. Sci. USA. 1984;81:4046–4050. doi: 10.1073/pnas.81.13.4046. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 3.Summers D. The Biology of Plasmids. John Wiley & Sons; Hoboken, NJ, USA: 2009. [Google Scholar]
  • 4.Poet J.L., Campbell A.M., Eckdahl T.T., Heyer L.J. Bacterial computing. XRDS Crossroads ACM Mag. Stud. 2010;17:10–15. doi: 10.1145/1836543.1836550. [DOI] [Google Scholar]
  • 5.Gupta V., Irimia J., Pau I., Rodríguez-Patón A. Bioblocks: Programming protocols in biology made easier. ACS Synth. Biol. 2017;6:1230–1232. doi: 10.1021/acssynbio.6b00304. [DOI] [PubMed] [Google Scholar]
  • 6.Gutierrez M., Gregorio-Godoy P., del Pulgar G.P., Munoz L.E., Sáez S., Rodríguez-Patón A. A new improved and extended version of the multicell bacterial simulator gro. ACS Synth. Biol. 2017;6:1496–1508. doi: 10.1021/acssynbio.7b00003. [DOI] [PubMed] [Google Scholar]
  • 7.Adleman L.M. Molecular computation of solutions to combinatorial problems. Sciences. 1994;266:1021–1024. doi: 10.1126/science.7973651. [DOI] [PubMed] [Google Scholar]
  • 8.Carell T. Molecular computing: Dna as a logic operator. Nature. 2011;469:45–46. doi: 10.1038/469045a. [DOI] [PubMed] [Google Scholar]
  • 9.Xu J. Probe machine. IEEE Trans. Neural Netw. Learn. Syst. 2016;27:1405–1416. doi: 10.1109/TNNLS.2016.2555845. [DOI] [PubMed] [Google Scholar]
  • 10.Păun G., Rozenberg G., Salomaa A. The Oxford Handbook of Nembrane Computing. Oxford University Press; Oxford, UK: 2010. [Google Scholar]
  • 11.Păun G., Rozenberg G. A guide to membrane computing. Theor. Comput. Sci. 2002;287:73–100. doi: 10.1016/S0304-3975(02)00136-6. [DOI] [Google Scholar]
  • 12.Păun G. Computing with membranes. J. Comput. Syst. Sci. 2000;61:108–143. doi: 10.1006/jcss.1999.1693. [DOI] [Google Scholar]
  • 13.Freund R., Kari L., Păun G. DNA computing based on splicing: The existence of universal computers. Theory Comput. Syst. 1999;32:69–112. doi: 10.1007/s002240000112. [DOI] [Google Scholar]
  • 14.Kari L., Păun G., Rozenberg G., Salomaa A., Yu S. DNA computing, sticker systems, and universality. Acta Inform. 1998;35:401–420. doi: 10.1007/s002360050125. [DOI] [Google Scholar]
  • 15.Martın-Vide C., Păun G., Pazos J., Rodrıguez-Patón A. Tissue P systems. Theor. Comput. Sci. 2003;296:295–326. doi: 10.1016/S0304-3975(02)00659-X. [DOI] [Google Scholar]
  • 16.Ionescu M., Păun G., Yokomori T. Spiking neural P systems. Fundam. Inform. 2006;71:279–308. [Google Scholar]
  • 17.Song T., Pan L., Păun G. Asynchronous spiking neural p systems with local synchronization. Inform. Sci. 2013;219:197–207. doi: 10.1016/j.ins.2012.07.023. [DOI] [Google Scholar]
  • 18.Ezziane Z. DNA computing: Applications and challenges. Nanotechnology. 2005;17:R27. doi: 10.1088/0957-4484/17/2/R01. [DOI] [Google Scholar]
  • 19.Chen X., Pérez-Jiménez M.J., Valencia-Cabrera L., Wang B., Zeng X. Computing with viruses. Theor. Comput. Sci. 2016;623:146–159. doi: 10.1016/j.tcs.2015.12.006. [DOI] [Google Scholar]
  • 20.Rogozhin Y. Small universal turing machines. Theor. Comput. Sci. 1996;168:215–240. doi: 10.1016/S0304-3975(96)00077-1. [DOI] [Google Scholar]
  • 21.Baiocchi C. Machines, Computations, and Universality. Springer; Berlin/Heidelberg, Germany: 2001. Three small universal turing machines; pp. 1–10. [Google Scholar]
  • 22.Korec I. Small universal register machines. Theor. Comput. Sci. 1996;168:267–301. doi: 10.1016/S0304-3975(96)00080-1. [DOI] [Google Scholar]
  • 23.Iirgen Albert J., Culik K., II A simple universal cellular automaton and its one-way and totalistic version. Complex Syst. 1987;1:1–16. [Google Scholar]
  • 24.Kudlek M., Yu R. Small universal circular post machines. Comput. Sci. J. Mold. 2001;9:25. [Google Scholar]
  • 25.Păun A., Păun G. Small universal spiking neural P systems. BioSystems. 2007;90:48–60. doi: 10.1016/j.biosystems.2006.06.006. [DOI] [PubMed] [Google Scholar]
  • 26.Zhang X., Zeng X., Pan L. Smaller universal spiking neural P systems. Fundam. Inform. 2008;87:117–136. [Google Scholar]
  • 27.Pan L., Zeng X. A note on small universal spiking neural P systems. Lect. Notes Comput. Sci. 2010;5957:436–447. [Google Scholar]
  • 28.Păun A., Sidoroff M. Membrane Computing. Springer; Berlin/Heidelberg, Germany: 2012. Sequentiality induced by spike number in SNP systems: Small universal machines; pp. 333–345. [Google Scholar]
  • 29.Song T., Jiang Y., Shi X., Zeng X. Small universal spiking neural P systems with anti-spikes. J. Comput. Theor. Nanosci. 2013;10:999–1006. doi: 10.1166/jctn.2013.2799. [DOI] [Google Scholar]
  • 30.Song T., Xu J., Pan L. On the universality and non-universality of spiking neural P systems with rules on synapses. IEEE Trans. Nanobiosci. 2015;14:960–966. doi: 10.1109/TNB.2015.2503603. [DOI] [PubMed] [Google Scholar]
  • 31.Song T., Pan L. Spiking neural P systems with request rules. Neurocomputing. 2016;193:193–200. doi: 10.1016/j.neucom.2016.02.023. [DOI] [Google Scholar]
  • 32.Song T., Rodríguez-Patón A., Gutiérrez M., Pan Z. Computing with bacteria conjugation and crispr/cas9 gene editing operations. Sci. Rep. 2018 sumitted. [Google Scholar]
  • 33.Minsky M.L. Computation: Finite and Infinite Machines. Prentice-Hall, Inc.; Upper Saddle River, NJ, USA: 1967. [Google Scholar]
  • 34.Valencia-Cabrera L., Orellana-Martín D., Martínez-del Amor M.A., Riscos-Nú nez A., Pérez-Jiménez M.J. Computational efficiency of minimal cooperation and distribution in polarizationless p systems with active membranes. Fundam. Inform. 2017;153:147–172. doi: 10.3233/FI-2017-1535. [DOI] [Google Scholar]
  • 35.Song B., Pérez-Jiménez M.J., Pan L. An efficient time-free solution to qsat problem using p systems with proteins on membranes. Inf. Comput. 2017;256:287–299. doi: 10.1016/j.ic.2017.06.005. [DOI] [Google Scholar]
  • 36.Macías-Ramos L.F., Pérez-Jiménez M.J., Riscos-Nú nez A., Valencia-Cabrera L. Membrane fission versus cell division: When membrane proliferation is not enough. Theor. Comput. Sci. 2015;608:57–65. doi: 10.1016/j.tcs.2015.06.025. [DOI] [Google Scholar]
  • 37.Ma X., Sun F., Li H., He B. Neural-network-based sliding-mode control for multiple rigid-body attitude tracking with inertial information completely unknown. Inf. Sci. 2017;400:91–104. doi: 10.1016/j.ins.2017.03.013. [DOI] [Google Scholar]
  • 38.Alsaeedan W., Menai M.E.B., Al-Ahmadi S. A hybrid genetic-ant colony optimization algorithm for the word sense disambiguation problem. Inf. Sci. 2017;417:20–38. doi: 10.1016/j.ins.2017.07.002. [DOI] [Google Scholar]

Articles from Molecules : A Journal of Synthetic Chemistry and Natural Product Chemistry are provided here courtesy of Multidisciplinary Digital Publishing Institute (MDPI)

RESOURCES