Difference between revisions of "Team:Fudan-TSI/Improve"

(Prototype team page)
 
m
 
(31 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{Fudan-TSI}}
+
{{Fudan-TSI}}<!-- jquery loaded by HQ 1.12.4 -->
<html>
+
<html></p></div></div></div><meta name="viewport" content="width=device-width, initial-scale=1"><meta charset="UTF-8">
 +
  <link rel="stylesheet" href="https://2019.igem.org/wiki/index.php?title=Template:Fudan-TSI/materialize.css&action=raw&ctype=text/css">
 +
  <link rel="stylesheet" href="https://2019.igem.org/wiki/index.php?title=Template:Fudan-TSI/Fudan-font-awesome.css&action=raw&ctype=text/css" />
 +
  <link rel="stylesheet" type="text/css" href="https://2019.igem.org/wiki/index.php?title=Template:Fudan-TSI/Fudan-css.css&action=raw&ctype=text/css" /><!-- /https://2019.igem.org/wiki/index.php?title=Template:Fudan-TSI/Fudan-css.css&action=raw&ctype=text/css -->
 +
<style>
 +
/*****************************************************************************/
 +
/* DEFAULT WIKI SETTINGS */
 +
/*****************************************************************************/
 +
  #home_logo, #sideMenu { display:none; }
 +
  #sideMenu, #top_title, .patrollink { display:none; }
 +
  #content { margin-left: 0; padding:0px; width:100%;}
 +
  .judges-will-not-evaluate { border: 4px solid #e4dede; padding: 2% !important; width: 92%!important; }
 +
/* css clean * */
 +
  #FudanTSIBody li { list-style: none; }
 +
    </style>
 +
    <title>Part Improvement | 2019 iGEM Team:Fudan-TSI</title>
 +
</head>
 +
<body>
 +
<div id="FudanTSIdivWrapper"><div id="FudanTSIBody">
 +
  <header>
 +
  <div id="emptyBar" style="position:relative;width: 100%;"></div><nav id="topNav" class="black z-depth-0_5"><div class="nav-wrapper"><div id="teamLogo" class="brand-logo"> <a href="/Team:Fudan-TSI" target="_self"><img alt="2019 team logo" src="https://static.igem.org/mediawiki/2019/d/d3/T--Fudan-TSI--HomepageLogo.gif"></a></div><ul id="nav-mobile" class="right">
  
 +
    <li class="hide-on-med-and-down"><a class="dropdown-trigger" data-target="dropdown1">Project</a></li><li class="hide-on-med-and-down"><a class="dropdown-trigger" data-target="dropdown2">Results</a></li><li class="hide-on-med-and-down"><a class="dropdown-trigger" data-target="dropdown3">Model</a></li><li class="hide-on-med-and-down"><a class="dropdown-trigger" data-target="dropdown4">Parts</a></li><li class="hide-on-med-and-down"><a class="dropdown-trigger" data-target="dropdown5">Human&nbsp;practices</a></li><li class="hide-on-med-and-down"><a class="dropdown-trigger" data-target="dropdown6">Team</a></li>
 +
    <li class="hide-on-med-and-down"><a href="/Team:Fudan-TSI/Judging">Judging</a></li>
 +
    <li> <a id="navList" data-target="slide-out" class="waves-effect waves-light sidenav-trigger right"> <i class="fa fa-navicon" style="font-size: 24px"></i> </a></li></ul></div> </nav>
 +
  <!-- Dropdown and List elements in navigation bar -->
 +
  <ul id="dropdown1" class="dropdown-content">
 +
      <li><a href="/Team:Fudan-TSI/Description">Background</a></li>
 +
      <li><a href="/Team:Fudan-TSI/Design">Design</a></li>
 +
      <li><a href="/Team:Fudan-TSI/Experiments">Experiments</a></li>
 +
      <li><a href="/Team:Fudan-TSI/Applied_Design">Applied&nbsp;design</a></li>
 +
  </ul>
 +
  <ul id="dropdown2" class="dropdown-content">
 +
      <li><a href="/Team:Fudan-TSI/Demonstrate#ReverseTranscription">Reverse&nbsp;transcription</a></li>
 +
      <li><a href="/Team:Fudan-TSI/Demonstrate#Recombination">Recombination</a></li>
 +
      <li><a href="/Team:Fudan-TSI/Demonstrate">Demonstration</a></li>
 +
      <li><a href="/Team:Fudan-TSI/Measurement">Measurement</a></li>
 +
      <li><a href="/Team:Fudan-TSI/Notebook">Notebook</a></li>
 +
  </ul>
 +
  <ul id="dropdown3" class="dropdown-content">
 +
      <li><a href="/Team:Fudan-TSI/Model">Modeling</a></li>
 +
      <li><a href="/Team:Fudan-TSI/Software">Software</a></li>
 +
      <li><a href="/Team:Fudan-TSI/Hardware">Hardware</a></li>
 +
  </ul>
 +
  <ul id="dropdown4" class="dropdown-content">
 +
      <li><a href="/Team:Fudan-TSI/Basic_Part">Basic&nbsp;parts</a></li>
 +
      <li><a href="/Team:Fudan-TSI/Composite_Part">Composite&nbsp;parts</a></li>
 +
      <li><a href="/Team:Fudan-TSI/Improve">Part&nbsp;improvement</a></li>
 +
      <li><a href="/Team:Fudan-TSI/Part_Collection">Part&nbsp;collection</a></li>
 +
  </ul>
 +
  <ul id="dropdown5" class="dropdown-content">
 +
      <li><a href="/Team:Fudan-TSI/Public_Engagement">Public&nbsp;engagement</a></li>
 +
      <li><a href="/Team:Fudan-TSI/Human_Practices#IntegratedHumanPractice">Integrated&nbsp;HP</a></li>
 +
      <li><a href="/Team:Fudan-TSI/Collaborations">Collaborations</a></li>
 +
      <li><a href="/Team:Fudan-TSI/Safety">Safety</a></li>
 +
  </ul>
 +
  <ul id="dropdown6" class="dropdown-content">
 +
      <li><a href="/Team:Fudan-TSI/Team">Members</a></li>
 +
      <li><a href="/Team:Fudan-TSI/Attributions">Attributions</a></li>
 +
      <li><a href="/Team:Fudan-TSI/Team#Acknowledge">Acknowledge</a></li>
 +
      <li><a href="/Team:Fudan-TSI/Heritage">Heritage</a></li>
 +
  </ul>
  
<div class="column full_size judges-will-not-evaluate">
 
<h3>★  ALERT! </h3>
 
<p>This page is used by the judges to evaluate your team for the <a href="https://2019.igem.org/Judging/Medals">medal criterion</a> or <a href="https://2019.igem.org/Judging/Awards"> award listed below</a>. </p>
 
<p> Delete this box in order to be evaluated for this medal criterion and/or award. See more information at <a href="https://2019.igem.org/Judging/Pages_for_Awards"> Instructions for Pages for awards</a>.</p>
 
</div>
 
  
 +
  <ul id="slide-out" class="sidenav">
 +
    <li style="padding: 0"><div class="sidenavBanner">
 +
      <div class="background"></div>
 +
      <p class="flow-text" style="width:100%;text-align:center"><span class="white-text">Part Improvement</span></p>
 +
    </div></li>
 +
    <li>
 +
      <ul class="collapsible expandable">
 +
        <li><span class="pageSidebar">Team: Fudan-TSI</span></li><li><div class="collapsible-header"><span class="pageSidebar">Project</span></div><div class="collapsible-body"><ul><li><a class="pageSidebar" href="/Team:Fudan-TSI/Description">Background</a></li><li><a class="pageSidebar" href="/Team:Fudan-TSI/Design">Design</a></li><li><a class="pageSidebar" href="/Team:Fudan-TSI/Experiments">Experiments</a></li><li><a class="pageSidebar" href="/Team:Fudan-TSI/Applied_Design">Applied design</a></li><li><a class="pageSidebar" href="/Team:Fudan-TSI/Judging">Judging</a></li></ul></div></li><li><div class="collapsible-header"><span class="pageSidebar">Results</span></div><div class="collapsible-body"><ul><li><a class="pageSidebar" href="/Team:Fudan-TSI/Demonstrate#ReverseTranscription">Reverse transcription</a></li><li><a class="pageSidebar" href="/Team:Fudan-TSI/Demonstrate#Recombination">Recombination</a></li><li><a class="pageSidebar" href="/Team:Fudan-TSI/Demonstrate">Demonstration</a></li><li><a class="pageSidebar" href="/Team:Fudan-TSI/Measurement">Measurement</a></li><li><a class="pageSidebar" href="/Team:Fudan-TSI/Notebook">Notebook</a></li></ul></div></li><li><div class="collapsible-header"><span class="pageSidebar">Model</span></div><div class="collapsible-body"><ul><li><a class="pageSidebar" href="/Team:Fudan-TSI/Model">Modeling</a></li><li><a class="pageSidebar" href="/Team:Fudan-TSI/Software">Software</a></li><li><a class="pageSidebar" href="/Team:Fudan-TSI/Hardware">Hardware</a></li></ul></div></li><li><div class="collapsible-header active"><span class="pageSidebar">Parts</span></div><div class="collapsible-body"><ul><li><a class="pageSidebar" href="/Team:Fudan-TSI/Basic_Part">Basic parts</a></li><li><a class="pageSidebar" href="/Team:Fudan-TSI/Composite_Part">Composite parts</a></li><li><a class="pageSidebar" href="/Team:Fudan-TSI/Improve">Part improvement</a></li><li><a class="pageSidebar" href="/Team:Fudan-TSI/Part_Collection">Part collection</a></li></ul></div></li><li><div class="collapsible-header"><span class="pageSidebar">Human practices</span></div><div class="collapsible-body"><ul><li><a class="pageSidebar" href="/Team:Fudan-TSI/Public_Engagement">Public engagement</a></li><li><a class="pageSidebar" href="/Team:Fudan-TSI/Human_Practices#IntegratedHumanPractice">Integrated HP</a></li><li><a class="pageSidebar" href="/Team:Fudan-TSI/Collaborations">Collaborations</a></li><li><a class="pageSidebar" href="/Team:Fudan-TSI/Safety">Safety</a></li></ul></div></li><li><div class="collapsible-header"><span class="pageSidebar">Team</span></div><div class="collapsible-body"><ul><li><a class="pageSidebar" href="/Team:Fudan-TSI/Team">Members</a></li><li><a class="pageSidebar" href="/Team:Fudan-TSI/Attributions">Attributions</a></li><li><a class="pageSidebar" href="/Team:Fudan-TSI/Heritage">Heritage</a></li></ul></div></li>
 +
      </ul><!-- .expandable -->
 +
    </li>
 +
    <li><div class="placeHolder"></div></li>
 +
  </ul>
 +
  </header>
  
<div class="clear"></div>
+
  <div id="pageContent">
 +
      <div id="contentBanner" class="figureBanner">
 +
          <div class="row">
 +
              <div class="col s12 hide-on-med-and-up">
 +
                  <h1><br/>Part Improvement</h1>
 +
              </div>
 +
          </div>
 +
          <div class="hide-on-small-only">
 +
<style>
 +
#demo {width:100%;height:100%;position:relative;z-index:-100;}
 +
#demo svg {width:100%;height:100%;position:fixed;}
 +
#demo svg g {mix-blend-mode:lighten;}
 +
#demo svg polygon {stroke:none;fill:white;}
 +
</style>
 +
<div id="pageCover">
 +
  <svg id="demo" viewBox="0 0 1600 600" preserveAspectRatio="xMidYMid slice">
 +
        <defs>
 +
        <linearGradient id="grad1" x1="0" y1="0" x2="1" y2="0" color-interpolation="sRGB">
 +
          <stop id="stop1a" offset="0%" stop-color="#12a3b4"></stop>
 +
          <stop id="stop1b" offset="100%" stop-color="#ff509e"></stop>
 +
        </linearGradient>
 +
        <linearGradient id="grad2" x1="0" y1="0" x2="1" y2="0" color-interpolation="sRGB">
 +
          <stop id="stop2a" offset="0%" stop-color="#e3bc13"></stop>
 +
          <stop id="stop2b" offset="100%" stop-color="#00a78f"></stop>
 +
        </linearGradient>
 +
        </defs>
 +
        <rect id="rect1" x="0" y="0" width="1600" height="600" stroke="none" fill="url(#grad1)"></rect>
 +
        <rect id="rect2" x="0" y="0" width="1600" height="600" stroke="none" fill="url(#grad2)"></rect>
 +
  </svg>
 +
</div><!-- #pageCover -->
 +
<script src="https://2019.igem.org/wiki/index.php?title=Template:Fudan-TSI/bkg&action=raw&ctype=text/javascript"></script>
 +
        <script>
 +
      //////////////////////////////
 +
      // Demo Functions
 +
      //////////////////////////////
 +
      function bkgFunction(showStats) {
 +
        // stats
 +
        if (showStats) {
 +
        var stats = new Stats();
 +
        stats.domElement.style.position = 'absolute';
 +
        stats.domElement.style.left = '0';
 +
        stats.domElement.style.top = '0';
 +
        document.body.appendChild(stats.domElement);
 +
        requestAnimationFrame(function updateStats(){
 +
          stats.update();
 +
          requestAnimationFrame(updateStats);
 +
        });
 +
        }
 +
        // init
 +
        var svg = document.getElementById('demo');
 +
        tesselation.setup(svg);
 +
        gradients.setup();
 +
        var lastTransitionAt, transitionDelay = 10000, transitionDuration = 3000;
 +
        function playNextTransition() {
 +
        tesselation.next(transitionDuration);
 +
        gradients.next(transitionDuration);
 +
        };
 +
        function tick(time) {
 +
        if (!lastTransitionAt || time - lastTransitionAt > transitionDelay) {
 +
          lastTransitionAt = time;
 +
          playNextTransition();
 +
        }
 +
        window.requestAnimationFrame(tick);
 +
        }
 +
        window.requestAnimationFrame(tick);
 +
      }
 +
      //////////////////////////////
 +
      // Delaunay Triangulation
 +
      //////////////////////////////
 +
      var calcDelaunayTriangulation = (function() {
 +
        var EPSILON = 1.0 / 1048576.0;
 +
        function getSuperT(vertices) {
 +
        var xMin = Number.POSITIVE_INFINITY, yMin = Number.POSITIVE_INFINITY,
 +
          xMax = Number.NEGATIVE_INFINITY, yMax = Number.NEGATIVE_INFINITY,
 +
          i, xDiff, yDiff, maxDiff, xCenter, yCenter;
 +
        for(i = vertices.length; i--; ) {
 +
          if(vertices[i][0] < xMin) xMin = vertices[i][0];
 +
          if(vertices[i][0] > xMax) xMax = vertices[i][0];
 +
          if(vertices[i][1] < yMin) yMin = vertices[i][1];
 +
          if(vertices[i][1] > yMax) yMax = vertices[i][1];
 +
        }
 +
        xDiff = xMax - xMin;
 +
        yDiff = yMax - yMin;
 +
        maxDiff = Math.max(xDiff, yDiff);
 +
        xCenter = xMin + xDiff * 0.5;
 +
        yCenter = yMin + yDiff * 0.5;
 +
        return [
 +
          [xCenter - 20 * maxDiff, yCenter - maxDiff],
 +
          [xCenter, yCenter + 20 * maxDiff],
 +
          [xCenter + 20 * maxDiff, yCenter - maxDiff]
 +
        ];
 +
        }
 +
        function circumcircle(vertices, i, j, k) {
 +
        var xI = vertices[i][0], yI = vertices[i][1],
 +
          xJ = vertices[j][0], yJ = vertices[j][1],
 +
          xK = vertices[k][0], yK = vertices[k][1],
 +
          yDiffIJ = Math.abs(yI - yJ), yDiffJK = Math.abs(yJ - yK),
 +
          xCenter, yCenter, m1, m2, xMidIJ, xMidJK, yMidIJ, yMidJK, xDiff, yDiff;
 +
        // bail condition
 +
        if(yDiffIJ < EPSILON){
 +
          if (yDiffJK < EPSILON){
 +
            throw new Error("Can't get circumcircle since all 3 points are y-aligned");
 +
          }
 +
        }
  
  
<div class="column full_size">
+
        // calc circumcircle center x/y, radius
<h1>Improve a Previous Part or Previous Project</h1>
+
        m1  = -((xJ - xI) / (yJ - yI));
<p>For teams seeking to improve upon a previous part or project, you should document all of your work on this page. Please remember to include all part measurement and characterization data on the part's main page on the Registry. Please include a link to your improved part's Registry page on this page.</p>
+
        m2  = -((xK - xJ) / (yK - yJ));
 +
        xMidIJ = (xI + xJ) / 2.0;
 +
        xMidJK = (xJ + xK) / 2.0;
 +
        yMidIJ = (yI + yJ) / 2.0;
 +
        yMidJK = (yJ + yK) / 2.0;
 +
        xCenter = (yDiffIJ < EPSILON) ? xMidIJ :
 +
          (yDiffJK < EPSILON) ? xMidJK :
 +
          (m1 * xMidIJ - m2 * xMidJK + yMidJK - yMidIJ) / (m1 - m2);
 +
        yCenter  = (yDiffIJ > yDiffJK) ?
 +
          m1 * (xCenter - xMidIJ) + yMidIJ :
 +
          m2 * (xCenter - xMidJK) + yMidJK;
 +
        xDiff = xJ - xCenter;
 +
        yDiff = yJ - yCenter;
 +
        // return
 +
        return {i: i, j: j, k: k, x: xCenter, y: yCenter, r: xDiff * xDiff + yDiff * yDiff};
 +
        }
 +
        function dedupeEdges(edges) {
 +
        var i, j, a, b, m, n;
 +
        for(j = edges.length; j; ) {
 +
          b = edges[--j]; a = edges[--j];
 +
          for(i = j; i; ) {
 +
          n = edges[--i]; m = edges[--i];
 +
          if(a === m){
 +
            if (b===n){
 +
              edges.splice(j, 2); edges.splice(i, 2);
 +
              break;
 +
            }
 +
          }
 +
          if(a === n){
 +
            if (b===m){
 +
              edges.splice(j, 2); edges.splice(i, 2);
 +
              break;
 +
            }
 +
          }
 +
          }
 +
        }
 +
        }
 +
        return function(vertices) {
 +
        var n = vertices.length,
 +
          i, j, indices, st, candidates, locked, edges, dx, dy, a, b, c;
 +
        // bail if too few / too many verts
 +
        if(n < 3 || n > 2000)
 +
          return [];
 +
        // copy verts and sort indices by x-position
 +
        vertices = vertices.slice(0);
 +
        indices = new Array(n);
 +
        for(i = n; i--; )
 +
          indices[i] = i;
 +
        indices.sort(function(i, j) {
 +
          return vertices[j][0] - vertices[i][0];
 +
        });
 +
        // supertriangle
 +
        st = getSuperT(vertices);
 +
        vertices.push(st[0], st[1], st[2]);
 +
        // init candidates/locked tris list
 +
        candidates = [circumcircle(vertices, n + 0, n + 1, n + 2)];
 +
        locked = [];
 +
        edges = [];
 +
        // scan left to right
 +
        for(i = indices.length; i--; edges.length = 0) {
 +
          c = indices[i];
 +
          // check candidates tris against point
 +
          for(j = candidates.length; j--; ) {
 +
          // lock tri if point to right of circumcirc
 +
          dx = vertices[c][0] - candidates[j].x;
 +
          if (dx > 0.0){
 +
            if(dx * dx > candidates[j].r){
 +
              locked.push(candidates[j]);
 +
            candidates.splice(j, 1);
 +
            continue;
 +
            }
 +
          }
  
<h3>Gold Medal Criterion #2</h3>
 
<p><b>Improve a Previous Part - Standard Tracks:</b> Convince the judges that you have created a new BioBrick Part that has a functional improvement upon an existing BioBrick Part. You must perform experiments with both parts to demonstrate this improvement. Clearly document the quantitative experimental characterization data on the Part's Main Page on the Registry for both the existing and new parts (see the <a href="http://parts.igem.org/Help:Document_Parts">Registry Document Parts page</a> for instructions).
 
<br><br>
 
Both the existing and new part must be <a href="http://parts.igem.org/Help:Standards/Assembly/RFC10">RFC10</a> or Type IIS compatible. The sequences of the new and existing parts must be different. The existing part must NOT be from your 2019 part number range and must be different from the part you used in Bronze #4. The new part you create must also be different from the new part documented in Silver #1. Please see the <a href="https://2019.igem.org/Measurement/Resources">Measurement Resources page</a> for more information about experimental characterization data.
 
<br><br>
 
<b>Improve a Previous Project - Special Tracks:</b> Improve the function of an existing iGEM project (that your current team did not originally create) and display your achievement on your wiki.</p>
 
  
 +
          // point outside circumcirc = leave candidates
 +
          dy = vertices[c][1] - candidates[j].y;
 +
          if(dx * dx + dy * dy - candidates[j].r > EPSILON)
 +
            continue;
 +
          // point inside circumcirc = break apart, save edges
 +
          edges.push(
 +
            candidates[j].i, candidates[j].j,
 +
            candidates[j].j, candidates[j].k,
 +
            candidates[j].k, candidates[j].i
 +
          );
 +
          candidates.splice(j, 1);
 +
          }
 +
          // new candidates from broken edges
 +
          dedupeEdges(edges);
 +
          for(j = edges.length; j; ) {
 +
          b = edges[--j];
 +
          a = edges[--j];
 +
          candidates.push(circumcircle(vertices, a, b, c));
 +
          }
 +
        }
 +
        // close candidates tris, remove tris touching supertri verts
 +
        for(i = candidates.length; i--; )
 +
          locked.push(candidates[i]);
 +
        candidates.length = 0;
 +
        for(i = locked.length; i--; )
 +
          if(locked[i].i < n){
 +
            if(locked[i].j < n){
 +
              if(locked[i].k < n){
 +
                candidates.push(locked[i].i, locked[i].j, locked[i].k);
 +
              }
 +
            }
 +
          }
  
 +
 +
        // done
 +
        return candidates;
 +
        };
 +
      })();
 +
      var tesselation = (function() {
 +
        var svg, svgW, svgH, prevGroup;
 +
        function createRandomTesselation() {
 +
        var wW = window.innerWidth;
 +
        var wH = window.innerHeight;
 +
        var gridSpacing = 250, scatterAmount = 0.75;
 +
        var gridSize, i, x, y;
 +
        if (wW / wH > svgW / svgH) { // window wider than svg = use width for gridSize
 +
          gridSize = gridSpacing * svgW / wW;
 +
        } else { // window taller than svg = use height for gridSize
 +
          gridSize = gridSpacing * svgH / wH;
 +
        }
 +
        var vertices = [];
 +
        var xOffset = (svgW % gridSize) / 2, yOffset = (svgH % gridSize) / 2;
 +
        for (x = Math.floor(svgW/gridSize) + 1; x >= -1; x--) {
 +
          for (y = Math.floor(svgH/gridSize) + 1; y >= -1; y--) {
 +
          vertices.push(
 +
            [
 +
            xOffset + gridSize * (x + scatterAmount * (Math.random() - 0.5)),
 +
            yOffset + gridSize * (y + scatterAmount * (Math.random() - 0.5))
 +
            ]
 +
          );
 +
          }
 +
        }
 +
        var triangles = calcDelaunayTriangulation(vertices);
 +
        var group = document.createElementNS('http://www.w3.org/2000/svg','g');
 +
        var polygon;
 +
        for(i = triangles.length; i; ) {
 +
          polygon = document.createElementNS('http://www.w3.org/2000/svg','polygon');
 +
          polygon.setAttribute('points',
 +
          vertices[triangles[--i]][0] + ',' + vertices[triangles[i]][1] + ' ' +
 +
          vertices[triangles[--i]][0] + ',' + vertices[triangles[i]][1] + ' ' +
 +
          vertices[triangles[--i]][0] + ',' + vertices[triangles[i]][1]
 +
          );
 +
          group.appendChild(polygon);
 +
        }
 +
        return group;
 +
        }
 +
        return {
 +
        setup: function(svgElement) {
 +
          svg = svgElement;
 +
          var vb = svg.getAttribute('viewBox').split(/\D/g);
 +
          svgW = vb[2];
 +
          svgH = vb[3];
 +
        },
 +
        next: function(t) {
 +
          var toRemove, i, n;
 +
          t /= 1000;
 +
          if(prevGroup){
 +
            if(prevGroup.children){
 +
              if(prevGroup.children.length){
 +
                toRemove = prevGroup;
 +
                n = toRemove.children.length;
 +
                for (i = n; i--; ) {
 +
                  TweenMax.to(toRemove.children[i], t*0.4, {opacity: 0, delay: t*(0.3*i/n)});
 +
                }
 +
                TweenMax.delayedCall(t * (0.7 + 0.05), function(group) { svg.removeChild(group); }, [toRemove], this);
 +
              }
 +
            }
 +
          }
 +
 +
          var g = createRandomTesselation();
 +
          n = g.children.length;
 +
          for (i = n; i--; ) {
 +
          TweenMax.fromTo(g.children[i], t*0.4, {opacity: 0}, {opacity: 0.3 + 0.25 * Math.random(), delay: t*(0.3*i/n + 0.3), ease: Back.easeOut});
 +
          }
 +
          svg.appendChild(g);
 +
          prevGroup = g;
 +
        }
 +
        }
 +
      })();
 +
      //////////////////////////////
 +
      // Gradients
 +
      //////////////////////////////
 +
      var gradients = (function() {
 +
        var grad1, grad2, showingGrad1;
 +
        // using colors from IBM Design Colors this time
 +
        var colors = [ // 14 colors - use 3-5 span
 +
        '#3c6df0', // ultramarine50
 +
        '#12a3b4', // aqua40
 +
        '#00a78f', // teal40
 +
        '#00aa5e', // green40
 +
        '#81b532', // lime30
 +
        '#e3bc13', // yellow20
 +
        '#ffb000', // gold20
 +
        '#fe8500', // orange30
 +
        '#fe6100', // peach40
 +
        '#e62325', // red50
 +
        '#dc267f', // magenta50
 +
        '#c22dd5', // purple50
 +
        '#9753e1', // violet50
 +
        '#5a3ec8'  // indigo60
 +
        ];
 +
        function assignRandomColors(gradObj) {
 +
        var rA = Math.floor(colors.length * Math.random());
 +
        var rB = Math.floor(Math.random() * 3) + 3; // [3 - 5]
 +
        rB = (rA + (rB * (Math.random() < 0.5 ? -1 : 1)) + colors.length) % colors.length;
 +
        gradObj.stopA.setAttribute('stop-color', colors[rA]);
 +
        gradObj.stopB.setAttribute('stop-color', colors[rB]);
 +
        }
 +
        return {
 +
        setup: function() {
 +
          showingGrad1 = false;
 +
          grad1 = {
 +
          stopA: document.getElementById('stop1a'),
 +
          stopB: document.getElementById('stop1b'),
 +
          rect:  document.getElementById('rect1')
 +
          };
 +
          grad2 = {
 +
          stopA: document.getElementById('stop2a'),
 +
          stopB: document.getElementById('stop2b'),
 +
          rect:  document.getElementById('rect2')
 +
          };
 +
          grad1.rect.style.opacity = 0;
 +
          grad2.rect.style.opacity = 0;
 +
        },
 +
        next: function(t) {
 +
          t /= 1000;
 +
          var show, hide;
 +
          if (showingGrad1) {
 +
          hide = grad1;
 +
          show = grad2;
 +
          } else {
 +
          hide = grad2;
 +
          show = grad1;
 +
          }
 +
          showingGrad1 = !showingGrad1;
 +
          TweenMax.to(hide.rect, 0.55*t, {opacity: 0, delay: 0.2*t, ease: Sine.easeOut});
 +
          assignRandomColors(show);
 +
          TweenMax.to(show.rect, 0.65*t, {opacity: 1, ease: Sine.easeIn});
 +
        }
 +
        };
 +
      })();
 +
      //////////////////////////////
 +
      // Start
 +
      //////////////////////////////
 +
      bkgFunction();
 +
    </script>
 +
              <div style="position:absolute;top:100px;left:9%"><center><img style="height:120px;width:auto" alt="cover gif 1st added" src="https://static.igem.org/mediawiki/2019/2/23/T--Fudan-TSI--coverImprovedParts.gif" /></center></div>
 +
          </div>
 +
      </div>
 +
 +
<!--////////////////////////////////////////////////////
 +
      do not edit above, if must BE CAREFUL
 +
  //////////////////////////////////////////////////////-->
 +
      <div class="container">
 +
          <!-- side navigator of page content -->
 +
          <ul id="pageContentNav" class="hide-on-med-and-down z-depth-0">
 +
              <li class="onThisPageNav"><a href="#section1">Overview</a></li>
 +
              <li class="onThisPageNav"><a href="#section2">Better&nbsp;orthogonality</a></li>
 +
              <li class="onThisPageNav"><a href="#section3">Stronger&nbsp;operon</a></li>
 +
              <li class="onThisPageNav"><a href="#section4">Less&nbsp;leakage</a></li>
 +
          </ul>
 +
          <!-- main content of the page -->
 +
          <main><article>
 +
 +
<div id="section1" class="section container scrolSpy">
 +
  <p class="flow-text">We have upgraded LacI gene <a target="_blank" href="http://parts.igem.org/Part:BBa_K3257012">(BBa_C0012)</a> to a better version <a target="_blank" herf="http://parts.igem.org/Part:BBa_K3257045">(BBa_K3257045)</a>.</p>
 +
  <p class="flow-text">LacI is one of the genes in Lac operon encoding the inhibitor protein binding to LacO <a target="_blank" href="http://parts.igem.org/Part:BBa_K3257066">(BBa_K3257066)</a> sites (cis-acting element). In response to IPTG, the inhibitor protein detaches from LacO and enables the transcription of downstream genes. We mutated some specific sites in the LacI gene to improve its sensibility to IPTG <a href="https://www.ncbi.nlm.nih.gov/pubmed/30478458" target="_blank">(Christopher Voigt, et al.)</a>. Using EGFP as a reporter, its fluorescence intensity demonstrates a lower level of leakage and the same level of expression before and after the induction of IPTG. Also, we induce the improved Lac operon by arabinose to verify its orthogonal response to IPTG.</p>
 +
  <p class="flow-text">With LacIq promoter <a href="http://parts.igem.org/Part:BBa_K3257003" target="_blank">(BBa_K3257003)</a> and rrnB T1 terminator <a href="http://parts.igem.org/Part:BBa_K3257020" target="_blank">(BBa_K3257020)</a>, improved LacI protein can be expressed and function properly in the <i>Escherichia coli</i> BL21(DE3). We used EGFP as a reporter controlled by our improved Lac operon and measured its green fluorescence over time.</p>
 +
  <p class="flow-text">We cut out BBa_C0012 between the 9<sup>th</sup> and 1153<sup>rd</sup> nucleotide, mutated the 60<sup>th</sup> nucleotide from C to A, the 61<sup>st</sup> nucleotide from A to T, 136<sup>th</sup> nucleotide from C to T, the 490<sup>th</sup> nucleotide from T to A, the 500<sup>th</sup> nucleotide from A to G and the 1001<sup>st</sup> nucleotide from C to G of it and added a stop codon at the end of it.</p>
 +
  <p class="flow-text">According to our experiment, our Lac operon is improved in the following three main aspects.</p>
 
</div>
 
</div>
  
 +
<div id="section2" class="section container scrolSpy">
 +
  <h4>Lower response to arabinose, better orthogonality</h4>
 +
  <p class="flow-text">Crosstalk between the response to IPTG and arabinose has been a defect of the wild type Lac operon. When 4 mM arabinose is added, a few lac inhibitors would detach from lac operator. This means that it is induced in a relatively low but unignorable level. According to the measurement of our experiment, our improved LacI can respond to IPTG with better orthogonality. As shown in <a href="#Fig1">Figure 1</a>, when 4 mM arabinose is added, oLacI (wild-type LacI) is induced at a significantly higher level than iLacI (improved LacI).</p>
 +
 +
  <div class="figureHolder" id="Fig1">
 +
    <img class="responsive-img" src="https://static.igem.org/mediawiki/2019/d/d0/T--Fudan-TSI--Improved_Fig1.png" />
 +
    <p><b>Figure 1. The expression level of EGFP controlled by different versions of LacI and inducers, or under different promoters.</b><br/>
 +
    The origin point indicates the time when different inducers are added (1 mM IPTG and/or 4 mM Arabinose). The title of the graph shows which kind of inducer is added to the culture. The horizontal axe shows the duration of time, the vertical axe shows the quantified level of EGFP expression. The fluorescence level (excitation wavelength: 485 nm; detection wavelength: 528 nm) is quantified by the concentration of fluorescein, and normalized by the measured OD600 equivalent to the number of beads in the system. oLacI stands for the wildtype LacI, iLacI stands for our improved version of LacI. +LacO indicates that the promoter constitutes a LacO sequence. Control is the negative control plasmid which does not constitute an EGFP sequence. Error bar in the two graphs on the first row indicates the SEM of three replicates. The second row showed only the mean amount of three replicate.</p>
 +
  </div>
 +
</div>
 +
 +
<div id="section3" class="section container scrolSpy">
 +
  <h4>Higher induction level than the wild-type Lac operon when induced by IPTG</h4>
 +
  <p class="flow-text">Our improved Lac operon does not malfunction and can be normally induced by IPTG. When 1 mM IPTG is added, EGFP controlled by both operons can be induced and expressed at relatively the same level <a href="#Fig1">(Figure 1)</a>, while the level of induction under the control of iLacI is significantly higher than that of oLacI <a href="#Fig2">(Figure 2)</a>.</p>
 +
  <div class="figureHolder" id="Fig2">
 +
    <img class="responsive-img" src="https://static.igem.org/mediawiki/2019/d/d6/T--Fudan-TSI--Improved_Fig2.png" />
 +
    <p><b>Figure 2. The induction level of EGFP under different repressor and promoters.</b><br/>
 +
    Induction level is calculated by dividing fluorescence level after 9 h of induction by 1 h afterwards. The fluorescence level is quantified as in <a href="#Fig1">Figure 1</a>. oLacI stands for the wildtype LacI, iLacI stands for our improved version of LacI. +LacO indicates that the promoter constitutes a LacO sequence. t test analysis shows that the induction level of iLacI is significantly higher than oLacI, *** indicates that p=0.0002.</p>
 +
  </div>
 +
</div>
 +
 +
<div id="section4" class="section container scrolSpy">
 +
  <h4>Lower uninduced leakage</h4>
 +
  <div class="figureHolder" id="Fig3">
 +
    <img class="responsive-img" src="https://static.igem.org/mediawiki/2019/4/45/T--Fudan-TSI--Improved_Fig3.png" />
 +
    <p><b>Figure 3. The basal fluorescence level of EGFP controlled by different repressors.</b><br/>
 +
    The bar indicates the mean fluorescence level during the 10 h with no inducer in the culture. The fluorescence level is quantified as in <a href="#Fig3">Figure 1</a>. oLacI stands for the wildtype LacI, iLacI stands for our improved version of LacI. Control is below the detection level and not shown. Error bar indicates the SEM of fluorescence signal in the 10 h. Paired t test analysis shows that iLacI has a significantly lower of fluorescence than oLacI, p=0.0057 (**).</p>
 +
  </div>
 +
  <p class="flow-text">The uninduced leakage level is also an important parameter of an operon. Improved LacI lowers the leakage level compared to the wild-type one. The figure below <a href="#Fig3">(Figure 3)</a> is the measurement of the fluorescence of EGFP controlled by wild-type and improved Lac operon. When no IPTG or arabinose is added, the fluorescence of EGFP controlled by improved Lac operon much lower than the fluorescence of EGFP controlled by wild-type Lac operon <a href="#Fig1">)Figure 1</a><a href="#Fig3"> &amp; 3)</a>.</p>
 +
</div>
 +
 +
 +
<!--////////////////////////////////////////////////////
 +
      do not edit below, if must BE CAREFUL
 +
  //////////////////////////////////////////////////////-->
 +
      </article></main></div><!-- end of side navigator and main of the page -->
  
 +
<!-- Floating Btns, Footer with sponsors -->
 +
      <div class="floatingBtn"> <a href="#FudanTSIdivWrapper" class="btn"> <i class="fa fa-angle-up" style="font-size:48px;line-height:45px"></i> </a></div> <footer id="FudanTSIfooter" class="page-footer blue-grey darken-1"><div class="container"><div class="row"><div id="sponsor" class="col m3 s12 row"> <a href="https://2019.igem.org/Team:Fudan-TSI"><img alt="2019 Team:Fudan-TSI logo white" class="col s3 m6 l3" style="position:relative; padding: 0.45em 0.3rem; margin:-0.15rem 0; left: -0.45rem;" src="https://static.igem.org/mediawiki/2019/0/0f/T--Fudan-TSI--LogoGrey.gif"> </a><a href="http://www.fudan.edu.cn/en/" target="_blank"><img class="col s3 m6 l3" alt="Fudan University" src="https://static.igem.org/mediawiki/2018/f/f7/T--Fudan--schoolLogo.png"> </a><a href="http://life.fudan.edu.cn/" target="_blank"><img class="col s3 m6 l3" style="margin-bottom: 4%;/* fig should be smaller, 2018 ht */" alt="School of Life Sciences, Fudan University" src="https://static.igem.org/mediawiki/2018/1/1d/T--Fudan--schoolOfLifeSciencesIcon.png"> </a><a href="http://www.yfc.cn/en/" target="_blank"><img class="col s3 m6 l3" style="padding: 0.15rem 0.9rem;" alt="Yunfeng Capital" src="https://static.igem.org/mediawiki/2018/e/e2/T--Fudan--yunfengLogo.png"> </a><h3 class="col s12" style="text-align:left;font-size:12.5px">R-Evolution: an <i>in vivo</i> sequence-specific toolbox for continuous mutagenesis</h3></div><div id="footerNavList" class="col m9 s12 row"><div class="col s12 l6 row"><div class="col s12 m4"> <span><a href="/Team:Fudan-TSI/Description">Project</a></span><ul><li><a href="/Team:Fudan-TSI/Description">Background</a></li><li><a href="/Team:Fudan-TSI/Design">Design</a></li><li><a href="/Team:Fudan-TSI/Experiments">Experiments</a></li><li><a href="/Team:Fudan-TSI/Applied_Design">Applied design</a></li><li><a href="/Team:Fudan-TSI/Judging">Judging</a></li></ul></div><div class="col s12 m4"> <span><a href="/Team:Fudan-TSI/Demonstrate">Results</a></span><ul><li><a href="/Team:Fudan-TSI/Demonstrate#ReverseTranscription">Reverse transcription</a></li><li><a href="/Team:Fudan-TSI/Demonstrate#Recombination">Recombination</a></li><li><a href="/Team:Fudan-TSI/Demonstrate">Demonstration</a></li><li><a href="/Team:Fudan-TSI/Measurement">Measurement</a></li><li><a href="/Team:Fudan-TSI/Notebook">Notebook</a></li></ul></div><div class="col s12 m4"> <span><a href="/Team:Fudan-TSI/Model">Model</a></span><ul><li><a href="/Team:Fudan-TSI/Model">Modeling</a></li><li><a href="/Team:Fudan-TSI/Software">Software</a></li><li><a href="/Team:Fudan-TSI/Hardware">Hardware</a></li></ul></div></div><div class="col s12 l6 row"><div class="col s12 m4 active"> <span><a href="/Team:Fudan-TSI/Parts">Parts</a></span><ul><li><a href="/Team:Fudan-TSI/Basic_Part">Basic parts</a></li><li><a href="/Team:Fudan-TSI/Composite_Part">Composite parts</a></li><li><a href="/Team:Fudan-TSI/Improve">Part improvement</a></li><li><a href="/Team:Fudan-TSI/Part_Collection">Part collection</a></li></ul></div><div class="col s12 m4"> <span><a href="/Team:Fudan-TSI/Human_Practices">Outreach</a></span><ul><li><a href="/Team:Fudan-TSI/Public_Engagement">Public engagement</a></li><li><a href="/Team:Fudan-TSI/Human_Practices#IntegratedHumanPractice">Integrated HP</a></li><li><a href="/Team:Fudan-TSI/Collaborations">Collaborations</a></li><li><a href="/Team:Fudan-TSI/Safety">Safety</a></li></ul></div><div class="col s12 m4"> <span><a href="/Team:Fudan-TSI/Team">Team</a></span><ul><li><a href="/Team:Fudan-TSI/Team">Members</a></li><li><a href="/Team:Fudan-TSI/Attributions">Attributions</a></li><li><a href="/Team:Fudan-TSI/Team#Acknowledge">Acknowledge</a></li><li><a href="/Team:Fudan-TSI/Heritage">Heritage</a></li></ul></div><div class="col s12 m4">&nbsp;</div></div></div></div></div><div class="footer-copyright"><div class="container"><div class="contactUS row"><div class="col s12 m6 l4"><i class="fa fa-location-arrow"></i> Life Sci Bldg, 2005 Songhu Rd, Shanghai</div><div class="col s12 m6 l2"><i class="fa fa-fax"></i> +86-21-31246727</div><div class="col s12 m6 l2"><i class="fa fa-envelope-o"></i> igem@fudan.edu.cn</div><div class="col s12 m6 l4"><i class="fa fa-twitter"></i> <i class="fa fa-wechat"></i> Fudan_iGEM</div></div></div></div> </footer>
 +
</div></div></div><!-- #pageContent #FudanTSIBody #FudanTSIdivWrapper -->
  
 +
<script src="https://2019.igem.org/wiki/index.php?title=Template:Fudan-TSI/materialize.js&action=raw&ctype=text/javascript"></script><!-- Materialize 1.0.0-rc.2 -->
 +
<script src="https://2019.igem.org/wiki/index.php?title=Template:Fudan-TSI/Fudan-js.js&action=raw&ctype=text/javascript"></script>
 +
</body>
 
</html>
 
</html>

Latest revision as of 05:53, 16 November 2019

Part Improvement | 2019 iGEM Team:Fudan-TSI


Part Improvement

cover gif 1st added

We have upgraded LacI gene (BBa_C0012) to a better version (BBa_K3257045).

LacI is one of the genes in Lac operon encoding the inhibitor protein binding to LacO (BBa_K3257066) sites (cis-acting element). In response to IPTG, the inhibitor protein detaches from LacO and enables the transcription of downstream genes. We mutated some specific sites in the LacI gene to improve its sensibility to IPTG (Christopher Voigt, et al.). Using EGFP as a reporter, its fluorescence intensity demonstrates a lower level of leakage and the same level of expression before and after the induction of IPTG. Also, we induce the improved Lac operon by arabinose to verify its orthogonal response to IPTG.

With LacIq promoter (BBa_K3257003) and rrnB T1 terminator (BBa_K3257020), improved LacI protein can be expressed and function properly in the Escherichia coli BL21(DE3). We used EGFP as a reporter controlled by our improved Lac operon and measured its green fluorescence over time.

We cut out BBa_C0012 between the 9th and 1153rd nucleotide, mutated the 60th nucleotide from C to A, the 61st nucleotide from A to T, 136th nucleotide from C to T, the 490th nucleotide from T to A, the 500th nucleotide from A to G and the 1001st nucleotide from C to G of it and added a stop codon at the end of it.

According to our experiment, our Lac operon is improved in the following three main aspects.

Lower response to arabinose, better orthogonality

Crosstalk between the response to IPTG and arabinose has been a defect of the wild type Lac operon. When 4 mM arabinose is added, a few lac inhibitors would detach from lac operator. This means that it is induced in a relatively low but unignorable level. According to the measurement of our experiment, our improved LacI can respond to IPTG with better orthogonality. As shown in Figure 1, when 4 mM arabinose is added, oLacI (wild-type LacI) is induced at a significantly higher level than iLacI (improved LacI).

Figure 1. The expression level of EGFP controlled by different versions of LacI and inducers, or under different promoters.
The origin point indicates the time when different inducers are added (1 mM IPTG and/or 4 mM Arabinose). The title of the graph shows which kind of inducer is added to the culture. The horizontal axe shows the duration of time, the vertical axe shows the quantified level of EGFP expression. The fluorescence level (excitation wavelength: 485 nm; detection wavelength: 528 nm) is quantified by the concentration of fluorescein, and normalized by the measured OD600 equivalent to the number of beads in the system. oLacI stands for the wildtype LacI, iLacI stands for our improved version of LacI. +LacO indicates that the promoter constitutes a LacO sequence. Control is the negative control plasmid which does not constitute an EGFP sequence. Error bar in the two graphs on the first row indicates the SEM of three replicates. The second row showed only the mean amount of three replicate.

Higher induction level than the wild-type Lac operon when induced by IPTG

Our improved Lac operon does not malfunction and can be normally induced by IPTG. When 1 mM IPTG is added, EGFP controlled by both operons can be induced and expressed at relatively the same level (Figure 1), while the level of induction under the control of iLacI is significantly higher than that of oLacI (Figure 2).

Figure 2. The induction level of EGFP under different repressor and promoters.
Induction level is calculated by dividing fluorescence level after 9 h of induction by 1 h afterwards. The fluorescence level is quantified as in Figure 1. oLacI stands for the wildtype LacI, iLacI stands for our improved version of LacI. +LacO indicates that the promoter constitutes a LacO sequence. t test analysis shows that the induction level of iLacI is significantly higher than oLacI, *** indicates that p=0.0002.

Lower uninduced leakage

Figure 3. The basal fluorescence level of EGFP controlled by different repressors.
The bar indicates the mean fluorescence level during the 10 h with no inducer in the culture. The fluorescence level is quantified as in Figure 1. oLacI stands for the wildtype LacI, iLacI stands for our improved version of LacI. Control is below the detection level and not shown. Error bar indicates the SEM of fluorescence signal in the 10 h. Paired t test analysis shows that iLacI has a significantly lower of fluorescence than oLacI, p=0.0057 (**).

The uninduced leakage level is also an important parameter of an operon. Improved LacI lowers the leakage level compared to the wild-type one. The figure below (Figure 3) is the measurement of the fluorescence of EGFP controlled by wild-type and improved Lac operon. When no IPTG or arabinose is added, the fluorescence of EGFP controlled by improved Lac operon much lower than the fluorescence of EGFP controlled by wild-type Lac operon )Figure 1 & 3).