An introduction to whole-cell modeling¶
Despite extensive research into individual molecules and pathways, we still do not have a complete understanding of cell biology. To comprehensively understand cells, we must build whole-cell (WC) computational models that predict phenotype from genotype by representing all of the biochemical activity inside cells. In addition to helping researchers gain novel insights into biology, WC models could also help bioengineers design microorganisms and help physicians personalize medicine. Recently, we and others demonstrated that WC models are feasible by leveraging recent advances in computational and experimental technology to build the first model that represents every characterized gene in a cell. Although substantial work remains to develop comprehensive WC models, we believe that WC models can be achieved by systemizing cell modeling and coordinating the cell modeling community.
The goals of this primer are to teach researchers about the motivation, goals, principles, and methods of WC modeling and to prepare researchers to contribute to WC modeling. Toward this goal, the primer includes introductory readings and hands-on tutorials on WC modeling, the fundamental principles and methods of cell modeling, computer programming and software engineering, Linux computer systems, and scientific communication. Section 1 introduces the motivation, goals, and fundamental challenges of WC modeling; describes why WC modeling is becoming feasible; summarizes the principles and methods of WC modeling; reviews the latest WC models and their limitations; outlines the major bottlenecks to WC modeling; proposes a plan for achieving WC models as a community; and describes ongoing work to advance WC modeling. Section 2 introduces several foundational concepts and skills for WC modeling including computer programming, Linux computer systems, and scientific communication. Section 3 outlines the theoretical foundations for WC modeling. Section 4 describes the principles and methods of WC modeling. Section 5 outlines several funding opportunities for WC modeling.
Please note, this primer is under active development. Over time, we aim to develop a complete primer with detailed examples and tutorials. We welcome suggestions and feedback.
- 1. Introduction
- 1.1. Motivation for WC modeling
- 1.2. The biology that WC models should aim to represent and predict
- 1.3. Fundamental challenges to WC modeling
- 1.4. Feasibility of WC models
- 1.5. Emerging principles and methods for WC modeling
- 1.6. Latest WC models and their limitations
- 1.7. Bottlenecks to more comprehensive and predictive WC models
- 1.8. Technologies needed to advance WC modeling
- 1.8.1. Experimental methods for characterizing cells
- 1.8.2. Tools for aggregating, standardizing, and integrating heterogeneous data
- 1.8.3. Tools for scalably designing models from large datasets
- 1.8.4. Rule-based format for representing models
- 1.8.5. Scalable network-free, multi-algorithmic simulator
- 1.8.6. Scalable tools for calibrating models
- 1.8.7. Scalable tools for verifying models
- 1.8.8. Additional tools that would help accelerate WC modeling
- 1.9. A plan for achieving comprehensive WC models as a community
- 1.10. Ongoing efforts to advance WC modeling
- 1.11. Resources for learning about WC modeling
- 1.12. Outlook
- 2. Foundational concepts and skills for computational biology
- 2.1. Typing
- 2.2. Software engineering
- 2.2.1. An introduction to Python
- 2.2.2. Numerical computing with
NumPy
- 2.2.3. Plotting data with
matplotlib
- 2.2.4. Developing database, command line, and web-based programs with Python
- 2.2.5. Writing code for Python 2 and 3
- 2.2.6. Organizing Python code into functions, classes, and modules
- 2.2.7. Structuring Python projects
- 2.2.8. Revisioning code with Git, GitHub, and Meld
- 2.2.9. Testing Python code with unittest, pytest, and Coverage
- 2.2.10. Debugging Python code using the PyCharm debugger
- 2.2.11. Documenting Python code with Sphinx
- 2.2.12. Continuously testing Python code with CircleCI, Coveralls, Code Climate, and the Karr Lab’s dashboards
- 2.2.13. Distributing Python software with GitHub, PyPI, Docker Hub, and Read The Docs
- 2.2.14. Recommended Python development tools
- 2.2.15. Comparison between Python and other languages
- 2.3. Linux
- 2.4. Version and sharing data with Quilt
- 2.5. Scientific communication: papers, presentations, graphics
- 3. Fundamentals of cell modeling
- 3.1. Data aggregation
- 3.2. Input data organization
- 3.3. Model design
- 3.4. Model calibration
- 3.5. Model representation
- 3.6. Model annotation
- 3.7. Model composition
- 3.8. Mathematical representations and simulation algorithms
- 3.8.1. Boolean/logical models
- 3.8.2. Ordinary differential equations (ODEs)
- 3.8.3. Stochastic simulation
- 3.8.4. Network-free simulation
- 3.8.5. Flux balance analysis (FBA)
- 3.8.6. Hybrid/multi-algorithmic simulation
- 3.8.7. Reproducing stochastic simulations
- 3.8.8. Simulation descriptions
- 3.8.9. Software tools
- 3.8.10. Exercises
- 3.9. Model testing
- 3.10. Logging simulation results
- 3.11. Organizing simulation results
- 3.12. Quickly analyzing large simulation results
- 3.13. Rule-based Modeling with BioNetGen, BNGL, and RuleBender
- 4. Principles and methods of WC modeling
- 4.1. Units of WC models
- 4.2. Using the wc_lang package to define whole-cell models
- 4.3. Using wc_env_manager build, version, and sharing computing environments for WC modeling
- 4.3.1. How wc_env_manager works
- 4.3.2. Installing wc_env_manager
- 4.3.3. Using wc_env_manager to build and share images for WC modeling
- 4.3.4. Using wc_env_manager to create and run Docker containers for WC modeling
- 4.3.5. Using WC modeling computing environments with an external IDE such as PyCharm
- 4.3.6. Caveats and troubleshooting
- 5. Appendix: Funding WC modeling research
- 5.1. Graduate fellowships
- 5.2. Postdoctoral fellowships
- 5.3. Postdoc/faculty transition awards
- 5.4. Grants
- 5.4.1. Funding streams for your lab
- 5.4.2. Taxonomy of funding opportunities
- 5.4.3. Funding programs for early career investigators
- 5.4.4. Finding funding opportunities
- 5.4.5. Eligibility
- 5.4.6. Deadlines
- 5.4.7. Proposal process
- 5.4.8. Writing proposals
- 5.4.9. Typical costs for budgets
- 5.4.10. Submitting proposals
- 5.4.11. Peer review
- 5.4.12. Statistics (NIGMS)
- 5.4.13. Grant award process
- 5.4.14. Annual grant renewals
- 5.4.15. Advice for winning grants
- 5.4.16. Advice for resubmissions
- 6. Appendix: Installing the code in this primer
- 7. Appendix: Documentation for the code in this primer
- 8. Appendix: Acronyms
- 9. Appendix: Glossary
- 10. Appendix: References
- 11. Appendix: About this primer