8 ms·
In a First, an Entire Organism Is Simulated by Software
- technotony 14y agoThis is a great example of a field which will be massively impacted by Moore's law. In 10 years time you will have the equivalent processing power in just one computer, meaning hobbiests are going to be able to run these kinds of experiments. Then things are going to get really exciting!!
- lectrick 14y agoIt looks like they have modeled the subprocesses of the cell and run a simulation of an assembly of those, instead of actually running (for example) a physics simulation of the entire organism at the atomic level. FYI
- SilasX 14y agoIt says it was a bacterium. So in that case, single cell = organism.
- reitzensteinm 14y agoThere are 7 * 10^9 carbon atoms in E Coli [1], so we're probably a decade or two away from being able to do any kind of simulation at the atomic level. Though it's probably getting close to the point where getting the right algorithms is the bottleneck; if you could somehow bring the techniques and optimizations we'll inevitably learn over the next 100 years back to today, a half decent simulation would probably already be possible on a cluster of commodity hardware. Unless the techniques revolve around a new method of computation, of course - maybe memristor logic helps with that kind of thing. [1] http://bionumbers.hms.harvard.edu/bionumber.aspx?s=y&id=103010&ver=0 http://bionumbers.hms.harvard.edu/bionumber.aspx?s=y&id=...
- bugsbunnyak 14y agoAtomic-level would be overkill for a lot of cellular processes. It's certainly crucial for protein interactions (for example), but affinity/dissociation constants are well-characterized so modelling individual binding site interaction isn't going to make a difference at the (relatively) macro level.
- chatmasta 14y agoWho else thought this said orgasm?
- ef4 14y agoBasic biology research is really exploding. Very exciting stuff.
- Cieplak 14y agoI would love to read the article, but $31.50 is a bit steep. http://www.sciencedirect.com/science/article/pii/S0092867412007763 http://www.sciencedirect.com/science/article/pii/S0092867412... Thanks, Elsevier.
- gwern 14y agohttp://dl.dropbox.com/u/85192141/2012-karr.pdf http://dl.dropbox.com/u/85192141/2012-karr.pdf
- Cieplak 14y agoCheers!
- jkarr 14y agoAll of the supplementary material is available at http://simtk.org/home/wholecell http://simtk.org/home/wholecell. http://wholecell.stanford.edu http://wholecell.stanford.edu provides a search interface to all of the training data.
- Cieplak 14y agoAny clue what software/technology they are using? I'm guessing Java.
- tosseraccount 14y agoIt appears to be hodgepodge of technologies but mostly Matlab (.m) ... Downloaded code zip file and unziped to to "WholeCell" directory find WholeCell -type f | awk '{FS="."; print $NF}' | sort | uniq -c | sort -n ... 2 java 2 lib 2 log 2 mexa64 2 mexw32 2 pdf 2 swf 2 vbs 2 xlsx 3 exe 3 fsa 3 mexw64 4 jpg 4 svg 5 desktop 5 license 5 sql 5 TXT 6 col 6 sh 6 tmpl 6 tpl 7 ico 7 xml 8 bat 8 pl 8 z 9 json 15 dot 16 gif 18 map 19 css 23 dll 24 dat 25 p 52 mat 62 txt 114 jar 238 png 277 js 427 php 531 m 1096 html
- apl 14y agoA lot of that stuff is incidental stuff; see .php, .html, .js, and so on. (Apparently there are some web-based tools that he mentions; not sure, though.) The bulk amounts to MATLAB plus Java libraries for remedying MATLAB's functionality gaps.
- dglassan 14y agoI'm wondering the same thing
- apl 14y agoNope. Seems to be heavily MATLAB-based.
- kibwen 14y agoI know exactly zilch about this field, so it very well could be something that mundane. However, for spreading calculations across a cluster of 128 computers, I sort of hope they're using something more specifically tailored for the task. Keeping in mind that my knowledge is zilch, here are some exotic languages that appear to be designed for this sort of thing: http://en.wikipedia.org/wiki/X10_%28programming_language%29 http://en.wikipedia.org/wiki/X10_%28programming_language%29 http://en.wikipedia.org/wiki/Chapel_%28programming_language%29 http://en.wikipedia.org/wiki/Chapel_%28programming_language%... http://en.wikipedia.org/wiki/Fortress_%28programming_language%29 http://en.wikipedia.org/wiki/Fortress_%28programming_languag...
- gliese1337 14y agoCurrently it takes about 9 to 10 hours of computer time to simulate a single division of the smallest cell — about the same time the cell takes to divide in its natural environment. So, it's a realtime simulation! Cool, although wholly incidental. It's hard to tell from the article exactly how fine-grained the simulation actually was. Was it actually at the level of tracking individual molecules, or did each "cell object" just keep track of, e.g., concentrations of different types of molecules? Also, I wonder if this will have any long-term impact on things like the Open Worm project ( www.openworm.org ).
- karpathy 14y agoAgreed, i spent a while looking for this. Looking at Figure 1B in the paper though suggests that it is the latter. There are no actual molecules bouncing around.
- jkarr 14y agoWe used a combination of tracking concentrations and individual molecules. For specific macromolecules like DNA polymerase, RNA polymerase, ribosomes, etc we kept track of the position of each individual molecule. For other things like glucose, water, etc with very high copy number we just kept track of the copy number. I agree modelling entire organisms will ultimately require large collaborations, potentially through projects like Open Worm.
- noduerme 14y agoI'm wondering what language this code was written in and if there couldn't be some significant speed gains by threading it differently. Is this modeled down to the molecular level, or is it a simulation of higher processes with known results? For one thing, if the protein interactions are abstracted and what's chewing things up is the modeling of them, then it would make more sense to use a lot of powerful GPUs; then you could spread the calculations out over a bunch of Xboxes. Secondly, despite the huge amount of data generated, you should be able to monte-carlo outputs for inputs on a thing like this. In essence, use it to generate a rainbow table of states, inputs and outputs so you can then run a multi-cell organism much more quickly. Assuming every cell has the same DNA.
- drcode 14y agoI think this news is huge: I suspect they probably took a lot of shortcuts and aren't simulating everything at the level of individual atoms. However, this type of system could be refined and perhaps give a 99% accurate simulation of a cell. Imagine if you could get the DNA from a cancer cell in a human patient, as well as the DNA of a normal cell, and then test the effect of a million different randomly-generated molecules until you find one that kills the cancer cell, but not the normal cell. If you could scale the performance of this type of system and allow it to simulate Eukaryotic cells (much more difficult) it might let you cure most cancers!
- apl 14y agohttp://wholecell.stanford.edu/ http://wholecell.stanford.edu/ Source code and training data available online; written, of course, in MATLAB. Very refreshing, and I'm looking forward to dissecting this first-hand.
- joe_the_user 14y agoWow, Having the code in Matlab seems like a disaster as far as ever making this or similar approaches modular and so usable-by-others goes. And I do know by miserable experience that Matlab indeed what biologists generally use but if biology is ever going to interface with larger scale software construction, it seems like it is going to have to change it's standard operations a bit. Edit: And this isn't saying Matlab is generically "horrible". It is great at what it does but horrible from my perspective, as a programmer whose task usually is putting pieces of software together.
- apl 14y ago> the code in Matlab seems like a disaster as far as ever > making this or similar approaches modular and so usable- > by-others goes. As always, it depends. I've seen very well maintained MATLAB code bases, and I've seen the opposite (with the latter greatly outweighing the former). We should give these guys the benefit of the doubt. Somewhere Karr mentions Hudson CI, so they don't seem fully removed from good practices. Interfacing with MATLAB from C is reasonable. In an ideal world, this would be a NumPy/SciPy prestige project, but neither the community nor Python for that matter are quite there yet.
- joe_the_user 14y agoThe thing is that Matlab is problematic for further extension even if the basic code is well done simply because of Matlab's weird function composition architecture and other weirdnesses. Consider that if biological simulations are going to go to a larger scale, you won't want to simply call a bunch of Matlab simulations from a single C program but rather have a bunch of distinct programs that would be modified to call each other (with each of these programs running as they do now in their Matlab instance).
- Achshar 14y agoCan any one explain what they mean by simulate? Like to what depth? Do they define different types of cells and their functions and then let them work? Or molecules, atoms? particles?? I strongly believe a "proper" simulation is impossible because we don't even know the bottom of the barrel, so best we can do is define a building block and how it behaves and see it grow from there. Although the coolest thing would be to define the quarks and four forces and then let it organically grow into some kind of matter over time. We can also control time in a simulation which will basically confirm our understanding if the outcome of the simulation is similar to real world.
- JackC 14y agoJust based on the Times article, I think the idea is, define a simulation of a cell and subject it to a bunch (100s) of simulated experiments, based on real experiments that have been run on real versions of the cell. If you get the same results from your simulated cell that other researchers got from watching real cells, then your simulation is potentially accurate enough to run new experiments on that will generate useful information about the actual organism. The fact that it predicts the outcome of previous experiments we were interested in suggests (hopefully) that it has sufficient resolution to predict new stuff we're interested in. So in this case, it sounds like they're simulating the interaction of genes and molecules, since they think that's sufficient to model cell behavior (and/or it's the best we can do). But it doesn't really matter what technical level of detail they went to -- the only useful definition of a "proper" simulation is whether it behaves the same as the real thing in the context you care about. For example, this simulation would be totally insufficient if I wanted to model a hydrogen bomb -- but totally excessive if I wanted to model gravitational forces on independent objects in space. If it's good enough to tell us anything new about the actual cell, that'll be pretty cool.
- jkarr 14y agoWe used a combination of representing copy numbers of molecular species and representing individual molecules of a few specific types: DNA polymerase, RNA polymerase, ribosome, FtsZ
- joe_the_user 14y agoMy vague Googling gets that a human being has 50-100 trillion cells. So Moore's law would say a full human simulation might be 80 years away if it keeps up. I wonder if an organ could be simulated taking a smaller selection of cells, determining their characteristic interactions and extrapolating from there. 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?
- praxulus 14y agoOn the one hand, a human cell is many times more complex than the cell simulated here (you could say that each of the hundreds of organelles in a human cell are closer in size and complexity to a bacterium than the whole cell). On the other hand, you could throw a datacenter at the problem, and get quite a leap over the 128-machine cluster used by the researchers. 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.
- technotony 14y agoHuman's have 23,000 genes, vs 525 in this organism. On the assumption that complexity increases with the square of the number of genes you would need 245,000 computers today to simulate one human cell. And it could be more than that because of RNA etc.
- radicalcut 14y agoHuman cells may have tens of times more forms of proteins expressed from these 23,000 genes if you take into account alternative splicing of pre-mRNA and many other post-translational modifications. These are all processes which prokaryotic organisms like M. genitalium generally lack. 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.
- paulsutter 14y ago“The model presented by the authors ... should be commended for its audacity alone" Audacity, yes we do need more of that. pg says that tenacity if the single most important trait of an entrepreneur. Maybe audacity is a multiplier that brings us the big innovations.
- dllthomas 14y agoaudacity + tenacity => high variance
- pbw 14y agohttp://www.stanford.edu/~jkarr/research.html http://www.stanford.edu/~jkarr/research.html look for "more information" links to animations, etc. http://wholecell.stanford.edu/ http://wholecell.stanford.edu/ contains a link to the code (written in matlab)
- alexholehouse 14y agoThis is very exciting progress, but let's remember that there is a rather important caveat with this sort of thing; "For their computer simulation, the researchers had the advantage of extensive scientific literature on the bacterium. They were able to use data taken from more than 900 scientific papers to validate the accuracy of their software model." This is not (necessarily) a model of M. genitalium - it's a model of our understanding of M. genitalium, and as such incorporates in everything that current technology in biological sciences allows us to look at. It takes a huge amount of data from many sources and tries to bring it together on a scale not previously done. However, that data may have significant flaws, biases and ultimately considers only what we're good at looking at (technologically/scientifically speaking). It's awesome, and 100% the right direction for the field, but equally it is not a, "synthetic life form being simulated" as much as, "a very very complicated model which uses huge amounts of multidimensional data to try and replicate the behavior seen in that data".
- apl 14y agoWith a data base consisting of hundreds of largely independent findings, it'd take one hell of a systematic bias to not get at least something right. Granted, they're obviously abstracting here, but we should avoid underplaying this achievement as much as overestimating it.
- kens 14y agoThat's true of any simulation or model - it's only as good as the data that goes into it. The exciting thing is that with this model, they can now rapidly iterate between the behavior of the model and the behavior of the real organism, see where the gaps in knowledge are, and work to fill them in. (I'm happy to see M. Genitalium getting attention, since I made a Java genome display for it 14 years ago http://www.righto.com/java/genome/MG.html http://www.righto.com/java/genome/MG.html)
- pbhjpbhj 14y ago>That's true of any simulation or model -it's only as good as the data that goes into it. // Models can be predictive, indeed that's one of the main reasons to create a model to observe behaviour that otherwise might not have been expected. A theory in physics for example is a model with proven predictive powers, the model [theory] 'knows' some aspects of what can be observed before those things can be confirmed empirically. But as you indicate new empirical data can shows flaws in a model just as it can in a scientific theory.
- deleted 14y ago[deleted]
- praptak 14y agoThere is a patent on that: http://www.google.com/patents/US5621671 http://www.google.com/patents/US5621671 "Digital simulation of organismal growth." Draw your own conclusions.
- nosse 14y agoIt's only for Drosophilia embryo. https://en.wikipedia.org/wiki/Drosophilia https://en.wikipedia.org/wiki/Drosophilia Owned by U.S. Navy, issued 1987 so it's free now.
- sgoranson 14y agoSo if we ran this simulation for 4 billion years would it pass the Turing test?
- tpowell 14y agoWe need Digg back for comments on stories like this...
- SoftwareMaven 14y agoI would love to see this software on Github and to watch the organism "evolve" in different forks into different virtual organisms. A very meta-biological-software thing.
- nagrom 14y agoWell, the comment above yours says that the whole thing is available: http://news.ycombinator.com/item?id=4272721 http://news.ycombinator.com/item?id=4272721 There's nothing to stop you from creating a Github project with all that information yourself. In my experience, physics researchers are not familiar with GitHub or similar OSS hosting sites. The omission of a Github project is likely through ignorance or apathy, rather than disapproval. I'd be happy (delighted!) for you to take my own physics simulations and play with them, for example.
- dailo10 14y agoWhile reading this, the Matrix crossed my mind: What if we're just living in a giant simulation? What level of computing power would it take to run the planet Earth?
- usefulcat 14y ago“The major modeling insight we had a few years ago was to break up the functionality of the cell into subgroups which we could model individually, each with its own mathematics, and then to integrate these sub-models together into a whole,” Dr. Covert said. “It turned out to be a very exciting idea.” I gotta say, if I was going to be working on that code, that statement would make me rather uncomfortable.
- siavosh 14y agoAs an undergrad, I did some research work in a bio-computation lab trying to model the basal ganglia (a part of your brain that helps you move and learn). I left shaking my head at how much guess work, "fine-tuning", and hand waving there was in the field. The biologists didn't appreciate how crappy code can deceive and the engineers didn't appreciate the mind-boggling complexity and non-imperative world of biological systems. I can't even imagine how much parameter tuning and hacks went into a model of such staggering complexity. Paraphrasing one of my old academic advisors, the curse of models is that you can always make them look good.
- martindale 14y agoDoes it emulate mitosis? Can we artificially emulate mutations?
- mtinkerhess 14y agoIn designing their model, the scientists chose an approach called object-oriented programming, which parallels the design of modern software systems. Software designers organize their programs in modules, which communicate with one another by passing data and instructions back and forth. Similarly, the simulated bacterium is a series of modules that mimic the various functions of the cell. Pretty cool that a relatively mass-market outlet like the Times thought it was worth mentioning OOP. Even as a software developer, it's a stretch for me to visualize what it means to simulate an organism; what a difficult job for the Times to distill it down into a couple of paragraphs for a lay audience.
- dedward 14y agoAnyone else recall a Greg Egan story along these lines? can't recall the name.
- RobertKohr 14y agoYep, Permutation City - the human brain was scanned at super high resolution (was able to snapshot the current state of all cells). Then it was able to be run in a simulated world with simulated sensory inputs. And of course multiple copies could be run. I am really just scratching the surface of what was covered, but it was a great book and I would recommend it for anyone interested in simulated life.