Chemistry Quantities in Chemical Reactions Peer Reviewed Articles

  • Loading metrics

Charge per unit-Independent Constructs for Chemical Computation

  • Marc Riedel

Charge per unit-Independent Constructs for Chemical Ciphering

  • Phillip Senum,
  • Marc Riedel

PLOS

x

  • Published: June xxx, 2011
  • https://doi.org/x.1371/periodical.pone.0021414

Abstract

This paper presents a collection of computational modules implemented with chemical reactions: an inverter, an incrementer, a decrementer, a copier, a comparator, a multiplier, an exponentiator, a enhance-to-a-power functioning, and a logarithm in base two. Different previous schemes for chemical computation, this method produces designs that are dependent but on coarse rate categories for the reactions ("fast" vs. "tedious"). Given such categories, the computation is exact and independent of the specific reaction rates. The designs are validated through stochastic simulations of the chemical kinetics.

Introduction

The theory of reaction kinetics underpins our understanding of biological and chemical systems [1]. It is a simple and elegant formalism: chemical reactions ascertain rules co-ordinate to which reactants form products; each rule fires at a rate that is proportional to the quantities of the corresponding reactants that are present. On the computational front, there has been a wealth of research into efficient methods for simulating chemical reactions, ranging from ordinary differential equations (ODEs) [2] to stochastic simulation [3]. On the mathematical front, entirely new branches of theory have been developed to characterize the dynamics of chemical reaction networks [4].

Most of this piece of work is from the vantage betoken of analysis: a set of chemical reaction exists, designed by nature and mayhap modified past human being engineers; the objective is to sympathise and narrate its behavior. Comparatively little work has been washed at a conceptual level in tackling the changed trouble of synthesis: how tin ane design a set of chemical reactions that implement specific behavior?

Of course, chemic engineers, genetic engineers and other practitioners strive to create novel functionality all the time. Generally, they begin with existing processes and pathways and modify these experimentally to achieve the desired new functionality [5], [6]. In a sense, much of the theoretical work on the dynamics of chemical reactions also addresses the synthesis problem by delineating the range of behaviors that are possible. For example, theoretical piece of work has shown that fascinating oscillatory and cluttered behaviors can occur in chemical reaction networks [vii], [viii].

Perhaps the nigh profound theoretical observation is that chemical reaction networks are, in fact, computational processes: regardless of the complication of the dynamics or the subtlety of the timing, such networks transform input quantities of chemical species into output quantities through uncomplicated archaic operations. The question of the computational power of chemical reactions has been considered by several authors. Magnasco demonstrated that chemic reactions tin can compute anything that digital circuits can compute [9]. Soloveichik et al. demonstrated that chemic reactions are Turing Universal, meaning that they tin can compute annihilation that a computer algorithm can compute [10].

Such prior work considered the computational ability of chemical reactions from a deductive betoken of view. This paper tackles the trouble from an anterior point of view. We present a constructive method for designing specific computational modules: an inverter, an incrementer, a decrementer, a copier, a comparator, a multiplier, an exponentiator, a raise-to-a-power operation, and a logarithm in base two. This work builds upon our prior work that described constructs such as "for" and "while" loops [xi] and signal processing operations such as filtering [12].

In contrast to previous work, our method produces designs that are dependent only on coarse rate categories for the reactions (east.k., "fast" and "slow"). Information technology does not matter how fast any "fast" reaction is relative to another, or how slow any "ho-hum" reaction is relative to another – only that "fast" reactions are fast relative to "slow" reactions. Specifically, suppose that we design a module that requires tiresome reactions and fast reactions. Whatever choice of reactions with kinetic rate constants and reactions with kinetic rate constants , where , for all , for all , volition work.

The upshot of the ciphering is charge per unit-contained in the sense that the formula of what is computed, say a logarithm, does not include any of the kinetic charge per unit constants. We practice not mean to imply that the rates do not thing. If the separation between "tedious" and "fast" is non sufficiently large, then errors will occur. Notwithstanding, for a sufficiently large separation, the errors are pocket-sized.

Indeed, the error that occurs as a part of the separation between "fast" and "slow" is our main benchmark of goodness for our blueprint. As Tables 1, 2, 3, 4, 5, vi illustrate, our constructs perform remarkably well, calculating with small errors for rate separations of 100 or 1,000 and vanishingly small errors for rate separations of 10,000. We validate our all of our designs through stochastic simulations of the chemical kinetics [13] using an open up-source tool called Cain [14]. (Details nigh Cain tin be found in the department "Analysis".)

Chemical Model

We adopt the model of discrete, stochastic chemical kinetics [3], [15]. Molecular quantities are whole numbers (i.east., non-negative integers). Reactions burn and alter these quantities past integer amounts. The reaction rates are proportional to (1) the quantities of the reacting molecular types; and (two) kinetic rate constants. Equally discussed above, all of our designs are formulated in terms of 2 coarse kinetic charge per unit abiding categories ("fast" and "slow").

Consider the reaction (1) When this reaction fires, i molecule of is consumed, i of is produced, and one of is produced. (Accordingly, is called a reactant and and the products.) Consider what this reaction accomplishes from a computational standpoint. Suppose that information technology fires until all molecules of accept been consumed. This results in quantities of and equal to the original quantity of , and a new quantity of equal to zip:

Consider the reaction (ii) Suppose that information technology fires until either all molecules of or all molecules of take been consumed. This results in a quantity of equal to the lesser of the 2 original quantities:

We will nowadays constructs dissimilar arithmetical and logical operations in this vein. Each sets the final quantity of some molecular type as a function of the initial quantities of other types.

Nearly of our designs consist of either unimolecular or bimolecular reactions, i.e., reactions with one or two reactants, respectively. A pocket-sized subset of the reactions are trimolecular. Mapping these to chemical substrates might non be feasible, since the kinetics of reactions with more than two reactants are circuitous and oftentimes physically unrealistic. For all trimolecular reactions, we suggest the follow generic scheme for converting them into bimolecular reactions. (This idea is found in [16] in the context of DNA strand displacement reactions.) We convert any trimolecular reaction (3) into a pair of reactions (iv) (v) where is an new intermediary blazon. Note that Reaction 4 is a reversible reaction. We assume that this reaction is fast relative to all others. Appropriately, if there are non-zero quantities of and just nil of , the organization volition "dorsum-off", converting back into and . Other reactions in the system that use and can continue to burn.

Autonomously from reactions resulting from such trimolecular conversions, we practise not utilize reversible reactions in any of our constructs. Of class, all chemic reactions are reversible. Implicitly, nosotros assume that all reverse rates are much slower that the forward reactions (except for those respective to Reaction 4).

Results

Computational Constructs

In this section, we present a collection of constituent constructs for rate-independent ciphering: an inverter, an incrementer/decrementer, a copier, and a comparator. In the next department, we use some of these constructs to implement a multiplier, a logarithm functioning, an exponentiator, and a heighten-to-the-power operation. A reference of all reactions needed for these constructs can exist found in Supporting Data S1.

An Inverter

We implement an operation that is analogous to that performed past an inverter (i.eastward., a NOT gate) in a digital system: given a not-zero quantity (corresponding to logical "one") nosotros produce a cipher quantity (corresponding to logical "0"). Conversely, given a cypher quantity, we produce a non-zero quantity. We accomplish this with a pair of chemical types: the given type, for case, , and a corresponding "absence indicator" blazon, which will be referred to equally . The reactions generating the absence indicator are shown in reactions 6–8. (6) (7) (8) Note that when the empty set symbol, , is used as a reactant, it indicates that the reactants are a large or replenishable unreactive source; when it is used as a production, it indicates that the products of the reaction are waste.

The beginning reaction continuously generates molecules of , so in the absenteeism of molecules of we will accept a not-zero quantity of in the arrangement. If there are molecules of present, then second reaction speedily consumes whatever molecules of that are generated, so the quantity of volition be shut to zero. The third reaction ensures that the quantity remains modest.

We use this uncomplicated construct in many of our computational modules [12], [17]. It is too a fundamental role of all of the constructs introduced in this newspaper. In general, it can be used to synchronize steps. Suppose that we desire to perform an functioning like to the one in reactions 9–ten. (ix) (10) Hither the 2d step is an performance that depends on the quantity of . Nosotros practice non want to start consuming molecules of until the full quantity of it is generated from . We tin can accomplish this with an absenteeism indicator : (11) (12)

Information technology is important to note that absence indicators generated past reactions half-dozen–8 can merely be used with "irksome" reactions. If they were used by a "fast" reaction, it is possible that a simulated positive could exist detected because a "fast" will compete with reaction vii. In situations where absence indicators demand to be consumed by "fast" reactions, we can employ an alternating two-step process to produce them. (13) (14) (15) (16) (17) (eighteen) In this case, a secondary absence indicator, is produced from through a "slow" reaction. This allows "fast" reactions to use safely because it is buffered through reaction 16.

Increment and Decrement Operations

We describe constructs to implement incrementation and decrementation. These operations form the basis of more circuitous arithmetical operations, such every bit multiplication. The inputs consist of 2 molecular types: , the "start indicate;" and , the quantity to be incremented or decremented. We assume that some external source injects molecules of . Any quantity can exist injected; regardless, the quantity of is incremented or decremented by exactly i, consuming all the molecules in the process. The operations proceed equally follows:

  1. The organisation waits for the showtime signal to be some not-zero quantity.
  2. Information technology transfers the quantity of to a temporary type .
  3. It sets to zero.
  4. It transfers all simply one molecule of back to .
  5. For a decrement, it removes the last molecule .
  6. For an increase, information technology removes the last molecule of and adds to two molecules to .

The following reactions implement this scheme. Given molecules of , a reaction transfers molecules of to molecules of : (19) The following reaction sets the quantity of to zero. Using the absenteeism indicator mechanism described in the preceding department, it does so only once all molecules of accept been transfered to : (20) Reactions of the form of 6–8 are needed to generate ; we omit them here. The following reaction transfers all but one molecule of back to . It does then by repeatedly selecting pairs of and turning one molecule of into . In essence, this is a repeated integer sectionalization by two. Once more, using the absence indicator machinery, it gain only once all molecules of accept been removed: (21) In reaction 21, we do not direct utilise an absence indicator for , but instead, we utilise a secondary absenteeism indicator , generated in the method outlined in reactions xiii–18.

Reaction 21 besides produces molecules of a supplementary type . Notation that this reaction is in the "fast" category. The new type is consumed by the reaction: (22) Note that this reaction is in the "slow" category. We introduce because we cannot straight employ an absence indicator for to observe when reaction 21 has completed because is never completely consumed. Instead, nosotros use to indicate that nosotros are currently transferring molecules of dorsum to ; it is consumed when the step completes. Once more, reactions of the same form as 6–8 are needed to generate ; we omit them hither.

Finally, nosotros include the following reaction to perform a decrement: (23) Or we include the following reaction to perform an increment: (24) With a slight modification of reaction 21, we can also implement division by 2 with this module: (25)

A Copier

In digital computation, one of the nearly basic operations is copying a quantity from ane register into some other. The programming construct is "set the value of to exist the value of ": To implement an equivalent operation with chemic reactions, we could use a reaction that simply transfers the quantity of to : (26) All the same, this is not platonic because this reaction consumes all the molecules of , setting its quantity to zero. Nosotros would similar a chemical construct that copies the quantity without altering it. The post-obit reaction does not work either: (27) Information technology only creates more and more molecules of in the presence of . A more than sophisticated construct is needed.

In our construct, we have a "get-go signal" type . When an external source injects molecules of , the re-create performance proceeds. (In the aforementioned way as our increment and decrement operations, the quantity of that is injected is irrelevant.) It produces an output quantity of equal to the input quantity of ; it leaves the quantity of unchanged.

The reactions for the copier construct are equally follows. Firstly, in the presence of , a reaction transfers the quantity of to : (28) Secondly, later all molecules of have been transferred to , the organisation removes all the molecules of : (29) Here, over again, we are using the concept of an absence indicator. Removing ensures that is copied exactly once.

After has been removed, a reaction transfers the quantity of back to and also creates this same quantity of : (30) Alternatively, we can use a slight modification of this reaction to double the quantity of : (31)

Nosotros also generate absenteeism indicators and by the same method as reactions half dozen–8.

We note that, while this construct leaves the quantity of unchanged after it has finished executing, it temporarily consumes molecules , transferring the quantity of these to before transferring information technology back. Accordingly, no other constructs should employ in the interim.

A Comparator

Using our copier construct, we can create a construct that compares the quantities of 2 input types and produces an output blazon if 1 is greater than the other. For case, let us assume that nosotros want to compare the quantities of two types and :

If the quantity of is greater than the quantity of , the arrangement should produce molecules of an output type ; otherwise, information technology should not produce whatsoever molecules of .

First, we create temporary copies, and , of the types that nosotros wish to compare, and , using the copier construct described in the previous section. (We omit these reactions; they are two verbatim copies of the copier construct, one with as an input and every bit an output, the other with as an input and as an output.) Nosotros carve up the outset signal then that the two copiers are not competing for it: (32)

At present we compare and via their corresponding copies and . To start, we first swallow pairs of and : (33) Nosotros presume that this reaction fires to completion. The result is that there are only molecules of left, or merely molecules of left, or no molecules of nor left. Molecules of the type that originally had a larger quantity accept persisted. If the quantities were equal, and so both types were annihilated. We use absence indicators and to determine which type was annihilated, produced by the method shown in reactions 6–8. If was originally greater than , in that location will now be a presence of and an absence of . We produce molecules of type if this status is met. We preserve the quantities of and . We can besides limit the quantity of produced by introducing a fuel type: (34) For robustness, nosotros as well add reactions to destroy in the case that the asserted condition is non truthful: (35) (36) We can readily generalize the construct to all types of logical comparisons. Table one lists these operations and their corresponding reactions.

Complex Arithmetic

Based upon the modules described in the previous section, we provide examples of how to implement more complex arithmetic: multiplication, logarithms in base 2, exponentiation, and raising to a power. In order to elucidate the designs, we specify the sequence of operations for each of these module in pseudo-code. The pseudo-code operations consist of:

  • Assignment, addition, and subtraction operations. The operands may exist constants or variables.
  • Conclusion-making constructs: while and if statements. The logical examination for each of these constructs tin be any one of the six conditions listed in Table one. In some cases, the if and while statements volition exist nested.

Raise to a Power.

Equally a second complex example, we testify how to implement the performance . This tin can be washed using iterative multiplication; as nosotros demonstrated in the previous department, multiplication can be implemented via iterative addition. The pseudo-code for the raising-to-a-power operation is shown in Figure 1. It consists of consignment, addition, subtraction, and iterative constructs. Annotation that the consignment operations tin can be performed with our "copier" module; the addition and subtraction operations can be performed with "increment" and "decrement" modules. A pair of nested while constructs, similar to that used for multiplication, perform the requisite iterative computation. The consummate set of reactions to implement this operation is given in Supporting Information S3.

Exponentiation.

To implement the operation , we tin can use a sequence of operations similar to those that nosotros used for multiplication. The pseudo-code is shown in Figure two. The reactions that implement this pseudo-code are given in Supporting Information S4.

Logarithm.

We demonstrate the computation of a base-ii logarithm. The pseudo-lawmaking is shown in Figure iii. A logarithm is the inverse performance of exponentiation; it makes sense, therefore, that the pseudo-code for is more or less the reverse of that for exponentiation. The reactions that implement this performance are given in Supporting Information S5.

Simulation Results

Nosotros validated our constructs using stochastic simulation. Specifically, we performed a time homogeneous simulation using Gillespie's "Straight Method" [3] with the software parcel "Cain" from Caltech [xiv]. (Details near Cain can bew establish in the department "Assay".) In each case, the simulation was run until the quantities of all types except the absence indicators converged to a steady state. Nosotros used a charge per unit constant of i for the "slow" reactions. We tried rate constants between 2 to four orders of magnitude higher for the "fast" reactions. (Nosotros refer to the ratio of "fast" to "deadening" as the rate separation.) For each of the graphs below, the initial quantity of each type is zero, with the exception of the types specified.

Multiplier.

Effigy 4 shows the output of a unmarried simulated trajectory for our multiplier. We observe exactly the beliefs that we are looking for: the quantity of cycles exactly ten times equally information technology exchanges with and is copied to ; the quantity of grows steadily upwardly to 100; the quantity of decreases once each bicycle downwardly to 0. Table one presents detailed simulation results, this time tested for accurateness. Errors by and large occur if the system executes as well many or too few iterations. As can exist seen, the larger the quantity of , the more than authentic the event, in relative terms. Every bit expected, the larger the rate separation, the fewer errors we become.

Decrementer.

Figure 6 shows the output of a single simulated trajectory of our decrementer. An automatic restart mechanism, similar to reactions 45–48, was used to produce a continuous series of decrements. Exactly twenty peaks tin be seen in the graph, including the initial acme on the far-left margin of the graph. This is exactly the behavior we are looking for – a decrement by exactly one each cycle.

Comparator.

Figures 7 and 8 brandish simulation results from our comparator. In Graph 4, is asserted as we would await; in Graph 5, is not asserted, also as nosotros would look.

Raise to a Power.

Effigy 9 shows a fake trajectory of our raise-to-a-power construct. Every bit can be observed, after is loaded with the initial quantity of , it is multiplied by twice. Each time its value is stored in the temporary type before beingness transferred back. Table 4 shows simulation results for our raise-to-a-power construct for various values of and . In each instance, the initial quantity of was gear up to 10, simulating an injection of that type.

Exponentiation.

Effigy 10 shows a imitation trajectory of our exponentiation construct. We can observe that for every decrementation of , doubles in value, which is the behavior that we are aiming for. Table five shows more simulation results. The error for this construct is small but appears to grow every bit grows. This is not surprising, given we are performing exponentiation: pocket-size errors will exist compounded.

Logarithm.

Figure 11 shows a simulated trajectory for our base-2 logarithm construct. Again, we observe the behavior that we are expecting; every time we divide by two, increases by one. Table 6 shows more detailed simulation results.

Discussion

This newspaper presented a drove of specific computational constructs. More than circuitous operations – multiplication, exponentiation, raising to a power, and logarithms – were built a collection of robust, archaic operations – absence indicators, incrementing and decrementing, copying, and comparison. The process past which nosotros assembled these archaic operations could be readily generalized. Indeed, nosotros are developing a chemical compiler that volition translate any sequence of operations specified by pseudo-code into chemical reactions. The compiler volition accept general pseudo-code written in the vein of that shown in Figures 1, 2, 3. Information technology volition allow for assignments, arithmetic operations, "if" statements, and arbitrarily nested "while" loops.

The novelty and value of the constructs that we have demonstrated is that they are all charge per unit independent. Here "rate contained" refers to the fact that, within a broad range of values for the kinetic constants, the ciphering does not depend on the specific values of the constants. Of course, outside of this range, the accurateness of the computation degrades. For rates within the target range, our results are remarkably accurate: in nearly all cases the errors are less than 1%. In many cases, the errors are much less than 1%. The actual value of the target range will depend on the chemical substrate used; in simulation, it was found that a ratio of x,000∶one of "fast" vs. "wearisome" produced nearly perfect results.

Our contribution is to tackle the trouble of synthesizing ciphering at a conceptual level, working non with actual molecular types but rather with abstract types. One might question whether actual chemical reactions matching our templates can be found. Certainly, engineering complex new reaction mechanisms in any experimental domain is formidable job; for in vivo systems, there are probable to exist many experimental constraints on the pick of reactions [xviii]. Yet, we indicate to recent work on in vitro ciphering as a potential awarding domain for our ideas.

Through a machinery called Deoxyribonucleic acid strand-displacement, a grouping at Caltech has shown that Dna reactions can emulate the chemical kinetics of about whatsoever chemical reaction network. They as well provide a compiler that translates abstruse chemical reactions of the sort that we design into specific Dna reactions [xvi]. Recent piece of work has demonstrated both the scale of computation that is possible with Deoxyribonucleic acid-based calculating [xix], besides as exciting applications [twenty]. While conceptual, our work propose a de novo arroyo to the design of biological functions. Potentially this approach is more full general in its applicability than methods based on appropriating and reusing existing biological modules.

Assay

All the models described in this paper are contained in an XML file. This file is available at:

The file is designed for use with Cain, a biochemical simulator from Caltech [14]. It contains initial quantities for all types. All non-zero quantities can exist modified equally the user desires to simulate different input values. Within Cain, we suggest Gillespie'south Straight Method for all simulations.

Supporting Information

Writer Contributions

Conceived and designed the experiments: PS. Performed the experiments: PS. Analyzed the information: PS. Contributed reagents/materials/analysis tools: PS MR. Wrote the paper: PS MR.

References

  1. i. Horn F, Jackson R (1972) General mass action kinetics. Archive for Rational Mechanics and Assay 47: 81–116.
  2. ii. Érdi P, Tóth J (1989) Mathematical Models of Chemical Reactions: Theory and Applications of Deterministic and Stochastic Models. Manchester Academy Press.
  3. 3. Gillespie D (1977) Verbal stochastic simulation of coupled chemical reactions. Journal of Physical Chemistry 81: 2340–2361.
  4. four. Strogatz S (1994) Nonlinear Dynamics and Chaos with Applications to Physics, Biology, Chemistry, and Engineering. Perseus Books.
  5. 5. Win MN, Liang J, Smolke CD (2009) Frameworks for programming biological function through RNA parts and devices. Chemistry & Biological science 16: 298–310.
  6. vi. Keasling J (2008) Constructed biology for constructed chemistry. ACS Chemical Biology 3: 64–76.
  7. seven. Epstein IR, Pojman JA (1998) An Introduction to Nonlinear Chemical Dynamics: Oscillations, Waves, Patterns, and Anarchy. Oxford Univ Press.
  8. 8. Willamowski KD, Rössler OE (1980) Irregular oscillations in a realistic abstract quadratic mass action system. Zeitschrift fur Naturforschung Section A – A Journal of Physical Sciences 35: 317–318.
  9. 9. Magnasco MO (1997) Chemical kinetics is turing universal. Phys Rev Lett 78: 1190–1193.
  10. 10. Soloveichik D, Melt K, Winfree E, Bruck J (2008) Computation with finite stochastic chemical reaction networks. Natural Computing 7:
  11. 11. Shea A, Fett B, Riedel Md, Parhi M (2010) Writing and compiling code into biochemistry. Proceedings of the Pacific Symposium on Biocomputing. pp. 456–464.
  12. 12. Jiang H, Kharam AP, Riedel MD, Parhi KK (2010) A synthesis ow for digital signal processing with biomolecular reactions. IEEE International Briefing on Computer-Aided Design. pp. 417–424.
  13. 13. Gillespie DT (1976) A general method for numerically simulating the stochastic time development of coupled chemical reactions. Periodical of Computational Physics 22: 403–434.
  14. xiv. Mauch S, Stalzer K (2009) Efficient formulations for verbal stochastic simulation of chemical systems. IEEE/ACM Transactions on Computational Biology and Bioinformatics 99.
  15. 15. Gillespie DT (2006) Stochastic simulation of chemical kinetics. Annual Review of Physical Chemistry 58: 35–55.
  16. 16. Soloveichik D, Seelig G, Winfree Eastward (2010) Dna as a universal substrate for chemical kinetics. Proceedings of the National Academy of Sciences 107: 5393–5398.
  17. 17. Kharam A, Jiang H, Riedel MD, Parhi Thou (2011) Binary counting with chemical reactions. Pacific Symposium on Biocomputing.
  18. 18. Weiss R (2003) Cellular Computation and Communications using Engineering Genetic Regulatory Networks. Ph.D. thesis, MIT.
  19. xix. Qian L, Winfree E (2009) A simple Dna gate motif for synthesizing large-scale circuits. DNA Calculating. pp. 70–89.
  20. 20. Venkataramana Due south, Dirks RM, Ueda CT, Pierce NA (2010 (in press)) Selective cell death mediated past pocket-sized provisional RNAs. Proceedings of the National Academy of Sciences.

kelleylielf2001.blogspot.com

Source: https://journals.plos.org/plosone/article?id=10.1371%2Fjournal.pone.0021414

0 Response to "Chemistry Quantities in Chemical Reactions Peer Reviewed Articles"

Postar um comentário

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel