# Team:Groningen/Brainstorm/Modelling

### From 2009.igem.org

m (Andere codes.) |
(Some small updates.) |
||

(36 intermediate revisions not shown) | |||

Line 1: | Line 1: | ||

+ | {{Team:Groningen/Header}} | ||

+ | [[Category:Team:Groningen/Roles/Modeller]] | ||

+ | |||

+ | |||

==Software tools from previous years== | ==Software tools from previous years== | ||

Line 5: | Line 9: | ||

*Molecular/genetic Circuit (?), (small) systems of (non-linear) ODEs | *Molecular/genetic Circuit (?), (small) systems of (non-linear) ODEs | ||

**[https://2008.igem.org/Team:Bologna/Modeling Bologna 2008], using Simulink (Mathworks) | **[https://2008.igem.org/Team:Bologna/Modeling Bologna 2008], using Simulink (Mathworks) | ||

- | **[https://2008.igem.org/Team:ETH_Zurich/Modeling/Switch_Circuit ETH Zurich 2008], using the | + | **[https://2008.igem.org/Team:ETH_Zurich/Modeling/Switch_Circuit ETH Zurich 2008], using the SimBiology toolbox in Matlab |

**[https://2008.igem.org/Team:iHKU/modeling IHKU 2008] | **[https://2008.igem.org/Team:iHKU/modeling IHKU 2008] | ||

- | **(?)[https://2008.igem.org/Team:Istanbul/Modeling Istanbul 2008], using the | + | **(?)[https://2008.igem.org/Team:Istanbul/Modeling Istanbul 2008], using the SimBiology toolbox |

- | **[https://2008.igem.org/Team:LCG-UNAM-Mexico/Modeling LCG-UNAM-Mexico 2008], using the | + | **[https://2008.igem.org/Team:LCG-UNAM-Mexico/Modeling LCG-UNAM-Mexico 2008], using the SimBiology toolbox |

**[https://2008.igem.org/Team:NTU-Singapore/Modelling/Deterministic_Modeling NTU Singapore 2008], using Simulink, [http://www.sbtoolbox2.org/main.php Systems Biology Toolbox 2] (sensitivity analysis) and [http://www.cellware.org/index.html CellWare] (stochastic analysis) | **[https://2008.igem.org/Team:NTU-Singapore/Modelling/Deterministic_Modeling NTU Singapore 2008], using Simulink, [http://www.sbtoolbox2.org/main.php Systems Biology Toolbox 2] (sensitivity analysis) and [http://www.cellware.org/index.html CellWare] (stochastic analysis) | ||

**[https://2008.igem.org/Team:Purdue/Modeling Purdue 2008], using Excel and Mathcad | **[https://2008.igem.org/Team:Purdue/Modeling Purdue 2008], using Excel and Mathcad | ||

Line 15: | Line 19: | ||

**[https://2008.igem.org/Team:Freiburg/Modeling Freiburg 2008], using Matlab | **[https://2008.igem.org/Team:Freiburg/Modeling Freiburg 2008], using Matlab | ||

**[https://2008.igem.org/Team:Johns_Hopkins/Applications Johns Hopkins 2008], using Matlab (for population dynamics of yeast) | **[https://2008.igem.org/Team:Johns_Hopkins/Applications Johns Hopkins 2008], using Matlab (for population dynamics of yeast) | ||

+ | **[https://2008.igem.org/Team:Michigan/Project/Modeling Michigan 2008], using Mathematica | ||

+ | **[https://2008.igem.org/Team:UNIPV-Pavia/Modeling Pavia 2008], using Matlab and Simulink | ||

+ | **[https://2008.igem.org/Team:University_of_Ottawa/Modeling Ottawa 2008], using Matlab | ||

+ | **[https://2008.igem.org/Team:University_of_Washington/Modeling Washington 2008], using Mathematica | ||

+ | **[https://2008.igem.org/PHA_Project_Modeling Tsinghua 2008], using Matlab | ||

+ | **[https://2008.igem.org/Team:BCCS-Bristol/Modeling-GRN BCCS-Bristol 2008], Matlab | ||

+ | **[https://2008.igem.org/Team:Groningen/modeling_SingleCell.html Groningen 2008!], using Matlab and some custom tools to construct the models | ||

+ | **[https://2008.igem.org/Team:KULeuven/Model/Overview KULeuven], using Matlab and Celldesigner, site done very decently | ||

+ | **[https://2008.igem.org/Team:Montreal/Modeling Montreal], using Mathematica | ||

+ | **[https://2008.igem.org/Team:Paris/Analysis Paris 2008], using BIOCHAM | ||

+ | **[https://2008.igem.org/Team:UCSF/Modeling UCSF], using Matlab, [[User:Kbover|Klaas Bernd]]: perhaps for growth stages? | ||

+ | **[https://2008.igem.org/Team:Cambridge/Modelling Cambridge], using an unspecified tool | ||

+ | **[https://2008.igem.org/Team:Imperial_College/Dry_Lab Imperial College Londen], using Matlab | ||

+ | **[https://2008.igem.org/Team:Peking_University/Modeling Peking], using SimBiology | ||

*Cell processes | *Cell processes | ||

**[https://2008.igem.org/Modeling Calgary 2008], using their own tool (transcription and translation) | **[https://2008.igem.org/Modeling Calgary 2008], using their own tool (transcription and translation) | ||

+ | **[https://2008.igem.org/Team:Waterloo/Modeling Waterloo 2008], using [http://theileria.ccb.sickkids.ca/CellSim/overview.php Cell++] | ||

*Static genome analysis (?) | *Static genome analysis (?) | ||

**[https://2008.igem.org/Team:ETH_Zurich/Modeling/Genome_Static_Analysis ETH Zurich 2008], using their own tool | **[https://2008.igem.org/Team:ETH_Zurich/Modeling/Genome_Static_Analysis ETH Zurich 2008], using their own tool | ||

*Genome Scale Model (whole cell response) | *Genome Scale Model (whole cell response) | ||

**[https://2008.igem.org/Team:ETH_Zurich/Modeling/Genome-Scale_Model ETH Zurich 2008], using the [http://gcrg.ucsd.edu/Downloads/Cobra_Toolbox Cobra Toolbox] for Matlab | **[https://2008.igem.org/Team:ETH_Zurich/Modeling/Genome-Scale_Model ETH Zurich 2008], using the [http://gcrg.ucsd.edu/Downloads/Cobra_Toolbox Cobra Toolbox] for Matlab | ||

+ | **?[https://2008.igem.org/Team:Wisconsin/Modeling Wisconsin 2008], using GAMS | ||

*Chemostat simulation | *Chemostat simulation | ||

**[https://2008.igem.org/Team:ETH_Zurich/Modeling/Chemostat_Selection ETH Zurich 2008], using their genome scale model data | **[https://2008.igem.org/Team:ETH_Zurich/Modeling/Chemostat_Selection ETH Zurich 2008], using their genome scale model data | ||

*Cell movement | *Cell movement | ||

**[https://2008.igem.org/Team:iHKU/modeling IHKU 2008], as random walks | **[https://2008.igem.org/Team:iHKU/modeling IHKU 2008], as random walks | ||

- | **[https://2008.igem.org/Team:University_of_Lethbridge/Modeling | + | **[https://2008.igem.org/Team:University_of_Lethbridge/Modeling Lethbridge 2008], using [http://www.pdn.cam.ac.uk/groups/comp-cell/BCT.html BCT] (a tool to model the chemotaxis pathway of E. Coli?) |

+ | **[https://2008.igem.org/Chemotaxis_Modeling Tsinghua 2008], using their own code? | ||

+ | *Group behaviour | ||

+ | **[https://2008.igem.org/Team:BCCS-Bristol/Modeling-Agent_Based BCCS-Bristol 2008], movement of groups of cells, using a home-grown Java tool | ||

+ | **[https://2008.igem.org/Team:Groningen/modeling_Spatial.html Groningen 2008!], spatial interaction | ||

+ | **[https://2008.igem.org/Team:Heidelberg/Modeling Heidelberg], two population distributions and some substance concentrations using custom Matlab code | ||

+ | **[https://2008.igem.org/Team:Montreal/Modeling Montreal], interaction in Repressilator network, using Mathematica | ||

+ | **[https://2008.igem.org/Team:Cambridge/Modelling#Modelling_the_complete_agr-quorum_sensing_system Cambridge], quorum sensing | ||

+ | **[https://2008.igem.org/Team:Imperial_College/Dry_Lab Imperial College Londen], growth curve and motility, using Matlab | ||

+ | *Mutation | ||

+ | **[https://2008.igem.org/Team:Peking_University/Modeling Peking] | ||

Other potentially interesting software tools: | Other potentially interesting software tools: | ||

*[https://2008.igem.org/Team:UC_Berkeley_Tools UC Berkeley's Clotho] | *[https://2008.igem.org/Team:UC_Berkeley_Tools UC Berkeley's Clotho] | ||

+ | *[http://sbml.org/ SBML], a standard to define models. | ||

+ | *[https://2008.igem.org/Team:KULeuven/Software/Simbiology2LaTeX KU Leuven's Simbiology2LaTeX] | ||

+ | |||

+ | ==Interactive Graphs?== | ||

+ | It might be interesting to use JavaScript to present simulation results. This would allow for some degree of interaction (like resizing graphs, linked views, etc.) and may even make it somewhat easier to use graphs, we'd simply have some on-line repository of simulation results (a spreadsheet for example) and we could select which graphs to use on the Wiki. | ||

+ | |||

+ | Below an example of a JavaScript generated graph is shown, based on [http://spreadsheets.google.com/pub?key=rRnyFyi-bgqsjT3SdJBdKKw this spreadsheet]. Note that the two views of the data are linked (although at this time both the kind of graph and the link is not optimal) and that it would be possible to create templates for creating these linked graphs. The current demo is based on [http://www.dojotoolkit.org/ the Dojo Toolkit] as it has more advanced charting capabilities at this moment than Google visualization (and it seems to be supported well in different browsers). | ||

+ | |||

+ | {{GraphHeader}} | ||

+ | |||

+ | {{graph|Team:Groningen/Graphs/Test}} | ||

+ | {{graph|Team:Groningen/Graphs/Test2}} | ||

+ | |||

+ | Questions that would have to be resolved include: | ||

+ | |||

+ | * How can we make this easy to use? | ||

+ | ** The graphs can now be defined using a more or less normal Wiki page and allow the use of templates. | ||

+ | * What kinds of plots do we need? | ||

+ | * How flexible do we need it to be? (Layout-wise.) | ||

+ | * Can we make it that flexible? (And still easy to use.) | ||

+ | <!--* Do we want to keep referring to parts of a spreadsheet or do we want to be able to select parts by the parameters used?--> | ||

+ | * Can we create a relatively easy way to let the viewer select different data for exploratory purposes? We will likely run more simulations than you would normally graph. | ||

+ | * How to support axis titles? | ||

+ | ** Currently done using some custom code (created by someone else and submitted to Dojo's bug tracker). | ||

+ | * ??? | ||

+ | |||

+ | Taking this idea (much) further it would even be possible to run simulations using JavaScript (and charting the results), based on SBML models. However, this would involve much, much more effort than just showing a few interactive plots. | ||

+ | |||

+ | ::Note that we did implement simulations in JavaScript, but based on a function that return the time-derivatives given the current state. In principle this is surprisingly fast (in some cases graphing was the bottle-neck, leading us to subsample the simulated time series for graphing purposes) and it should be relatively easy to adapt to other models. Note that we only used a very simple integration scheme though (so if your model requires a more advanced integration scheme you'll have to program it yourself). | ||

+ | |||

+ | =={{anchor|ModellingAGeneticCircuit}}Modelling a Genetic Circuit - TODO== | ||

+ | To model a genetic circuit the following must be done (TODO: more detail): | ||

+ | * Determine which genes are involved and how they are regulated??? | ||

+ | * Model gene transcription? (How?) Try to avoid this, try going directly to protein. | ||

+ | * Model gene translation? (How?) Try to avoid this, try going directly to protein. | ||

+ | * Model degradation? (How?) | ||

+ | * Model interaction of relevant substances. This requires reaction formulas for all the substances with (known) reaction rates, as well as information on how the substance diffuses (unless it is assumed the model is "well-mixed"). | ||

+ | * Link to the world outside the cell and macroscopic effects, like cell density. Note the medium is usually well-known. | ||

+ | * Create a kind of mind map of the processes involved to show how the model could be refined. | ||

+ | * Formulate what aspects of the modelling results are essential. So, for example that some concentration rises as a result of the presence of a substance, or that the bacteria actually float. (Can we use mathematical topology as a criterium?) | ||

+ | |||

+ | This can be done using one of the following methods: | ||

+ | * One [[Team:Groningen/Glossary#ODE|ordinary differential equation]] per substance involved, reflecting the different reaction formulas and rates. | ||

+ | * If the spatial distribution of substances needs to be taken into account [[Team:Groningen/Glossary#PDE|partial differential equations]] can be used. This is probably not necessary when talking about large numbers of bacteria. | ||

+ | * [[Team:Groningen/Glossary#SSA|Stochastic modelling]] can be used if needed (if we deal with very low concentrations for example). | ||

+ | |||

+ | Questions: | ||

+ | * What exactly is the role of a kinetic law in modelling a reaction? | ||

+ | ** A kinetic law is usually a generic equation describing the rate of a certain class of reactions in terms of the reactant concentrations and some constants. (For example the [[Team:Groningen/Glossary#MichaelisMenten|Michaelis-Menten equation]].) | ||

+ | |||

+ | ==Purpose of Modelling== | ||

+ | * Descriptive, it can help describe the system. | ||

+ | * As verification of the design. | ||

+ | * Predictive, it can help predict results to aid in selecting physical parameters. (How many copies of a gene? What concentrations? etc.) | ||

+ | * As tool in designing tests. What tests will give the best discrimination, etc. | ||

==Literature== | ==Literature== | ||

- | See our [[Team:Groningen/Literature | + | See our [[Team:Groningen/Literature|literature list]] for a full overview of all literature. For our team members that are looking for books on the subject, have a look under code [http://opc.ub.rug.nl/DB=1/SET=2/TTL=1/CLK?IKT=8110&TRM=605B 605B] (Bernoulliborg library, lower floor), as well as 605C/D/E (A and Z also exist but seem to be less interesting) and 610A (and possibly 625, 715). |

+ | {{Team:Groningen/Footer}} |

## Latest revision as of 17:06, 14 February 2010

## Software tools from previous years

- RNA folding (secondary structure)
- Alberta 2008, using RNAstructure and UNAFold (with a front-end), they used both programs (presumably to get an idea of the certainty)

- Molecular/genetic Circuit (?), (small) systems of (non-linear) ODEs
- Bologna 2008, using Simulink (Mathworks)
- ETH Zurich 2008, using the SimBiology toolbox in Matlab
- IHKU 2008
- (?)Istanbul 2008, using the SimBiology toolbox
- LCG-UNAM-Mexico 2008, using the SimBiology toolbox
- NTU Singapore 2008, using Simulink, Systems Biology Toolbox 2 (sensitivity analysis) and CellWare (stochastic analysis)
- Purdue 2008, using Excel and Mathcad
- TU Delft 2008, using CellDesigner and the Synthetic Biology Workbench for Matlab
- Edinburgh 2008, using COPASI
- Freiburg 2008, using Matlab
- Johns Hopkins 2008, using Matlab (for population dynamics of yeast)
- Michigan 2008, using Mathematica
- Pavia 2008, using Matlab and Simulink
- Ottawa 2008, using Matlab
- Washington 2008, using Mathematica
- Tsinghua 2008, using Matlab
- BCCS-Bristol 2008, Matlab
- Groningen 2008!, using Matlab and some custom tools to construct the models
- KULeuven, using Matlab and Celldesigner, site done very decently
- Montreal, using Mathematica
- Paris 2008, using BIOCHAM
- UCSF, using Matlab, Klaas Bernd: perhaps for growth stages?
- Cambridge, using an unspecified tool
- Imperial College Londen, using Matlab
- Peking, using SimBiology

- Cell processes
- Calgary 2008, using their own tool (transcription and translation)
- Waterloo 2008, using Cell++

- Static genome analysis (?)
- ETH Zurich 2008, using their own tool

- Genome Scale Model (whole cell response)
- ETH Zurich 2008, using the Cobra Toolbox for Matlab
- ?Wisconsin 2008, using GAMS

- Chemostat simulation
- ETH Zurich 2008, using their genome scale model data

- Cell movement
- IHKU 2008, as random walks
- Lethbridge 2008, using BCT (a tool to model the chemotaxis pathway of E. Coli?)
- Tsinghua 2008, using their own code?

- Group behaviour
- BCCS-Bristol 2008, movement of groups of cells, using a home-grown Java tool
- Groningen 2008!, spatial interaction
- Heidelberg, two population distributions and some substance concentrations using custom Matlab code
- Montreal, interaction in Repressilator network, using Mathematica
- Cambridge, quorum sensing
- Imperial College Londen, growth curve and motility, using Matlab

- Mutation

Other potentially interesting software tools:

- UC Berkeley's Clotho
- SBML, a standard to define models.
- KU Leuven's Simbiology2LaTeX

## Interactive Graphs?

It might be interesting to use JavaScript to present simulation results. This would allow for some degree of interaction (like resizing graphs, linked views, etc.) and may even make it somewhat easier to use graphs, we'd simply have some on-line repository of simulation results (a spreadsheet for example) and we could select which graphs to use on the Wiki.

Below an example of a JavaScript generated graph is shown, based on this spreadsheet. Note that the two views of the data are linked (although at this time both the kind of graph and the link is not optimal) and that it would be possible to create templates for creating these linked graphs. The current demo is based on the Dojo Toolkit as it has more advanced charting capabilities at this moment than Google visualization (and it seems to be supported well in different browsers).

Questions that would have to be resolved include:

- How can we make this easy to use?
- The graphs can now be defined using a more or less normal Wiki page and allow the use of templates.

- What kinds of plots do we need?
- How flexible do we need it to be? (Layout-wise.)
- Can we make it that flexible? (And still easy to use.)
- Can we create a relatively easy way to let the viewer select different data for exploratory purposes? We will likely run more simulations than you would normally graph.
- How to support axis titles?
- Currently done using some custom code (created by someone else and submitted to Dojo's bug tracker).

- ???

Taking this idea (much) further it would even be possible to run simulations using JavaScript (and charting the results), based on SBML models. However, this would involve much, much more effort than just showing a few interactive plots.

- Note that we did implement simulations in JavaScript, but based on a function that return the time-derivatives given the current state. In principle this is surprisingly fast (in some cases graphing was the bottle-neck, leading us to subsample the simulated time series for graphing purposes) and it should be relatively easy to adapt to other models. Note that we only used a very simple integration scheme though (so if your model requires a more advanced integration scheme you'll have to program it yourself).

## Modelling a Genetic Circuit - TODO

To model a genetic circuit the following must be done (TODO: more detail):

- Determine which genes are involved and how they are regulated???
- Model gene transcription? (How?) Try to avoid this, try going directly to protein.
- Model gene translation? (How?) Try to avoid this, try going directly to protein.
- Model degradation? (How?)
- Model interaction of relevant substances. This requires reaction formulas for all the substances with (known) reaction rates, as well as information on how the substance diffuses (unless it is assumed the model is "well-mixed").
- Link to the world outside the cell and macroscopic effects, like cell density. Note the medium is usually well-known.
- Create a kind of mind map of the processes involved to show how the model could be refined.
- Formulate what aspects of the modelling results are essential. So, for example that some concentration rises as a result of the presence of a substance, or that the bacteria actually float. (Can we use mathematical topology as a criterium?)

This can be done using one of the following methods:

- One ordinary differential equation per substance involved, reflecting the different reaction formulas and rates.
- If the spatial distribution of substances needs to be taken into account partial differential equations can be used. This is probably not necessary when talking about large numbers of bacteria.
- Stochastic modelling can be used if needed (if we deal with very low concentrations for example).

Questions:

- What exactly is the role of a kinetic law in modelling a reaction?
- A kinetic law is usually a generic equation describing the rate of a certain class of reactions in terms of the reactant concentrations and some constants. (For example the Michaelis-Menten equation.)

## Purpose of Modelling

- Descriptive, it can help describe the system.
- As verification of the design.
- Predictive, it can help predict results to aid in selecting physical parameters. (How many copies of a gene? What concentrations? etc.)
- As tool in designing tests. What tests will give the best discrimination, etc.

## Literature

See our literature list for a full overview of all literature. For our team members that are looking for books on the subject, have a look under code 605B (Bernoulliborg library, lower floor), as well as 605C/D/E (A and Z also exist but seem to be less interesting) and 610A (and possibly 625, 715).