Team:Groningen/Project/Accumulation

From 2009.igem.org

(Difference between revisions)
(Arsenic)
(Modelling: Trying to get new modelling stuff to work.)
Line 39: Line 39:
==Modelling==
==Modelling==
 +
<html>
 +
<script type="text/javascript" src="/Team:Groningen/Modelling/Model.js?action=raw"></script>
 +
<script type="text/javascript" src="/Team:Groningen/Modelling/Arsenic.js?action=raw"></script>
 +
</html>
===Arsenic - ArsR===
===Arsenic - ArsR===
Below you can calculate how many grams of arsenic will be taken out of the water per cubic meter of cells. This extra weight raises the density of the cell and therefore lowers its capacity for buoyancy. Our preliminary results look very promising. Even under the assumption that the weight of the metal is added to the weight of the cells, without increasing their volume, we could add upto a hundred times the currently computed weight without having a large effect on the required fraction of gas vesicles (it will only go up from about 12.2% to 12.7%).
Below you can calculate how many grams of arsenic will be taken out of the water per cubic meter of cells. This extra weight raises the density of the cell and therefore lowers its capacity for buoyancy. Our preliminary results look very promising. Even under the assumption that the weight of the metal is added to the weight of the cells, without increasing their volume, we could add upto a hundred times the currently computed weight without having a large effect on the required fraction of gas vesicles (it will only go up from about 12.2% to 12.7%).
Line 75: Line 79:
function computeArsenicWeight() {
function computeArsenicWeight() {
-
  // Input
 
-
  var awAsNode = document.getElementById("awAs");
 
-
  var cAsNode = document.getElementById("cAs");
 
-
  var McelldrywetNode = document.getElementById("Mcelldrywet");
 
-
  var rhocellNode = document.getElementById("rhocell");
 
-
 
   // Intermediates (mostly useful for debugging)
   // Intermediates (mostly useful for debugging)
   var arsenicErrorNode = document.getElementById("arsenicError");
   var arsenicErrorNode = document.getElementById("arsenicError");
   arsenicErrorNode.innerHTML = '';
   arsenicErrorNode.innerHTML = '';
-
 
-
  // Outputs
 
-
  var AspercellvolumeNode = document.getElementById("Aspercellvolume");
 
-
  var molAspercellvolumeNode = document.getElementById("molAspercellvolume");
 
   // Read inputs
   // Read inputs
-
   var awAs = Number(awAsNode.value); // g/mol
+
   var awAs = getInput('awAs'); // g/mol
-
   var cAs = Number(cAsNode.value) * 1e-3; // mmol/kg -> mol/kg
+
   var cAs = getInput('cAs') * 1e-3; // mmol/kg -> mol/kg
-
   var Mcelldrywet = Number(McelldrywetNode.value); // kg/kg
+
   var Mcelldrywet = getInput('Mcelldrywet'); // kg/kg
-
   var rhocell = Number(rhocellNode.value); // kg/m^3
+
   var rhocell = getInput('rhocell'); // kg/m^3
   // Compute density(/-ies)
   // Compute density(/-ies)
Line 103: Line 97:
     arsenicErrorNode.innerHTML = err.message;
     arsenicErrorNode.innerHTML = err.message;
   }
   }
-
 
-
  // Set intermediates if they exist
 
   // Set outputs
   // Set outputs
-
   setOutput(AspercellvolumeNode, Aspercellvolume);
+
   setOutput('Aspercellvolume', Aspercellvolume);
-
   setOutput(molAspercellvolumeNode, molAspercellvolume);
+
   setOutput('molAspercellvolume', molAspercellvolume);
-
}
+
-
 
+
-
function formatNumberToHTML(v,p) {
+
-
  if (p===undefined) p = 5;
+
-
  return v.toPrecision(p)
+
-
          .replace(/e\+([0-9]+)$/i,'&middot;10<sup>$1</sup>')
+
-
          .replace(/e\-([0-9]+)$/i,'&middot;10<sup>-$1</sup>');
+
-
}
+
-
 
+
-
function setOutput(node,v,p) {
+
-
  node.innerHTML = formatNumberToHTML(v);
+
-
  node.value = v;
+
}
}
</script>
</script>
Line 159: Line 139:
<dt>Production rates of the promoters</dt>
<dt>Production rates of the promoters</dt>
<dd>
<dd>
-
&beta;1 (ArsR) = <input type="text" id="beta1" value="1000"/> 1/second (???)<br/>
+
&beta;1 (ars1 &rarr; ArsR) = <input type="text" id="beta1" value="1000"/> 1/second (???)<br/>
-
&beta;3 (ArsR constitutive) = <input type="text" id="beta3" value="1000"/> 1/second (???)<br/>
+
&beta;3 (pro &rarr; ArsR) = <input type="text" id="beta3" value="1000"/> 1/second (???)<br/>
</dd>
</dd>
<!--As(III) = <input type="text" id="As3Concentration" value="10"/> &micro;M<br/>-->
<!--As(III) = <input type="text" id="As3Concentration" value="10"/> &micro;M<br/>-->
<dt>Promoter concentrations<dt>
<dt>Promoter concentrations<dt>
<dd>
<dd>
-
OpG<sub>total</sub> = <input type="text" id="OpGTotalPerCell" value="1"/> per cell (?)<br/>
+
ars1<sub>total</sub> = <input type="text" id="ars1TPerCell" value="1"/> per cell<br/>
-
OpH = <input type="text" id="OpHPerCell" value="10"/> per cell (??)<br/>
+
pro = <input type="text" id="proPerCell" value="10"/> per cell (??)<br/>
V<sub>cell</sub> = <input type="text" id="Vc" value="1"/> &micro;m<sup>3</sup> </html>[http://gchelpdesk.ualberta.ca/CCDB/cgi-bin/STAT_NEW.cgi]<html><br/>
V<sub>cell</sub> = <input type="text" id="Vc" value="1"/> &micro;m<sup>3</sup> </html>[http://gchelpdesk.ualberta.ca/CCDB/cgi-bin/STAT_NEW.cgi]<html><br/>
</dd>
</dd>
Line 177: Line 157:
<div id="arsenicEquilibriumError" style="color:red"></div>
<div id="arsenicEquilibriumError" style="color:red"></div>
<dl>
<dl>
-
<dt>Unbound substances</dt>
+
<dt>ArsR</dt>
<dd>
<dd>
-
OpG / OpG<sub>total</sub> = <span id="OpGFraction"></span><br/>
+
ars / ars<sub>total</sub> = <span id="arsFraction"></span><br/>
-
ArsR = <span id="ArsRConcentration"></span> &micro;M<br/>
+
ArsR = <span id="ArsR"></span> &micro;M<br/>
-
</dd>
+
<!--ArsR<sub>total</sub> = <span id="ArsRT"></span> &micro;M<br/>-->
-
<dt>Bound substances</dt>
+
-
<dd>
+
-
<!--ArsR<sub>As</sub> = <span id="ArsRAs3Concentration"></span> &micro;M<br/>-->
+
-
ArsR<sub>op</sub> = <span id="ArsROpConcentration"></span> &micro;M<br/>
+
</dd>
</dd>
<dt>"Accumulation factor"</dt>
<dt>"Accumulation factor"</dt>
<dd>
<dd>
-
<!--As(III)<sub>total</sub> = <span id="As3TotalConcentration"></span> &micro;M<br/>-->
+
<!--As(III)<sub>total</sub> = <span id="AsinT"></span> &micro;M<br/>-->
-
As(III)<sub>total</sub>/As(III) = <span id="As3TotalFactor"></span><br/>
+
As(III)<sub>total</sub>/As(III) = <span id="AsinTfactor"></span><br/>
</dd>
</dd>
</dl>
</dl>
Line 201: Line 177:
function computeArsenicEquilibrium() {
function computeArsenicEquilibrium() {
-
  // Input
 
-
  var K1dNode = document.getElementById("K1d");
 
-
  var K3dNode = document.getElementById("K3d");
 
-
  var tau1Node = document.getElementById("tau1");
 
-
  var beta1Node = document.getElementById("beta1");
 
-
  var beta3Node = document.getElementById("beta3");
 
-
  //var As3Node = document.getElementById("As3Concentration");
 
-
  var OpGTPerCellNode = document.getElementById("OpGTotalPerCell");
 
-
  var OpHPerCellNode = document.getElementById("OpHPerCell");
 
-
  var VcNode = document.getElementById("Vc");
 
-
 
   // Intermediates (mostly useful for debugging)
   // Intermediates (mostly useful for debugging)
-
  var OpGFractionNode = document.getElementById("OpGFraction");
 
-
  var ArsRNode = document.getElementById("ArsRConcentration");
 
-
  //var ArsRAs3Node = document.getElementById("ArsRAs3Concentration");
 
-
  var ArsROpNode = document.getElementById("ArsROpConcentration");
 
   var errorNode = document.getElementById("arsenicEquilibriumError");
   var errorNode = document.getElementById("arsenicEquilibriumError");
   errorNode.innerHTML = '';
   errorNode.innerHTML = '';
-
 
-
  // Outputs
 
-
  //var As3TNode = document.getElementById("As3TotalConcentration");
 
-
  var As3TFactorNode = document.getElementById("As3TotalFactor");
 
   // Read inputs
   // Read inputs
   var avogadro = 6.02214179e23; // 1/mol
   var avogadro = 6.02214179e23; // 1/mol
-
   var K1d = Number(K1dNode.value) * 1e-6; // micromolar -> molar
+
   var K1d = getInput('K1d') * 1e-6; // micromolar -> molar
-
   var K3d2 = Math.pow(Number(K3dNode.value) * 1e-6,2); // micromolar -> molar
+
   var K3d2 = Math.pow(getInput('K3d') * 1e-6,2); // micromolar -> molar
-
   var tau1 = Number(tau1Node.value) * 60; // minutes -> seconds
+
   var tau1 = getInput('tau1') * 60; // minutes -> seconds
-
   var beta1 = Number(beta1Node.value); // 1/second
+
   var beta1 = getInput('beta1'); // 1/second
-
   var beta3 = Number(beta3Node.value); // 1/second
+
   var beta3 = getInput('beta3'); // 1/second
-
   //var As3 = Number(As3Node.value) * 1e-6; // micromolar -> molar
+
   var Vc = getInput('Vc') * 1e-15; // micrometer^3/cell -> liter/cell
-
  var Vc = Number(VcNode.value) * 1e-15; // micrometer^3/cell -> liter/cell
+
   var ars1T= getInput('ars1T') / (avogadro*Vc); // 1/cell -> mol/liter
-
   var OpGT= Number(OpGTPerCellNode.value) / (avogadro*Vc); // 1/cell -> mol/liter
+
   var pro = getInput('proPerCell') / (avogadro*Vc); // 1/cell -> mol/liter
-
   var OpH = Number(OpHPerCellNode.value) / (avogadro*Vc); // 1/cell -> mol/liter
+
   // Compute density(/-ies)
   // Compute density(/-ies)
Line 241: Line 197:
     var ArsR= 1;
     var ArsR= 1;
     do {
     do {
-
       var fx  = Math.pow(ArsR,3) - (tau1/Math.LN2)*beta3*OpH*Math.pow(ArsR,2) + K3d2*ArsR
+
       var fx  = Math.pow(ArsR,3) - (tau1/Math.LN2)*beta3*pro*Math.pow(ArsR,2) + K3d2*ArsR
-
                 - K3d2*(tau1/Math.LN2)*(beta1*OpGT + beta3*OpH);
+
                 - K3d2*(tau1/Math.LN2)*(beta1*ars1T + beta3*OpH);
-
       var dfx  = 3*Math.pow(ArsR,2) - 2*(tau1/Math.LN2)*beta3*OpH*ArsR + K3d2;
+
       var dfx  = 3*Math.pow(ArsR,2) - 2*(tau1/Math.LN2)*beta3*pro*ArsR + K3d2;
       var ddfx = 6*ArsR - 2*(tau1/Math.LN2)*beta3*OpH;
       var ddfx = 6*ArsR - 2*(tau1/Math.LN2)*beta3*OpH;
       ArsR = ArsR - 2*fx*dfx/(2*Math.pow(dfx,2)-fx*ddfx);
       ArsR = ArsR - 2*fx*dfx/(2*Math.pow(dfx,2)-fx*ddfx);
     } while(Math.abs(fx)>1e-6);
     } while(Math.abs(fx)>1e-6);
-
     var OpG = OpGT/(Math.pow(ArsR,2)/K3d2 + 1);
+
     var arsFraction = 1/(Math.pow(ArsR,2)/K3d2 + 1);
-
    //var ArsRAs3 = ArsR * As3 / K1d;
+
     var AsinTfactor = 1 + ArsR/K1d;
-
    var ArsROp = Math.pow(ArsR,2) * OpG / K3d2;
+
-
 
+
-
     var As3TFactor = 1 + ArsR/K1d;
+
   } catch(err) {
   } catch(err) {
     errorNode.innerHTML = err.message;
     errorNode.innerHTML = err.message;
Line 258: Line 211:
   // Set intermediates if they exist
   // Set intermediates if they exist
-
   if (OpGFractionNode) setOutput(OpGFractionNode, OpG/OpGT);
+
   setOutput('arsFraction', arsFraction);
-
   if (ArsRNode) setOutput(ArsRNode, ArsR* 1e6);
+
   setOutput('ArsR', ArsR * 1e6);
-
  //if (ArsRAs3Node) setOutput(ArsRAs3Node, ArsRAs3* 1e6);
+
-
  if (ArsROpNode) setOutput(ArsROpNode, ArsROp* 1e6);
+
   // Set outputs
   // Set outputs
-
   //setOutput(As3TNode, As3Total* 1e6);
+
   setOutput('AsinTfactor', AsinTfactor);
-
  setOutput(As3TFactorNode, As3TFactor);
+
}
}
</script>
</script>

Revision as of 13:38, 18 September 2009

[http://2009.igem.org/Team:Groningen http://2009.igem.org/wiki/images/f/f1/Igemhomelogo.png]
[http://2009.igem.org/Team:Groningen/Project/Promoters http://2009.igem.org/wiki/images/d/dd/Next.JPG]

Introduction

Once heavy metals have entered the cell it is key to keep them there. As these metals are toxic to cell survival in critical amounts evolution has provided us with biological detoxicification proteins such as [http://en.wikipedia.org/wiki/Metallothionein metallothioneins]. These proteins can aid us in our quest to accumulate a variaty of heavy metals as they bind to a wide range of metals including cadmium, zinc, mercury, copper, arsenic, silver, etc..

Metallothioneins

Metallothioneins are a class of low molecular-weight metal-binding proteins (<10kDa) rich in cysteines residues(~30%). They are capable of binding a variety of heavy metals (e.g. Zn, Cu, Cd, Hg, As) with high avidity(Kb) (Merrifield2004). And they have readily been used to create cell based systems for purification of contaminated water Chen1998, Brady1994. In addition to their wide application possibilities they also have the capacity to carry multiple metal ions at one time, in contrast to some other metalloproteins that carry them one-on-one Chang1998. Many forms of metallothioneins are known and their affinity for different metals has been investigated on several occasions, such as for cadmium Deng2007, arsenic Ngu2006, Kostal2004, Singh2008, mercury Chen1998, Chen1997-2, Deng2008, nickel Deng2003 or a combination of metals Chang1998, Kao2008. Metal-protein complexes can be quantified using a fluorescent molecule Cadosch2008.

Cloning strategy

TODOFile:Cloning MT Transporter in AC3-new.pdf

Metals

Arsenic

For the accumulation of arsenic some MTs are possible, like rh-MT (human MT) Ngu2006 and fMT (the seaweed species fucus vesiculosis) both binding As(III). The oxidized version of arsenic (As (V)) can also be bound by the metallothioneins but with lower affinity Singh2008, another way As(V) is proposed to be accumulated is by conversion of As(V) to As(III) by the arsenate reductase and subsequent bound to the metallothionein or ArsR. rh-MT is known to bind 6x As(III) per molecule, fMT binds 5x As(III). No extra quantitative information is known from literature. ArsR is a trans-acting repressor that senses environmetal As(III)and regulates the chromosomal ars operon. The ArsR protein has a specific binding site for As(III) and descriminates effectively against other metals like: phosphate, cadmium, sulfate and cobalt. The affinity of ArsR for As(III) is very high 10-15M of AS(III) can induce the promotor. The specific binding site spans 33 nucleotides in the promotor region including the putative -35 promotor element. When ArsR was purified it's size corresponded to that of a homodimer, bound to promoter DNA. Because of the high affinity of ArsR for As(III) the protein could be used for arsenic remediation. Chen and co workers overexpressed ArsR in E.Coli JM109 cells and found that the specific AS(III) content was 13 fold higher than the control without arsR expression. High level expression of ArsR appeared to be toxic as a 3 fold reduction in cell density was observed. It has been shown that fusion partners reduce the toxicity of overexpression. Originally Chen and co workers made a fusion between ArsR and ELP(elastin protein) which is build out of VPGVG repeats. Because making a ArsR ELP153 fusion is very time consuming, we choose to make a fusion between MBP (maltose binding protein) and ArsR. Chen1998


also see the sensitive promoters. As ordering rh-MT wasn't succesfull, we try to use fMT for accumulation of As(III) and use ArsR to regulate the expression of the GVP cluster behind the ArsR regulated promoter.

Copper

pBG68 with mymT (M. tuberculosis MT gene for Cu(I) accumulation) Gold2008
    • Vector properties: pMB1 ori(20 copy nr.), M13 ori (? copy nr.), tagged with mxe-gyrA intein and chitin binding domain, produced from IPTG inducible T7 promoter (LacI also present).

Zinc

  • Zn--> pMHNR1.1 (a pET29a vector) with smtA (Cyanobacterial MT gene for Zn accumulation) Blindauer2001

Alternatives

Inclusion bodies Fowler1987
(Bacterio)Ferritins
Phytochelatins
[http://www.wiley.com/legacy/products/subject/reference/messerschmidt_toc.html A list of opportunities]

Inhibitory characteristics?

Modelling

Arsenic - ArsR

Below you can calculate how many grams of arsenic will be taken out of the water per cubic meter of cells. This extra weight raises the density of the cell and therefore lowers its capacity for buoyancy. Our preliminary results look very promising. Even under the assumption that the weight of the metal is added to the weight of the cells, without increasing their volume, we could add upto a hundred times the currently computed weight without having a large effect on the required fraction of gas vesicles (it will only go up from about 12.2% to 12.7%).

At this moment we use four different variables:

  1. Molecular weight of arsenic. Source: [http://en.wikipedia.org/wiki/Arsenic Arsenic page on Wikipedia]
  2. Millimol arsenic per kg of cell dryweight (note that this is equivalent to nmol/mg). Source: Kostal2004
  3. The proportion between the weight of a dry cell and a wet cell. Source: [http://redpoll.pharmacy.ualberta.ca/CCDB/cgi-bin/STAT_NEW.cgi CCDB Database]
  4. Cell density. Source: see our gas vesicle page.
awAs(III) = g/mol
nAs(III) / Mcell(dry) = millimole/kg
Mcell(dry) / Mcell(wet) =
ρcell = kg/m3

As(III) intake per volume of cells
= g/m3
= µmol/liter (TODO: check)

As per cell volume = awAs * nAs(III) /
   Mcell(dry) * Mcelldrywet * rhocell
mol As per cell volume = nAs(III) / 
   Mcell(dry) * Mcelldrywet * rhocell

In addition to binding to As(III), ArsR can repress expression of OpG. This is a negative feedback to the operon. In effect this regulates the production of ArsR based on the As(III) concentration (Chen1997). In the E. coli top10 there is only OpG present on the genome, which produce ArsR (see BLAST results). There are plasmids which produce both ArsR and ArsD (not used in this project). We intend to introduce instead OpH, which constitutively produces ArsR, in order to produce an abundance of ArsR.

At a lower level arsenic accumulation can be described using reactions between ArsR, As(III) and the ars promoter. As shown in the figure on the right a number of different substances(/complexes) are involved. For our purposes it is especially important to determine what fraction of As(III) is unbound, if more As(III) is bound we can accumulate more.

The calculator below tries to compute the ratio between bound and unbound arsenic, specifically As(III), in the cell. See our Modelling page for detailed information on the constants/variables used and a derivation of the formulas. Note that the computations currently involve slightly more variables/constants than strictly necessary. TODO: The half-lifes were guesses based on cell-division, but since we have "resting" cells which we assume do not divide this seems like a very bad guess, so we need a new guess?

Dissociation constants
K1d (ArsRAs) = µM (??)
K3d (ArsRopn) = µM (Chen1997)
Half-lifes
τ1 (ArsR) = min (??, dilution)
Production rates of the promoters
β1 (ars1 → ArsR) = 1/second (???)
β3 (pro → ArsR) = 1/second (???)
Promoter concentrations
ars1total = per cell
pro = per cell (??)
Vcell = µm3 [http://gchelpdesk.ualberta.ca/CCDB/cgi-bin/STAT_NEW.cgi]

ArsR
ars / arstotal =
ArsR = µM
"Accumulation factor"
As(III)total/As(III) =

In conclusion:

  • Even at the accumulation levels of Koster et al. the amount of arsenic accumulated in E. coli is so little that it shouldn't matter much for the buoyant density (which normally is about 1100kg/m3).
  • If you substitute constitutive promotors for ars promotors you can see that it is clearly advantageous to use constitutive promotors (they give a much higher increase in accumulation).
  • The model is not very sensitive to different values for K3d (with K3d=1M the accumulation factor is 7905.0 and with K3d=10-12M it is 7188.0).

Planning and requirements:

  • Modelling
    • Speed
    • Metaliotheines concentration
    • How often does the ArsR sensitive operator/operon occur in our E. coli?
  • Lab
    • Measurements
      • Transport Assays
        • Protein expression levels determined by immunoblotting using anti-ArsA and anti-ArsD antibodies (Lin2007)
        • Inductively coupled mass spectrometry (ICP-MS) ((Meng2004)
      • Measure accumulation. By measuring before/after concentration metal with and without accumulation protein.
      • Determine the dissociation constant of ArsR and As(III). (By measuring the ratio between bound and unbound ArsR?)
        • It might be possible to do this with (tryptophan related) fluorescence (that is how it is done for ArsD in Chen1997). In the paper ArsD is purified, but if that's not feasible for us we might try to simply do it in living cells (and hope that ArsR both fluoresces enough and is produced enough to be measurable).
      • Production rate of ArsR?
    • Biobrick Bba_K129004
    • Rest