Biomolecular computers and programming
I have recently handed in a report as a part of my masters/candidate in Computer Science at University of Copenhagen – “Visualizing blobs and computation in a biomolecular computation model“. It sounds very fancy and I would like to introduce the subject and my report here in hopefully a less dry way than in the report it self. (This post will be in a “anecdotal” style and will not contain citations for all the facts. The report above should be up to academic par on citations)
Biomolecular computers and computation
Biomolecular computers or “biocomputers” is an area that have been research the last 20 years. At first much hype and hope was attached that this would provide some kind of break through to overcome the limitations of normal silica-based chip computers as we know and use today – your average PC and every microchip controlled device around. This is the same hope that surrounds quantum computers – a new approach for doing currently very long computations, for example integer factorization of large prime products within feasible time. The jury is still out on the possibility of biomolecular computing to deliver on that hope/potential. Other research have also shown “niche” interest in the area of “DNA Doctor” usage of biocomputers where a “biocomputer” is implemented to interact directly with the cells in for example humans.
A biomolecular computer can be seen as a computer that ”.…use systems of biologically derived molecules, such as DNA and proteins, to perform computational calculations involving storing, retrieving, and processing data.“(From wikipedia). Why is this interesting?
First of all: Why not? Tinkering, and playing around with things is interesting IMHO: By drawing the parallel between a biocomputer and a (human) brain you can say that it is a way to learn about ways nature works.
Second of all, a biocomputer will have different properties compared to conventional computers. Some of the first explored ideas was to use DNA interactions to solve very computational hard problems (NP-complete, traveling salesman like problems, Adleman 1994). This is interesting because it is possible to have millions and millions of molecules in lab-tube and thereby allowing for massively parallel computations – compared to a conventional computer which might have 4 (or at least not millions of) cores for parallel computations.
The Blob programming model
When I contacted my supervisor about writing a project this winter I was introduced to “the blob programming model”. At that time it was mostly an article in progress. Just now it has been accepted for the CS2Bio workshop as “Programming in Biomolecular computation” in Amsterdam, June 10, 2010.
The authors, Neil Jones in particular, read lots of the articles around biomolecular computation, turing universality of the models, and formal algebras for describing molecular interactions (Like Kappa calculus and Biochemical Ground Form) but his background as a computer scientist found something missing: Where are the programs?
Lots of interesting computational properties was proven but as a programmer there is no way to write a program as we know it.
Based on that “hole” a machine language was developed and described in the article which might theoretically could be used on a biocomputer. The models was dubbed “The blob programming model” and the article can be found at http://blobvis.appspot.com/blob
My Project – Visualizations of Blob programs
Based on this article I defined a project for doing a literature review of biocomputing literature as well as visualization theory applicable to visualization of blob programs. Normal progrogramming visualizations exists and have been used for many years, but in this case there was a special angle attached to the visualizations. The blob model has a potential physical analog as it might be possible to create a “biomolecular computer” that can execute the instructions and as the instructions is formed to be somewhat like an abstract molecule or similar a visualization of the blob instruction set could/should reveal interesting properties of blob programs with regards to their physical presence.
At http://blobvis.appspot.com my report is available for download as well as the BlobVis visualization tool I developed. From there you can play around with a few simple “Blob Programs”, for example a “list append’” program and see a video of a program executing in BlobVis. As I focused on physical properties the tool uses a physical based algorithm for layouting the blob programs(Via prefuse) which allows you to drag around programs and data in a way that looks like it is immersed in water or similar. That gives an interesting effect and is fun to watch.
| Print article | This entry was posted by svrist on 2010-06-07 at 10:00, and is filed under CS, DIKU, English, tech. Follow any responses to this post through RSS 2.0. You can leave a response or trackback from your own site. |
No comments yet.
No trackbacks yet.
Reading up on “Dynamic Graph Layout”
about 4 months ago - View Comments
I’ve recently been reading up on Dynamic Graph Layout specifically with regards to “preserve the mental map” or “maintaining dynamic stability”. It looks like I’ve gotten all the way around the currently published articles with this list: [Angelini et~al., 2008] Patrizio Angelini, Pier~Francesco Cortese, Giuseppe~Di Battista, and Maurizio Patrignani. Topolo% gical morphing of planar graphs.. In
What I like about Unit Tests
about 1 year ago - View Comments
They are included with the source code, committed to SC and build along with the code pretty automatically these days! Actually I dont really care if it’s unit tests, integration tests or any other kind of test, I just see unit tests every day as part of my work. The part I like is that
Eclipse setup
about 2 years ago - View Comments
Image from WikipediaI work with eclipse all day, so I’ve spent some time messing around with plugins. Lots and lots of plugins. The plugins I’ve current stablized on is: Maven2 plugin: http://m2eclipse.codehaus.org/ (update-site: http://m2eclipse.sonatype.org/update/) PMD for static analysis of java code: http://pmd.sourceforge.net/integrations.html#eclipse (update-site: http://pmd.sf.net/eclipse ) Findbugs for static analysis of java bytecode http://findbugs.sourceforge.net/manual/eclipse.html (update-site: http://findbugs.cs.umd.edu/eclipse/)
Focus on the technology – 2
about 2 years ago - View Comments
So, progress is slow, and currently I’m looking into the base “architecture” of the show. I’ve been looking into different ESB’s as in: Mule OpenESB Apache ServiceMix Im pretty hooked on using SQS for queues which Mule supports out-of-the-box. On the other hand is it tempting to code it my self. But then again. Ill
Java and closures – YAPOJC
about 2 years ago - View Comments
YetAnotherPostOnJavaClosures So, I fell over some articles with both the words closure and java in them this week. It was this article about JavaFX closures. Since I’ve done some of my non-mandatory classes in my stud.scient. days (like the last 4years) it kinda woke my interest. It seems like lots of things has happend in
Running JMS tutorial examples in Eclipse without deploytool
about 2 years ago - View Comments
I’ve currently been reading up on JMS via the J2EE 1.4 tutorial. (Chapters 33 and 34). I use Eclipse J2EE. The deploytool way of doing things annoyed me quite a bit. When I had to edit the /jms/simple/src/* code for the first example (remove the jupiter prefix used for the next example in the Connection
Synopsis
about 4 years ago - View Comments
Nu har Sune og jeg afleveret en synopsis for vores bachloropgave. Jeg havde udtrykt min interesse for et emne og pludslig fik jeg en mail om at der var en som havde lyst til at lave det samme emne. Vi mødtes, og i løbet af en efter middag fik vi afleveret en forside. Så næsten