Convergence of Biology and Computers?
Pankaj Arora asks: "This summer I am working on both Bioinformatics and Molecular Biology research projects at the Mayo Clinic Rochester. Being an MIS major with a heavy CS background, I've been learning about biochemistry performing polymerase chain reactions (PCRs) and RNA retranslation among other things. I've learned biology works a lot like computers; binary has 1s and 0s, DNA has nucleotides: A, T, C, and G. Binary has 8 bits to a byte, DNA has 3 nucleotides to a codon. Computers and biology seem to have a natural fit; information is encoded and represented 'digitally' in a sense. I was wondering what people thought about the future of biology-based and genetics-based computing due to the immense efficiencies that lie in nature. This has been discussed to an extent here, but there were some specific aspects that I feel are quite important and were not discussed thoroughly, thus I have a few questions to pose to the Slashdot community."
"The aspects I would like discussed are as follows:
- In the long run, will biology rewrite computing or will modern day technology concepts and theory be integrated into biology? If both are true, which will have the greater effect? I understand long run is ambiguous in this question, but Iâ(TM)m interested in all thoughts using any applicable definition.
- Tied to the first question: How will the nature of computing, and how we perceive it, change due to biology integration? More to the point, how much of the theory we learn today may change?
- What will be the biggest issue determining the success of the adoption of biology-integrated computing? Will it be technology factors or will it be societal factors (e.g., rebellion by the Right Wing), or something else? What things must hold true to make the idea succeed?
- And perhaps the hottest issue of all: Is there anything inherently wrong with pursuing this avenue? What may be some of the consequences?
What needs to happen is a happy medium, biology chaning the face of computing, and computing doing the same for biology. Advances will be gained in both this way.
Yes it will be called _Physics_
BAIN http://www.devslashzero.com
As someone who works in bioinformatics research coming from the computer side I think your mixing issues.
;-)
There's using computing to forward and analyize biological questions, that's one field. (and the one I'm in)
The other is using biology to build things like nanotech and other molecular circuitry.
Both of these are using one as a tool to forward the other, it's not a straight integration like putting chocolate and peanut butter together, and never will be.
Each field will simply adapt and use tools from other fields. Just as in molecular biology physics and chemistry concepts are used to help understand biological mechanisms. Don't look for a Unifying Theory for all these fields.
Anyhow, that's my opinion, my boss will probably say I'm completely wrong
It's easy to see why DNA is digital; it means that copies can be made with 100% fidelity. You don't want random mutations every time a cell divides.
This forces some processes to be essentially digital, but most of biology is an unbelieveably messy analogue nightmare for anybody trying to figure out what's going on.
Technology is not morally or societally neutral, despite what we would like to think. A very simple example of this is the car: cars, in order to maximize their utility, require a vast network of roads, parking spaces, and gas stations. This network is expensive to society for environmental reasons and has definite social and economic effects (such as time lost in commuting and traffic jams). These are unavoidable if we wish to use the technology of cars.
I have an essay in progress on this topic: The Analysis of Technologies - its got some stuff that is quite out of date since I started working on the essay eight years ago :-)
A really great book on the subject of analyzing the future effects of technology is "In the Absense of the Sacred" by Jerry Mander. This book is very much slanted politically to the "small/simple is beautiful" outlook, but provides a very substantial wealth of logical arguments and academic studies to demonstrate some of the necessary principle of analyzing technologies.
As for your specific questions, one obvious effect will be that in our commercial environment, not everyone will have equal access to the benefits that may be provided by the integration of computational and biological technologies.
Since it will not be genetic engineering in the "traditional" sense, this technology may be used as a backdoor for creating designer babies without actually modifying a zygote's genetic material.
Helping with organizational effectiveness is our job.
The biggest problem right now is that the technology isn't there yet. Simply decoding a single strand of DNA is a long process fraught with the use of various enzymes and chemicals to find out what the actual composition is. If and when we develop better ways of dealing with bio material (nano-bots?) biological computers could be a very good choice. The advantages in parallel computing alone would completely revolutionize computing as we know it.
Of course, there is a downside. Massive parallelism means that programming will become orders of magnatude more difficult. People today can barely wrap their heads around out of order instructions and code that works well with superscaler architectures. What happens when we increase this complexity by a million fold?! I'm thinking that bio computing could produce some rather interesting advances in the way we communicate/program computers.
Javascript + Nintendo DSi = DSiCade
The first hour or two of disassembling was figuring out where the code was, and where the data was.
The next day or so of poring over those printouts were spent mapping out where the entry/exit points for subroutines were.
I got to the point where I could guess where game graphics were, just by looking for oddly repeating patterns in the "data" areas. (Yup, in binary, those 8-byte sequences make up the bitmaps for the characters "A", "B", "C"...")
"Oh, XX AA XX BB XX CC, somewhere near XXDD in memory space. Must be a list of pointers to something."
"Oh, XXAA, XXBB and XXCC all start with the same byte, and that byte is XXAA minus XXBB (or XXBB minus XXCC). Now I know how big each element in the structure is."
And so on. The first day or two of hacking would result in me figuring out about 10% of what the data was for.
The other 90% was the hard part, typically requiring running some coke, poking at the data, and running the code again to see what changed. "Maze wall moved here, then things crashed when I tried to walk through it."
Sure, 99% of our genome might be junk. There were plenty of areas of address space that contained "data" that was never accessed, even with the tight code written in the 8-bit days.
But when I found a string of bytes I didn't understand, the working assumption that usually went better for me was that "I don't know what this stuff does", not "these bytes are random".
I'll bet that 90% of the genome is never executed nor referenced as data. (Evolution's a messier programmer, and there's 4.5 billion years of cruft!) But I'll bet that a lot of that "junk" is just code we haven't reverse-engineered yet.
Ramblings over - to the poster, all of the ideas in this post are probably ancient history (and poorly-written at that - you can tell I have no bio background), but it's nice to see I'm not completely off my rocker.
I went the CS route because when they taught biology in high school, it was seen as preparation for "become a doctor". Nothing wrong with doctors, but I was interested in more interested in hacking and figured it would be a long time, if ever, before we could manipulate DNA the way I could manipulate bits on a machine. (I've been pleasantly surprised with the way things turned out, though! :)
CS grads are a dime a dozen in the job market; I like my job, but career-wise, the field's been played out. If you're about to go into college, and especially if you like to reverse-engineer stuff "because it's fun", get into bioinformatics, computational biology, and do your CS as a minor. At least, that's what I'd do if I were gonna start over.
Computing has accelerated biological research, but I'm unconvinced that it will fundamentally alter the prevalent paradigm in the biological sciences. OTOH, biology may provide the concepts that will push a change in computer science.
Not being a computer scientist, I can't say this for sure, but I think one of the places to look would be in membrane potentials & how that might be applied to fundamental computer architecture. For the totally baffled here, a nerve cell membrane may be polarized (off), depolarized (on), hyperpolarized (extremely off), or anywhere in between (sorta off/almost on). This isn't binary any more, Toto.
Whatever, let's remember what the scripture (Kuhn's Structure of Scientific Revolutions) tells us: Change will happen when practitioners of the old paradigm die. Don't look for anything other than incremental change in the meantime...
"Obviously, I'm not an IBM computer any more than I'm an ashtray" (Bob Dylan)
I have no specific technical background from which to address your questions (I know, I know... this is Slashdot), but your moral questions are interesting:
* What will be the biggest issue determining the success of the adoption of biology-integrated computing? Will it be technology factors or will it be societal factors (e.g., rebellion by the Right Wing), or something else? What things must hold true to make the idea succeed?
First, I know it's only an example you've given (lit., "exempli gratia"), but the "societal" factors as you call it -- more political, really, but let's compromise on socio-political -- are not an exclusively "Right Wing" threat. The modern Left holds many central beliefs contrary to the integration of technology and biology, especially concerning human biology, for instance the primogeniture of society over the individual and (partially by extension) the malleable, ahistorical understanding of the human mind (a notion commonly referred to as "tabula rasa"). Under this view, attempting to "improve" or in any way alter humans as conscious beings by improving or altering us as biological beings will seem either immoral or, more likely, futile. This mostly to point out that limiting factors for the progress in your field don't come exclusively from conservative ideology.
In general there seems to be a growing trend in intellectual/ethicist circles toward acknowledging the massive (though far from exclusive) importance of our evolutionary past, which in simple political terms is more or less centrist or apolitical, though could be interpreted as slightly "right wing" (more libertarian or classical liberal than conservative), which suitably allows you scientists to carry forth your apolitical and almost-amoral research, leaving as the likely culprit for "most likely to impede the progress of biology-integrated computing" common economical factors: what innovations will ultimately create the most value, and therefore what innovations will proximately be most likely to succeed (in getting funded, in getting researched, etc.). And if you take exception to my "almost-amoral" comment (which you shouldn't), I mean it compared to people who spend their lives sweating over the ones and zeroes of right and wrong -- not that you value ethical behaviour any less than they do, only that you likely (likely) pay less attention to the nuances of what makes ethical behaviour ethical; my guess is you probably subscribe to a simplistic (and ages-old and approximately, though probably not absolutely right) axiom like the biblical (new and old testament) reciprocating Golden Rule or the commission-of-harm-avoiding Hippocratic Oath -- good on you.
* And perhaps the hottest issue of all: Is there anything inherently wrong with pursuing this avenue? What may be some of the consequences?
There are numerous criteria for wrongness, and in the case that you mean moral wrongness there are numerous defensible moral systems. Also, if you mean specifically moral wrongness, most moral systems taken into consideration not just consequences of actions, but the intents behind them as well (brick-in-the-head obvious example, Western legal tradition's distinction between premeditated and non-premeditated murder, or either of those and accidental homicide) -- if you meant to imply the connection I've understood between inherent wrongness and consequences.
I don't see anything one could construe as inherently wrong with the research you propose, if you don't believe in God or make intuitive essentialist ascriptions to the human form or subscribe to the aforementioned primogeniture of society over the individual and all that entails. In other words, assuming of course otherwise ethical behaviour, if you're a modern freedom-loving humanist (or, in the trivial case if you're a nihilist), it seems to me there's no basis for having qualms about the philosophical nature of what you're doing -- but it's healthy of you to be wary of slipping into less-than-savoury situations, and to constantly question yourself to defend against aforementioned slipping and to ameliorate yourself -- no doubt the skeptical scientist in you.
Fuck it
I recently started working at a bioinformatics position as well, coming from a pure CS background. I havn't learned enough of the biology side of things to really get into much more than tool support for distributed sequence analysis toolchains, but what the hell, might as well comment.
One thing I want to say before responding to your points: nature is _NOT_ "efficient" like computers are "efficient". Natural systems are enormous, ad-hoc, kludges. They work extremely well, and have tons of redundancy and fault-tolerance, but that's mainly due to about 4-billion years of slow, brutal, optimisation by the evolutionary process. Natural systems do certain things faster than computer systems because:
1. They've been optimised for a hell of a long time, and they've found ways to engineer and construct extremely complicated structures and processes that are still "small" (compared to modern human-engineered technology).
2. They've been allowed to search through a much larger solution space than what computers have searched through. Computers are inherently limited by the fact that they are tools which can still be reconciled for a large part with human reason - they were constructed using models that humans can understand and reason about, and explain fully from the start. Evolution, on the other hand, is much more of a blind search.
Another thing to note is that natural systems all try to solve one problem: existence and self-perpetuation. All the natural systems we are able to observe today exist because they are structured such that they can fulfill these basic requirements. Now, in the process of solving this single-minded problems, nature has managed to come up with solutions for many other problems - many of which can be borrowed and applied to human problems. But it's erroneous to think of nature as "god's textbook of problem-solving", or anything like that.
> In the long run, will biology rewrite computing or will
> modern day technology concepts and theory be
> integrated into biology? If both are true, which will have
> the greater effect? I understand long run is ambiguous in
> this question, but Iâ(TM)m interested in all thoughts using any
> applicable definition.
There are two aspects to this - borrowing ideas from biology (i.e. reimplementation), and borrowing biological structures themselves (e.g. using bacteria to make enzymes, viruses as delivery vectors for drugs, growing muscle tissue for robot-locomotion, etc.). Both are happening to a certain extent.
I think it'll be a while yet before we will be able to jump into biological systems and "change the code to do what we want". We do it in really primitive, crude ways right now, but the level of complexity of biological systems, I think, will mean that it'll take time before we are able to fully control them.
>Tied to the first question: How will the nature of
> computing, and how we perceive it, change due to
> biology integration? More to the point, how much of the
> theory we learn today may change?
I don't think biology will change theory that much. CS theory comes from the human reasoning process. I don't think there are that many abstract concepts that we can extract out of biological systems. I think the real impact will be in engineering aspects - mimicing, or reusing wholesale, biological structures to acheive the properties that we want.
> What will be the biggest issue determining the success
> of the adoption of biology-integrated computing? Will it
> be technology factors or will it be societal factors (e.g.,
> rebellion by the Right Wing), or something else? What
> things must hold true to make the idea succeed?
Forget the right wing. They make a lot of noise, but ultimately they are not that powerful, especially in the capitalist west. The religious conservatives are used as a tool to get votes, by pandering to their pet causes, but once people figure out a w
I think that ultimately biology will contribute more to CS than the other way 'round.
Presuming you're not a creationist, there are MILLIONS of generations worth of Darwinism at work in even a simple worm - weeding out the inefficient in times of stress, etc.
Granted, the process in biology is neither linear nor even relatively efficient, but there are tremendous lessons in autonomous operation, fault-tolerance (HUGE), adaptability, etc that bio systems can teach or implement in computer situations - what can bio-systems get from computers? It just seems natural (ha!) that the more we learn from bio-systems, the more we'll apply it to computer paradigms. Until now, it's been too complex for us to really understand.
-Styopa
I agree with the parent post. We don't actually know what this "junk" is for. In my own projects, I have certain things turned off and on by dummy variables and seemingly unnecessary if-then statements. You could very well go into my stuff and say "ten percent of this stuff is unnecessary. You could erase it or replace it and nothing will go wrong.
And you would be right. Except that you killed off some functions not meant for today. You killed off functions that weren't in the right conditions to be operated today. Unfortunately, you killed off a whole lot of stuff that could be valuable tomorrow or for future development of the program.
I think programmers are in a good position to gain insight to the meaning of life or at least the creation and perpetuation of it. The code might be dead to you but you didn't write it nor were you involved in the development.
The wise would reserve judgment on those curious stretches of DNA until we know more.
Laws are for people with no friends.
When I was learning the concepts of EJB's and remote processing, I began to see patterns between how Cells intercommunicate and the way Clients/Servers work. I began to see similarities between how cells set up "firewalls" and open firewalls and the way we do it in computing.
As an OO programmer, I began to look at the design patterns we use in OOAD and the design patterns cells use, both internally and externally.... Wish I was back in graduate school!!!! What a dissertation!!!!
There have to be levels of abstraction when ANYTHING deals with complexity and "fuzzyness". Cells do this very well (aided by eons of evolution). To solve some of the problems we have in computer science, maybe we should look at how Biology does it. We don't have to create biological computers, we just have to look, understand the abstractions and see how they apply to other problems.
DNA for computing - why? DNA just sits around much like a string of zeroes and ones. Proteins - now that's hot. Think about it this way:
bytes = base 2, aggregates of 8 - not much storage space and not able to interact with other 0s and 1s
Codons = base 4, aggregates of 3 - not much storage space either but DNA doesn't really communicate with other DNA strands (not directly at least)
Proteins = base 20, aggregates of variable length - and they can interact with one another in highly complex ways
I think it's clear which approach will give us the best problem solver in the future. Though they may not be very useful as personal computers, a protein-based computer could model things like weather patterns, economic cycles, etc.
There are important similarities between the information processing and transfer in living organisms and mathematical computation, which have been recognized for more than 50 years (see Gunther Stent's "Paradoxes of Progress" for some essays on the nature of genes and biological information transfer as the central dogma was emerging). But there are critical differences as well, which are often misunderstood.
The fundamental difference between computing in biology and computing with man-made computers is that biological systems were not designed. This has very important implications for the relationship between biology and computer science:
So, to answer the questions posed:
Actually, we use binary because we can't really build anything else (there are no positions between "on" and "off", thus we are essentially limited, at this point in time, to base-2 computers). Base-3 computers exist, but they are really binary at heart so it's pretty pointless.
Indeed, I believe the most efficient whole-number system is base-3 (actually, base 2.somethingsomething, but that's a little much for everyday use). But, like I said, I haven't heard of anyone implementing a true base-3 system.
Whaddayagonnado.
Some time ago I wrote site about DNA as seen through the eyes of a coder, which dovetails nicely with this article.
:-)
Highly recommended
bert.