How can you program nanonmachines (molecular machines)? This is a question not just for science fiction writers but also for scientist and future aspiring molecular software engineers. Our team proposes to explore using mass-action chemical reactions equation to implement generic chemical reaction network (CRNs), which have been shown to be Turing complete because it can me mapped to a system of polynomial ODE which has been shown to be Turing complete, to implement simple machine learning algorithms like the perceptron algorithm.

What it does

In order to build CRNs we use CRN++ a molecular programming language, which complies CRN++ code into usable CRNs that can implemented using DNA displacement cascades or PEN toolbox for molecular programming in a suitable organic chemistry lab.

How I built it

This is build using mathematica because that is the language the CRN++ complier is written in.

Challenges I ran into

We ran into a couple of challenges like trying to represent, negative weights as a chemical concentration which must be positive and errors that accumulate in our numerical values because of steady-state assumptions being violated.

Accomplishments that I'm proud of

Manage to pick up CRN++, which is a low level programming language for CRNs and mathematica, and read a couple of research papers on the topic.

What I learned

I learnt about the design consideration that went into designing chemical reactions suitable for accurate numerical computation i.e the chemistry and the math, as well as how to map standard algorithms into chemical reactions that can be executed into the lab.

What's next for DNApreceptrons

Implementing perceptrons with offsets and full multi-layer perceptrons, alternatively explore other programming languages or build our own domain specific language that can compile to CRNs.

Built With

  • mathematica
Share this project: