Team:Groningen/Modelling/Characterization
From 2009.igem.org
(Difference between revisions)
m (Slight tweak) |
(Now also support for experiments measuring equilibrium uptake) |
||
Line 150: | Line 150: | ||
0.361791516e-6,0.332907991e-6,0.320748614e-6], | 0.361791516e-6,0.332907991e-6,0.320748614e-6], | ||
time:[60,300,600,1200,1800,3600] | time:[60,300,600,1200,1800,3600] | ||
- | /*[1.127*60,4.993*60,9.986*60,20.159*60,30.181*60,60.035*60]*/}}}; | + | /*[1.127*60,4.993*60,9.986*60,20.159*60,30.181*60,60.035*60]*/}}/*, |
+ | TODO: | ||
+ | {constants:{TODO},time:Infinity, | ||
+ | data:{AsinT:[TODO],AsT:[TODO]}}*/}; | ||
var varsToMutate = ['v5_K5','v5','k8_K7','k8','tauBbeta4','beta4','tauR_tauB','beta1_beta4']; | var varsToMutate = ['v5_K5','v5','k8_K7','k8','tauBbeta4','beta4','tauR_tauB','beta1_beta4']; | ||
Line 175: | Line 178: | ||
for(var a in e[i].constants) nc[a] = e[i].constants[a]; | for(var a in e[i].constants) nc[a] = e[i].constants[a]; | ||
- | // Simulate | + | if (e[i].AsT!=undefined) { // Vary time, with fixed AsT |
- | + | // Simulate | |
- | + | x0 = arsenicModelInitialization(nc,e[i].AsT); | |
+ | xt = simulate(x0,e[i].data.time,function(t,d){return arsenicModelGradient(nc,d);}); | ||
- | + | // Sum (squares of) errors, divided by the average value | |
- | + | var curcost = 0, n = 0; | |
- | + | for(var xn in e[i].data) { | |
- | + | if (xn=='time') continue; | |
- | + | var avgv = 0; | |
- | + | for(var j in e[i].data[xn]) avgv += e[i].data[xn][j]; | |
- | + | avgv /= e[i].data[xn].length; | |
- | + | for(var j in xt.timeKey) { | |
- | + | curcost += Math.pow((e[i].data[xn][j]-xt[xn][xt.timeKey[j]])/avgv,2); | |
- | + | n++; | |
+ | } | ||
} | } | ||
+ | cost += Math.sqrt(curcost/n); // Compute the square root of the average of the squares (RMS) | ||
+ | weight++; | ||
+ | } else if (e[i].time==Infinity) { // Vary AsT, with equilibrium | ||
+ | var avgv = {}; | ||
+ | for(var xn in e[i].data) { | ||
+ | avgv[xn] = 0; | ||
+ | for(var j in e[i].data[xn]) avgv[xn] += e[i].data[xn][j]; | ||
+ | avgv[xn] /= e[i].data[xn].length; | ||
+ | } | ||
+ | var curcost = 0, n = 0; | ||
+ | for(var j in e[i].data.AsT) { | ||
+ | // Simulate | ||
+ | xt = arsenicModelEquilibrium(nc,e[i].data.AsT[j]); | ||
+ | |||
+ | // Sum (squares of) errors, divided by the average value | ||
+ | for(var xn in e[i].data) { | ||
+ | if (xn=='AsT') continue; | ||
+ | curcost += Math.pow((e[i].data[xn][j]-xt[xn])/avgv,2); | ||
+ | n++; | ||
+ | } | ||
+ | } | ||
+ | cost += Math.sqrt(curcost/n); // Compute the square root of the average of the squares (RMS) | ||
+ | weight++; | ||
} | } | ||
- | |||
- | |||
// Set last solution | // Set last solution |
Revision as of 13:53, 5 October 2009
[http://2009.igem.org/Team:Groningen http://2009.igem.org/wiki/images/f/f1/Igemhomelogo.png]
|
---|
- Modelling
- DetailedModel
- Characterization
- Downloads
TODO: Talk about the devices we have and in what way we want to characterize them.
Uptake measurements
Time (min) | ||||||
---|---|---|---|---|---|---|
0 | 10 | 20 | 40 | 60 | ||
As(III)exT(0) (µM) | 0 | x | ||||
10 | x | x | x | x | x | |
20 | x | |||||
50 | x | |||||
100 | x |
To efficiently look at both time and concentration dependent processes we took samples as in the table on the right. Below we list all results, which have been used for fitting all necessary parameters.
TODO: List results. Take conversion from nmol/mg and mg/ml to µM and Vc/Vs into account.
best | cur | gradient | solved | |
---|---|---|---|---|
v5/K5 | ||||
v5 | ||||
K5 | ||||
k8/K7 | ||||
k8 | ||||
K7 | ||||
tauBbeta4 | ||||
tauB | ||||
beta4 | ||||
tauR | ||||
beta1 | ||||
E |
|
|
Loading graph...
| Loading graph...
|