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

m
m
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Fudan-TSI}}
+
{{Fudan-TSI}}<!-- jquery loaded by HQ 1.12.4 -->
 
<html></p></div></div></div><meta name="viewport" content="width=device-width, initial-scale=1"><meta charset="UTF-8">
 
<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/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" 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" />
 
   <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" />
  <style>
+
<style>
 
/*****************************************************************************/
 
/*****************************************************************************/
 
/* DEFAULT WIKI SETTINGS */
 
/* DEFAULT WIKI SETTINGS */
Line 12: Line 12:
 
   #content { margin-left: 0; padding:0px; width:100%;}
 
   #content { margin-left: 0; padding:0px; width:100%;}
 
   .judges-will-not-evaluate { border: 4px solid #e4dede; padding: 2% !important; width: 92%!important; }
 
   .judges-will-not-evaluate { border: 4px solid #e4dede; padding: 2% !important; width: 92%!important; }
   *{margin:0;padding:0;list-style:none}blockquote,body,button,dd,dl,dt,fieldset,form,h1,h3,h4,h5,h6,hr,input,legend,li,ol,p,pre,td,textarea,th,ul{margin:0;padding:0}address,cite,dfn,em,var{font-style:normal}code,kbd,pre,samp{font-family:courier new,courier,monospace}ol,ul{list-style:none}a{text-decoration:none}a:hover{text-decoration:underline}legend{color:#000}fieldset,img{border:0}button,input,select,textarea{font-size:100%}table{border-collapse:collapse;border-spacing:0}
+
/* css clean * */
  #section1 td, #section2 td, #section3 td {padding-bottom:1em;line-height:1.5em}
+
   #FudanTSIBody li { list-style: none; }
 
     </style>
 
     </style>
     <title>2019 Team:Fudan-TSI Notebook</title>
+
     <title>Notebook | 2019 iGEM Team:Fudan-TSI</title>
 
</head>
 
</head>
 
<body>
 
<body>
 
<div id="FudanTSIdivWrapper"><div id="FudanTSIBody">
 
<div id="FudanTSIdivWrapper"><div id="FudanTSIBody">
 
   <header>
 
   <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> <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>
+
   <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 -->
 
   <!-- 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>
 +
  
 
   <ul id="slide-out" class="sidenav">
 
   <ul id="slide-out" class="sidenav">
Line 36: Line 76:
 
         <li class="onThisPageNav"><a href="#section4">section4</a></li>
 
         <li class="onThisPageNav"><a href="#section4">section4</a></li>
  
         <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 active"><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"><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="https://2018.igem.org/Team:Fudan/Heritage" target=_blank>Heritage</a></li></ul></div></li>
+
         <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 active"><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"><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 -->
 
       </ul><!-- .expandable -->
 
     </li>
 
     </li>
Line 52: Line 92:
 
           </div>
 
           </div>
 
           <div class="hide-on-small-only">
 
           <div class="hide-on-small-only">
              <div style="text-align:center;padding-top:80px"><center><img style="height:120px;width:auto" alt="cover notebook" src="https://static.igem.org/mediawiki/2019/4/4b/T--Fudan-TSI--coverNotebook.gif" /></center></div>
+
<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");
 +
          }
 +
        }
 +
 
 +
 
 +
        // calc circumcircle center x/y, radius
 +
        m1  = -((xJ - xI) / (yJ - yI));
 +
        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;
 +
            }
 +
          }
 +
 
 +
 
 +
          // 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 notebook" src="https://static.igem.org/mediawiki/2019/4/4b/T--Fudan-TSI--coverNotebook.gif" /></center></div>
 
           </div>
 
           </div>
 
       </div>
 
       </div>
Line 62: Line 452:
 
           <!-- side navigator of page content -->
 
           <!-- side navigator of page content -->
 
           <!-- main content of the page -->
 
           <!-- main content of the page -->
           <main style="margin:0">
+
           <main style="margin:0"><article>
  
<div id="section1" class="section container scrolSpy">
+
<div class="section container">
   <h2>section1</h2>
+
   <embed src="https://static.igem.org/mediawiki/2019/a/a3/T--Fudan-TSI--Notebook.pdf" width="100%" height="600px" type="application/pdf" />
  <p class="flow-text">Wxxx xxx xx xx.</p>
+
   <p>Here is <a target="_blank" href="https://static.igem.org/mediawiki/2019/a/a3/T--Fudan-TSI--Notebook.pdf">the link</a> to download the file above.</p>
  <p class="flow-text">In addi.</p>
+
</div>
+
 
+
<div id="section2" class="section container scrolSpy">
+
  <h2>section2</h2>
+
  <p class="flow-text">Wxxx xxx xx xx.</p>
+
   <p class="flow-text">In addi.</p>
+
</div>
+
 
+
<div id="section3" class="section container scrolSpy">
+
  <h2>section3</h2>
+
  <p class="flow-text">Wxxx xxx xx xx.</p>
+
  <p class="flow-text">In addi.</p>
+
 
</div>
 
</div>
  
Line 86: Line 463:
 
       do not edit below, if must BE CAREFUL
 
       do not edit below, if must BE CAREFUL
 
   //////////////////////////////////////////////////////-->
 
   //////////////////////////////////////////////////////-->
       </main></div><!-- end of side navigator and main of the page -->
+
       </article></main></div><!-- end of side navigator and main of the page -->
  
<!--Abstract on content page-->
 
      <div id="abstractContent" class="z-depth-2">
 
          <a href="#!"><img alt="project summary" src="https://static.igem.org/mediawiki/2018/9/96/T--Fudan--X.svg"></a>
 
          <div class="container">
 
              <h5 style="margin:0;padding:10px 0;">Project by Team:Fudan-TSI</h5>
 
              <p class="flow-text" style="margin:0">Mutation library generation is critical for biological and medical research, but current methods cannot mutate a specific sequence continuously without manual intervention. We hereby present a toolbox for <i>in vivo</i> continuous mutation library construction. First, the target DNA is transcribed into RNA. Next, our reverse transcriptase (RT) reverts RNA into cDNA, during which the target is randomly mutated by our RT's enhanced error-prone ability. Finally, the mutated version replaces the original sequence through recombination. These steps will be carried out iteratively, generating a random mutation library of the target with high efficiency as mutations accumulate along with bacterial growth. Our toolbox is orthogonal and provides a wide range of applications among various species. R-Evolution could mutate coding sequences and regulatory sequences, which enables the evolution of individual proteins or multiple targets at a time, promotes high-throughput research, and serves as a foundational advance to synthetic biology.
 
              </p>
 
          </div>
 
      </div>
 
 
<!-- Floating Btns, Footer with sponsors -->
 
<!-- Floating Btns, Footer with sponsors -->
       <div class="floatingBtn"> <a href="#!" id="abstractBtn" class="btn"> <i class="fa fa-sticky-note" style="font-size:30px;line-height:50px"></i> </a> <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%;/* 该图比其他小一点,排版需要 */" 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 active"> <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"> <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="https://2018.igem.org/Team:Fudan/Heritage" target=_blank>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 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 active"> <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"> <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 -->
 
</div></div></div><!-- #pageContent #FudanTSIBody #FudanTSIdivWrapper -->
  

Latest revision as of 05:51, 16 November 2019

Notebook | 2019 iGEM Team:Fudan-TSI


Notebook

We hereby present a toolbox for in vivo continuous mutation library construction. Our toolbox is orthogonal and provides a wide range of applications among various species.

cover notebook

Here is the link to download the file above.