User:Tom Adie/CS2

From OpenWetWare
Jump to navigationJump to search

<html> <style type="text/css"> .firstHeading {display: none;} </style> </html> <html> <style type="text/css">

   table.calendar          { margin:0; padding:2px; }

table.calendar td { margin:0; padding:1px; vertical-align:top; } table.month .heading td { padding:1px; background-color:#FFFFFF; text-align:center; font-size:120%; font-weight:bold; } table.month .dow td { text-align:center; font-size:110%; } table.month { background-color:#3366FF } table.month td {

   padding:0pt 1.5pt;
  1. bodyContent table.month a { background:none; padding:0 }

.day-active { font-weight:bold; } .day-empty { color:black; } </style> </html>

<html><style type="text/css">

div.Section { font:11pt/16pt Calibri, Verdana, Arial, Geneva, sans-serif; background-image: url(; background-size: 100%; background-origin: content; }

/* Text (paragraphs) */ div.Section p { font:11pt/16pt Calibri, Verdana, Arial, Geneva, sans-serif; text-align:justify; margin-top:0px; margin-left:30px; margin-right:30px; }

/* Headings */ div.Section h1 { font:22pt Calibri, Verdana, Arial, Geneva, sans-serif; text-align:left; color:#3366FF; font-weight:bold; }

/* Subheadings */ div.Section h2 { font:18pt Calibri, Verdana, Arial, Geneva, sans-serif; color:#3366FF; margin-left:5px; font-weight:bold; }

/* Subsubheadings */ div.Section h3 { font:22pt Calibri, Verdana, Arial, sans-serif; color:#E5EBFF; margin-left:10px; font-weight:bold; }

/* Subsubsubheadings */ div.Section h4 { font:22pt Calibri, Verdana, Arial, sans-serif; color:#2B48B3; margin-left:10px; font-weight:bold; }

/* Subsubsubsubheadings */ div.Section h5 { font:12pt Calibri, Verdana, Arial, sans-serif; color:#3366FF; margin-left:20px; }

/* References */ div.Section h6 { font:12pt Calibri, Verdana, Arial, sans-serif; font-weight:bold; font-style:italic; color:#3366FF; margin-left:25px; }

/* Hyperlinks */ div.Section a { }

div.Section a:hover { }

/* Tables */ div.Section td { font:11pt/16pt Calibri, Verdana, Arial, Geneva, sans-serif; text-align:justify; vertical-align:top; padding:2px 4px 2px 4px; }

/* Lists */ div.Section li { font:11pt/16pt Calibri, Verdana, Arial, Geneva, sans-serif; text-align:left; margin-top:0px; margin-left:30px; margin-right:0px; }

/* TOC stuff */ table.toc { margin-left:10px; }

table.toc li { font: 11pt/16pt Calibri, Verdana, Arial, Geneva, sans-serif; text-align: justify; margin-top: 0px; margin-left:2px; margin-right:2px; }

/* [edit] links */ span.editsection { color:#BBBBBB; font-size:10pt; font-weight:normal; font-style:normal; vertical-align:bottom; }

span.editsection a { color:#BBBBBB; font-size:10pt; font-weight:normal; font-style:normal; vertical-align:bottom; }

span.editsection a:hover { color:#3366FF; font-size:10pt; font-weight:normal; font-style:normal; vertical-align:bottom; }

/* Drop-down Menu */

  1. sddm {

margin: 0; padding: 0; z-index: 30 margin: 0; padding: 0; float: center; font: bold 12pt Calibri, Verdana, Arial, Geneva, sans-serif; border: 0px; list-style: none; }

  1. sddm a {

display: block; margin: 0px 0px 0px 0px; padding: 0 0 12px 0; color: #FFFFFF; text-align: center; text-decoration: none; }

  1. sddm a:hover {

border: 0px }

  1. sddm div {

position: absolute; visibility: hidden; margin: 0; padding: 0; background: #66aadd; border: 1px solid #66aadd } #sddm div a { position: relative; left: 0; display: block; margin: 0; padding: 5px 10px; width: auto; white-space: nowrap; text-align: left; text-decoration: none; background: #FFFFFF; color: #2875DE; font: 11pt Calibri, Verdana, Arial, Geneva, sans-serif } #sddm div a:hover { background: #66aadd; color: #FFFFFF } </style></html>

MRes Case Study 2

R Exercise 2 (ODE Solver)

RK4 solver:

  1. RK4 documentation
  2. Interface: rk4(y, times, func, parms, ...)
  3. Type >library(odesolve) to load the library that includes rk4
  4. Mailing list Q on rk4

Model: Constitutive gene expression

  1. ODE System:
    • d[mRNA]/dt = k_1 - d_1*[mRNA]
    • d[protein]/dt = k_2[mRNA] -d_2*[protein]

Questions (Done):

  • 1. Considering that the half-life for the mRNA and the protein is respectively 3min and 1h. Workout the values of (k_1, d_1, k_2, d_2) so that, at steady state, [mRNA] = 3 and [protein] = 500.

Using the relationship degradation rate = ln2 / half-life we get values of d1 = 0.23 and d2 = 0.012. At steady state, d[mRNA]/dt and d[Protein]/dt are set to 0. Rearranging gives


substituting in values of d1, d2 [mRNA] and [Protein] we find k1 = 3*0.23 = 0.69 and k2 = 0.012*500/3 = 2

  • 2. Using the previously found parameter values, plot on the same graph [mRNA](t) and [protein](t) for t=[0, 5h].

Concentrations at time t can be found using a step function as below:

ODE <- function(k1,d1,k2,d2,mrna,protein,t) {
for (i in 1:t) {
protein <- protein+k2*mrna-d2*protein
mrna <- mrna+k1-d1*mrna
cat("        t =",t,"\n")
cat("   [mRNA] =",mrna,"\n")
cat("[Protein] =",protein,"\n")
        t = 300 
   [mRNA] = 3 
[Protein] = 485.8966

this uses the parameters from above to output the values of [mRNA] and [Protein] at time t (where t is in minutes). Saving the values of t, [mRNA] and [Protein] after every step into concatenated lists, then saving those as a data set, would give me something to graph... But this doesn't use rk4!

  • 3. Parameter scanning: Consider parameter d_2 to vary [-20%, 20%] of its nominal value (10 uniformly spread values). Generate on the same graph the 10 [protein](t) trajectories (t=[0, 5h]).




  • Wavelength
  • Intensity
  • Stimulation time (pulse length)


  • Viability of cells (bearing in mind YtvA pathway triggers stress response)
  • PoPs

Simplification of model in words:

Default input taking waveform

  • Modify default spectrum; simply give file as default unless another is specified.

Black box

  • Convert spectrum to PoPS - ODEs

Give output

  • To sheet
  • Output parameters used if altered from default
  • Upload code and create links?

Stored on Zotero.

  1. One
  2. Two
  3. Three
  4. Four
  5. Five


One of the basic areas of synthetic biology that sets it apart from genetic engineering and molecular biology; the heavily-intertwined use of theoretical, computer-based modelling approaches and practical, wet-lab based research when producing and characterising a part, device or system. Modelling can be used to determine whether a system is viable - whether part A can deliver enough of its product naturally to trigger part B or whether it will require multiple copies behind strong promoters, for instance. Good modelling can save a huge amount of time in the long run by identifying dead-ends and ensuring lab time is focussed only on viable prospects.

To get to the heart of this project, it seems to be an oversight (and quite a shame) that there is no room on the spec sheet proposed by XXXX for any theoretical data. Labs that produce a part for use in a system may well model it beforehand to check if it will be viable, but they may not take the time to characterise it extensively in the lab after they have got it working (or may not be able to if they do not end up using it). The modelling therefore goes largely unused after its principal usage. I propose the design of a variant of the spec sheet produced by XXXX, an in silico spec sheet that contains information gained from modelling of a device before it is produced. Stored online or if distributed in PDF format, links could be included to download the relevant models and code so that they can be examined, tweaked or re-used by someone in another lab for their own benefit and the work of the team who modelled the part would not go to waste.

In this project I intend to...

The Model

The model I aim to construct describes a generic representation of a simplified light-sensitive promoter system. Running on default parameters it will produce a "default" graphic representation of the actions of such a promoter, which will then be output to a specifications sheet along with the associated parameters and code links. This should provide a quick way of producing an overview of a part that can be easily interpreted.

To increase the power of the model across a range of different devices, I aim to incorporate some user input. That is, one can enter any known parameters to overwrite the defaults and produce a model that more closely represents a specific network of molecular interactions or promoter system. So for example an experimentalist could shift the frequencies of light the promoter is sensitive to, alter the kinetics and check whether there will be interfering protein production from his system when it is exposed to incidental light sources that may be being used to trigger a different system.

My completed model will provide defaults for and take user input to override the spectrum of activation for the system, the kinetics of the production of mRNA and protein (intermediate steps being disregarded) and will allow a pulse of activation to be administered to the system. User-entered inputs will be reflected by the output, which will change accordingly and again give the graphical representation I desire on the in silico specifications sheet. The models used will be the same so the links out to those will be consistent, but the parameters used will be detailed on the sheet with a hyperlink or reference to the paper where the kinetics were documented if available.

This system will not only help people convert opaque kinetics they have found in the literature into more easy to parse information, but will also help others repeat the observations and edit them to suit their needs. Generic as the system is it will not be able to provide incredibly accurate answers or models, but it will offer a useful starting point; and the availability of the model with the specifications sheet should allow researchers to tailor it to their needs should they desire or require it.

The model will be written on the R software package, a free and powerful program which includes many user-built functions and is tailored for statistical data analysis and graphical modelling. Several options exist within R for solving problems such as those I will be undertaking in this exercise and the data given from those solutions should be easily manipulated graphically; this is preferred as I intend to detail those solutions on the specifications sheet directly.

The foundation of the model is a system of ODEs for the translation of the light impulse to mRNA to protein to activity. These are detailed in the code and the parameters are set by user input which overrides default values. The ODEs are solved, given initial conditions, using R's rk4 solver, which applies the classical Runge-Kutta method of 4th-order integration to find solutions at times throughout the progression of the system and outputs those values. These are then manipulated and displayed graphically.

The Spec Sheet

Description of what's on it, how it differs from F2620

The in silico specification sheet will include basic information about the inputs, outputs and transfer functions of the system being modelled. The inputs will consist of a range of frequencies which the system is sensitive to; additional inputs could include the pulse length required for a response, or the intensity of the light stimulus. These would benefit from being presented graphically and it would be of benefit, in my opinion, to include on the graph demarcations of frequencies of fluorescence of common reporters to help identify unsuitable reporters that may interfere with the system.

The transfer function of the model would be covered by a link to the model used itself, and to add background information to the sheet a diagram of the interactions that take place in the light system could be included. Any known parameters for those interactions could be included in such a diagram.

The output of the model would be described on the sheet as a graph of protein production over time given the input along with mRNA production and degradation. This is represented by a PoPS value, as light-inducible promoters can be thought of as light to PoPS converters.

Example Customisation

Need to find parameters for this though!