Difference between revisions of "Team:HFUT-China"
(26 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | |||
<html lang="en"> | <html lang="en"> | ||
+ | |||
<head> | <head> | ||
− | + | <meta charset="UTF-8"> | |
− | + | <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1"> | |
− | + | <title>HFUT-China</title> | |
− | + | <link rel="stylesheet" type="text/css" href="https://2015.igem.org/Team:HFUT-China/indexcss?action=raw&ctype=text/css"> | |
− | + | <link rel="stylesheet" type="text/css" href="https://2015.igem.org/Team:HFUT-China/ghcss?action=raw&ctype=text/css"> | |
− | + | <link rel="stylesheet" type="text/css" href="https://2015.igem.org/Team:HFUT-China/bootstrapcss?action=raw&ctype=text/css"> | |
− | + | <link rel="stylesheet" type="text/css" href="https://2015.igem.org/Team:HFUT-China/onepagecss?action=raw&ctype=text/css"> | |
− | + | <script type="text/javascript" src="https://2015.igem.org/Team:HFUT-China/jqjs? | |
action=raw&ctype=text/javascript"></script> | action=raw&ctype=text/javascript"></script> | ||
− | + | <script type="text/javascript" src="https://2015.igem.org/Team:HFUT-China/btsjs? | |
action=raw&ctype=text/javascript"></script> | action=raw&ctype=text/javascript"></script> | ||
− | + | <script type="text/javascript" src="https://2015.igem.org/Team:HFUT-China/onepagejs? | |
action=raw&ctype=text/javascript"></script> | action=raw&ctype=text/javascript"></script> | ||
− | + | <script type="text/javascript" src="https://2015.igem.org/Team:HFUT-China/snapsvg? | |
action=raw&ctype=text/javascript"></script> | action=raw&ctype=text/javascript"></script> | ||
− | < | + | <script> |
− | + | if ($('.firstHeading')) $('.firstHeading').remove(); | |
− | + | </script> | |
− | + | <style> | |
− | #contentSub, #contentcontainer, #footer-box, #sitesub, #catlinks, #search-controls, #p-logo, .h3, .printfooter, .firstHeading, .visualClear {display: none;} /*-- hides default wiki settings --*/ | + | #contentSub, |
− | + | #contentcontainer, | |
− | #globalWrapper, #content { | + | #footer-box, |
− | + | #sitesub, | |
− | + | #catlinks, | |
− | + | #search-controls, | |
− | + | #p-logo, | |
− | + | .h3, | |
− | + | .printfooter, | |
− | } | + | .firstHeading, |
− | + | .visualClear { | |
− | /*#bodyContent h1, #bodyContent h2, #bodyContent h3, #bodyContent h4, #bodyContent h5, #bodyContent h6 { | + | display: none; |
+ | } | ||
+ | /*-- hides default wiki settings --*/ | ||
+ | |||
+ | #globalWrapper, | ||
+ | #content { | ||
+ | width: 100%; | ||
+ | height: 100%; | ||
+ | border: 0px; | ||
+ | background-color: transparent; | ||
+ | margin: 0px; | ||
+ | padding: 0px; | ||
+ | } | ||
+ | #bodyContent, #mw-content-text { | ||
+ | width: 100%; | ||
+ | height: 100%; | ||
+ | line-height:normal; | ||
+ | } | ||
+ | /* | ||
+ | #bodyContent h1, #bodyContent h2, #bodyContent h3, #bodyContent h4, #bodyContent h5, #bodyContent h6 { | ||
border-bottom: none; | border-bottom: none; | ||
padding-top: 0; | padding-top: 0; | ||
Line 48: | Line 67: | ||
font-size: 100%; | font-size: 100%; | ||
}*/ | }*/ | ||
− | |||
</style> | </style> | ||
</head> | </head> | ||
+ | |||
<body> | <body> | ||
− | + | <nav id="globalheader" class="globalheader" role="navigation" aria-label="Global Navigation"> | |
<div id="gh-content" class="gh-content"> | <div id="gh-content" class="gh-content"> | ||
<ul class="gh-nav-list navbar-nav"> | <ul class="gh-nav-list navbar-nav"> | ||
<li class="gh-tab gh-tab-logo"> | <li class="gh-tab gh-tab-logo"> | ||
<a href="https://2015.igem.org/Team:HFUT-China" class="gh-tab-link"> | <a href="https://2015.igem.org/Team:HFUT-China" class="gh-tab-link"> | ||
− | <div class="gh-logo"><img src="https://static.igem.org/mediawiki/2015/e/eb/Logo_white_small.png" alt="35x35" class="img-rounded" style="width: 35px;height: 35px;"></div> | + | <div class="gh-logo"> |
+ | <img src="https://static.igem.org/mediawiki/2015/e/eb/Logo_white_small.png" alt="35x35" class="img-rounded" style="width: 35px;height: 35px;"> | ||
+ | </div> | ||
</a> | </a> | ||
</li> | </li> | ||
− | <li class="gh-tab"><a href=" | + | <li class="gh-tab"><a href="https://2015.igem.org/Team:HFUT-China/Software" class="gh-tab-link">Software</a></li> |
− | + | <li class="gh-tab"><a href="https://2015.igem.org/Team:HFUT-China/Design" class="gh-tab-link">Design</a></li> | |
− | + | <li class="gh-tab"><a href="https://2015.igem.org/Team:HFUT-China/Description" class="gh-tab-link">Description</a></li> | |
− | + | <li class="gh-tab"><a href="https://2015.igem.org/Team:HFUT-China/Documents" class="gh-tab-link">Documents</a></li> | |
− | + | <li class="gh-tab"><a href="https://2015.igem.org/Team:HFUT-China/Practices" class="gh-tab-link">Human Practices</a></li> | |
− | + | <li class="gh-tab"><a href="https://2015.igem.org/Team:HFUT-China/Collaborations" class="gh-tab-link">Collaborations</a></li> | |
− | + | <li class="gh-tab"><a href="https://2015.igem.org/Team:HFUT-China/Team" class="gh-tab-link">Team</a></li> | |
− | + | <li class="gh-tab"><a href="https://2015.igem.org/Team:HFUT-China/Attributions" class="gh-tab-link">Attributors</a></li> | |
− | </ul> <!-- ul.gh-nav-list --> | + | </ul> |
− | </div> <!-- div#gh-content --> | + | <!-- ul.gh-nav-list --> |
− | </nav> <!-- nav#globalheader --> | + | </div> |
− | + | <!-- div#gh-content --> | |
− | + | </nav> | |
− | + | <!-- nav#globalheader --> | |
− | + | <div class="container main"> | |
− | + | <section class="intro brief"> | |
− | + | <figure class="logo-back"></figure> | |
− | + | <div class="b-title"> | |
− | + | <div class="title">BioDesigner</div> | |
− | + | <div class="slogn">All you want, right here</div> | |
− | + | </div> | |
− | + | </section> | |
− | + | <section class="intro desc"> | |
− | + | <div class="desc jumbotron"> | |
− | + | <div class="desc-title">What is BioDesigner</div> | |
− | + | <p class="desc-words">BioDesigner is a smart assistant tool for Synthetic Biology design. Helping Synthetic Biologists to make creative products is BioDesigner's purpose. With this idea, BioDesigner presents all valuable information to users. Also by improving BioBricks’ searching process, recommending practical BioBricks during the design process, and simulating Biobricks’ reaction process, BioDesigner leads Synthetic Biology design to a new level.</p> | |
− | + | </div> | |
− | + | <div class="img-logo"> | |
− | + | <svg id="test" width="100%" height="100%" viewBox="0 0 200 200"></svg> | |
− | + | </div> | |
− | + | </section> | |
− | + | <section class="intro search"> | |
− | + | <div class="search-anim"> | |
− | + | <svg id="search" width="100%" height="100%" viewBox="0 0 500 500"> | |
− | + | </svg> | |
− | + | </div> | |
− | + | <div class="func-desc jumbotron"> | |
− | + | <div class="func-title">Search</div> | |
− | + | <div class="func-subtitle">Search BioBricks, but more than BioBricks</div> | |
− | + | <p class="func-words">Searching for a part is the most fundamental step in Synthetic Biology. With BioDesigner's powerful search tool, users can search parts by typing what they want, and the custom-built result will be presented to them. Besides, what BioDesigner can do is more than that. Lots of valuable information will also be presented to users, like basic information, especially parts quality evaluation score, as well as parts' related papers. By integrating lots of information together, users can get more than a BioBrick.</p> | |
− | + | </div> | |
− | + | </section> | |
− | + | <section class="intro recommend"> | |
− | + | <div class="recommend-anim"> | |
− | + | <svg id="recommend" width="100%" height="100%" viewBox="0 0 500 500"> | |
− | + | </svg> | |
− | + | </div> | |
− | + | <div class="func-desc jumbotron"> | |
− | + | <div class="func-title">Recommendation</div> | |
− | + | <div class="func-subtitle">Select in selection, not Search in ocean</div> | |
− | + | <p class="func-words">Selecting a part from tons of candidates is always a pain point to every Synthetic Biology researcher. BioDesigner is the assistant that can simplify this task. Based on users' current design, BioDesigner can narrow down the scope and provide useful parts as a recommendation to users. Also, by analyzing part's function, the recommendation will adjust to users’ design according to users’ specific function need. BioDesigner can also providing system level recommendation by showing users the relations between various proteins and genes. With BioDesigner’s fantastic recommendation function, selecting a part won't be that hard.</p> | |
− | + | </div> | |
− | + | </section> | |
− | + | <section class="intro simulation"> | |
− | + | <div class="simu-anim"> | |
− | + | <svg id="simulation" width="100%" height="100%" viewBox="0 0 500 500"> | |
− | + | </svg> | |
− | + | </div> | |
− | + | <div class="simu-desc jumbotron"> | |
− | + | <div class="simu-title">Simulation</div> | |
− | + | <div class="simu-subtitle">Tell how it works, before you do your works</div> | |
− | + | <p class="simu-words">Traditionally, testing a Synthetic Biology design is done by lots of biological experiments, which can be an extremely time-consuming process. By using SSA algorithm, BioDesigner can show users a glance of how the design will perform. With BioDesigner's interactive simulator, user can check the amount of a certain compound at any time, or during any time period.</p> | |
− | + | </div> | |
− | + | </section> | |
− | + | </div> | |
− | + | <!-- div.container-fluid --> | |
− | + | <script type="text/javascript"> | |
− | + | window.image_index = 0; | |
− | + | window.total_image = 3; | |
− | + | </script> | |
− | + | <script type="text/javascript"> | |
− | + | $(document).ready(function() { | |
− | <script type="text/javascript"> | + | |
− | + | ||
− | + | ||
− | </script> | + | |
− | <script type="text/javascript"> | + | |
− | + | ||
− | + | $('.main').onepage_scroll({ | |
− | + | sectionContainer: "section", | |
− | + | easing: "ease", | |
− | + | animationTime: 1000, | |
− | + | pagination: true, | |
− | + | afterMove: function(index) { | |
− | + | drawContent(index); | |
− | + | }, | |
− | + | loop: false, | |
− | + | keyboard: true, | |
− | + | direction: "vertical" | |
− | + | }) | |
− | + | }); | |
− | </script> | + | </script> |
− | <script type="text/javascript"> | + | <script type="text/javascript"> |
− | + | $(document).on({ | |
− | + | click: function() { | |
− | + | window.image_index -= 1; | |
− | + | if (window.image_index < 0) { | |
− | + | window.image_index = window.total_image - 1; | |
− | + | } | |
− | + | var image_width = $('figure.project').width(); | |
− | + | var new_width = image_width * window.image_index; | |
− | + | var pos_str = '-' + new_width + 'px 0px'; | |
− | + | console.log(pos_str); | |
− | + | $('figure.project').css('background-position', pos_str); | |
− | + | } | |
− | + | }, 'button#left'); | |
− | </script> | + | </script> |
− | <script type="text/javascript"> | + | <script type="text/javascript"> |
− | + | $(document).on({ | |
− | + | click: function() { | |
− | + | window.image_index += 1; | |
− | + | if (window.image_index >= window.total_image) { | |
− | + | window.image_index = 0; | |
− | + | } | |
− | + | var image_width = $('figure.project').width(); | |
− | + | var new_width = image_width * window.image_index; | |
− | + | var pos_str = '-' + new_width + 'px 0px'; | |
− | + | console.log(pos_str); | |
− | + | $('figure.project').css('background-position', pos_str); | |
− | + | } | |
− | + | }, 'button#right'); | |
− | </script> | + | </script> |
− | <script type="text/javascript"> | + | <script type="text/javascript"> |
− | + | function drawContent(index) { | |
− | + | if (index == 1) {} else if (index == 2) { | |
− | + | drawLogo(); | |
− | + | } else if (index == 3) { | |
− | + | animate_search(); | |
− | + | } else if (index == 4) { | |
− | + | animate_recommendation(); | |
− | + | } else if (index == 5) { | |
− | + | animate_simulate(); | |
− | + | } | |
− | + | } | |
− | + | </script> | |
− | </script> | + | <script type="text/javascript"> |
− | <script type="text/javascript"> | + | function drawSearch() { |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | } | |
− | + | </script> | |
− | + | <script type="text/javascript"> | |
− | + | function drawLogo() { | |
− | + | var s = Snap('#test'); | |
− | + | s.clear(); | |
− | + | var path1 = s.path('M27.014,120.007c-10.25-0.183-17.187,7.394-17.066,16.297c0.098,6.935,5.523,13.152,12.199,14.747c6.874,1.639,13.909-1.388,17.399-7.665c0.741-1.344,1.518-1.735,2.992-1.731c16.309,0.054,32.618,0.064,48.929-0.008c1.657-0.005,2.524,0.444,3.34,1.918c3.516,6.372,10.816,9.386,17.763,7.511c6.847-1.848,12.005-8.626,11.812-15.52c-0.194-6.922-5.247-13.241-11.95-14.947c-6.913-1.755-14.021,1.145-17.527,7.374c-0.811,1.444-1.711,1.759-3.194,1.755c-16.388-0.037-32.774-0.042-49.162,0.004c-1.43,0.007-2.239-0.31-3.006-1.678C36.647,122.908,32.09,120.279,27.014,120.007z M55.312,69.361c0.203,0.152,0.354,0.22,0.441,0.337c2.129,2.763,4.324,5.478,6.328,8.332c0.502,0.714,0.683,1.916,0.509,2.793c-0.713,3.628,1.352,6.981,4.809,7.515c3.583,0.559,6.754-1.909,7.011-5.448c0.257-3.516-2.463-6.337-6.139-6.458c-0.688-0.024-1.639-0.141-1.996-0.588c-2.464-3.048-4.801-6.198-7.146-9.272c5.118-6.465,5.876-13.023,1.653-20.015c-0.29-0.48-0.107-1.576,0.267-2.085c2.03-2.738,4.266-5.332,6.278-8.086c1.065-1.46,1.935-1.931,3.878-1.285c8.596,2.837,17.725-2.468,19.888-11.325c2.206-9.052-3.742-17.634-13.488-19.446c-7.699-1.431-16.192,5.197-17.41,13.522c-0.635,4.353,0.549,8.231,2.947,11.804c-2.572,3.273-5.134,6.376-7.514,9.609c-0.994,1.349-1.823,1.697-3.524,1.175c-7.82-2.411-16.154,1.783-19.083,9.419c-2.895,7.544,0.432,16.141,7.694,19.717C45.607,71.99,50.522,71.729,55.312,69.361z M45.403,101.716c0.668,0.135,1.12,0.203,1.561,0.314c7.917,2.062,15.845,4.093,23.737,6.255c0.708,0.198,1.444,1.168,1.717,1.938c1.536,4.354,5.158,7.015,9.638,6.898c4.238-0.111,7.947-2.972,9.091-7.011c1.183-4.164-0.505-8.581-4.165-10.908c-3.705-2.355-8.286-1.895-11.834,1.004c-0.67,0.548-1.905,0.888-2.721,0.688c-7.65-1.881-15.257-3.952-22.912-5.832c-1.876-0.46-2.623-1.251-2.934-3.244c-1.299-8.387-9.561-14.011-18.171-12.6c-8.456,1.386-14.186,9.647-12.727,18.345c1.377,8.194,9.483,14.012,17.705,12.752C38.81,109.486,42.664,106.476,45.403,101.716z'); | |
− | + | ||
− | + | ||
− | + | path1.attr({ | |
− | + | id: "pathA", | |
− | + | fill: "none", | |
− | + | strokeWidth: "1", | |
− | + | stroke: "#002FA7", | |
− | + | strokeMiterLimit: "10", | |
− | + | strokeDasharray: "9 9", | |
− | + | strokeDashOffset: "988.01" | |
− | + | }); | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | var len1 = path1.getTotalLength(); | |
− | + | path1.attr({ | |
− | + | stroke: '#002FA7', | |
+ | strokeWidth: 1, | ||
+ | fill: 'none', | ||
+ | // Draw Path | ||
+ | "stroke-dasharray": len1 + " " + len1, | ||
+ | "stroke-dashoffset": len1 | ||
+ | }).animate({ | ||
+ | "stroke-dashoffset": 10 | ||
+ | }, 2000, mina.easeout, function() { | ||
+ | path1.animate({ | ||
+ | fill: '#000' | ||
+ | }, 1000); | ||
+ | }); | ||
+ | } | ||
+ | </script> | ||
+ | <script type="text/javascript"> | ||
+ | function animate_recommendation() { | ||
+ | var ss = Snap('#recommend'); | ||
+ | ss.clear(); | ||
+ | var first_image = ss.image('https://static.igem.org/mediawiki/2015/2/20/Blue_biobrick.png', 250, 500, 99, 174); | ||
+ | var second_image = ss.image('https://static.igem.org/mediawiki/2015/2/20/Blue_biobrick.png', -130, 184, 99, 174); | ||
+ | var recommend_image1 = ss.image('https://static.igem.org/mediawiki/2015/f/fd/Green_biobrick.png', 175, 75, 99, 174).attr({ | ||
+ | 'opacity': 0 | ||
+ | }); | ||
+ | var recommend_image2 = ss.image('https://static.igem.org/mediawiki/2015/0/08/Red_biobrick.png', 320, 75, 99, 174).attr({ | ||
+ | 'opacity': 0 | ||
+ | }); | ||
+ | first_image.animate({ | ||
+ | y: 290 | ||
+ | }, 1000, mina.easeout, function() { | ||
+ | second_image.animate({ | ||
+ | x: 250 | ||
+ | }, 1300, mina.easeout, function() { | ||
+ | recommend_image1.animate({ | ||
+ | 'opacity': 1 | ||
+ | }, 1000); | ||
+ | recommend_image2.animate({ | ||
+ | 'opacity': 1 | ||
+ | }, 700, function() { | ||
+ | recommend_image1.animate({ | ||
+ | x: 250 | ||
+ | }, 1000); | ||
+ | recommend_image2.animate({ | ||
+ | 'opacity': 0 | ||
+ | }, 750); | ||
+ | }); | ||
+ | }); | ||
+ | }); | ||
+ | } | ||
+ | </script> | ||
+ | <script type="text/javascript"> | ||
+ | function animate_search() { | ||
+ | var ss = Snap('#search'); | ||
+ | ss.clear(); | ||
+ | var bb_image = ss.image('https://static.igem.org/mediawiki/2015/2/20/Blue_biobrick.png', 300, 410, 40, 70); | ||
− | + | var hook_image = ss.image('https://static.igem.org/mediawiki/2015/e/e8/Search_hook.png', 290, -153, 61, 153); | |
− | + | var cloud_image = ss.image('https://static.igem.org/mediawiki/2015/8/87/Search_cloud.png', 250, 400, 144, 80); | |
− | + | var name_image = ss.image('https://static.igem.org/mediawiki/2015/8/86/Name.png', 300, 210, 50, 50).attr({ | |
− | + | 'opacity': 0 | |
+ | }); | ||
+ | var paper_image = ss.image('https://static.igem.org/mediawiki/2015/b/b2/Paper.png', 300, 210, 50, 50).attr({ | ||
+ | 'opacity': 0 | ||
+ | }); | ||
+ | var type_image = ss.image('https://static.igem.org/mediawiki/2015/5/5f/Type.png', 300, 210, 50, 50).attr({ | ||
+ | 'opacity': 0 | ||
+ | }); | ||
+ | var desc_image = ss.image('https://static.igem.org/mediawiki/2015/8/85/DESC.png', 300, 210, 50, 50).attr({ | ||
+ | 'opacity': 0 | ||
+ | }); | ||
+ | hook_image.animate({ | ||
+ | y: 300 | ||
+ | }, 1000, mina.easeout, function() { | ||
+ | hook_image.animate({ | ||
+ | y: 100 | ||
+ | }, 1500); | ||
+ | bb_image.animate({ | ||
+ | y: 210 | ||
+ | }, 1500, function() { | ||
+ | name_image.animate({ | ||
+ | 'opacity': 1, | ||
+ | x: 230, | ||
+ | y: 150, | ||
+ | width: 65, | ||
+ | height: 65 | ||
+ | }, 1000); | ||
+ | paper_image.animate({ | ||
+ | 'opacity': 1, | ||
+ | x: 230, | ||
+ | y: 270, | ||
+ | width: 65, | ||
+ | height: 65 | ||
+ | }, 1000); | ||
+ | type_image.animate({ | ||
+ | 'opacity': 1, | ||
+ | x: 350, | ||
+ | y: 150, | ||
+ | width: 65, | ||
+ | height: 65 | ||
+ | }, 1000); | ||
+ | desc_image.animate({ | ||
+ | 'opacity': 1, | ||
+ | x: 350, | ||
+ | y: 270, | ||
+ | width: 65, | ||
+ | height: 65 | ||
+ | }, 1000); | ||
+ | }); | ||
+ | }) | ||
+ | } | ||
+ | </script> | ||
+ | <script type="text/javascript"> | ||
+ | function animate_simulate() { | ||
+ | var ss = Snap('#simulation'); | ||
+ | ss.clear(); | ||
+ | var linex = ss.path('M395.667,349.333L416.501,357.666L395.5,366.625L395.5,359.5L73,359.5').attr({ | ||
+ | fill: 'none', | ||
+ | stroke: '#000000', | ||
+ | strokeWidth: 5, | ||
+ | 'stroke-linecap': 'round', | ||
+ | 'stroke-linejoin': 'round', | ||
+ | 'stroke-miterlimit': 10, | ||
+ | strokeDasharray: "9 9", | ||
+ | strokeDashOffset: "988.01" | ||
+ | }); | ||
+ | var liney = ss.path('M119.417,164.417L110.959,144.041L102.5,166.5L109.5,166.5L109.5,394').attr({ | ||
+ | fill: 'none', | ||
+ | stroke: '#000000', | ||
+ | 'stroke-width': 5, | ||
+ | 'stroke-linecap': 'round', | ||
+ | 'stroke-linejoin': 'round', | ||
+ | 'stroke-miterlimit': 10, | ||
+ | strokeDasharray: "9 9", | ||
+ | strokeDashOffset: "988.01" | ||
+ | }); | ||
+ | var line1 = ss.path('M136,172.094L196.699,295.088L256,311L315,321L376,327.667').attr({ | ||
+ | fill: 'none', | ||
+ | stroke: '#5FAEFF', | ||
+ | 'stroke-width': 7, | ||
+ | 'stroke-linecap': 'round', | ||
+ | 'stroke-linejoin': 'round', | ||
+ | 'stroke-miterlimit': 10, | ||
+ | strokeDasharray: "9 9", | ||
+ | strokeDashOffset: "988.01" | ||
+ | }); | ||
+ | var line2 = ss.path('M136,331.5L196.699,249.881L256,241.091L315,200.333L376,195').attr({ | ||
+ | fill: 'none', | ||
+ | stroke: '#2FCE71', | ||
+ | 'stroke-width': 7, | ||
+ | 'stroke-linecap': 'round', | ||
+ | 'stroke-linejoin': 'round', | ||
+ | 'stroke-miterlimit': 10, | ||
+ | strokeDasharray: "9 9", | ||
+ | strokeDashOffset: "988.01" | ||
+ | }); | ||
+ | var lenx = linex.getTotalLength(); | ||
+ | var leny = liney.getTotalLength(); | ||
+ | var len1 = line1.getTotalLength(); | ||
+ | var len2 = line2.getTotalLength(); | ||
+ | line1.attr({ | ||
+ | "stroke-dasharray": len1 + " " + len1, | ||
+ | "stroke-dashoffset": len1 | ||
+ | }); | ||
+ | line2.attr({ | ||
+ | "stroke-dasharray": len2 + " " + len2, | ||
+ | "stroke-dashoffset": len2 | ||
+ | }); | ||
− | + | linex.attr({ | |
− | + | stroke: '#000', | |
− | + | strokeWidth: 5, | |
− | + | ||
− | + | // Draw Path | |
− | + | "stroke-dasharray": lenx + " " + lenx, | |
− | + | "stroke-dashoffset": lenx | |
− | + | }).animate({ | |
− | + | "stroke-dashoffset": 10 | |
− | + | }, 2000, mina.easeout, function() { | |
− | + | ||
− | + | }); | |
− | + | liney.attr({ | |
− | + | stroke: '#000', | |
− | + | strokeWidth: 5, | |
− | + | ||
− | + | ||
− | + | ||
− | + | // Draw Path | |
− | + | "stroke-dasharray": leny + " " + leny, | |
− | + | "stroke-dashoffset": leny | |
− | + | }).animate({ | |
− | + | "stroke-dashoffset": 10 | |
− | + | }, 2000, mina.easeout, function() { | |
− | + | line1.attr({ | |
− | </script> | + | stroke: '#5FAEFF', |
+ | strokeWidth: 7, | ||
+ | |||
+ | // Draw Path | ||
+ | "stroke-dasharray": len1 + " " + len1, | ||
+ | "stroke-dashoffset": len1 | ||
+ | }).animate({ | ||
+ | "stroke-dashoffset": 10 | ||
+ | }, 2000, mina.easeout, function() { | ||
+ | line2.attr({ | ||
+ | stroke: '#2FCE71', | ||
+ | strokeWidth: 7, | ||
+ | |||
+ | // Draw Path | ||
+ | "stroke-dasharray": len2 + " " + len2, | ||
+ | "stroke-dashoffset": len2 | ||
+ | }).animate({ | ||
+ | "stroke-dashoffset": 10 | ||
+ | }, 2000, mina.easeout) | ||
+ | }); | ||
+ | }); | ||
+ | } | ||
+ | </script> | ||
</body> | </body> | ||
+ | |||
</html> | </html> |
Latest revision as of 00:36, 19 September 2015
BioDesigner is a smart assistant tool for Synthetic Biology design. Helping Synthetic Biologists to make creative products is BioDesigner's purpose. With this idea, BioDesigner presents all valuable information to users. Also by improving BioBricks’ searching process, recommending practical BioBricks during the design process, and simulating Biobricks’ reaction process, BioDesigner leads Synthetic Biology design to a new level.
Searching for a part is the most fundamental step in Synthetic Biology. With BioDesigner's powerful search tool, users can search parts by typing what they want, and the custom-built result will be presented to them. Besides, what BioDesigner can do is more than that. Lots of valuable information will also be presented to users, like basic information, especially parts quality evaluation score, as well as parts' related papers. By integrating lots of information together, users can get more than a BioBrick.
Selecting a part from tons of candidates is always a pain point to every Synthetic Biology researcher. BioDesigner is the assistant that can simplify this task. Based on users' current design, BioDesigner can narrow down the scope and provide useful parts as a recommendation to users. Also, by analyzing part's function, the recommendation will adjust to users’ design according to users’ specific function need. BioDesigner can also providing system level recommendation by showing users the relations between various proteins and genes. With BioDesigner’s fantastic recommendation function, selecting a part won't be that hard.
Traditionally, testing a Synthetic Biology design is done by lots of biological experiments, which can be an extremely time-consuming process. By using SSA algorithm, BioDesigner can show users a glance of how the design will perform. With BioDesigner's interactive simulator, user can check the amount of a certain compound at any time, or during any time period.