Team:Groningen/Modelling/Characterization

From 2009.igem.org

(Difference between revisions)
(Different mutate, more general output function, more variables.)
Line 210: Line 210:
}
}
-
function showOutputs(mode,E,c,dc) {
+
function fitConstants() {
-
   for(var a in c) {
+
   // Construct plots
-
    setOutput(a+mode,c[a]);
+
   constructPlot('v5K5plot');
-
   }
+
   constructPlot('k8K7plot');
-
  for(var a in mutateFuncs) {
+
-
    setOutput(a+mode,mutateFuncs[a](c));
+
-
  }
+
-
  setOutput('E'+mode,E);
+
-
   if (dc!=undefined) {
+
-
    for(var a in dc) {
+
-
      setOutput(a+mode+'gradient',dc[a]);
+
-
    }
+
-
  }
+
-
}
+
-
function fitConstants() {
 
   // Show mathematica solution
   // Show mathematica solution
   var orgC = arsenicModelConstants();
   var orgC = arsenicModelConstants();
Line 278: Line 267:
     }
     }
   },1);
   },1);
 +
}
 +
 +
function showOutputs(mode,E,c,dc) {
 +
  plotMin(v5K5plot,mutateFuncs.v5(c),mutateFuncs.K5(c),E);
 +
  plotMin(k8K7plot,mutateFuncs.k8(c),mutateFuncs.K7(c),E);
 +
  for(var a in c) {
 +
    setOutput(a+mode,c[a]);
 +
  }
 +
  for(var a in mutateFuncs) {
 +
    setOutput(a+mode,mutateFuncs[a](c));
 +
  }
 +
  setOutput('E'+mode,E);
 +
  if (dc!=undefined) {
 +
    for(var a in dc) {
 +
      setOutput(a+mode+'gradient',dc[a]);
 +
    }
 +
  }
 +
}
 +
 +
function constructPlot(id) {
 +
  var width = 100, height = 100;
 +
  var t = document.getElementById(id);
 +
  t.minx = Number.NaN;
 +
  t.miny = Number.NaN;
 +
  t.maxx = Number.NaN;
 +
  t.maxy = Number.NaN;
 +
  t.points = [];
 +
  t.createCaption();
 +
  t.style.width = width + 'px';
 +
  t.style.width = height + 'px';
 +
  t.style.border = 'solid 1px #000';
 +
  t.style.borderCollapse = 'collapse';
 +
  for(var r=0; r<height; r++) {
 +
    var newRow = t.insertRow(0);
 +
    for(var c=0; c<width; c++) {
 +
      var newCell = newRow.insertCell(0);
 +
      newCell.style.width = '1px';
 +
      newCell.style.height = '1px';
 +
      newCell.style.background = '#fff';
 +
      newCell.style.padding = '0px';
 +
    }
 +
  }
 +
}
 +
 +
function plotMin(t,x,y,v) {
 +
  if (x<0) return;
 +
  if (y<0) return;
 +
  var regrid = false;
 +
  t.points.push({'x':x,'y':y,'v':v});
 +
  if (isNaN(t.minx) || x<t.minx) { t.minx = x/1.5; regrid = true; }
 +
  if (isNaN(t.maxx) || x>t.maxx) { t.maxx = x*1.5; regrid = true; }
 +
  if (isNaN(t.miny) || y<t.miny) { t.miny = y/1.5; regrid = true; }
 +
  if (isNaN(t.maxy) || y>t.maxy) { t.maxy = y*1.5; regrid = true; }
 +
  if (regrid==true) {
 +
    //alert('regridding' + [x,y,t.minx,t.miny,t.maxx,t.maxy,regrid]);
 +
    setCaption(t,'x = ['+t.minx+','+t.maxx+'], y = ['+t.miny+','+t.maxy+']');
 +
    for(var r=0; r<t.rows.length; r++) {
 +
      var row = t.rows[r];
 +
      for(var c=0; c<row.cells.length; c++) {
 +
        var cell = row.cells[c];
 +
        cell.background = '#fff';
 +
      }
 +
    }
 +
    for(var i in t.points) plotMinWork(t,t.points[i].x,t.points[i].y,t.points[i].v);
 +
  } else {
 +
    plotMinWork(t,x,y,v);
 +
  }
 +
}
 +
 +
function plotMinWork(t,x,y,v) {
 +
  var r = Math.floor((y-t.miny)/(t.maxy-t.miny)*t.rows.length);
 +
  var c = Math.floor((x-t.minx)/(t.maxx-t.minx)*t.rows[0].cells.length);
 +
  var cell = t.rows[r].cells[c];
 +
  if (cell.value==undefined || v<cell.value) {
 +
    cell.value = v;
 +
    cell.style.background = 'rgb('+Math.max(0,100*v)+'%,'+Math.min(100,100*(1-v))+'%,0%)';
 +
  }
 +
}
 +
 +
function setCaption(t,cap) {
 +
  if (!t) return;
 +
  var caps = t.getElementsByTagName('caption');
 +
  if (caps.length>0) {
 +
    caps[0].innerHTML = cap;
 +
    return;
 +
  }
 +
  if (t.caption) {
 +
    t.caption = cap;
 +
    return;
 +
  }
}
}
</script>
</script>
</html>
</html>
 +
{|
 +
|
 +
{|id="v5K5plot"
 +
|}
 +
|
 +
{|id="k8K7plot"
 +
|}
 +
|}

Revision as of 12:12, 2 October 2009

[http://2009.igem.org/Team:Groningen http://2009.igem.org/wiki/images/f/f1/Igemhomelogo.png]


TODO: Talk about the devices we have and in what way we want to characterize them.

Uptake measurements

Sampling scheme
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