Difference between revisions of "Team:Heidelberg/internal tools"

Line 688: Line 688:
 
                     <p id="diffinfo"></p>
 
                     <p id="diffinfo"></p>
 
                  
 
                  
               
+
                    <br>
 
                     <h2>Glucose Concentratoin</h2>
 
                     <h2>Glucose Concentratoin</h2>
 
                         <p>
 
                         <p>
Line 706: Line 706:
 
                             $$                    $$
 
                             $$                    $$
 
                             \Leftrightarrow c_{G_{M}} (c_{G_{T}}) = c_{G_{T}} + \frac{c_{E} \cdot q}{\Phi}
 
                             \Leftrightarrow c_{G_{M}} (c_{G_{T}}) = c_{G_{T}} + \frac{c_{E} \cdot q}{\Phi}
 +
                            $$
 +
                        When a lagoon with Volume \(V_{L}\) and a flowrate of \(\Phi_{L}\) is supplied by the turbidostat the glucose consumption in that lagoon can be modeled the same way. Because the <i>E. coli</i> titer, glucose concentration and flow rate into the lagoon are constant, a steady state equilibrium can be assumed:
 +
                            $$
 +
                            c_{G_{L}} = c_{G_{T}} - \frac{c_{E. coli} \cdot q}{\Phi_{L}}
 +
                            $$
 +
                        In the context of PACE mutagenesis plasmids are induced in the lagoons which stops growth of E. coli, hence the E. coli titer is assumed to be the same as in the turbidostat.
 +
                            $$
 +
                            c_{G_{L}} = c_{G_{M}} - \frac{c_{E} \cdot q}{\Phi} - \frac{c_{E} \cdot q}{\Phi_{L}}
 +
                            $$
 +
                            $$
 +
                            \Leftrightarrow c_{G_{M}} (c_{G_{L}}) = c_{G_{L}} + \frac{c_{E} \cdot q}{\Phi} + \frac{c_{E} \cdot q}{\Phi_{L}}
 
                             $$
 
                             $$
 
                         </p>
 
                         </p>
Line 719: Line 730:
 
                             $$
 
                             $$
 
                             $$  
 
                             $$  
                             = c_{G_{F}}(t_{0}) -q \cdot \int_{t_{0}}^{t} c_{E}(t_{0}) \cdot exp\left(\frac{t}{t_{E}}\right) dt
+
                             = c_{G_{F}}(t_{0}) -q \cdot \int_{t_{0}}^{t} c_{E}(t_{0}) \cdot exp\left(\frac{ln(2) \cdot t}{t_{E}}\right) dt
 
                             $$
 
                             $$
 
                             $$
 
                             $$
                             = c_{G_{F}}(t_{0}) - q \cdot c_{E}(t_{0}) \cdot t_{E} \cdot \left(exp\left(\frac{t}{t_{E}}\right) - exp\left(\frac{t_{0}}{t_{E}}\right)\right)
+
                             = c_{G_{F}}(t_{0}) - q \cdot c_{E}(t_{0}) \cdot t_{E} \cdot \left(exp\left(\frac{ln(2) \cdot t}{t_{E}}\right) - exp\left(\frac{ln(2) \cdot t_{0}}{t_{E}}\right)\right)
 
                             $$
 
                             $$
 
                         So the glucose starting concentration \(c_{G_{F}}(t_{0})\) needed to get a concentration of \(c_{G_{f}}(t)\) afer a duration of \(t\) is calculated by
 
                         So the glucose starting concentration \(c_{G_{F}}(t_{0})\) needed to get a concentration of \(c_{G_{f}}(t)\) afer a duration of \(t\) is calculated by
 
                             $$
 
                             $$
                             c_{G_{F}}(t_{0}) = c_{G_{F}}(t) + q \cdot c_{E}(t_{0}) \cdot t_{E} \cdot \left(exp\left(\frac{t}{t_{E}}\right) - exp\left(\frac{t_{0}}{t_{E}}\right)\right)
+
                             c_{G_{F}}(t_{0}) = c_{G_{F}}(t) + q \cdot c_{E}(t_{0}) \cdot t_{E} \cdot \left(exp\left(\frac{ln(2) \cdot t}{t_{E}}\right) - exp\left(\frac{ln(2) \cdot t_{0}}{t_{E}}\right)\right)
 
                             $$
 
                             $$
 
                          
 
                          
Line 738: Line 749:
 
                             according to <i>Milo et al.</i><x-ref>Milo2009</x-ref>.
 
                             according to <i>Milo et al.</i><x-ref>Milo2009</x-ref>.
 
                             $$
 
                             $$
                             q = 0.183 g_{Glucose} \: g_{DW}^{-1} \: h^{-1}
+
                             q = 0.183 \: g_{Glucose} \: g_{DW}^{-1} \: h^{-1}
 
                             $$
 
                             $$
 
                             according to <i>Neubauer et al.</i><x-ref>Neubauer2001</x-ref>.
 
                             according to <i>Neubauer et al.</i><x-ref>Neubauer2001</x-ref>.
Line 757: Line 768:
 
                 <li>
 
                 <li>
 
                     <label>
 
                     <label>
                         Glucose concentration <br> \(c_{G_{T}} \: [g/l]\)
+
                         Glucose concentration <br> \(c_{G} \: [g/l]\)
 
                         <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="cturbidostat" value="0" lang='en-150' step="any">
 
                         <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="cturbidostat" value="0" lang='en-150' step="any">
 
                     </label>
 
                     </label>
Line 763: Line 774:
 
                 <li>
 
                 <li>
 
                     <label>
 
                     <label>
                         Glucose concentration <br> \(c_{G_{T}} \: [mmol/l]\)
+
                         Glucose concentration <br> \(c_{G} \: [mmol/l]\)
 
                         <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="cturbidostatmol" value="0" lang='en-150' step="any">
 
                         <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="cturbidostatmol" value="0" lang='en-150' step="any">
 
                     </label>
 
                     </label>
Line 789: Line 800:
 
                           <i>E. coli</i> titer<br>  \(c_{E. coli} \:[g_{DW}/l]\)
 
                           <i>E. coli</i> titer<br>  \(c_{E. coli} \:[g_{DW}/l]\)
 
                         <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="ectiterdw" value="0" lang='en-150' step="any">
 
                         <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="ectiterdw" value="0" lang='en-150' step="any">
 +
                        </label>
 +
                    </li>
 +
                    <li>
 +
                        <label>
 +
                          Lagoon volume<br>  \(V_{L} \:[ml]\)
 +
                        <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="vl" value="100" lang='en-150' step="any">
 +
                        </label>
 +
                    </li>
 +
                    <li>
 +
                        <label>
 +
                          Lagoon Flow rate  \(\Phi_{L} \:[ml/min]\)
 +
                        <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="phil" value="1.667" lang='en-150' step="any">
 
                         </label>
 
                         </label>
 
                     </li>
 
                     </li>
Line 818: Line 841:
 
                     <li>
 
                     <li>
 
                     <div style="padding-top: 30px;">
 
                     <div style="padding-top: 30px;">
                       <input type="button" value="Calculate Continuous" id="input_form" onclick="return glucosecont();">
+
                       <input type="button" value="Medium, continuous, turbidostat" id="input_form" onclick="return glucosecont();">
 +
                        </div>
 +
                    </li>
 +
                    <li>
 +
                    <div style="padding-top: 30px;">
 +
                      <input type="button" value="Medium continuous, lagoon" id="input_form" onclick="return glucosecont_lagoon();">
 +
                        </div>
 +
                    </li>
 +
                    <li>
 +
                    <div style="padding-top: 30px;">
 +
                      <input type="button" value="Turbidostat and lagoon continuous" id="input_form" onclick="return glucosecont_forward();">
 
                         </div>
 
                         </div>
 
                     </li>
 
                     </li>
 
                     <li>
 
                     <li>
 
                     <div style="padding-top: 30px;">
 
                     <div style="padding-top: 30px;">
                       <input type="button" value="Calculate Discontinuous" id="input_form" onclick="return glucosedis();">
+
                       <input type="button" value="Medium, discontinuous" id="input_form" onclick="return glucosedis();">
 
                         </div>
 
                         </div>
 
                     </li>
 
                     </li>
 
                     <li>
 
                     <li>
 
                     <div style="padding-top: 30px;">
 
                     <div style="padding-top: 30px;">
                       <input type="button" value="Calculate Discontinuous in new plot" id="input_form" onclick="return glucosedisnew();">
+
                       <input type="button" value="Medium, discontinuouos in new plot" id="input_form" onclick="return glucosedisnew();">
 +
                        </div>
 +
                    </li>
 +
                    <li>
 +
                    <div style="padding-top: 30px;">
 +
                      <input type="button" value="Flask, discontinuous" id="input_form" onclick="return glucosedis_forward();">
 +
                        </div>
 +
                    </li>
 +
                    <li>
 +
                    <div style="padding-top: 30px;">
 +
                      <input type="button" value="Flask, discontinuouos in new plot" id="input_form" onclick="return glucosedisnew_forward();">
 
                         </div>
 
                         </div>
 
                     </li>
 
                     </li>
Line 911: Line 954:
  
 
     //calculate
 
     //calculate
 +
   
 +
   
 
     if(phi*tt==0){
 
     if(phi*tt==0){
 
         a_mutations = 1 - Math.pow((1 - mr), ng);
 
         a_mutations = 1 - Math.pow((1 - mr), ng);
Line 965: Line 1,010:
 
     glucose('cont');
 
     glucose('cont');
 
}
 
}
 +
function glucosecont_lagoon(){
 +
    glucose('cont_lagoon');
 +
}
 +
function glucosecont_forward(){
 +
    glucose('cont_forward')
 +
}
 +
  
 
function glucosedis(){
 
function glucosedis(){
Line 971: Line 1,023:
 
function glucosedisnew(){
 
function glucosedisnew(){
 
     glucose('disnew');
 
     glucose('disnew');
 +
}
 +
 +
function glucosedis_forward(){
 +
    glucose('disforward');
 +
}
 +
function glucosedisnew_forward(){
 +
    glucose('disnewforward');
 
}
 
}
 
      
 
      
 
function glucose(mode){
 
function glucose(mode){
   
 
 
     //get the values
 
     //get the values
 
     var cturbidostat = Number(document.getElementById('cturbidostat').value);
 
     var cturbidostat = Number(document.getElementById('cturbidostat').value);
Line 986: Line 1,044:
 
     var ec0dw = Number(document.getElementById('ec0dw').value);
 
     var ec0dw = Number(document.getElementById('ec0dw').value);
 
     var ec0od = Number(document.getElementById('ec0od').value);
 
     var ec0od = Number(document.getElementById('ec0od').value);
 +
    var vl = Number(document.getElementById('vl').value);
 +
    var phil = Number(document.getElementById('phil').value);
 
    
 
    
 
     //initialise variables
 
     //initialise variables
 
     var glucoseout = "";
 
     var glucoseout = "";
 +
    var frl = 0;
 
     var glucosemedium = 0;
 
     var glucosemedium = 0;
 
     var gl_OD = 0.36;
 
     var gl_OD = 0.36;
 +
   
 +
    frl = phil*60/vl;
 
      
 
      
 
     if(ectiterdw == 0){
 
     if(ectiterdw == 0){
Line 1,007: Line 1,070:
 
      
 
      
 
     if(te != 0){
 
     if(te != 0){
         fr = Math.LN2/te;
+
         fr = 60.0 * Math.LN2/te;
 
     }
 
     }
 
     else{
 
     else{
         te = fr * Math.LN2;
+
         te = fr * Math.LN2/60.0;
 
     }
 
     }
 
      
 
      
Line 1,020: Line 1,083:
 
     }
 
     }
 
   
 
   
     if(mode=='cont'){
+
     if(mode == 'cont'){
 
         //calculate
 
         //calculate
 
         glucosemedium = cturbidostat + ((ectiterdw * q)/fr);
 
         glucosemedium = cturbidostat + ((ectiterdw * q)/fr);
Line 1,027: Line 1,090:
  
 
         //return the results
 
         //return the results
         glucoseout = "With a <b>glucose concentration of " + (0.01*Math.round(100*glucosemedium)) + " g/L, " +(0.01*Math.round(100*glucosemediummol)) + "mmol/l in the medium</b>, a flow rate of " + (0.01*Math.round(100*fr)) + " Volumes/h, or a generation time of " + Math.round(te) + " min, an <i>E. coli</i> titer of " + (0.01*Math.round(100*ectiterdw)) + " g/l, an OD600 of " + (0.01*Math.round(100*ectiterod)) + " and a degradation rate of " + (0.01*Math.round(100*q)) + " g l<sup>-1</sup>cfu<sup>-1</sup>h<sup>-1</sup> a concentration of " + (0.01*Math.round(100*cturbidostat)) + " g/L, " + (0.01*Math.round(100*cturbidostatmol)) + " mmol/l is maintained.";
+
         glucoseout =  
 +
            "With a <b>glucose concentration of " +  
 +
            (0.01*Math.round(100*glucosemedium)) +  
 +
            " g/L, " +
 +
            (0.01*Math.round(100*glucosemediummol)) +
 +
            "mmol/l in the medium</b>, a flow rate of " +  
 +
            (0.01*Math.round(100*fr)) +  
 +
            " Volumes/h, or a generation time of " +
 +
            Math.round(te) +  
 +
            " min, an <i>E. coli</i> titer of " + (0.01*Math.round(100*ectiterdw)) +  
 +
            " g/l, an OD600 of " +
 +
            (0.01*Math.round(100*ectiterod)) +
 +
            " and a degradation rate of " +
 +
            (0.01*Math.round(100*q)) +
 +
            " g l<sup>-1</sup>cfu<sup>-1</sup>h<sup>-1</sup> a concentration of " +
 +
            (0.01*Math.round(100*cturbidostat)) +  
 +
            " g/L, "  
 +
            + (0.01*Math.round(100*cturbidostatmol)) +  
 +
            " mmol/l is maintained.";
 
          
 
          
 
         $("#glucoseplot").html('');
 
         $("#glucoseplot").html('');
  
 
     }
 
     }
     else{
+
     else if(mode=='cont_lagoon'){
         //calculate
+
         glucosemedium_lagoon = cturbidostat + ((ectiterdw * q)/fr) + ((ectiterdw * q)/fr);
        glucosemedium = cturbidostat + q * ec0dw * te * (Math.exp(gluc_time/te) - 1);
+
       
 +
        glucose_turbidostat = glucosemedium_lagoon - ((ectiterdw * q)/fr);
 +
       
 +
        var glucose_turbidostat_mol = glucose_turbidostat/(180.1559/1000.0);
  
 +
        var glucosemedium_lagoon_mol = glucosemedium_lagoon/(180.1559/1000.0);
 +
 +
        //return the results
 +
        glucoseout =
 +
            "With a <b>glucose concentration of " +
 +
            (0.01*Math.round(100*cturbidostat)) +
 +
            " g/l, " +
 +
            (0.01*Math.round(100*cturbidostatmol)) +
 +
            "mmol/l in the medium</b>, a turbidostat flow rate of " +
 +
            (0.01*Math.round(100*fr)) +
 +
            " Volumes/h, or a generation time of " +
 +
            Math.round(te) +
 +
            " min, a lagoon with a volume of " +
 +
            vl +
 +
            " ml and a flow rate of " +
 +
            phil +
 +
            " ml/min, an <i>E. coli</i> titer of " + (0.01*Math.round(100*ectiterdw)) +
 +
            " g/l, an OD600 of " +
 +
            (0.01*Math.round(100*ectiterod)) +
 +
            " and a degradation rate of " +
 +
            (0.01*Math.round(100*q)) +
 +
            " g l<sup>-1</sup>cfu<sup>-1</sup>h<sup>-1</sup> a concentration of " +
 +
            (0.01*Math.round(100*glucosemedium_lagoon)) +
 +
            " g/L, "
 +
            + (0.01*Math.round(100*glucosemedium_lagoon_mol)) +
 +
            " mmol/l in the lagoon is maintained. Under this conditions the <b>in the turbidostat the glucose concentration is " +
 +
            (0.01*Math.round(100*glucose_turbidostat)) +
 +
            "g/l, " +
 +
            (0.01*Math.round(100*glucose_turbidostat_mol)) +
 +
            " mmol/l.</b>"
 +
        ;
 +
       
 +
        $("#glucoseplot").html('');
 +
       
 +
    }
 +
    else if(mode=='cont_forward'){
 +
        glucosemedium_lagoon = Math.max(0, cturbidostat - ((ectiterdw * q)/fr) - ((ectiterdw * q)/fr));
 +
       
 +
        glucose_turbidostat = Math.max(0, cturbidostat - ((ectiterdw * q)/fr));
 +
       
 +
        var glucose_turbidostat_mol = glucose_turbidostat/(180.1559/1000.0);
 +
 +
        var glucosemedium_lagoon_mol = glucosemedium_lagoon/(180.1559/1000.0);
 +
 +
        //return the results
 +
        glucoseout =
 +
            "With a glucose concentration of " +
 +
            (0.01*Math.round(100*glucose_turbidostat)) +
 +
            " g/l, " +
 +
            (0.01*Math.round(100*glucose_turbidostat_mol)) +
 +
            "mmol/l in the medium</b>, a turbidostat flow rate of " +
 +
            (0.01*Math.round(100*fr)) +
 +
            " Volumes/h, or a generation time of " +
 +
            Math.round(te) +
 +
            " min, a lagoon with a volume of " +
 +
            vl +
 +
            " ml and a flow rate of " +
 +
            phil +
 +
            " ml/min, an <i>E. coli</i> titer of " + (0.01*Math.round(100*ectiterdw)) +
 +
            " g/l, an OD600 of " +
 +
            (0.01*Math.round(100*ectiterod)) +
 +
            " and a degradation rate of " +
 +
            (0.01*Math.round(100*q)) +
 +
            " g l<sup>-1</sup>cfu<sup>-1</sup>h<sup>-1</sup> <b>a concentration of " +
 +
            (0.01*Math.round(100*cturbidostat)) +
 +
            " g/L, "
 +
            + (0.01*Math.round(100*cturbidostatmol)) +
 +
            " mmol/l in the lagoon</b> is maintained. Under this conditions the <b>in the turbidostat the glucose concentration is " +
 +
            (0.01*Math.round(100*glucose_turbidostat)) +
 +
            "g/l, " +
 +
            (0.01*Math.round(100*glucose_turbidostat_mol)) +
 +
            " mmol/l.</b>"
 +
        ;
 +
       
 +
        $("#glucoseplot").html('');
 +
       
 +
    }
 +
    else{
 +
        if(mode.endsWith('forward')){
 +
            glucosemedium = cturbidostat;
 +
            cturbidostat = glucosemedium - q * ec0dw * te * (Math.exp(Math.LN2 * gluc_time/te) - 1);
 +
        }
 +
        else{
 +
            glucosemedium = cturbidostat + q * ec0dw * te * (Math.exp(Math.LN2 * gluc_time/te) - 1);
 +
        }
 
         var glucosemediummol = glucosemedium/(180.1559/1000.0);
 
         var glucosemediummol = glucosemedium/(180.1559/1000.0);
 +
       
 +
        var od_warning = "";
 +
        var end_od = ec0od * Math.exp(Math.LN2 * gluc_time/te);
 +
        if(end_od > 1.0){
 +
            od_warning = "<br><strong>Warning:</strong> With an OD of " + end_od + " the <i>E. coli</i> are not in exponential phase at the end of the experiment. This model is designed for applications with E. coli in exponential phase and therfore assumes exponential growth. The glucose consumption is overestimated as well as the concentration in the medium needed to reach the desired concentration.";
 +
        }
  
 
         //return the results
 
         //return the results
         glucoseout = "With a <b>glucose concentration of " + (0.01*Math.round(100*Math.max(0,glucosemedium))) + " g/L, " +(0.01*Math.round(100*Math.max(0,glucosemediummol))) + "mmol/l in the medium</b>, a generation time of " + (0.01*Math.round(100*te)) + " min, an <i>E. coli</i> starting titer of " + (0.01*Math.round(100*ec0dw)) + " g/l, an OD600 of " + (0.01*Math.round(100*ec0od)) + " and a degradation rate of " + (0.01*Math.round(100*q)) + " g l<sup>-1</sup>cfu<sup>-1</sup>h<sup>-1</sup> a  concentration of " + (0.01*Math.round(100*cturbidostat)) + " g/L, " + (0.01*Math.round(100* cturbidostatmol)) + " mmol/l is reached after " + gluc_time + " minutes.";
+
         glucoseout = "With a glucose concentration of " + (0.01*Math.round(100*Math.max(0,glucosemedium))) + " g/L, " +(0.01*Math.round(100*Math.max(0,glucosemediummol))) + "mmol/l in the medium, a generation time of " + (0.01*Math.round(100*te)) + " min, an <i>E. coli</i> starting titer of " + (0.01*Math.round(100*ec0dw)) + " g/l, an OD600 of " + (0.01*Math.round(100*ec0od)) + " and a degradation rate of " + (0.01*Math.round(100*q)) + " g l<sup>-1</sup>cfu<sup>-1</sup>h<sup>-1</sup> a  <b>concentration of " + (0.01*Math.round(100*cturbidostat)) + " g/L, " + (0.01*Math.round(100* cturbidostatmol)) + " mmol/l</b> is reached after " + gluc_time + " minutes." + od_warning;
 
     }
 
     }
 
      
 
      
Line 1,045: Line 1,220:
 
      
 
      
 
     //plot glucose concentration and e. coli titer
 
     //plot glucose concentration and e. coli titer
     if(mode!='cont'){
+
     if(mode.startsWith('dis')){
 
         var glucoseplot = document.getElementById('glucoseplot');
 
         var glucoseplot = document.getElementById('glucoseplot');
 
          
 
          
Line 1,056: Line 1,231:
 
             t[it] = it*gluc_time_exp/500;
 
             t[it] = it*gluc_time_exp/500;
  
             cecoli[it] = Math.max(0, ec0od * Math.exp(t[it]/te));  
+
             cecoli[it] = Math.max(0, ec0od * Math.exp(Math.LN2 * t[it]/te));  
  
             cg[it] = Math.max(0, glucosemedium - (q * ec0dw * te * (Math.exp((t[it]/te)) - 1.0)));
+
             cg[it] = Math.max(0, glucosemedium - (q * ec0dw * te * (Math.exp(Math.LN2 * (t[it]/te)) - 1.0)));
 
         }
 
         }
  
Line 1,098: Line 1,273:
 
             },
 
             },
 
             yaxis2: {
 
             yaxis2: {
 +
                range: [0.0, Math.min(1.0, cecoli[500])],
 
                 title: 'E. coli titer [OD600]',
 
                 title: 'E. coli titer [OD600]',
 
                 side: 'right',
 
                 side: 'right',

Revision as of 11:57, 6 October 2017

Team:Heidelberg/internal tools - 2017.igem.org

Team:Heidelberg/internal tools

WikitemplateA home - 2014.igem.org

 

WikitemplateA home

From 2014.igem.org

Internal Tools

Number of mutations and mutated sequences

Expected number of mutations in a single sequence: $$p_{m} = \frac{N_{mutations}}{L_{Sequence}} = N_{generations} \cdot r_{mutation} = t_{total} \cdot \Phi \cdot r_{mutation}$$

The expected share of sequences that shows at least one mutation in \(L_{Sequence}\) bp is the probability that \(L_{sequence}\) basepairs stay unchanged when \(\frac{N_{mutations}}{L_{Sequence}}\) mutations are expected: $$p_{M} = \frac{N_{mutated}}{N_{Sequences}} = 1 - p(N_{mutations}=0) = 1 - (1-p_{m})^{L_{Sequence}} $$

With this equation we can also calculate the number of sequences \(N_{Sequences}\) that have to be sequenced in order to find a mutated one with a probability of \(p(N_{mutated} > 0)\). $$ N_{Sequences} = \frac{p(N_{mutated} > 0)}{p_{M}} $$

The probability to find at least one mutated sequence under the given conditions is $$p(N_{mutated}>0) = 1 - (1-p_{M})^{N_{sequences}}$$ which gives $$N_{Sequences} = \frac{ln(1-p(N_{mutated}>0))}{ln(1-p_{M})}$$

Set \(\Phi\) to zero to use the number of generations for the calculation. If \(\Phi\) and the number of generations are given, \(\Phi\) is used.

Consider \(L_{Sequence}\) as the number of basepairs that is expected to be mutated. If half of the sequence you are interested in, is highly conserved choose a lower \(L_{Sequence}\).

Get your mutations


\(p_{m} =\) %(bp/bp).

\(N_{mutations} =\) bp per sequence.

The share of sequences that shows at least one mutation in \(L_{Sequence}\) bp is \(p_{M}=\) % of sequences

Diff tool

Marks differences in two strings, ignores newlines.

Comparison:



Glucose Concentratoin

Calculate the ideal glucose concentration in the medium used for either a turbidostat or a single flask.

The glucose concentration in the turbidostat \(c_{G_{T}}\) is increased with the incoming medium with a flow rate of \(\Phi\) and a glucose concentration of \(c_{G_{M}}\). It is decreased by with the medium that leaves the turbidostat with the same flow rate, but a glucose concentration of \(c_{G_{T}}\). Additionally E. coli take up glucose with a concentration of \(c_{E}\) and a rate of \(q\). $$ \frac{\partial c_{G_{T}}(t)}{\partial t} = \Phi \cdot c_{G_{M}} - \Phi \cdot c_{G_{T}} - c_{E} \cdot q $$ In the case of a turbidostat we can assume a dynamic equilibrium: $$ \frac{\partial c_{G_{T}}(t)}{\partial t} = 0 $$ This results in $$ c_{G_{T}} = c_{G_{M}} - \frac{c_{E. coli} \cdot q}{\Phi} $$ $$ \Leftrightarrow c_{G_{M}} (c_{G_{T}}) = c_{G_{T}} + \frac{c_{E} \cdot q}{\Phi} $$ When a lagoon with Volume \(V_{L}\) and a flowrate of \(\Phi_{L}\) is supplied by the turbidostat the glucose consumption in that lagoon can be modeled the same way. Because the E. coli titer, glucose concentration and flow rate into the lagoon are constant, a steady state equilibrium can be assumed: $$ c_{G_{L}} = c_{G_{T}} - \frac{c_{E. coli} \cdot q}{\Phi_{L}} $$ In the context of PACE mutagenesis plasmids are induced in the lagoons which stops growth of E. coli, hence the E. coli titer is assumed to be the same as in the turbidostat. $$ c_{G_{L}} = c_{G_{M}} - \frac{c_{E} \cdot q}{\Phi} - \frac{c_{E} \cdot q}{\Phi_{L}} $$ $$ \Leftrightarrow c_{G_{M}} (c_{G_{L}}) = c_{G_{L}} + \frac{c_{E} \cdot q}{\Phi} + \frac{c_{E} \cdot q}{\Phi_{L}} $$


If the concentration of glucose in a flask, \(c_{G_{F}}\) needs to be determined, the functional dependencies are as follows.

As there is no incoming medium, or medium that leaves the flask, the concentration of glucose is only changed by E. coli degrading it. $$ \frac{\partial c_{G_{F}}(t)}{\partial t} = q \cdot c_{E}(t) $$ Exponential growth of the E. coli is assumed, resulting in $$c_{G_{F}}(t) = c_{G_{F}}(t_{0}) - q \cdot c_{E}(t) \cdot t $$ $$ = c_{G_{F}}(t_{0}) -q \cdot \int_{t_{0}}^{t} c_{E}(t_{0}) \cdot exp\left(\frac{ln(2) \cdot t}{t_{E}}\right) dt $$ $$ = c_{G_{F}}(t_{0}) - q \cdot c_{E}(t_{0}) \cdot t_{E} \cdot \left(exp\left(\frac{ln(2) \cdot t}{t_{E}}\right) - exp\left(\frac{ln(2) \cdot t_{0}}{t_{E}}\right)\right) $$ So the glucose starting concentration \(c_{G_{F}}(t_{0})\) needed to get a concentration of \(c_{G_{f}}(t)\) afer a duration of \(t\) is calculated by $$ c_{G_{F}}(t_{0}) = c_{G_{F}}(t) + q \cdot c_{E}(t_{0}) \cdot t_{E} \cdot \left(exp\left(\frac{ln(2) \cdot t}{t_{E}}\right) - exp\left(\frac{ln(2) \cdot t_{0}}{t_{E}}\right)\right) $$


Further calculations for simplification of entering data:

$$ c_{E. coli_{DW}} = c_{E. coli_{OD600}} \cdot 0.36 $$ according to Milo et al.Milo2009. $$ q = 0.183 \: g_{Glucose} \: g_{DW}^{-1} \: h^{-1} $$ according to Neubauer et al.Neubauer2001.

Because turbidstats are operated at a constant cell density, the flow rate \(Phi\) can be calculated from the generation time \(t_{E}\). $$ \Phi = \frac{ln(2)}{t_{E}} $$

If the E. coli titer in \(g_{DW}/l\) is zero, it is calculated from the OD, else the dryweight value is used. If the glucose concentration in \(mmol/l\) not zero, it is used for the calulation. If the generation time \(t_{E}\) is not zero, it is used to calculate the flow rate \(\Phi\).

Get the ideal concentration



×

Loading ...