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

(Blanked the page)
 
(17 intermediate revisions by the same user not shown)
Line 1: Line 1:
<html lang="en" dir="ltr" class="client-nojs">
 
<head>
 
<meta charset="UTF-8" />
 
<title>Team:Heidelberg/internal tools - 2017.igem.org</title>
 
<meta name="generator" content="MediaWiki 1.24.1" />
 
<meta name="viewport" content="with=device-with, initial-scale=1.0"/>
 
<link rel="alternate" type="application/x-wiki" title="Edit" href="/wiki/index.php?title=Team:Heidelberg/internal_tools&amp;action=edit" />
 
<link rel="edit" title="Edit" href="/wiki/index.php?title=Team:Heidelberg/internal_tools&amp;action=edit" />
 
<link rel="shortcut icon" href="/favicon.ico" />
 
<link rel="search" type="application/opensearchdescription+xml" href="/wiki/opensearch_desc.php" title="2017.igem.org (en)" />
 
<link rel="EditURI" type="application/rsd+xml" href="https://2017.igem.org/wiki/api.php?action=rsd" />
 
<link rel="alternate" hreflang="x-default" href="/Team:Heidelberg/internal_tools" />
 
<link rel="copyright" href="http://creativecommons.org/licenses/by/3.0/" />
 
<link rel="alternate" type="application/atom+xml" title="2017.igem.org Atom feed" href="/wiki/index.php?title=Special:RecentChanges&amp;feed=atom" />
 
<link rel="stylesheet" href="https://2017.igem.org/wiki/load.php?debug=false&amp;lang=en&amp;modules=mediawiki.legacy.commonPrint%2Cshared%7Cmediawiki.skinning.content.externallinks%7Cmediawiki.skinning.interface%7Cmediawiki.ui.button%7Cskins.igem.styles&amp;only=styles&amp;skin=igem&amp;*" />
 
<!--[if IE 6]><link rel="stylesheet" href="/wiki/skins/Igem/IE60Fixes.css?303" media="screen" /><![endif]-->
 
<!--[if IE 7]><link rel="stylesheet" href="/wiki/skins/Igem/IE70Fixes.css?303" media="screen" /><![endif]--><meta name="ResourceLoaderDynamicStyles" content="" />
 
<style>a:lang(ar),a:lang(kk-arab),a:lang(mzn),a:lang(ps),a:lang(ur){text-decoration:none}
 
/* cache key: 2017_igem_org:resourceloader:filter:minify-css:7:faeec198b704588e6c9afc1a44274438 */</style>
 
<script src="https://2017.igem.org/wiki/load.php?debug=false&amp;lang=en&amp;modules=startup&amp;only=scripts&amp;skin=igem&amp;*"></script>
 
<script>if(window.mw){
 
mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Team:Heidelberg/internal_tools","wgTitle":"Team:Heidelberg/internal tools","wgCurRevisionId":131201,"wgRevisionId":131201,"wgArticleId":19802,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":"Juzb","wgUserGroups":["*","user","autoconfirmed"],"wgCategories":[],"wgBreakFrames":false,"wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgMonthNamesShort":["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"wgRelevantPageName":"Team:Heidelberg/internal_tools","wgUserId":915,"wgUserEditCount":27,"wgUserRegistration":1492081568000,"wgUserNewMsgRevisionId":null,"wgIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgWikiEditorEnabledModules":{"toolbar":false,"dialogs":false,"hidesig":true,"preview":false,"previewDialog":false,"publish":false}});
 
}</script><script>if(window.mw){
 
mw.loader.implement("user.options",function($,jQuery){mw.user.options.set({"ccmeonemails":0,"cols":80,"date":"default","diffonly":0,"disablemail":0,"editfont":"default","editondblclick":0,"editsectiononrightclick":0,"enotifminoredits":0,"enotifrevealaddr":0,"enotifusertalkpages":1,"enotifwatchlistpages":1,"extendwatchlist":0,"fancysig":0,"forceeditsummary":0,"gender":"unknown","hideminor":0,"hidepatrolled":0,"imagesize":2,"math":1,"minordefault":0,"newpageshidepatrolled":0,"nickname":"","norollbackdiff":0,"numberheadings":0,"previewonfirst":0,"previewontop":1,"rcdays":7,"rclimit":50,"rows":25,"showhiddencats":0,"shownumberswatching":1,"showtoolbar":1,"skin":"igem","stubthreshold":0,"thumbsize":5,"underline":2,"uselivepreview":0,"usenewrc":1,"watchcreations":1,"watchdefault":1,"watchdeletion":0,"watchlistdays":3,"watchlisthideanons":0,"watchlisthidebots":0,"watchlisthideliu":0,"watchlisthideminor":0,"watchlisthideown":0,"watchlisthidepatrolled":0,"watchmoves":0,"watchrollback":0,
 
"wllimit":250,"useeditwarning":1,"prefershttps":1,"language":"en","variant-gan":"gan","variant-iu":"iu","variant-kk":"kk","variant-ku":"ku","variant-shi":"shi","variant-sr":"sr","variant-tg":"tg","variant-uz":"uz","variant-zh":"zh","searchNs0":true,"searchNs1":false,"searchNs2":false,"searchNs3":false,"searchNs4":false,"searchNs5":false,"searchNs6":false,"searchNs7":false,"searchNs8":false,"searchNs9":false,"searchNs10":false,"searchNs11":false,"searchNs12":false,"searchNs13":false,"searchNs14":false,"searchNs15":false});},{},{});mw.loader.implement("user.tokens",function($,jQuery){mw.user.tokens.set({"editToken":"29b8dd8475ab9ce369f1eaa3b62557e9+\\","patrolToken":"9b15ea2f11dbe71fc465e1579a511670+\\","watchToken":"c9c576d4bfe983ce3d6431645a6d7d83+\\"});},{},{});
 
/* cache key: 2017_igem_org:resourceloader:filter:minify-js:7:1b1539751622cf633e0bbde0db35ebde */
 
}</script>
 
<script>if(window.mw){
 
mw.loader.load(["mediawiki.page.startup","mediawiki.legacy.wikibits","mediawiki.legacy.ajax"]);
 
}</script>
 
</head>
 
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-Team_Heidelberg_internal_tools skin-igem action-view">
 
  
        <script type='text/javascript'        src ='/common/tablesorter/jquery.tablesorter.min.js'></script>
 
        <link rel='stylesheet' type='text/css' href='/common/tablesorter/themes/groupparts/style.css' />
 
        <link rel='stylesheet' type='text/css' href='/common/table_styles.css' />
 
 
        <script type='text/javascript'        src ='/wiki/skins/Igem/resources/2017_skin.js'></script>
 
 
 
    <div id='globalWrapper'>
 
        <div id='top_menu_under' class='noprint'></div>
 
        <div id='top_menu_14' class='noprint'></div> <!-- Will be replaced with the jQuery.load -->
 
                <script>jQuery('#top_menu_14').load('https://2017.igem.org/cgi/top_menu_14/menubar_reply.cgi',
 
                                                    {  t:"Team%3AHeidelberg%2Finternal%20tools",
 
                                                        a:"View+%2FTeam%3AHeidelberg%2Finternal_tools++Edit+%2Fwiki%2Findex.php%3Ftitle%3DTeam%3AHeidelberg%2Finternal_tools%26action%3Dedit++History+%2Fwiki%2Findex.php%3Ftitle%3DTeam%3AHeidelberg%2Finternal_tools%26action%3Dhistory++Move+%2FSpecial%3AMovePage%2FTeam%3AHeidelberg%2Finternal_tools++Unwatch+%2Fwiki%2Findex.php%3Ftitle%3DTeam%3AHeidelberg%2Finternal_tools%26action%3Dunwatch%26token%3D9de7174bd4c84ca9683628fb5dd345bb%252B%255C++Page+%2FTeam%3AHeidelberg%2Finternal_tools++Discussion+%2Fwiki%2Findex.php%3Ftitle%3DTalk%3ATeam%3AHeidelberg%2Finternal_tools%26action%3Dedit%26redlink%3D1++" });
 
                </script>
 
 
        <!-- Content div contains HQ_page for HQ styles, Logo and title div, and USER CONTENT -->
 
                <div id="content" class="mw-body" role="main">
 
                    <a id="top"></a>
 
 
            <div id="top_title">
 
                <div class="logo_2017">
 
                    <a href="https://2017.igem.org">
 
                    <img src="https://static.igem.org/mediawiki/2017/8/8b/HQ_page_logo.jpg" width="100px">
 
                    </a>
 
                </div>
 
 
                        <h1 id="firstHeading" class="firstHeading">
 
                            <span dir="auto">Team:Heidelberg/internal tools</span>
 
                        </h1>
 
            </div>
 
 
            <div id="HQ_page">
 
                <div id="bodyContent">
 
                            <div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr"><p>
 
        <head>
 
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
                <meta name="generator" content="MediaWiki 1.16.5" />
 
<link rel="shortcut icon" href="/favicon.ico" />
 
<link rel="search" type="application/opensearchdescription+xml" href="/wiki/opensearch_desc.php" title="2014.igem.org (en)" />
 
<link title="Creative Commons" type="application/rdf+xml" href="/wiki/index.php?title=WikitemplateA_home&amp;action=creativecommons" rel="meta" />
 
<link rel="copyright" href="http://creativecommons.org/licenses/by/3.0/" />
 
<link rel="alternate" type="application/atom+xml" title="2014.igem.org Atom feed" href="/wiki/index.php?title=Special:RecentChanges&amp;feed=atom" />          <title>WikitemplateA home - 2014.igem.org</title>
 
                <style type="text/css" media="screen, projection">/*<![CDATA[*/
 
                        @import "/wiki/skins/common/shared.css?270";
 
                        @import "/wiki/skins/igem/main.css?270";
 
                /*]]>*/</style>
 
                <link rel="stylesheet" type="text/css" media="print" href="/wiki/skins/common/commonPrint.css?270" />
 
                <!--[if lt IE 5.5000]><style type="text/css">@import "/wiki/skins/igem/IE50Fixes.css?270";</style><![endif]-->
 
                <!--[if IE 5.5000]><style type="text/css">@import "/wiki/skins/igem/IE55Fixes.css?270";</style><![endif]-->
 
                <!--[if IE 6]><style type="text/css">@import "/wiki/skins/igem/IE60Fixes.css?270";</style><![endif]-->
 
                <!--[if IE 7]><style type="text/css">@import "/wiki/skins/igem/IE70Fixes.css?270";</style><![endif]-->
 
                <!--[if lt IE 7]><script type="text/javascript" src="/wiki/skins/common/IEFixes.js?270"></script>
 
                <meta http-equiv="imagetoolbar" content="no" /><![endif]-->
 
 
                <script type="text/javascript" src="/wiki/skins/common/wikibits.js?270"><!-- wikibits js --></script>
 
                <!-- Head Scripts -->
 
<script src="/wiki/skins/common/ajax.js?270"></script>
 
<script src="/wiki/skins/common/mwsuggest.js?270"></script>
 
                <script type="text/javascript" src="/wiki/index.php?title=-&amp;action=raw&amp;gen=js&amp;useskin=igem"><!-- site js --></script>
 
        <!-- jQuery Javascript -->
 
        <script type='text/javascript'        src ='/common/jquery-latest.min.js'></script>
 
        <script type='text/javascript'        src ='/common/tablesorter/jquery.tablesorter.min.js'></script>
 
        <link rel='stylesheet' type='text/css' href='/common/tablesorter/themes/groupparts/style.css' />
 
        <link rel='stylesheet' type='text/css' href='/common/table_styles.css' />
 
        <link rel='stylesheet' type='text/css' href='/forum/forum_styles.css' />
 
        <script type='text/javascript'        src ='/forum/forum_scripts.js'></script>
 
 
<script type="text/javascript" src="https://2015.igem.org/Team:Heidelberg/js/bibtexParse?action=raw&amp;ctype=text/javascript"></script>
 
<script type="text/javascript" src="https://2015.igem.org/Team:Heidelberg/js/zitator?action=raw&amp;ctype=text/javascript"></script>
 
<script type="text/javascript">
 
var bibfile = "https://static.igem.org/mediawiki/2017/7/70/T--Heidelberg--Team_Heidelberg_2017_citation.txt";
 
$(function (){new Zitator(".basictext",bibfile).zitiere();});
 
</script>
 
 
</head>
 
 
<body>
 
 
 
    <div id="top-section">
 
 
        <script type="text/javascript"> if (window.isMSIE55) fixalpha(); </script>
 
 
 
 
 
 
        <div class="right-menu noprint" id="menubar">
 
            <ul>
 
                                                <li id="pt-login"><a href="/wiki/index.php?title=Special:UserLogin&amp;returnto=WikitemplateA_home" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o">Log in</a></li>            </ul>
 
        </div><!-- end right menubar -->
 
 
        <div id="search-controls" class="noprint">
 
                <form action="/Special:Search" id="searchform">
 
                <input id="searchInput" name="search" type="text" title="Search 2014.igem.org [f]" accesskey="f" value="" />
 
                        <input type='submit' name="go" class="searchButton" id="searchGoButton"        value="Go" title="Go to a page with this exact name if exists" />&#160;
 
                      <input type='submit' name="fulltext" class="searchButton" id="mw-searchButton" value="Search" title="Search the pages for this text" />
 
                </form>
 
        </div> <!-- close search controls -->
 
    </div> <!-- close top-section-->
 
    <div id="content">
 
                <a name="top" id="top"></a>
 
                                <h1 class="firstHeading">WikitemplateA home</h1>
 
                <div id="bodyContent">
 
                        <h3 id="siteSub" class='noprint'>From 2014.igem.org</h3>
 
                        <div id="contentSub"></div>
 
                                                <!--
 
                        <div id="jump-to-nav">Jump to:                        <a href="#column-one">navigation</a>, <a href="#searchInput">search</a></div>-->
 
                        <!-- start content -->
 
                        <p>
 
 
 
<!-- this section changes the default wiki template to a
 
white full width background -->
 
 
<style type="text/css">
 
#contentSub, #footer-box, #catlinks, #search-controls, #p-
 
 
logo, #sideMenu, #menubar, .logo_2017, .printfooter, .firstHeading,.visualClear {display:
 
 
none;} /*-- hides default wiki settings --*/
 
 
#top-section { /*-- styling for default menu bar (edit, page,
 
 
history, etc.) --*/
 
 
        border: 0 none;
 
        height: 14px;
 
        z-index: 100;
 
        top: 0;
 
        position: fixed;
 
        width: 975px;
 
        left: 50%;
 
        margin-left: -487px;
 
}
 
 
#globalWrapper, #content { /*-- changes default wiki settings
 
 
--*/
 
        width: 100%;
 
        height: 100%;
 
        border: 0px;
 
        background-color: transparent;
 
        margin: 0px;
 
        padding: 0px;
 
}
 
 
html, body, .wrapper { /*-- changes default wiki settings --
 
 
*/
 
        width: 100%;
 
        height: 100%;
 
        background-color: transparent;
 
}
 
</style>
 
 
<!-- Assets -->
 
<link rel="stylesheet" href="http://static.tildacdn.com/css/tilda-grid-3.0.min.css" type="text/css" media="all" />
 
 
<link rel="stylesheet" href="http://static.tildacdn.com/css/tilda-zoom-1.0.min.css" type="text/css" media="all" />
 
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Josefin+Sans:300,400|Roboto:300,400,500">
 
<link rel="stylesheet" href="http://azmind.com/demo/bootstrap-navbar-menu/layout-3/assets/bootstrap/css/bootstrap.min.css">
 
<script src="http://azmind.com/demo/bootstrap-navbar-menu/layout-3/assets/bootstrap/js/bootstrap.min.js"></script>
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css?action=raw&amp;ctype=text/css" type="text/css" rel="stylesheet">
 
<link rel="stylesheet" href="http://azmind.com/demo/bootstrap-navbar-menu/layout-3/assets/font-awesome/css/font-awesome.min.css">
 
 
<style>
 
 
 
p {
 
    font-family: 'Roboto', sans-serif;
 
    font-size: 20px;
 
    font-weight: 300;
 
 
 
    overflow-x: hidden;
 
    text-align: center;
 
}
 
 
strong { font-weight: 500; }
 
 
a, a:hover, a:focus {
 
        color: black; text-decoration: none;
 
    -o-transition: all .3s; -moz-transition: all .3s; -webkit-transition: all .3s; -ms-transition: all .3s; transition: all .3s;
 
}
 
 
 
h2 { margin-top: 10px; font-family: 'Josefin Sans', sans-serif; font-size: 48px; font-weight: 300; color: #393939; line-height: 56px; opacity: 0.9; text-align:center}
 
h3 { font-family: 'Josefin Sans', sans-serif; font-size: 22px; font-weight: 300; color: #555; line-height: 40px; }
 
 
 
img { max-width: 100%; }
 
 
.medium-paragraph { font-size: 18px; line-height: 34px; }
 
 
.colored { color: #df6482; }
 
 
::-moz-selection { background: #df6482; color: #fff; text-shadow: none; }
 
::selection { background: #df6482; color: #fff; text-shadow: none; }
 
 
/***** General style, all sections *****/
 
 
.section-container { margin: 0 auto; padding-bottom: 80px; }
 
.section-description { margin-top: 60px; padding-bottom: 10px; }
 
.section-description p { margin-top: 20px; padding: 0 120px; }
 
 
/***** Divider *****/
 
 
.divider-1 { padding: 25px 0 15px 0; }
 
.divider-1 .line { width: 160px; margin: 0 auto; border-bottom: 1px dashed #ccc; }
 
 
/***** Top menu *****/
 
.navbar {
 
        margin-bottom: 0;
 
    position: fixed;
 
 
        background: white;
 
        border-bottom: 1px solid white;
 
    box-shadow: 2px 0px 30px black ;
 
        -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
 
        -o-transition: all .6s; -moz-transition: all .6s; -webkit-transition: all .6s; -ms-transition: all .6s; transition: all .6s;
 
}
 
 
.navbar-no-bg { padding-top: 10px; background: white; }
 
 
ul.navbar-nav {
 
        padding-top: 10px;
 
        font-family: 'Josefin Sans', sans-serif;
 
        font-size: 14px;
 
        color: #fff;
 
        font-weight: 400;
 
        text-transform: uppercase;
 
}
 
.navbar-inverse ul.navbar-nav li a { color: grey; border: 0; }
 
.navbar-inverse ul.navbar-nav li a:hover { color: #000; border: 0; }
 
.navbar-inverse ul.navbar-nav li a:focus { color: #000; outline: 0; border: 0; }
 
 
 
.navbar-brand {
 
        width: 100%;
 
    position: absolute;
 
    top: -10px;
 
}
 
 
 
 
.navbar>.container .navbar-brand, .navbar>.container-fluid .navbar-brand { margin-left: 0; }
 
 
.dropdown:hover .dropdown-menu {
 
    display: block;
 
    background-color: white;
 
    font-family: 'Josefin Sans', sans-serif;
 
        font-size: 14px;
 
        font-weight: 400;
 
        text-transform: uppercase;
 
    border-top: none;
 
}
 
.dropdown-menu>li>a {
 
    color: grey;
 
}
 
 
/* Animate */
 
 
 
 
.top-content .text h1 { color: #393939; }
 
 
.top-content .description { margin: 30px 0 10px 0; }
 
.top-content .description p { opacity: 0.8; }
 
.top-content .description a { color: #fff; border-bottom: 1px dotted #fff; }
 
.top-content .description a:hover, .top-content .description a:focus { color: #fff; border: 0; }
 
 
 
/***** Features *****/
 
 
.features-box { margin-top: 30px; text-align: left; }
 
.features-box .features-box-icon { font-size: 60px; color: #df6482; line-height: 60px; text-align: center; }
 
.features-box h3 { margin-top: 0; padding: 0 0 10px 0; }
 
 
 
#footer-sec {
 
    position: relative;
 
    background-color: #393939;
 
font-family: 'Josefin Sans', sans-serif;
 
}
 
#footer-sec h4 {
 
color: white;
 
 
}
 
#footer-sec  li > a {
 
color: grey;
 
font-size: 16x;
 
}
 
#footer-sec  span {
 
font-family: 'Josefin Sans', sans-serif;
 
color: grey;
 
font-size: 16px;
 
}
 
 
#footer-sec  li {
 
color: grey;
 
font-size: 16px;
 
list-style: none;
 
    padding-bottom: 2px;
 
}
 
 
 
#footer-sec li > a:hover{
 
    color: white;
 
    text-decoration: none;
 
    transition-delay: 0.1s;
 
    -webkit-transition: color 1s; /* Safari */
 
    transition: color 1s;
 
}
 
#facebook, #twitter {
 
color: grey
 
}
 
#facebook:hover,#twitter:hover {
 
    color: white;
 
    transition-delay: 0.1s;
 
    -webkit-transition: color 1s; /* Safari */
 
    transition: color 1s;
 
}
 
 
 
/***** MEDIA QUERIES *****/
 
 
 
@media (min-width: 992px) and (max-width: 1199px) {}
 
 
@media (min-width: 768px) and (max-width: 991px) {
 
 
        .section-description p { padding: 0; }
 
 
        .features-box .features-box-icon { font-size: 50px; line-height: 50px; }
 
 
}
 
 
@media (max-width: 767px) {
 
 
        .navbar { padding-top: 0; background: #444; }
 
        .navbar>.container .navbar-brand, .navbar>.container-fluid .navbar-brand { margin-left: 15px; }
 
        .navbar-collapse { border: 0; }
 
        .navbar-inverse .navbar-toggle { border-color: transparent; }
 
        .navbar-inverse ul.navbar-nav li a.btn-link-3 { margin: 10px; }
 
 
        .section-description p { padding: 0; }
 
 
        .top-content { padding: 40px 0 60px 0; }
 
 
        .features-box { text-align: center; }
 
        .features-box h3 { margin-top: 5px; padding-top: 10px; }
 
 
}
 
 
@media (max-width: 415px) {
 
 
        h1, h2 { font-size: 36px; }
 
 
}
 
 
 
/* Retina-ize images/icons */
 
 
@media
 
only screen and (-webkit-min-device-pixel-ratio: 2),
 
only screen and (  min--moz-device-pixel-ratio: 2),
 
only screen and (    -o-min-device-pixel-ratio: 2/1),
 
only screen and (        min-device-pixel-ratio: 2),
 
only screen and (                min-resolution: 192dpi),
 
only screen and (                min-resolution: 2dppx) {
 
 
        /* logo */
 
    .navbar-brand {
 
        background-image: url(../img/logo@2x.png) !important; background-repeat: no-repeat !important; background-size: 102px 32px !important;
 
    }
 
 
}
 
 
 
 
#circle {
 
    position: relative;
 
    top: 15px;
 
    height: 100px;
 
    width: 100px;
 
 
    border-radius: 50%;
 
    box-shadow: 2px 0px 30px black ;
 
 
}
 
 
#circle:before{
 
    position: absolute;
 
    content: "";
 
    width: 160%;
 
    height: 60%;
 
    left: -25%;
 
    top: -4%;
 
    background: white;
 
}
 
 
 
#circle:after{
 
    position: absolute;
 
    content: "";
 
    width: 100%;
 
    height: 100%;
 
    left: 0;
 
    top: 0;
 
    background: white;
 
    border-radius: 50%;
 
    background-image: url('https://static.igem.org/mediawiki/2017/8/8f/Heidelberg_2017_phage_logo.svg');
 
    background-size: 70px 70px;
 
    background-repeat: no-repeat;
 
    background-position: center;
 
}
 
 
#container1 h1, #container2 h1, #container3 h1, #container4 h1 {
 
color:#393939;
 
font-family: 'Josefin Sans', sans-serif;
 
font-size: 58px;
 
font-weight: 300;
 
line-height: 56px;
 
opacity: 0.9;
 
text-align:center;
 
}
 
 
#container1 p, #container2 p, #container3 p, #container4 p {
 
color: #393939;
 
font-size: 20px;
 
font-family: 'Josefin Sans', sans-serif;
 
text-align: justify;
 
}
 
 
 
#form1 label {
 
font-family: 'Josefin Sans', sans-serif;
 
font-size: 20px;
 
font-weight: 300;
 
color: #393939;
 
}
 
#form1 label, #form2 label, #form3 label, #form4 label {
 
font-family: 'Josefin Sans', sans-serif;
 
font-size: 20px;
 
font-weight: 300;
 
color: #393939;
 
}
 
 
</style>
 
 
 
<link rel="stylesheet" type="text/css"
 
href="https://2017.igem.org/Template:Heidelberg/table_layout/CSS?action=raw&amp;ctype=text/css" />
 
                        <!-- Favicon and touch icons -->
 
                        <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">
 
<script src="http://static.tildacdn.com/js/jquery-1.10.2.min.js"></script>
 
<script src="http://static.tildacdn.com/js/tilda-scripts-2.8.min.js"></script>
 
 
<script src="http://static.tildacdn.com/js/tilda-zoom-1.0.min.js"></script>
 
<script src="http://static.tildacdn.com/js/bootstrap.min.js"></script>
 
<script src="http://static.tildacdn.com/js/jquery.touchswipe.min.js"></script>
 
<script src="http://static.tildacdn.com/js/tilda-map-1.0.min.js"></script>
 
<script src="http://static.tildacdn.com/js/lazyload-1.3.min.js"></script>
 
 
                    <style>
 
                        #input_form {
 
                        background-color: #939393;
 
                        border: none;
 
                        color: white;
 
                        padding: 5px 32px;
 
                        text-align: center;
 
                        text-decoration: none;
 
                        display: inline-block;
 
                        font-size: 16px;
 
                        }
 
 
                    </style>
 
</head>
 
        <body class="t-body">
 
 
        <!-- Top menu -->
 
                <nav class="navbar navbar-inverse navbar-fixed-top navbar-no-bg" role="navigation">
 
                        <div class="container">
 
                                <div class="navbar-header">
 
                                        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#top-navbar-1">
 
                                                <span class="sr-only">Toggle navigation</span>
 
                                                <span class="icon-bar"></span>
 
                                                <span class="icon-bar"></span>
 
                                                <span class="icon-bar"></span>
 
                                        </button>
 
                                        <a class="navbar-brand" href="#"><div id="circle">
 
                    </div></a>
 
                                </div>
 
                                <!-- Collect the nav links, forms, and other content for toggling -->
 
                                <div class="collapse navbar-collapse" id="top-navbar-1">
 
                                        <ul class="nav navbar-nav navbar-right">
 
                                                <li><a href="#">Achievements</a></li>
 
                                                <li class="dropdown"><a href="#">Project <span class="caret"></span></a>
 
 
                        </li>
 
                                                <li><a href="#">Modeling</a></li>
 
                                                <li><a href="#">Software &amp; Hardware <span class="caret"></span></a></li>
 
                                                <li class="dropdown"><a href="#">Human Practice <span class="caret"></span></a>
 
                        <ul class="dropdown-menu">
 
                            <li><a href="">Safety &amp; Security</a></li>
 
                            <li class="divider"></li>
 
                            <li><a href="">Integrated Human Practice</a></li>
 
                            <li><a href="">Education</a></li>
 
                            <li class="divider"></li>
 
                            <li><a href="">Public Engagement</a></li>
 
                            <li><a href="">Collaborations</a></li>
 
                        </ul>
 
 
                        </li>
 
                                                <li><a href="#">People</a></li>
 
                        <li><a href="#">Toolbox</a></li>
 
                                        </ul>
 
                                </div>
 
                        </div>
 
                </nav>
 
 
<div style="padding-top: 80px; background-color:white;">
 
        <div class="t-container">
 
            <div class="t-col t-col_12">
 
                <div class="container-fluid" style="margin-top: 10px;" id="container1">
 
                    <h1>Internal Tools</h1>
 
                        <h2>Number of mutations and mutated sequences</h2>
 
                        <p>Expected number of mutations in a single sequence:
 
                            $$p_{m} = \frac{N_{mutations}}{L_{Sequence}} = N_{generations} \cdot r_{mutation} = t_{total} \cdot \Phi \cdot r_{mutation}$$
 
                        </p>
 
                        <p>The expected share of sequences that shows at least one mutation in \(L_{Sequence}\) bp is the probability that \(L_{sequence}\) basepairs stay unchanged when \(\frac{N_{mutations}}{L_{Sequence}}\) mutations are expected:
 
                        $$p_{M} = \frac{N_{mutated}}{N_{Sequences}} = 1 - p(N_{mutations}=0) = 1 - (1-p_{m})^{L_{Sequence}} $$
 
                        </p>
 
                        <p>With this equation we can also calculate the number of sequences \(N_{Sequences}\) that have to be sequenced in order to find a mutated one with a probability of \(p(N_{mutated} > 0)\).
 
                        $$ N_{Sequences} = \frac{p(N_{mutated} > 0)}{p_{M}} $$
 
                        </p>
 
                        <p>The probability to find at least one mutated sequence under the given conditions is
 
                        $$p(N_{mutated}>0) = 1 - (1-p_{M})^{N_{sequences}}$$
 
                        which gives
 
                        $$N_{Sequences} = \frac{ln(1-p(N_{mutated}>0))}{ln(1-p_{M})}$$
 
                        </p>
 
                        <p>Set \(\Phi\) to zero to use the number of generations for the calculation. If \(\Phi\) and the number of generations are given, \(\Phi\) is used.</p>
 
                        <p>Consider \(L_{Sequence}\) as the number of basepairs that is expected to be mutated. If half of the sequence you are interested in, is highly conserved choose a lower \(L_{Sequence}\).</p>
 
 
 
              <form action="" id="form1">
 
                <section>
 
                <h2>Get your mutations</h2>
 
                <ul class="input-list style-1 clearfix">
 
                  <li>
 
                    <label>
 
                          Mutation rate \(r_{mutation} \:[bp/generation]\)
 
                        <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="mr" value="0" lang='en-150' step="any">
 
                        </label>
 
                  </li>
 
                <li>
 
                        <label>
 
                        Flow troughLagoon \(\Phi_{lagoon} \: [Volumes/h]\)
 
                        <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="phi" value="0" lang='en-150' step="any">
 
                        </label>
 
                    </li>
 
                <li>
 
                        <label>
 
                          Total time<br> in lagoon \(t_{total} \: [h]\)
 
                        <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="tt" value="0" lang='en-150' step="any">
 
                        </label>
 
                    </li>
 
                <li>
 
                        <label>
 
                          Number<br> of generations  \(N_{generations}\)
 
                        <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="ng" value="0" lang='en-150' step="any">
 
                        </label>
 
                    </li>
 
                    <li>
 
                        <label>
 
                          Length of sequence that can mutate \(L_{Sequence} \: [bp]\)<br>
 
                        <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="ls" value="0" lang='en-150' step="any">
 
                        </label>
 
                    </li>
 
                    <li>
 
                        <label>
 
                        Number of sequences that are sequenced \(N_{Sequences}\)<br>
 
                        <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="ns" value="0" lang='en-150' step="any">
 
                        </label>
 
                    </li>
 
                    <li>
 
                      <label>
 
                        Probability to get at least one mutated result  \(p(N_{mutated}>0) \)
 
                        <br>
 
                        <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="pm" value="0.9" lang='en-150' step="any">
 
                        </label>
 
                    </li>
 
                    <li>
 
                    <div style="padding-top: 30px;">
 
                      <input type="button" value="Submit" id="input_form" onclick="return number_mutations();">
 
                        </div>
 
                    </li>
 
                </ul>
 
              </section>
 
                </form>
 
              </div>
 
                <div class="container-fluid" style="margin-top: 10px;" id="container2">
 
                            <p id="warnings_mutations"></p>
 
                            <br>
 
                            <p id="number_generations"></p>
 
                            <p>\(p_{m} =\) <span id="amount_mutations"></span> %(bp/bp).</p>
 
                            <p>\(N_{mutations} =\) <span id="number_mutations"></span> bp per sequence.</p>
 
                            <p>The share of sequences that shows at least one mutation in \(L_{Sequence}\) bp is \(p_{M}=\) <span id="amount_mutated"></span> % of sequences</p>
 
                            <p id="probability_positive_sequencing"></p>
 
                            <p id="number_to_seq"></p>
 
 
 
              <div class="container-fluid" style="margin-top: 10px;" id="container1">
 
                    <h2>Diff tool</h2>
 
                        <p>Marks differences in two strings, ignores newlines.
 
                    </p>
 
 
 
              <form action="" id="form2">
 
                <section>
 
                <ul class="input-list style-1 clearfix">
 
                  <li>
 
                    <label>
 
                        String 1
 
                        <br>
 
                        <textarea id="str1" lang='en-150' rows=8 cols=50></textarea>
 
                        </label>
 
                  </li>
 
                <li>
 
                        <label>
 
                        String 2
 
                        <br>
 
                            <textarea id="str2" lang='en-150' rows=8 cols=50></textarea>
 
                        </label>
 
                    </li>
 
                    <li>
 
                 
 
                        <label for="case_sensitive">Case sensitive <input type="checkbox" Name="Case sensitive" id="case_sensitive" value="True" checked> </label> 
 
                    </li>
 
                    <li>
 
                    <div style="padding-top: 30px;">
 
                      <input type="button" value="Submit" id="input_form2" onclick="return differences();">
 
                        </div>
 
                    </li>
 
                </ul>
 
              </section>
 
                </form>
 
                    </div><p>Comparison:</p>
 
                    <div style="overflow-x:scroll !important; overflow-y:hidden !important; max-height: 100px !important; background-color: whitesmoke;">
 
                        <p id="outstr1" style="display:inline !important; overflow: hidden !important; white-space: nowrap !important; font-family: monospace !important;"></p>
 
                        <br>
 
                        <p id="outstr2" style="display:inline !important; overflow: hidden !important; white-space: nowrap !important; font-family: monospace !important;"></p>
 
                    </div>
 
                    <p id="diffinfo"></p>
 
               
 
           
 
                    <br>
 
                    <h2>Glucose Concentratoin</h2>
 
                        <p>
 
                            Calculate the ideal glucose concentration in the medium used for either a turbidostat or a single flask.
 
                        </p>
 
                    <p> The glucose concentration in the <b>turbidostat</b> \(c_{G_{T}}\) is increased with the incoming medium with a flow rate of \(\Phi\) and a glucose concentration of \(c_{G_{M}}\). It is decreased by with the medium that leaves the turbidostat with the same flow rate, but a glucose concentration of \(c_{G_{T}}\). Additionally E. coli take up glucose with a concentration of \(c_{E}\) and a rate of \(q\).
 
                            $$
 
                            \frac{\partial c_{G_{T}}(t)}{\partial t} = \Phi \cdot c_{G_{M}} - \Phi \cdot c_{G_{T}} - c_{E} \cdot q
 
                            $$
 
                        In the case of a turbidostat we can assume a dynamic equilibrium:
 
                            $$
 
                            \frac{\partial c_{G_{T}}(t)}{\partial t} = 0
 
                            $$
 
                        This results in
 
                            $$
 
                            c_{G_{T}} = c_{G_{M}} - \frac{c_{E. coli} \cdot q}{\Phi}
 
                            $$                    $$
 
                            \Leftrightarrow c_{G_{M}} (c_{G_{T}}) = c_{G_{T}} + \frac{c_{E} \cdot q}{\Phi}
 
                            $$
 
                        When a lagoon with Volume \(V_{L}\) and a flowrate of \(\Phi_{L}\) is supplied by the turbidostat the glucose consumption in that lagoon can be modeled the same way. Because the <i>E. coli</i> titer, glucose concentration and flow rate into the lagoon are constant, a steady state equilibrium can be assumed:
 
                            $$
 
                            c_{G_{L}} = c_{G_{T}} - \frac{c_{E. coli} \cdot q}{\Phi_{L}}
 
                            $$
 
                        In the context of PACE mutagenesis plasmids are induced in the lagoons which stops growth of E. coli, hence the E. coli titer is assumed to be the same as in the turbidostat.
 
                            $$
 
                            c_{G_{L}} = c_{G_{M}} - \frac{c_{E} \cdot q}{\Phi} - \frac{c_{E} \cdot q}{\Phi_{L}}
 
                            $$
 
                            $$
 
                            \Leftrightarrow c_{G_{M}} (c_{G_{L}}) = c_{G_{L}} + \frac{c_{E} \cdot q}{\Phi} + \frac{c_{E} \cdot q}{\Phi_{L}}
 
                            $$
 
                        </p>
 
                    <br>
 
                        <p>If the concentration of glucose in a    <b>flask</b>, \(c_{G_{F}}\) needs to be determined, the functional dependencies are as follows.</p>
 
                        <p>
 
                        As there is no incoming medium, or medium that leaves the flask, the concentration of glucose is only changed by <i>E. coli</i> degrading it.
 
                            $$
 
                            \frac{\partial c_{G_{F}}(t)}{\partial t} = q \cdot c_{E}(t)
 
                            $$
 
                        Exponential growth of the <i>E. coli</i> is assumed, resulting in
 
                            $$c_{G_{F}}(t) = c_{G_{F}}(t_{0}) - q \cdot c_{E}(t) \cdot t
 
                            $$
 
                            $$
 
                            = c_{G_{F}}(t_{0}) -q \cdot \int_{t_{0}}^{t} c_{E}(t_{0}) \cdot exp\left(\frac{ln(2) \cdot t}{t_{E}}\right) dt
 
                            $$
 
                            $$
 
                            = c_{G_{F}}(t_{0}) - q \cdot c_{E}(t_{0}) \cdot t_{E} \cdot \left(exp\left(\frac{ln(2) \cdot t}{t_{E}}\right) - exp\left(\frac{ln(2) \cdot t_{0}}{t_{E}}\right)\right)
 
                            $$
 
                        So the glucose starting concentration \(c_{G_{F}}(t_{0})\) needed to get a concentration of \(c_{G_{f}}(t)\) afer a duration of \(t\) is calculated by
 
                            $$
 
                            c_{G_{F}}(t_{0}) = c_{G_{F}}(t) + q \cdot c_{E}(t_{0}) \cdot t_{E} \cdot \left(exp\left(\frac{ln(2) \cdot t}{t_{E}}\right) - exp\left(\frac{ln(2) \cdot t_{0}}{t_{E}}\right)\right)
 
                            $$
 
                       
 
                    </p>
 
                    <br>
 
                        <p><b>Further calculations</b> for simplification of entering data:</p>
 
                        <p class="basictext">
 
                            $$
 
                            c_{E. coli_{DW}} = c_{E. coli_{OD600}} \cdot 0.36
 
                            $$
 
                            according to <i>Milo et al.</i><x-ref>Milo2009</x-ref>.
 
                            $$
 
                            q = 0.183 \: g_{Glucose} \: g_{DW}^{-1} \: h^{-1}
 
                            $$
 
                            according to <i>Neubauer et al.</i><x-ref>Neubauer2001</x-ref>.
 
                    </p>
 
                    <p>
 
                            Because turbidstats are operated at a constant cell density, the flow rate \(Phi\) can be calculated from the generation time \(t_{E}\).
 
                            $$
 
                            \Phi = \frac{ln(2)}{t_{E}}
 
                            $$
 
                        </p>
 
                    <p>If the <i>E. coli</i> titer in \(g_{DW}/l\) is zero, it is calculated from the OD, else the dryweight value is used. If the glucose concentration in \(mmol/l\) not zero, it is used for the calulation. If the generation time \(t_{E}\) is not zero, it is used to calculate the flow rate \(\Phi\). </p>
 
 
 
              <form action="" id="form1">
 
                <section>
 
                <h2>Get the ideal concentration</h2>
 
                <ul class="input-list style-1 clearfix">
 
                <li>
 
                    <label>
 
                        Glucose concentration <br> \(c_{G} \: [g/l]\)
 
                        <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="cturbidostat" value="0" lang='en-150' step="any">
 
                    </label>
 
                </li>
 
                <li>
 
                    <label>
 
                        Glucose concentration <br> \(c_{G} \: [mmol/l]\)
 
                        <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="cturbidostatmol" value="0" lang='en-150' step="any">
 
                    </label>
 
                </li>
 
                  <li>
 
                    <label>
 
                          Flow rate <br>\(\Phi \:[Volumes/h]\)
 
                        <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="fr" value="0" lang='en-150' step="any">
 
                        </label>
 
                  </li>
 
                <li>
 
                    <label>
 
                          Generation time <br>\(t_{E} \:[min]\)
 
                        <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="te" value="30" lang='en-150' step="any">
 
                        </label>
 
                  </li>
 
                <li>
 
                        <label>
 
                          <i>E. coli</i> titer<br>  \(c_{E. coli} \:[OD600]\)
 
                        <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="ectiterod" value="0.8" lang='en-150' step="any">
 
                        </label>
 
                    </li>
 
                    <li>
 
                        <label>
 
                          <i>E. coli</i> titer<br>  \(c_{E. coli} \:[g_{DW}/l]\)
 
                        <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="ectiterdw" value="0" lang='en-150' step="any">
 
                        </label>
 
                    </li>
 
                    <li>
 
                        <label>
 
                          Lagoon volume<br>  \(V_{L} \:[ml]\)
 
                        <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="vl" value="100" lang='en-150' step="any">
 
                        </label>
 
                    </li>
 
                    <li>
 
                        <label>
 
                          Lagoon Flow rate  \(\Phi_{L} \:[ml/min]\)
 
                        <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="phil" value="1.667" lang='en-150' step="any">
 
                        </label>
 
                    </li>
 
                    <li>
 
                        <label>
 
                          Glucose degradation<br>\(q \: [g_{glucose} \: g_{DW}^{-1} h^{-1}]\)
 
                        <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="q" value="0.183" lang='en-150' step="any">
 
                        </label>
 
                    </li>
 
                    <li>
 
                        <label>
 
                          Time <br>\(t \: [min]\)
 
                        <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="gluc_time" value="90" lang='en-150' step="any">
 
                        </label>
 
                    </li>
 
                    <li>
 
                        <label>
 
                          <i>E. coli</i> start concentration<br>\(c_{E} \: [g/L]\)
 
                        <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="ec0dw" value="0" lang='en-150' step="any">
 
                        </label>
 
                    </li>
 
                    <li>
 
                        <label>
 
                          <i>E. coli</i> start concentration<br>\(c_{E} \: [OD600]\)
 
                        <input type="number" pattern="[0-9]+([,\.][0-9]+)?" id="ec0od" value="0.01" lang='en-150' step="any">
 
                        </label>
 
                    </li>
 
                   
 
                    <li>
 
                    <div style="padding-top: 30px;">
 
                      <input type="button" value="Medium (Turbidostat)" id="input_form" onclick="return glucosecont();">
 
                        </div>
 
                    </li>
 
                    <li>
 
                    <div style="padding-top: 30px;">
 
                      <input type="button" value="Medium (Lagoon)" id="input_form" onclick="return glucosecont_lagoon();">
 
                        </div>
 
                    </li>
 
                    <li>
 
                    <div style="padding-top: 30px;">
 
                      <input type="button" value="Lagoon (Medium)" id="input_form" onclick="return glucosecont_forward();">
 
                        </div>
 
                    </li>
 
                    <li>
 
                    <div style="padding-top: 30px;">
 
                      <input type="button" value="Medium (Flask)" id="input_form" onclick="return glucosedis();">
 
                        </div>
 
                    </li>
 
                    <li>
 
                    <div style="padding-top: 30px;">
 
                      <input type="button" value="New Medium (Flask) " id="input_form" onclick="return glucosedisnew();">
 
                        </div>
 
                    </li>
 
                    <li>
 
                    <div style="padding-top: 30px;">
 
                      <input type="button" value="Flask (Medium)" id="input_form" onclick="return glucosedis_forward();">
 
                        </div>
 
                    </li>
 
                    <li>
 
                    <div style="padding-top: 30px;">
 
                      <input type="button" value="New Flask (Medium)" id="input_form" onclick="return glucosedisnew_forward();">
 
                        </div>
 
                    </li>
 
                </ul>
 
              </section>
 
                </form>
 
                    <p id="glucoseout"></p>
 
                    <br>
 
                    <div style="width: 100% !important; overflow-x: auto !important;">
 
                    <div style="width: 100% !important; min-width: 700 !important;" id="glucoseplot">
 
                    </div>
 
                    </div>
 
                    <br>
 
                <p class="basictext" id="references"></p>                 
 
            </div>
 
        </div>
 
    </div>
 
</div>
 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
 
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/numjs/0.13.1/numjs.js"></script>
 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
 
<script src="http://evanplaice.github.io/jquery-csv/src/jquery.csv.min.js"></script>
 
<script src="https://2017.igem.org/common/MathJax-2.5-latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
 
 
<script>
 
 
//example that contains everything needed
 
function dummy(){
 
    //get the values
 
    var mr = Number(document.getElementById('mr').value);
 
 
    //initialise variables
 
    var a_mutations = 0;
 
 
    //calculate
 
    if(phi==0){
 
        a_mutations = ng * mr;
 
    }
 
 
    //return the results
 
    $("#amount_mutated").html((Math.round(100000 * a_mutated))/1000);
 
    $("#number_generations").html(ng_out);
 
 
    //end the function
 
    return false;
 
}
 
 
function number_mutations(){
 
 
    //get the values
 
    var mr = Number(document.getElementById('mr').value);
 
    var phi = Number(document.getElementById('phi').value);
 
    var ng = Number(document.getElementById('ng').value);
 
    var tt = Number(document.getElementById('tt').value);
 
    var ls = Number(document.getElementById('ls').value);
 
    var ns = Number(document.getElementById('ns').value);
 
    var pm = Number(document.getElementById('pm').value);
 
 
    //initialise variables
 
    var a_mutations = 0;
 
    var n_mutations = '?';
 
    var a_mutated = '?';
 
    var ng_out = "";
 
    var number_to_seq_out = "";
 
    var number_to_seq = 0;
 
    var probability_positive_sequencing = ''
 
    var warnings = ""
 
 
    //Check, if given values make sense:
 
 
    if(mr>1){
 
        warnings += "A mutation rate that is above one mutation per basepair, per generation does not make sense. 100 % should be enough, right? ";
 
        mr = 1;
 
    }
 
 
    if(pm>1){
 
        warnings += "A probability of 100 % should be enough, right?. ";
 
        pm = 1;
 
    }
 
 
    //calculate
 
   
 
   
 
    if(phi*tt==0){
 
        a_mutations = 1 - Math.pow((1 - mr), ng);
 
        ng_out = "";
 
    }
 
    else{
 
        a_mutations = 1 - Math.pow((1 - mr), tt*phi);
 
        ng = tt*phi;
 
        ng_out = "The conditions result in " + ng + " generations.";
 
    }
 
 
    n_mutations = ls * a_mutations;
 
    a_mutated = 1 - Math.pow((1-a_mutations), ls);
 
 
    if(ns!=0){
 
        probability_positive_sequencing = ns*a_mutated;
 
        $("#probability_positive_sequencing").html("Sequencing " + ns + " sequences results in a " + ((Math.round(probability_positive_sequencing*100))/100) + "% probabiltiy of finding at least one mutated sequence.");
 
    }
 
    else{
 
        $("#probability_positive_sequencing").html("");
 
    }
 
 
    if(pm!=0){
 
        number_to_seq = Math.max(1, Math.round((Math.log(1-pm))/(Math.log(1-a_mutated))));
 
        if(isNaN(number_to_seq)){
 
            if(pm==1){
 
                number_to_seq_out = "To be 100 % sure, sequence infinitely many sequences.";
 
            }
 
            else{
 
                number_to_seq_out = "Unluckily we were unable to calculate the number of sequences to sequence to have a " + (pm*100) + "% probability for a positive result.";
 
            }
 
        }
 
        else{
 
            number_to_seq_out = "Sequence " + number_to_seq + " clones to have a " + (pm*100) + " % probability to have at least one mutated under the results.";
 
        }
 
    }
 
 
    //return the results
 
    $("#amount_mutations").html((Math.round(1000000 * a_mutations))/10000);
 
    $("#number_mutations").html((Math.round(n_mutations*100))/100);
 
    $("#amount_mutated").html((Math.round(100000 * a_mutated))/1000);
 
    $("#number_generations").html(ng_out);
 
    $("#number_to_seq").html(number_to_seq_out);
 
    $("#warnings_mutations").html(warnings);
 
 
 
    //end the function
 
    return false;
 
}
 
 
 
 
 
 
function glucosecont(){
 
    glucose('cont');
 
}
 
function glucosecont_lagoon(){
 
    glucose('cont_lagoon');
 
}
 
function glucosecont_forward(){
 
    glucose('cont_forward')
 
}
 
 
 
function glucosedis(){
 
    glucose('dis');
 
}
 
function glucosedisnew(){
 
    glucose('disnew');
 
}
 
 
function glucosedis_forward(){
 
    glucose('disforward');
 
}
 
function glucosedisnew_forward(){
 
    glucose('disnewforward');
 
}
 
   
 
 
 
function glucose(mode){
 
    //get the values
 
    var cturbidostat = Number(document.getElementById('cturbidostat').value);
 
    var cturbidostatmol = Number(document.getElementById('cturbidostatmol').value);
 
    var fr = Number(document.getElementById('fr').value);
 
    var ectiterod = Number(document.getElementById('ectiterod').value);
 
    var ectiterdw = Number(document.getElementById('ectiterdw').value);
 
    var q = Number(document.getElementById('q').value);
 
    var te = Number(document.getElementById('te').value);
 
    var gluc_time = Number(document.getElementById('gluc_time').value);
 
    var ec0dw = Number(document.getElementById('ec0dw').value);
 
    var ec0od = Number(document.getElementById('ec0od').value);
 
    var vl = Number(document.getElementById('vl').value);
 
    var phil = Number(document.getElementById('phil').value);
 
 
 
    //initialise variables
 
    var glucoseout = "";
 
    var frl = 0;
 
    var glucosemedium = 0;
 
    var gl_OD = 0.36;
 
   
 
    frl = phil*60/vl;
 
   
 
    if(ectiterdw == 0){
 
        ectiterdw = ectiterod * gl_OD;
 
    }
 
    else{
 
        ectiterod = ectiterdw/gl_OD;
 
    }
 
   
 
    if(cturbidostatmol != 0){
 
        cturbidostat = cturbidostatmol * 180.1559/1000.0;
 
    }
 
    else{
 
        cturbidostatmol = cturbidostat/(180.1559/1000.0);
 
    }
 
   
 
    if(te != 0){
 
        fr = 60.0 * Math.LN2/te;
 
    }
 
    else{
 
        te = fr * Math.LN2/60.0;
 
    }
 
   
 
    if(ec0dw == 0){
 
        ec0dw = ec0od * gl_OD;
 
    }
 
    else{
 
        ec0od = ec0dw/gl_OD;
 
    }
 
 
    if(mode == 'cont'){
 
        //calculate
 
        glucosemedium = cturbidostat + ((ectiterdw * q)/fr);
 
 
        var glucosemediummol = glucosemedium/(180.1559/1000.0);
 
 
        //return the results
 
        glucoseout =
 
            "With a <b>glucose concentration of " +
 
            (0.01*Math.round(100*glucosemedium)) +
 
            " g/L, " +
 
            (0.01*Math.round(100*glucosemediummol)) +
 
            "mmol/l in the medium</b>, a flow rate of " +
 
            (0.01*Math.round(100*fr)) +
 
            " Volumes/h, or a generation time of " +
 
            Math.round(te) +
 
            " min, an <i>E. coli</i> titer of " + (0.01*Math.round(100*ectiterdw)) +
 
            " g/l, an OD600 of " +
 
            (0.01*Math.round(100*ectiterod)) +
 
            " and a degradation rate of " +
 
            (0.01*Math.round(100*q)) +
 
            " g l<sup>-1</sup>cfu<sup>-1</sup>h<sup>-1</sup> a concentration of " +
 
            (0.01*Math.round(100*cturbidostat)) +
 
            " g/L, "
 
            + (0.01*Math.round(100*cturbidostatmol)) +
 
            " mmol/l is maintained.";
 
       
 
        $("#glucoseplot").html('');
 
 
    }
 
    else if(mode=='cont_lagoon'){
 
        glucosemedium_lagoon = cturbidostat + ((ectiterdw * q)/fr) + ((ectiterdw * q)/fr);
 
       
 
        glucose_turbidostat = glucosemedium_lagoon - ((ectiterdw * q)/fr);
 
       
 
        var glucose_turbidostat_mol = glucose_turbidostat/(180.1559/1000.0);
 
 
        var glucosemedium_lagoon_mol = glucosemedium_lagoon/(180.1559/1000.0);
 
 
        //return the results
 
        glucoseout =
 
            "With a <b>glucose concentration of " +
 
            (0.01*Math.round(100*glucosemedium_lagoon)) +
 
            " g/l, " +
 
            (0.01*Math.round(100*glucosemedium_lagoon_mol)) +
 
            "mmol/l in the medium</b>, a turbidostat flow rate of " +
 
            (0.01*Math.round(100*fr)) +
 
            " Volumes/h, or a generation time of " +
 
            Math.round(te) +
 
            " min, a lagoon with a volume of " +
 
            vl +
 
            " ml and a flow rate of " +
 
            phil +
 
            " ml/min, an <i>E. coli</i> titer of " + (0.01*Math.round(100*ectiterdw)) +
 
            " g/l, an OD600 of " +
 
            (0.01*Math.round(100*ectiterod)) +
 
            " and a degradation rate of " +
 
            (0.01*Math.round(100*q)) +
 
            " g l<sup>-1</sup>cfu<sup>-1</sup>h<sup>-1</sup> a concentration of " +
 
            (0.01*Math.round(100*cturbidostat)) +
 
            " g/L, "
 
            + (0.01*Math.round(100*cturbidostatmol)) +
 
            " mmol/l in the lagoon is maintained. Under this conditions the <b>in the turbidostat the glucose concentration is " +
 
            (0.01*Math.round(100*glucose_turbidostat)) +
 
            "g/l, " +
 
            (0.01*Math.round(100*glucose_turbidostat_mol)) +
 
            " mmol/l.</b>"
 
        ;
 
       
 
        $("#glucoseplot").html('');
 
       
 
    }
 
    else if(mode=='cont_forward'){
 
        glucosemedium_lagoon = Math.max(0, cturbidostat - ((ectiterdw * q)/fr) - ((ectiterdw * q)/fr));
 
       
 
        glucose_turbidostat = Math.max(0, cturbidostat - ((ectiterdw * q)/fr));
 
       
 
        var glucose_turbidostat_mol = glucose_turbidostat/(180.1559/1000.0);
 
 
        var glucosemedium_lagoon_mol = glucosemedium_lagoon/(180.1559/1000.0);
 
 
        //return the results
 
        glucoseout =
 
            "With a glucose concentration of " +
 
            (0.01*Math.round(100*cturbidostat)) +
 
            " g/l, " +
 
            (0.01*Math.round(100*cturbidostatmol)) +
 
            "mmol/l in the medium</b>, a turbidostat flow rate of " +
 
            (0.01*Math.round(100*fr)) +
 
            " Volumes/h, or a generation time of " +
 
            Math.round(te) +
 
            " min, a lagoon with a volume of " +
 
            vl +
 
            " ml and a flow rate of " +
 
            phil +
 
            " ml/min, an <i>E. coli</i> titer of " + (0.01*Math.round(100*ectiterdw)) +
 
            " g/l, an OD600 of " +
 
            (0.01*Math.round(100*ectiterod)) +
 
            " and a degradation rate of " +
 
            (0.01*Math.round(100*q)) +
 
            " g l<sup>-1</sup>cfu<sup>-1</sup>h<sup>-1</sup> <b>a concentration of " +
 
            (0.01*Math.round(100*glucosemedium_lagoon)) +
 
            " g/L, "
 
            + (0.01*Math.round(100*glucosemedium_lagoon_mol)) +
 
            " mmol/l in the lagoon</b> is maintained. Under this conditions the <b>in the turbidostat the glucose concentration is " +
 
            (0.01*Math.round(100*glucose_turbidostat)) +
 
            "g/l, " +
 
            (0.01*Math.round(100*glucose_turbidostat_mol)) +
 
            " mmol/l.</b>"
 
        ;
 
       
 
        $("#glucoseplot").html('');
 
       
 
    }
 
    else{
 
        if(mode.endsWith('forward')){
 
            glucosemedium = cturbidostat;
 
            cturbidostat = glucosemedium - q * ec0dw * te * (Math.exp(Math.LN2 * gluc_time/te) - 1);
 
        }
 
        else{
 
            glucosemedium = cturbidostat + q * ec0dw * te * (Math.exp(Math.LN2 * gluc_time/te) - 1);
 
        }
 
        var glucosemediummol = glucosemedium/(180.1559/1000.0);
 
       
 
        var od_warning = "";
 
        var end_od = ec0od * Math.exp(Math.LN2 * gluc_time/te);
 
        if(end_od > 1.0){
 
            od_warning = "<br><strong>Warning:</strong> With an OD of " + end_od + " the <i>E. coli</i> are not in exponential phase at the end of the experiment. This model is designed for applications with E. coli in exponential phase and therfore assumes exponential growth. The glucose consumption is overestimated as well as the concentration in the medium needed to reach the desired concentration.";
 
        }
 
 
        //return the results
 
        glucoseout = "With a glucose concentration of "
 
        + (0.01*Math.round(100*Math.max(0,glucosemedium)))
 
        + " g/L, "
 
        +(0.01*Math.round(100*Math.max(0,glucosemediummol)))
 
        + "mmol/l in the medium, a generation time of " + (0.01*Math.round(100*te))
 
        + " min, an <i>E. coli</i> starting titer of "
 
        + (0.01*Math.round(100*ec0dw))
 
        + " g/l, an OD600 of "
 
        + (0.01*Math.round(100*ec0od))
 
        + " and a degradation rate of "
 
        + (0.0001*Math.round(10000*q))
 
        + " g l<sup>-1</sup>cfu<sup>-1</sup>h<sup>-1</sup> a  <b>concentration of "
 
        + (0.01*Math.round(100*cturbidostat))
 
        + " g/L, "
 
        + (0.01*Math.round(100* cturbidostatmol))
 
        + " mmol/l</b> is reached after "
 
        + gluc_time
 
        + " minutes."
 
        + od_warning;
 
    }
 
   
 
    $("#glucoseout").html(glucoseout);
 
   
 
    //plot glucose concentration and e. coli titer
 
    if(mode.startsWith('dis')){
 
        if(mode.startsWith('disnew')){
 
            call = 0;
 
        }
 
        var glucoseplot = document.getElementById('glucoseplot');
 
       
 
        var gluc_time_exp = 1.25 * gluc_time;
 
        var t = new Array(501);
 
        var cecoli = new Array(501);
 
        var cg = new Array(501);
 
       
 
        for(var it = 0; it <=500; it++){
 
            t[it] = it*gluc_time_exp/500;
 
 
            cecoli[it] = Math.max(0, ec0od * Math.exp(Math.LN2 * t[it]/te));
 
 
            cg[it] = Math.max(0, glucosemedium - (q * ec0dw * te * (Math.exp(Math.LN2 * (t[it]/te)) - 1.0)));
 
        }
 
       
 
        var xticks = [0, (gluc_time/4), (2*gluc_time/4), (3*gluc_time/4), (gluc_time), (gluc_time*1.25)];
 
       
 
        var ecolicolors = ['#005493', '#6698BE', '#B2CBDD', '#009193', '#66BDEE', '#B3DEDE'];
 
        var glucosecolors = ['#9D1C20', '#BB5651', '#D89F9C', '#F8991D', '#FBB748', '#FED699'];
 
       
 
        var glucosedata = [{x: t,
 
                            y: cg,
 
                            name: 'Glucose [g/l] ' + call,
 
                            line: {color: glucosecolors[call-1 % glucosecolors.length]},
 
                            hoverlabel: {font: {family: 'Josefin Sans'}}
 
                          },
 
                          {x: t,
 
                            y: cecoli,
 
                            name: 'E. coli [OD600] ' + call,
 
                            yaxis: 'y2',
 
                            line: {color: ecolicolors[call-1 % glucosecolors.length]},
 
                            hoverlabel: {font: {family: 'Josefin Sans'}}
 
                          }];
 
   
 
        var color = '393939';
 
        var font = {
 
                    family: 'Josefin Sans',
 
                    size: 18,
 
                    color: color
 
                };
 
        var layout = {
 
            title: 'Glucose concentration and phage titer in discontinuous culture',
 
            showlegend: true,
 
            width: 800,
 
            legend: {
 
                orientation: 'v',
 
                x: 1.15,
 
                xanchor: 'left',
 
                y: 1
 
            },
 
            xaxis: {
 
                title: 'Duration [min]',
 
                titlefont: font,
 
                showgrid: false,
 
                ticks: 'outside',
 
                ticklen: 2,
 
                tickwidth: 2,
 
                tickfont: font,
 
                tickvals: xticks,
 
                tickmode: 'array',
 
                linecolor: color,
 
                linewidth: 3,
 
                zeroline: false
 
            },
 
            yaxis: {
 
                title: 'Glucose concentration [g/l]',
 
                titlefont: font,
 
                showgrid: false,
 
                ticks: 'outside',
 
                ticklen: 2,
 
                tickwidth: 2,
 
                tickfont: font,
 
                linecolor: color,
 
                linewidth: 3,
 
                zeroline: false,
 
                range: [-0.1*cg[0], cg[0]*1.1]
 
            },
 
            yaxis2: {
 
                range: [0.0, Math.min(1.0, cecoli[500])],
 
                title: 'E. coli titer [OD600]',
 
                side: 'right',
 
                overlaying: 'y',
 
                titlefont: font,
 
                showgrid: false,
 
                ticks: 'outside',
 
                ticklen: 2,
 
                tickwidth: 2,
 
                tickfont: font,
 
                linecolor: color,
 
                linewidth: 3,
 
                zeroline: false,
 
                range: [-0.1*cecoli[-1], cecoli[-1]*1.1]
 
            },
 
            shapes: [{
 
                type: 'line',
 
                x0: gluc_time,
 
                x1: gluc_time,
 
                y0: -0.1*cg[0],
 
                y1: cg[0]*1.1,
 
                line:{
 
                    width: 2,
 
                    color: color,
 
                },
 
                visible: true
 
            }]
 
        };
 
        if(mode.startsWith('disnew')){
 
            Plotly.newPlot(glucoseplot, glucosedata, layout);
 
        }
 
        else{
 
            Plotly.plot(glucoseplot, glucosedata, layout);
 
            call++;
 
        }
 
    }
 
}
 
 
function differences(){
 
    //get the values
 
    var str1 = document.getElementById('str1').value;
 
    var str2 = document.getElementById('str2').value;
 
    str1 = str1.replace(/(\r\n|\n|\r)/gm,"");
 
    str2 = str2.replace(/(\r\n|\n|\r)/gm,"");
 
 
    //initialise variables
 
    var diff = [];
 
    var outstr1 = "";
 
    var outstr2 = "";
 
    var diffs = 0;
 
    var lendiffs = 0;
 
    var sharedlen = 0;
 
    var diffinfo = "";
 
    var str1_comp = str1;
 
    var str2_comp = str2;
 
   
 
    //calculate
 
   
 
    if(document.getElementById("case_sensitive").checked == false){
 
        str1_comp = str1.toLowerCase();
 
        str2_comp = str2.toLowerCase();     
 
    }
 
   
 
    var i = 0;
 
    while(i < str1.length){
 
      if(i==str2.length){
 
          break;
 
      }
 
        if(str1_comp[i]==str2_comp[i]){
 
            outstr1 += str1[i];
 
            outstr2 += str2[i];
 
        }
 
        else{
 
            diffs += 1;
 
            outstr1 += '<span style="color: red">' + str1[i] + '</span>';
 
            outstr2 += '<span style="color: red">' + str2[i] + '</span>';
 
        }
 
        i++;
 
    }
 
    sharedlen = i;
 
    while(i < str1.length){
 
        outstr1 = outstr1 + '<span style="color: blue">' + str1[i] + '</span>';
 
        i++;
 
        lendiffs++;
 
    }
 
    while(i < str2.length){
 
        outstr2 = outstr2 + '<span style="color: blue">' + str2[i] + '</span>';
 
        i++;
 
        lendiffs++;
 
    }
 
    diffinfo = "The strings are different for " + diffs + "  from " + sharedlen + " positions (" + (0.01*Math.round(10000*(diffs/sharedlen))) + "%)and their length differs by " + lendiffs + " positions.";
 
 
    //return the results
 
    $("#outstr1").html(outstr1);
 
    $("#outstr2").html(outstr2);
 
    $("#diffinfo").html(diffinfo);
 
 
    //end the function
 
    return false;
 
}
 
 
</script>
 
 
 
<!-- Saved in parser cache with key 2014_igem_org:pcache:idhash:224-0!1!0!!en!2!edit=0 and timestamp 20170831072851 -->
 
<div class="printfooter">
 
Retrieved from "<a href="https://2014.igem.org/WikitemplateA_home">https://2014.igem.org/WikitemplateA_home</a>"</div>
 
                        <div id="catlinks"><div id='catlinks' class='catlinks catlinks-allhidden'></div></div>                  <!-- end content -->
 
                        <div class="visualClear"></div>
 
                </div>
 
    </div>
 
<!-- PAGE FOOTER -- ITEMS FROM COLUMN ! HAVE BEEN MOVED HERE  -- RDR  -->
 
<div class="visualClear"></div>
 
    <div id='footer-box' class='noprint'>
 
        <div id="footer">
 
              <div id="f-poweredbyico"><a href="http://www.mediawiki.org/"><img src="/wiki/skins/common/images/poweredby_mediawiki_88x31.png" height="31" width="88" alt="Powered by MediaWiki" /></a></div>          <div id="f-copyrightico"><a href="http://creativecommons.org/licenses/by/3.0/"><img src="http://i.creativecommons.org/l/by/3.0/88x31.png" alt="Attribution 3.0 Unported" width="88" height="31" /></a></div>          <ul id="f-list">
 
 
 
          <!-- Recentchanges is not handles well DEBUG -->
 
                    <li id="t-recentchanges"><a href="/Special:RecentChanges"
 
                      title='Recent changes'>Recent changes</a></li>
 
 
                    <li id="t-whatlinkshere"><a href="/Special:WhatLinksHere/WikitemplateA_home"
 
                      title="List of all wiki pages that link here [j]" accesskey="j">What links here</a></li>
 
 
                        <li id="t-recentchangeslinked"><a href="/Special:RecentChangesLinked/WikitemplateA_home"
 
                          title="Recent changes in pages linked from this page [k]" accesskey="k">Related changes</a></li>
 
 
 
 
                        <li id="t-specialpages"><a href="/Special:SpecialPages"
 
                          title="List of all special pages [q]" accesskey="q">Special pages</a>
 
                        </li>
 
                <li><a href='/Special:Preferences'>My preferences</a></li>
 
            </ul>
 
        </div> <!-- close footer -->
 
        <div id='footer'>
 
            <ul id="f-list">
 
 
                    <li id="t-print"><a href="/wiki/index.php?title=WikitemplateA_home&amp;printable=yes"
 
                      title="Printable version of this page [p]" accesskey="p">Printable version</a>
 
                    </li>
 
 
                    <li id="t-permalink"><a href="/wiki/index.php?title=WikitemplateA_home&amp;oldid=145279"
 
                      title="Permanent link to this revision of the page">Permanent link</a>
 
                    </li>
 
 
 
                        <li id="privacy"><a href="/2014.igem.org:Privacy_policy" title="2014.igem.org:Privacy policy">Privacy policy</a></li>
 
                        <li id="disclaimer"><a href="/2014.igem.org:General_disclaimer" title="2014.igem.org:General disclaimer">Disclaimers</a></li>
 
            </ul>
 
        </div> <!-- close footer -->
 
    </div> <!-- close footer-box -->
 
 
<script>if (window.runOnloadHook) runOnloadHook();</script>
 
</div>
 
<!-- Served in 0.069 secs. --></body>
 
 
 
</p>
 
<!--
 
NewPP limit report
 
CPU time usage: 0.003 seconds
 
Real time usage: 0.003 seconds
 
Preprocessor visited node count: 4/1000000
 
Preprocessor generated node count: 24/1000000
 
Post‐expand include size: 0/2097152 bytes
 
Template argument size: 0/2097152 bytes
 
Highest expansion depth: 2/40
 
Expensive parser function count: 0/100
 
-->
 
 
<!-- Saved in parser cache with key 2017_igem_org:pcache:idhash:19802-0!*!*!*!*!*!* and timestamp 20170926073158 and revision id 131201
 
-->
 
</div>                      <div class="visualClear"></div>
 
                    </div>
 
                    </div>
 
 
        </div>
 
 
        <!-- Side Menubar -->
 
        <div id="sideMenu">
 
            <a href="https://2017.igem.org">
 
                <div id="home_logo" >
 
                <img src="https://static.igem.org/mediawiki/2017/b/bf/HQ_menu_logo.jpg">
 
                </div>
 
            </a>
 
 
            <div style="clear:both; height:5px;"></div>
 
 
            <div id="menuDisplay"></div>  <!- Menu will be loaded here ->
 
        </div>
 
 
        <!-- Pop_Why Div is definded here -->
 
        <div class="pop_why_cover"></div>
 
 
        <div class="pop_why_box" >
 
            <div class="pop_close">× </div>
 
            <div class="pop_why_content"><h3> Loading ... </h3></div>
 
        </div>
 
 
    </div>
 
</html>
 

Latest revision as of 23:21, 28 October 2017