1 / 38

Modelling Systems Biology Patterns with MATLAB and SimBiology

Headquarters: Natick, Massachusetts USAUSA: California, Michigan, Washington DC, TexasEurope: UK, France, Germany, Switzerland, Italy, Spain, The Netherlands, SwedenAsia-Pacific: Korea, Australia, ChinaDistributors in 25 countries. The MathWorks at a Glance. Earth's topography on an equidist

taini
Download Presentation

Modelling Systems Biology Patterns with MATLAB and SimBiology

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    1. Modelling Systems Biology Patterns with MATLAB and SimBiology

    2. Headquarters: Natick, Massachusetts USA USA: California, Michigan, Washington DC, Texas Europe: UK, France, Germany, Switzerland, Italy, Spain, The Netherlands, Sweden Asia-Pacific: Korea, Australia, China Distributors in 25 countries The MathWorks at a Glance Here is some real quick introductory information about TMW for those less familiar with the company Our corporate headquarters are located in Natick, Massachusetts In the US, we have addl field personnel here in Detroit serving our Automotive customers and in California, Washington, and Texas serving customers in aerospace and defense. The MathWorks also has offices throughout Europe, and in Korea. Elsewhere in the world we are represented by distributors that sell and support our products in their regions marked in grey Here is some real quick introductory information about TMW for those less familiar with the company Our corporate headquarters are located in Natick, Massachusetts In the US, we have addl field personnel here in Detroit serving our Automotive customers and in California, Washington, and Texas serving customers in aerospace and defense. The MathWorks also has offices throughout Europe, and in Korea. Elsewhere in the world we are represented by distributors that sell and support our products in their regions marked in grey

    3. Agenda

    4. Technical Computing Workflow (CLICK) The first step in this workflow is to get your data well call this our Access step. MATLAB provides many ways to do this Through files on disk. It might be an Excel file, or a plain text file. Through other S/W applications perhaps a data acquisition system, or another programming language Or it could be through H/W, such as T&M equipment, or a set of sensors (CLICK) Once inside MATLAB, we have the Explore & Discover step. This is really why youre using MATLAB to find something out about your problem - you might say youre here to decide something - to make a decision. Some of the specific tasks you might do in MATLAB include: Data Analysis Algorithm Development Creating and developing applications These are the things that MATLAB is well known for. Now whats your next step? (CLICK) Well, in most cases, you have to do something actionable with your results. In my case it was to create a report that I had to share with my colleagues. This is what we call our Share step. Also - as Lisa highlighted during the introduction, your work may be directly involved in a particular aspect of the design process so your results might feed your downstream design tools. Thats the case here, as well. Or if youve created an application, you may want to deploy it to another environment perhaps by creating a stand-alone application for someone else, or even integrating it into another environment, such as Excel. Well use this workflow throughout the day to help us in our discussions. Hopefully youll see that MATLABs integration allows all of these steps to be managed from a single environment. One other important factor to consider as we look at this workflow is that engineering and science often requires us to repeat our steps perhaps because we have new design constraints, or someones asked us to refine our analysis approach or we just have additional data that needs to be analyzed. (CLICK) MATLAB provides a convenient way to automate the work that youve done, so that you can easily reuse it moving forward. This will be an important part of todays discussion including how I created this report. (CLICK) The first step in this workflow is to get your data well call this our Access step. MATLAB provides many ways to do this Through files on disk. It might be an Excel file, or a plain text file. Through other S/W applications perhaps a data acquisition system, or another programming language Or it could be through H/W, such as T&M equipment, or a set of sensors (CLICK) Once inside MATLAB, we have the Explore & Discover step. This is really why youre using MATLAB to find something out about your problem - you might say youre here to decide something - to make a decision. Some of the specific tasks you might do in MATLAB include: Data Analysis Algorithm Development Creating and developing applications These are the things that MATLAB is well known for. Now whats your next step? (CLICK) Well, in most cases, you have to do something actionable with your results. In my case it was to create a report that I had to share with my colleagues. This is what we call our Share step. Also - as Lisa highlighted during the introduction, your work may be directly involved in a particular aspect of the design process so your results might feed your downstream design tools. Thats the case here, as well. Or if youve created an application, you may want to deploy it to another environment perhaps by creating a stand-alone application for someone else, or even integrating it into another environment, such as Excel. Well use this workflow throughout the day to help us in our discussions. Hopefully youll see that MATLABs integration allows all of these steps to be managed from a single environment. One other important factor to consider as we look at this workflow is that engineering and science often requires us to repeat our steps perhaps because we have new design constraints, or someones asked us to refine our analysis approach or we just have additional data that needs to be analyzed. (CLICK) MATLAB provides a convenient way to automate the work that youve done, so that you can easily reuse it moving forward. This will be an important part of todays discussion including how I created this report.

    5. Technical computing in Life Sciences

    6. Key takeaways from this tutorial MATLAB A sophisticated environment for mathemathical modelling and data analysis Big set of functions and algorithms Easily extensible and programmable SimBiology An extension for Systems Biology modelling Graphic modelling capabilities, events, rules and stochastic solvers Tight integration with MATLAB

    7. Agenda

    8. Modeling workflow Building the model Graphical description of relations Representation of biochemical knowledge

    9. Example: The cell cycle Generic model for all cells Mediated by numerous external factors Big role in diseases like cancer

    10. Example: The cell cycle Cyclin + Cyclin dependent kinases are main components Cyclin mediated CDC activation / deactivation

    11. Goldbeter mitotic oscillator

    12. Modeling workflow Building the model Graphical description of relations Representation of biochemical knowledge

    13. Modeling workflow Building the model Graphical description of relations Representation of biochemical knowledge

    14. The MATLAB Environment High-level technical computing language Development environment Platform independent Feature areas Mathematics Graphics and GUI Design File I/O Call C/C++, Fortran, Java, COM Open and extensible SCRIPT: MATLAB is a high-level technical computing language letting you program in a similar way to a traditional language such as C or C++ but at a higher-level It contains interactive analysis tools letting you carry out many common tasks in a point and click way to let you experiment with ideas. This is all contained in an integrated development environment, a bit like visual studio, letting you manage your code, data and files. MATLAB contains more than a thousand language and interactive features for mathematics, graphics and GUI design, file I/O, and you can interface to other languages and technologies. TRANSITION: Lets now start MATLAB (mention using big fonts or turn them on and show them)SCRIPT: MATLAB is a high-level technical computing language letting you program in a similar way to a traditional language such as C or C++ but at a higher-level It contains interactive analysis tools letting you carry out many common tasks in a point and click way to let you experiment with ideas. This is all contained in an integrated development environment, a bit like visual studio, letting you manage your code, data and files. MATLAB contains more than a thousand language and interactive features for mathematics, graphics and GUI design, file I/O, and you can interface to other languages and technologies. TRANSITION: Lets now start MATLAB (mention using big fonts or turn them on and show them)

    15. Modeling workflow Building the model Graphical description of relations Representation of biochemical knowledge

    16. Optimization Toolbox Graphical and command line tools and solvers for: Linear and nonlinear programming Quadratic programming Nonlinear least-squares, data fitting, and nonlinear equations Multiobjective optimization Binary integer programming w/ that said the Optimization Toolbox extends ML with tools and popular solvers for both standard and large-scale optimization. These address the most popular optm problem areas including READ. w/ that said the Optimization Toolbox extends ML with tools and popular solvers for both standard and large-scale optimization. These address the most popular optm problem areas including READ.

    17. Agenda

    18. Parallel Computing Traditionally, working on a cluster means that you are running jobs in batch mode. In other words, you submit jobs to a cluster, leave the cluster to do your processing, and then come back at a later date to pick up your results; There is no interaction with your job whilst it is running. This can lead to many problems. For example, if something goes wrong in the code, then you have no way of finding out until you return to pick up the results. If there are errors in the code, then it is hard to debug the problem since it isnt possible to set a breakpoint and work interactively with your program. You may find yourself littering your code with print statements in order to diagnose what is going on. If your algorithm takes longer than anticipated to run, then it can also be very difficult to find out where the bottlenecks are in your code. The solution to this is to use the interactive programming capabilities of MATLAB and Parallel Computing Toolbox. Traditionally, working on a cluster means that you are running jobs in batch mode. In other words, you submit jobs to a cluster, leave the cluster to do your processing, and then come back at a later date to pick up your results; There is no interaction with your job whilst it is running. This can lead to many problems. For example, if something goes wrong in the code, then you have no way of finding out until you return to pick up the results. If there are errors in the code, then it is hard to debug the problem since it isnt possible to set a breakpoint and work interactively with your program. You may find yourself littering your code with print statements in order to diagnose what is going on. If your algorithm takes longer than anticipated to run, then it can also be very difficult to find out where the bottlenecks are in your code. The solution to this is to use the interactive programming capabilities of MATLAB and Parallel Computing Toolbox.

    19. Parallel Computing with MATLAB So that quick example has given you a taster of what we will be talking about today. So, what is the general philosophy of parallel computing with ML and SL? The bottom line is that the parallel computing tools let you coordinate and execute MATLAB operations on a pool of MATLAB workers, and the user does not have to worry too much about the specifics of the systems that are used. On the left, we have a local machine used to develop code machine. This is the machine that you normally use to run MATLAB, the parallel computing tools and perhaps MATLAB extensions. On the right, we have a pool of MATLAB workers, which could represent a local multi-core processor or a remote cluster. The Parallel Computing tools allow to develop and test parallel code, to send jobs to and retrieve results from the pool of MATLAB workers. On each node of the pool, we start up a special instance of MATLAB that can only be invoked using the Parallel Computing tools. So that quick example has given you a taster of what we will be talking about today. So, what is the general philosophy of parallel computing with ML and SL? The bottom line is that the parallel computing tools let you coordinate and execute MATLAB operations on a pool of MATLAB workers, and the user does not have to worry too much about the specifics of the systems that are used. On the left, we have a local machine used to develop code machine. This is the machine that you normally use to run MATLAB, the parallel computing tools and perhaps MATLAB extensions. On the right, we have a pool of MATLAB workers, which could represent a local multi-core processor or a remote cluster. The Parallel Computing tools allow to develop and test parallel code, to send jobs to and retrieve results from the pool of MATLAB workers. On each node of the pool, we start up a special instance of MATLAB that can only be invoked using the Parallel Computing tools.

    20. Easier Parallel Programming Example: Transposing a Distributed Matrix The simplest example to show our parallel computing capabilities is to transpose a matrix. When you transpose a matrix, the rows become columns and the columns become rows. If the matrix is distributed across processors, when you transpose it, all processors have to send (and receive) their pieces of the matrix to other processors to get together to the final result. Lets suppose that a user using FORTRAN and MPI wants to transpose a large matrix distributed in many processors. Then, lets compare it with the equivalent algorithm written using DC and MPI. How would a user transpose a matrix using the new parallel computing capabilities? They would need to write 2 lines of code Distribute an array across the cluster Apply the transpose function to the distributed array The beauty of what is going here is not only that the code is very short, it is also the same syntax/functions that users will write to transpose a matrix located in their local machines. Benefits of working with distributed arrays and parallel algorithms: The amount of computation performed by each individual processor is reduced, resulting in faster processing And the problem data size can be increased by using memory available on multiple processors. Because the ability to view related data distributed across processors as a single array closely matches the serial programming model, the transition from serial to parallel programming is smoother than using, for example, MPI. Until now, this transition was so hard that stopped people from going parallel. With our parallel computing capabilities, users can continue prototyping and developing algorithms with MATLAB even if they run in a cluster.The simplest example to show our parallel computing capabilities is to transpose a matrix. When you transpose a matrix, the rows become columns and the columns become rows. If the matrix is distributed across processors, when you transpose it, all processors have to send (and receive) their pieces of the matrix to other processors to get together to the final result. Lets suppose that a user using FORTRAN and MPI wants to transpose a large matrix distributed in many processors. Then, lets compare it with the equivalent algorithm written using DC and MPI. How would a user transpose a matrix using the new parallel computing capabilities? They would need to write 2 lines of code Distribute an array across the cluster Apply the transpose function to the distributed array The beauty of what is going here is not only that the code is very short, it is also the same syntax/functions that users will write to transpose a matrix located in their local machines. Benefits of working with distributed arrays and parallel algorithms: The amount of computation performed by each individual processor is reduced, resulting in faster processing And the problem data size can be increased by using memory available on multiple processors. Because the ability to view related data distributed across processors as a single array closely matches the serial programming model, the transition from serial to parallel programming is smoother than using, for example, MPI. Until now, this transition was so hard that stopped people from going parallel. With our parallel computing capabilities, users can continue prototyping and developing algorithms with MATLAB even if they run in a cluster.

    21. Parallel for-Loops parfor i = 1 : n % do something with i end Mix task-parallel and serial code in the same function Run loops on a pool of MATLAB resources Iterations must be order-independent M-Lint analysis helps in converting existing for-loops into to parfor-loops So let me summarize what you learned about parfor loops. Parfor loops provide an easy way of converting your serial code into something that will run in distributed mode; it is a task-parallel language construct. Parfor loops are written in the same functions as your serial code, and MATLAB will automatically run the code inside the loop on a matlabpool, if there is one running. You can start up additional MATLAB sessions using the matlabpool command. These additional MATLAB sessions may reside on your cluster, or even on your local machine. You can think of the matlabpool as being a bit like being able to connect to many different printers on your PC. M-Lint analysis now works on parfor loops, making it easier for you to identify if your existing for loops can simply be modified to parfor with no additional changes. So let me summarize what you learned about parfor loops. Parfor loops provide an easy way of converting your serial code into something that will run in distributed mode; it is a task-parallel language construct. Parfor loops are written in the same functions as your serial code, and MATLAB will automatically run the code inside the loop on a matlabpool, if there is one running. You can start up additional MATLAB sessions using the matlabpool command. These additional MATLAB sessions may reside on your cluster, or even on your local machine. You can think of the matlabpool as being a bit like being able to connect to many different printers on your PC. M-Lint analysis now works on parfor loops, making it easier for you to identify if your existing for loops can simply be modified to parfor with no additional changes.

    22. Large Data Sets (Data Parallel) With large data sets I can break it into pieces and spread them across several computers. This mode of operation is called Data Parallel all of the machines in the cluster work together on the same task, but each machine has different data. This kind of problem is also referred to as SPMD (Single Program Multiple Data), or sometimes SIMD (Single Instruction, Multiple Data). For example here I can break this large matrix evenly into four pieces and have them spread across four computers. Now, this distribution thing by itself doesnt really do us any good. It will be nice to operate on this matrix too! Now, very basic operations like taking a sine or cosine are easy, we can simply take each element separately and apply a function. But what about complex linear algebra operations or even things like matrix multiplication or matrix transpose where the computers need to know what the data is on the other computers. In general this is not easy With large data sets I can break it into pieces and spread them across several computers. This mode of operation is called Data Parallel all of the machines in the cluster work together on the same task, but each machine has different data. This kind of problem is also referred to as SPMD (Single Program Multiple Data), or sometimes SIMD (Single Instruction, Multiple Data). For example here I can break this large matrix evenly into four pieces and have them spread across four computers. Now, this distribution thing by itself doesnt really do us any good. It will be nice to operate on this matrix too! Now, very basic operations like taking a sine or cosine are easy, we can simply take each element separately and apply a function. But what about complex linear algebra operations or even things like matrix multiplication or matrix transpose where the computers need to know what the data is on the other computers. In general this is not easy

    23. Demo: Monte Carlo Simulation of Coin Tossing tbdtbd

    24. During the First Monte Carlo Demo Dont forget to talk independence and parfor loops during the first Monte Carl Demo. This will set you up for the second demo which illustrates a case where loops are initially dependent. tbdtbd

    25. Demo: Monte Carlo Simulation of Coin Tossing tbdtbd

    26. Run Four Local Workers with a Parallel Computing Toolbox License Easily experiment with explicit parallelism on multicore machines Rapidly develop parallel applications on local computer Take full advantage of desktop power Separate computer cluster not required tbdtbd

    27. Scale Up to Cluster Configuration with No Code Changes tbdtbd

    28. Versatile Modes of Access Access to single or multiple clusters by single or multiple users (one-to-many, many-to-one)

    29. Agenda

    30. Systems biology with MATLAB: SimBiology Extend the MATLAB platform for systems biologists Gain insight into dynamic behavior of pathways and biological systems Communicate and exchange dynamic models

    31. Goldbeter mitotic oscillator in SimBiology

    32. Goldbeter mitotic oscillator

    33. What else can you do?

    34. Agenda

    35. Why use MATLAB & SimBiology for systems biology Building the model Graphical description of relations Representation of biochemical knowledge

    36. Why use MATLAB & SimBiology for systems biology Building the model Graphical description of relations Representation of biochemical knowledge

    37. Why use MATLAB & SimBiology for systems biology Building the model Graphical description of relations Representation of biochemical knowledge

    39. Note: Replace the center graphic with an image that is appropriate for your audience (automotive and telecom images are hidden beneath the airplane image) The MathWorks has numerous internal groups that provide a variety of services to our customers. These services range from free support and guidance to paid engagements that include deliverables. We will briefly review the type of services that each group provides its customers, but always remember that if you still have questions (now or in the future) about which service is best suited for you and your needs, you can always contact your account manager to discuss the options.Note: Replace the center graphic with an image that is appropriate for your audience (automotive and telecom images are hidden beneath the airplane image) The MathWorks has numerous internal groups that provide a variety of services to our customers. These services range from free support and guidance to paid engagements that include deliverables. We will briefly review the type of services that each group provides its customers, but always remember that if you still have questions (now or in the future) about which service is best suited for you and your needs, you can always contact your account manager to discuss the options.

More Related