3-D Simulation of Multi Cells and Growth Model-A Case Study In
Total Page:16
File Type:pdf, Size:1020Kb
3-D Simulation of Multi Cells and Growth Model - A Case Study In CompuCell3D A thesis submitted to the Graduate School of the University of Cincinnati in partial fulfillment of the requirements for the degree of Master of Science in the School of Information Technology of the College of Education, Criminal Justice, and Human Services by Bhanu Sai Kishore Puvvala Bachelor of Engineering – Computer Science & Engineering Osmania University, India. November 2018 Committee Chair: Bilal Gonen, Ph.D. Abstract Computer simulation and modeling have become vital in the field of biology to study the growth and behavior of cell/ multi cells. Simulations of multi cell growth are mathematically complex and lack software that allows creating and running biological experiments without the knowledge of programming. Developers often build scientific applications in programming languages like C, Fortran to gain performance but reducing flexibility. To address this problem, we present a flexible, scalable problem solving environment for cell simulations called CompuCell3D that is based on object oriented programming. This paper studies the simulation framework CompuCell3D 3.7.6 and Python code base within CompuCell3D that allows users to build, test and run simulations. We also discuss the limitations of CompuCell3D and develop a python based application to address some of the limitations and evaluate their impact on application performance and usability. Keywords: CompuCell3D, Python, C++, cell growth, multi-cell modeling, tissue-level, modeling 2 3 Table of Contents Abstract........................................................................................................................................2 CHAPTER1: INTRODUCTION.................................................................................................7 1.1 Object Oriented Programming......................................................................................8 1.2 Research Objective........................................................................................................9 1.3 Contributions of Research...........................................................................................10 1.4 Organization of Research............................................................................................10 CHAPTER2: DESIGN OF COMPUCELL3D...........................................................................12 2.1 CompuCell3D Architecture......................................................................................12 2.2 Limitations of CompuCell3D...................................................................................17 2.3 Python Scripting in CompuCell3D...........................................................................18 2.4 Adding New Cells....................................................................................................26 CHAPTER3: COMPUCELL3D ENHANCEMENTS................................................................29 3.1 Building New Simulation in CompuCell3D................................................................29 3.2 Updating CC3DML Parameters Dynamically.............................................................29 3.3 Steppables....................................................................................................................33 3.4 Plots for Tracking........................................................................................................40 3.5 Saving Data Files.........................................................................................................42 3.6 Literature Review........................................................................................................42 3.7 Conclusion...................................................................................................................47 4 References...................................................................................................................................48 List of Figures Figure 1. CompuCell3D’s architecture.......................................................................................13 Figure 2. CompuCellPlayer Interface.........................................................................................17 Figure 3. CompuCell3D Simulation Wizard from Twedit++.....................................................19 Figure 4. Structure of CC3D Simulation Code...........................................................................20 Figure 5. Template of Main Python Script..................................................................................21 Figure 6. Specification of basic cell-sorting properties in Simulation Wizard...........................23 Figure 7. Printing cell ids using Python script............................................................................24 Figure 8. Specification of cell-sorting cell types in Simulation Wizard.....................................24 Figure 9. Selection of cell-sorting cell behaviors in Simulation Wizard....................................25 Figure 10. Xml Code of Cell Sort Simulation.............................................................................27 Figure 11. Inserting code snippet in Twedit++ to create cells....................................................28 Figure 12. Sample Simulation in CompuCell3D Player.............................................................29 Figure 13. ScriptAdder Application Interface.............................................................................30 Figure 14. Dynamic Steering Panel in CompuCell3D Player.....................................................31 Figure 15. Logs Showing the Initial Set Parameters...................................................................32 Figure 16. New Temperature and Interval in Steering Panel......................................................32 Figure 17. Logs Showing the Updated Temperature and Interval..............................................33 Figure 18. Existing PottsSteering Class with Temperature........................................................34 Figure 19. Xml code for Setting Initial Parameters....................................................................34 Figure 20. Xml code for Setting Contact Properties...................................................................35 Figure 21. New Temperature Steppable.....................................................................................36 5 Figure 22. Simulations of Cells with New Temperature............................................................37 Figure 23. New Steppable for Adding Steps to Steering Panel..................................................38 Figure 24. New Steppable for Adding Volume to Steering Panel..............................................39 Figure 25. Flip2DimRatio and NeighborOrder Steppables for Steering Panel..........................40 Figure 26. Plot window in CC3D Player....................................................................................41 Figure 27. Code to Add File Path for Saving Data Files............................................................42 Figure 28. Flowchart of GGH algorithm in CompuCell3D........................................................43 6 CHAPTER 1 INTRODUCTION A key challenge in modern biology is to understand how molecular-scale machinery leads to complex functional structures at the scale of tissues, organs, and organisms [2]. Experiments provide verification of biological hypotheses and models and simulations are useful in suggesting experiments to validate them. Conducting experiments is often time consuming and require material and equipment that is not very cost effective unlike building models. Biological models are fast to develop and are easy to modify at low cost. However, the complexity lies in implementing cells and tissues and their interactions into a mathematical model. Cell interactions can be modeled by using cell-density fields and partial differential equations (PDEs) without explicit representations of cells called as Continuum model. Another approach is Agent-based modeling which represent individual cells and interactions explicitly allow control of the level of detail with which individual cells are represented [19]. The Glazier-Graner-Hogeweg (GGH) model is a mathematical based tool that aids in mapping cell behaviors and interactions onto a small set of model parameters, that is helpful for biologists and in labs. GGH technique like all other models has an application domain for modeling tissues with motile cells at single-cell resolution. The GGH has been continuously applied to model biological and biomedical processes, including Tumor growth [2] and for many other medical purposes. 7 1.1 Object Oriented Programming Object Oriented Programming (OOP) is a computer programming model that improve the following factors of a software [20]. • Compatibility: the method promotes a common design style and standard • Reusability: Involves building index to store and retrieve reusable components. However, the difficulty of reuse is the need to combine reuse with adaptation. OOP makes it possible to retain some aspects of a reused module and adapt others. • Encapsulation: Users cannot modify the internal state of the object directly. Functions of an object can only access and modify its state. Interactions of how objects interface with other objects are defined within an object. Packages provide a better encapsulation technique than routines, as they gather a data structure