The further question with any project for full organism simulation would be how many lines of code are going to be produced and what would the process of maintaining that code look like?
The further question with any project for full organism simulation would be how many lines of code are going to be produced and what would the process of maintaining that code look like?
You're probably right about the hierarchical simulation though. I have trouble believing that it's actually useful to model an entire body at a macro-molecular level. It would be like modeling electrons in circuit design software, rather than using the abstractions of voltage and current.
Even when we look aside from the level of DNA/RNA there are huge differences in morphological organisation of eukaryotic cells when compared to most prokaryotes: dynamic compartmentalisation of cytoplasm, different types of cytoskeleton, vesicle trafficking, complex signal transduction networks instead of usually simple two-component regulatory systems... So the simulation of whichever human cell type could be much more complicated than one could initially thought.
I don't want to sound too much pessimistic, as someone with background in both CS and molecular biology I'm truly excited about this, but I still had to cool myself down a little bit after reading the article. I can't wait to read the original paper.
I think voltage etc is airtight abstraction mostly because each electron is guaranteed to be both simple and the same. Cells are both complex and distinct from each other (based on both genetics and internal physiology and so-forth). So macro-configuration of cells would seem to be a more leaky abstraction.
Roger J. William's classic text Biochemical Individuality describes how much the parameters of even very basic physiological functions varies from person to person. So unlike a chip which starts with simpler building blocks and is designed to depend on discreet inputs as much as possible, the simulation of an organism may not have a better solution than a bottom up design with perhaps a variety of clever shortcuts.
The point is that circuits can be simulated at many different levels of detail, with low-level simulations more likely to get things exactly right, but with high-level simulations much faster, easier to write, and easier to understand.
Likewise, it will be interesting to see with cell simulations how much complexity can be abstracted away and still have a useful simulation. To get all the protein interactions right for example, you'd need to simulate individual atoms, which is insanely slow. So to simulate a cell, you're probably running at the level of protein and chemical concentrations and known interactions, which is faster but introduces error. For instance, how much do local concentrations matter? And to simulate a multicellular organism, you're probably going to make the cells fairly abstract.
Personally, I think the key area for biology is going to be dealing with cell state. Cells hold state in a lot of different ways over many time frames (eg epigenetics), and I think computer scientists have a lot to offer biologists in understanding state. Someone else mentioned the few hundred cell types in the human body, but the internal state makes a huge difference. (Not to mention distributed state, such as how the brain stores information.)
Sort of like how image compression algorithms store an abstraction of the image for large, uniform areas and get more granular for complexity, but applied to simulation instead
Human-designed systems need to be human comprehensible, so they're laid out in neat hierarchical layers, each abstracting away the complexity of the underlying process. Evolved systems aren't restricted by comprehensibility.
http://www.damninteresting.com/on-the-origin-of-circuits/
>Finally, after just over 4,000 generations, the test system settled upon the best program. When Dr. Thompson played the 1kHz tone, the microchip unfailingly reacted by decreasing its power output to zero volts. When he played the 10kHz tone, the output jumped up to five volts. … And no one had the foggiest notion how it worked.
>Dr. Thompson peered inside his perfect offspring to gain insight into its methods, but what he found inside was baffling. The plucky chip was utilizing only thirty-seven of its one hundred logic gates, and most of them were arranged in a curious collection of feedback loops. Five individual logic cells were functionally disconnected from the rest– with no pathways that would allow them to influence the output– yet when the researcher disabled any one of them the chip lost its ability to discriminate the tones. Furthermore, the final program did not work reliably when it was loaded onto other FPGAs of the same type.
This is only one example of many cellular processes which are substantially harder to understand in eukayotes than bacteria. The lesson is that not all cells are created equal, different kinds of organisms have very different cells.
Also note that modeling interactions between cells makes things much more complicated in a very nonlinear way.
Sort of like a Hashlife[1] for real life, as it were.
And let me just say that I sure hope we're not still coding in 80 years. Fun as it may be, we'd probably be better off letting machines handle that sort of thing. Get started on that AI!
The computational complexity aspect could be side-stepped if quantum computers were invented before 80 years. One of the few things quantum computers can do exponentially better is simulate quantum mechanics. Biology is chemistry which is "just" a bunch of quantum many body problems. With a QC we can model Protein interactions, RNA, signaling, transport etc much more efficiently than a regular computer.
You could imagine a hierarchy of simulations which dynamically adjusted the level of detail. Do you simulate every cell division to see if cancer develops, or do you just do "perfect" division with a roll of the dice for a copy error? Depends on your needs.
You could imagine organs like your skin or liver have lots of redundant computations, where you can elide away details more easily. While say your brain probably depends on the idiosyncratic behavior of individual neurons bubbling up to a macroscopic level, requiring a more detailed simulation.
Having multiple sets of same cell would only speed up the simulation under some circumstances. In the most general case, it wouldn't. For example, if a cell itself is a Turing complete computer whose computations matter, then you definitely need to individually simulate each cell.