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.
Log in or sign up for Devpost to join the conversation.