Team:Groningen/Modelling/model/calc.js

From 2009.igem.org

(Difference between revisions)
(update output function)
Line 74: Line 74:
  // variablen
  // variablen
-
   var time = [0];
+
   var data = {time: [0],
-
  var AsIn = [0];
+
              AsIn: [0],
-
  var ArsB = [5];
+
              ArsB: [5],
-
  var AsEx = [5];
+
              AsEx: [5],
-
  var GlpF = [5];
+
              GlpF: [5],
-
  var GlpFAs = [0];
+
              GlpFAs: [0],
-
  var ArsBAs = [0];
+
              ArsBAs: [0]};
-
 
+
// constanten
// constanten
Line 99: Line 98:
   for (var i=1;i<=N;i++){
   for (var i=1;i<=N;i++){
-
     GlpFAs[i] = GlpFAs[i-1] + stepSize * (K5on * AsEx[i-1] * GlpF[i-1] - (K5off + K6) * GlpFAs[i-1]);
+
     data.GlpFAs[i] = data.GlpFAs[i-1] + stepSize * (K5on * data.AsEx[i-1] * data.GlpF[i-1] - (K5off + K6) * data.GlpFAs[i-1]);
-
     AsEx[i] = AsEx[i-1] + stepSize * (-K5on * AsEx[i-1] * GlpF[i-1] + K5off * GlpFAs[i-1] + (Vc/Vs) * K8 * ArsBAs[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]);
-
     GlpF[i] = GlpF[i-1] + stepSize * (-(K5on * AsEx[i-1] * GlpF[i-1] - (K5off + K6) * GlpFAs[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]));
-
     ArsBAs[i] = ArsBAs[i-1] + stepSize * (K7on * AsIn[i-1] * ArsB[i-1] - (K7off+K8) * ArsBAs[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]);
-
     AsIn[i] = AsIn[i-1] + stepSize * (-K7on * AsIn[i-1] * ArsB[i-1] - (K7off + K8) * ArsBAs[i-1] - K8 * ArsBAs[i-1] + (Vs/Vc) * K6 * GlpFAs[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]);
-
     ArsB[i] = ArsB[i-1] + stepSize * (-(K7on * AsIn[i-1] * ArsB[i-1] - (K7off + K8) * ArsBAs[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]));
-
     time[i] = time[i-1] + stepSize;
+
     data.time[i] = data.time[i-1] + stepSize;
   }
   }
-
   setOutput(ModelAnswer, AsIn[3]);  
+
   //setOutput(ModelAnswer, AsIn[3]);
 +
  var modelDataNode = document.getElementById("modelData");
 +
  modelDataNode.data = data;
}
}

Revision as of 09:58, 26 August 2009

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('growthFactorGraph').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 ---------

// function tijd(){ // setTimeout( "doSomething()", 3000 ); // }

// function doSomething(){ // if (doSomething.time === undefined) { // doSomething.time = 0; // } // // // Set outputs // setOutput(tijdAnswer, doSomething.time); // doSomething.time += 1; // // if (doSomething.time<=100) setTimeout( "doSomething()", 3000 ); // }



// -------- transport ----------

// var myCars=new Array();

function transport(){

// variablen
 var data = {time: [0],
             AsIn: [0],
             ArsB: [5],
             AsEx: [5],
             GlpF: [5],
             GlpFAs: [0],
             ArsBAs: [0]};

// constanten

 var totalTime = 300;
 var stepSize = 3;
 var K5on = 1;
 var K5off =2;
 var K6 = 3;
 var Vc = 4;
 var Vs = 5;
 var K7on = 6;
 var K7off = 7;
 var K8 = 8;


 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, AsIn[3]); 
 var modelDataNode = document.getElementById("modelData");
 modelDataNode.data = data;

}