Team:Groningen/Modelling/model/calc.js
From 2009.igem.org
function calc(){
// gets input var growthFactorNode = document.getElementById("growthFactor");
// reads input var growthFactor = Number(growthFactorNode.value); // begin variable var time = 0; var x = 0; var y = 0; arrValueX = new Array(); arrValueY = new Array();
// process var growthFactor = growthFactor + 1; for (var time = 0; time < 30; time++) { var y = growthFactor*x*x; var x = x + 1; arrValueX.push(x); arrValueY.push(y); }
// Set outputs setOutput(growthFactorAnswer, growthFactor ); document.getElementById('modelDataGraph').refresh();
}
function setOutput(node,v) {
node.innerHTML = formatNumberToHTML(v); node.value = v;
}
function formatNumberToHTML(v,p) {
if (p===undefined) p = 5; return v.toPrecision(p) .replace(/e\+([0-9]+)$/i,'·10$1') .replace(/e\-([0-9]+)$/i,'·10-$1');
}
// ------ Annelies timer functie ---------
var mijnTimer;
function tijd(){
// gets input var timeMiliSecNode = document.getElementById("timeMiliSec"); // reads input var timeMiliSec2 = Number(timeMiliSecNode.value);
//alert("functie tijd: "+timeMiliSec2);
if (mijnTimer) clearInterval(mijnTimer); mijnTimer = setInterval( "doSomething()",timeMiliSec2);
}
function doSomething(){
//alert("functie doe iets BOVEN DE IF LUS: "+doSomething.time);
if (doSomething.time === undefined) {
doSomething.time = 0; //alert("functie doe ietsFDBADFNA: "+doSomething.time); }
// Set outputs setOutput(tijdAnswer, doSomething.time); doSomething.time += 1; transport();
}
// -------- transport model, geeft waarden mee in een object/array ----------
function transport(){
alert("TRANSPORT");
// variablen var data = {time: [0], AsIn: [0], ArsB: [5], AsEx: [5], GlpF: [5], GlpFAs: [0], ArsBAs: [0]};
// constanten
var totalTime = 300; var stepSize = 0.1; var K5on = 1; var K5off = 1e-6; var K6 = 1e-3; var Vc = 1.1 - 0.0073; var Vs = 0.0073; var K7on = 1; var K7off = 1e-6; var K8 = 1e-3;
var N = totalTime / stepSize ;
for (var i=1;i<=N;i++){ data.GlpFAs[i] = data.GlpFAs[i-1] + stepSize * (K5on * data.AsEx[i-1] * data.GlpF[i-1] - (K5off + K6) * data.GlpFAs[i-1]); data.AsEx[i] = data.AsEx[i-1] + stepSize * (-K5on * data.AsEx[i-1] * data.GlpF[i-1] + K5off * data.GlpFAs[i-1] + (Vc/Vs) * K8 * data.ArsBAs[i-1]); data.GlpF[i] = data.GlpF[i-1] + stepSize * (-(K5on * data.AsEx[i-1] * data.GlpF[i-1] - (K5off + K6) * data.GlpFAs[i-1])); data.ArsBAs[i] = data.ArsBAs[i-1] + stepSize * (K7on * data.AsIn[i-1] * data.ArsB[i-1] - (K7off+K8) * data.ArsBAs[i-1]); data.AsIn[i] = data.AsIn[i-1] + stepSize * (-K7on * data.AsIn[i-1] * data.ArsB[i-1] - (K7off + K8) * data.ArsBAs[i-1] - K8 * data.ArsBAs[i-1] + (Vs/Vc) * K6 * data.GlpFAs[i-1]); data.ArsB[i] = data.ArsB[i-1] + stepSize * (-(K7on * data.AsIn[i-1] * data.ArsB[i-1] - (K7off + K8) * data.ArsBAs[i-1])); data.time[i] = data.time[i-1] + stepSize; }
setOutput(ModelAnswer, data.AsEx[4]); var modelDataNode = document.getElementById("modelData"); modelDataNode.data = data;
document.getElementById("modelDataGraph").refresh();
}
// ------- het gehele model -------------------------------------------
function modelTotal(){
alert("huh"); // Definieren van begincondities dit zijn dus constanten die later niet gebruikt worden //Begincondities (op tijdstip nul) die in het 0-de element van een array moeten worden gezet. var data = { AsexT: [5], ArsBas: [0], GlpFas: [0], GlpFT: [5], ArsBT: [5], AsinT: [0], ars1T: [5], ars2T: [5], pro: [5], ArsRT: [5], GV: [0], Time: [0]};
alert("hah" +pro[0]):
} // end function