Difference between revisions of "Team:TU Darmstadt/Model"

Line 1: Line 1:
{{Team:TU_Darmstadt/Viki}}
+
<!DOCTYPE html>
<html>
+
<html lang="en" dir="ltr" class="client-nojs">
<script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+
<head>
<script type="text/x-mathjax-config">
+
<meta charset="UTF-8" />
MathJax.Hub.Config({
+
<title>Team:TU Darmstadt/Model - 2016.igem.org</title>
TeX: { equationNumbers: { autoNumber: "AMS" } }
+
<meta name="generator" content="MediaWiki 1.24.1" />
 +
<link rel="alternate" type="application/x-wiki" title="Edit" href="/wiki/index.php?title=Team:TU_Darmstadt/Model&amp;action=edit" />
 +
<link rel="edit" title="Edit" href="/wiki/index.php?title=Team:TU_Darmstadt/Model&amp;action=edit" />
 +
<link rel="shortcut icon" href="/favicon.ico" />
 +
<link rel="search" type="application/opensearchdescription+xml" href="/wiki/opensearch_desc.php" title="2016.igem.org (en)" />
 +
<link rel="EditURI" type="application/rsd+xml" href="https://2016.igem.org/wiki/api.php?action=rsd" />
 +
<link rel="alternate" hreflang="x-default" href="/Team:TU_Darmstadt/Model" />
 +
<link rel="copyright" href="http://creativecommons.org/licenses/by/3.0/" />
 +
<link rel="alternate" type="application/atom+xml" title="2016.igem.org Atom feed" href="/wiki/index.php?title=Special:RecentChanges&amp;feed=atom" />
 +
<link rel="stylesheet" href="https://2016.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: 2016_igem_org:resourceloader:filter:minify-css:7:59593960c20e34faccc09e56269cf4e1 */</style>
 +
<script src="https://2016.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:TU_Darmstadt/Model","wgTitle":"Team:TU Darmstadt/Model","wgCurRevisionId":157806,"wgRevisionId":157806,"wgArticleId":3306,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":"Markussusenburger","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:TU_Darmstadt/Model","wgUserId":2620,"wgUserEditCount":0,"wgUserRegistration":1472808756000,"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":"e3be3cc2ca585bafd4ec38f920a24c42+\\","patrolToken":"5f5511eca11e980176a187b2f99f98e2+\\","watchToken":"542de08a89ae4b18a6976a46edcc0d04+\\"});},{},{});
 +
/* cache key: 2016_igem_org:resourceloader:filter:minify-js:7:c2e9b1c45063940132d9632451073237 */
 +
}</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_TU_Darmstadt_Model 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/2016_skin.js'></script>
 +
 
 +
 
 +
    <div id='globalWrapper'>
 +
        <div id='top_menu_under' class='noprint'></div>
 +
        <div id='top_menu_14' class='noprint'>Loading menubar.....</div> <!-- Will be replaced with the jQuery.load -->
 +
<script>jQuery('#top_menu_14').load('https://2016.igem.org/cgi/top_menu_14/menubar_reply.cgi',
 +
    {  t:"Team%3ATU%20Darmstadt%2FModel",
 +
a:"View+%2FTeam%3ATU_Darmstadt%2FModel++Edit+%2Fwiki%2Findex.php%3Ftitle%3DTeam%3ATU_Darmstadt%2FModel%26action%3Dedit++History+%2Fwiki%2Findex.php%3Ftitle%3DTeam%3ATU_Darmstadt%2FModel%26action%3Dhistory++Move+%2FSpecial%3AMovePage%2FTeam%3ATU_Darmstadt%2FModel++Watch+%2Fwiki%2Findex.php%3Ftitle%3DTeam%3ATU_Darmstadt%2FModel%26action%3Dwatch%26token%3D0e4747f9aaa40ae5e108fb6f71a72e42%252B%255C++Page+%2FTeam%3ATU_Darmstadt%2FModel++Discussion+%2Fwiki%2Findex.php%3Ftitle%3DTalk%3ATeam%3ATU_Darmstadt%2FModel%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_2016">
 +
                    <a href="https://2016.igem.org">
 +
                    <img src="https://static.igem.org/mediawiki/2016/8/8b/HQ_page_logo.jpg" width="100px">
 +
                    </a>
 +
                </div>
 +
 
 +
        <h1 id="firstHeading" class="firstHeading">
 +
            <span dir="auto">Team:TU Darmstadt/Model</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 charset="utf-8"/>
 +
<style>
 +
@font-face{
 +
font-family:calibri;
 +
}
 +
 
 +
/* Reset */
 +
 
 +
 
 +
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
 +
margin: 0;
 +
padding: 0;
 +
/*border: 0;*/
 +
font-size: 100%;
 +
/*font: inherit;
 +
vertical-align: baseline;*/
 +
}
 +
 
 +
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
 +
display: block;
 +
}
 +
 
 +
/*body {
 +
line-height: 1;
 +
}*/
 +
 
 +
.navbar ol, ul {
 +
list-style: none;
 +
}
 +
 
 +
blockquote, q {
 +
quotes: none;
 +
}
 +
 
 +
blockquote:before, blockquote:after, q:before, q:after {
 +
content: '';
 +
content: none;
 +
}
 +
 
 +
table {
 +
border-collapse: collapse;
 +
border-spacing: 0;
 +
}
 +
 
 +
/*body {
 +
-webkit-text-size-adjust: none;
 +
}*/
 +
 +
h1 {
 +
color:black;
 +
}
 +
 
 +
/* Box Model
 +
 
 +
*, *:before, *:after {
 +
-moz-box-sizing: border-box;
 +
-webkit-box-sizing: border-box;
 +
box-sizing: border-box;
 +
}*/
 +
 
 +
/* Containers */
 +
 
 +
.container {
 +
margin-left: 0;
 +
margin-right: 0;
 +
}
 +
 
 +
.container.\31 25\25 {
 +
width: 100%;
 +
max-width: 1750px;
 +
min-width: 1400px;
 +
}
 +
 
 +
.container.\37 5\25 {
 +
width: 1050px;
 +
}
 +
 
 +
.container.\35 0\25 {
 +
width: 700px;
 +
}
 +
 
 +
.container.\32 5\25 {
 +
width: 350px;
 +
}
 +
 
 +
.container {
 +
width: 1400px;
 +
}
 +
 
 +
@media screen and (max-width: 1680px) {
 +
 
 +
.container.\31 25\25 {
 +
width: 100%;
 +
max-width: 1500px;
 +
min-width: 1200px;
 +
}
 +
 
 +
.container.\37 5\25 {
 +
width: 900px;
 +
}
 +
 
 +
.container.\35 0\25 {
 +
width: 600px;
 +
}
 +
 
 +
.container.\32 5\25 {
 +
width: 300px;
 +
}
 +
 
 +
.container {
 +
width: 1200px;
 +
}
 +
 
 +
}
 +
 
 +
@media screen and (max-width: 1280px) {
 +
 
 +
.container.\31 25\25 {
 +
width: 100%;
 +
max-width: 1200px;
 +
min-width: 960px;
 +
}
 +
 
 +
.container.\37 5\25 {
 +
width: 720px;
 +
}
 +
 
 +
.container.\35 0\25 {
 +
width: 480px;
 +
}
 +
 
 +
.container.\32 5\25 {
 +
width: 240px;
 +
}
 +
 
 +
.container {
 +
width: 960px;
 +
}
 +
 
 +
}
 +
 
 +
@media screen and (max-width: 980px) {
 +
 
 +
.container.\31 25\25 {
 +
width: 100%;
 +
max-width: 118.75%;
 +
min-width: 95%;
 +
}
 +
 
 +
.container.\37 5\25 {
 +
width: 71.25%;
 +
}
 +
 
 +
.container.\35 0\25 {
 +
width: 47.5%;
 +
}
 +
 
 +
.container.\32 5\25 {
 +
width: 23.75%;
 +
}
 +
 
 +
.container {
 +
width: 95%;
 +
}
 +
 
 +
}
 +
 
 +
@media screen and (max-width: 840px) {
 +
 
 +
.container.\31 25\25 {
 +
width: 100%;
 +
max-width: 118.75%;
 +
min-width: 95%;
 +
}
 +
 
 +
.container.\37 5\25 {
 +
width: 71.25%;
 +
}
 +
 
 +
.container.\35 0\25 {
 +
width: 47.5%;
 +
}
 +
 
 +
.container.\32 5\25 {
 +
width: 23.75%;
 +
}
 +
 
 +
.container {
 +
width: 95% !important;
 +
}
 +
 
 +
}
 +
 
 +
@media screen and (max-width: 736px) {
 +
 
 +
.container.\31 25\25 {
 +
width: 100%;
 +
max-width: 112.5%;
 +
min-width: 90%;
 +
}
 +
 
 +
.container.\37 5\25 {
 +
width: 67.5%;
 +
}
 +
 
 +
.container.\35 0\25 {
 +
width: 45%;
 +
}
 +
 
 +
.container.\32 5\25 {
 +
width: 22.5%;
 +
}
 +
 
 +
.container {
 +
width: 90% !important;
 +
}
 +
 
 +
}
 +
 
 +
@media screen and (max-width: 480px) {
 +
 
 +
.container.\31 25\25 {
 +
width: 100%;
 +
max-width: 125%;
 +
min-width: 100%;
 +
}
 +
 
 +
.container.\37 5\25 {
 +
width: 75%;
 +
}
 +
 
 +
.container.\35 0\25 {
 +
width: 50%;
 +
}
 +
 
 +
.container.\32 5\25 {
 +
width: 25%;
 +
}
 +
 
 +
.container {
 +
width: 100% !important;
 +
}
 +
 
 +
}
 +
 
 +
/* Basic */
 +
       
 +
        #sideMenu{
 +
        display:none;
 +
        }
 +
 
 +
        #HQ_page{
 +
        width:100vw;
 +
        }
 +
       
 +
        #HQ_page p{
 +
        font-family:calibri;
 +
        font-size:14pt;
 +
        text-decoration:none;
 +
        }
 +
 
 +
        #top_title{
 +
        display:none;
 +
        }
 +
 
 +
        #content{
 +
                margin:0;
 +
                padding:0;
 +
        }
 +
        .vviki{
 +
                font-family:calibri;
 +
                clear:both;
 +
        }
 +
        body {
 +
background: white;
 +
                margin-left:0;
 +
                margin-top:0;
 +
                padding-top:0;
 +
               
 +
}
 +
 
 +
body.is-loading * {
 +
-moz-transition: none !important;
 +
-webkit-transition: none !important;
 +
-ms-transition: none !important;
 +
transition: none !important;
 +
-moz-animation: none !important;
 +
-webkit-animation: none !important;
 +
-ms-animation: none !important;
 +
animation: none !important;
 +
}
 +
 
 +
body, input, select, textarea {
 +
/*color: #333;
 +
font-family: calibri;*/
 +
font-size: 14pt;
 +
font-weight: 300;
 +
line-height: 1em;
 +
}
 +
 
 +
a {
 +
-moz-transition: color 0.2s ease-in-out, border-color 0.2s ease-in-out, opacity 0.2s ease-in-out;
 +
-webkit-transition: color 0.2s ease-in-out, border-color 0.2s ease-in-out, opacity 0.2s ease-in-out;
 +
-ms-transition: color 0.2s ease-in-out, border-color 0.2s ease-in-out, opacity 0.2s ease-in-out;
 +
transition: color 0.2s ease-in-out, border-color 0.2s ease-in-out, opacity 0.2s ease-in-out;
 +
color: #019ac8;
 +
text-decoration: none;
 +
border-bottom: dotted 1px;
 +
}
 +
 
 +
a:hover {
 +
color: #019ac8;
 +
border-bottom-color: transparent;
 +
}
 +
 
 +
strong, b {
 +
font-weight: 600;
 +
}
 +
 
 +
em, i {
 +
font-style: italic;
 +
}
 +
 
 +
ul, ol, dl, table, blockquote {
 +
margin: 0 0 0 0;
 +
}
 +
 
 +
h1, h2{
 +
color:black;
 +
font-weight: 600;
 +
line-height: 2em;
 +
margin-bottom: 1em;
 +
                font-family: 'Love Ya Like A Sister', cursive;
 +
                font-size:42pt;
 +
}
 +
 +
h3, h4{
 +
color:black;
 +
font-weight:300;
 +
line-height:1.5em
 +
}
 +
 +
h5{
 +
color:black;
 +
font-weight:600;
 +
font-size:25pt;
 +
font-family: 'Love Ya Like A Sister', cursive;
 +
}
 +
 
 +
        h6{
 +
color:black;
 +
font-weight:600;
 +
font-size:14pt;
 +
font-family: 'Love Ya Like A Sister', cursive;
 +
}
 +
 
 +
 
 +
/* Logo */
 +
    #title{
 +
background-color:#333;
 +
background: -webkit-radial-gradient(black 30%, #4d4d4d);
 +
background: -o-radial-gradient(black 30%, #4d4d4d);
 +
background: -moz-radial-gradient(black 30%, #4d4d4d);
 +
background: -radial-gradient(black 30%, #4d4d4d);
 +
display:inline-block;
 +
width:100%;
 +
padding-top:25px;
 +
                padding-bottom:25px;
 +
position:static;
 +
text-align:center;
 +
margin:0;
 +
}
 +
 +
#logoleiste{
 +
float:none;
 +
}
 +
 
 +
/* Nav */
 +
 
 +
.navbar {
 +
margin-left:0;
 +
                text-align:center;
 +
background-color:#019ac8;
 +
display:block;
 +
width:100%;
 +
height:7vh;
 +
z-index:9999;
 +
position:static;
 +
box-shadow: 0 0 1em 0 rgba(0, 0, 0, 0.5);
 +
}
 +
 +
.navbar ul{
 +
margin: 0;
 +
padding: 0;
 +
border-bottom:0;
 +
}
 +
 +
.navbar li a{
 +
font-size: 2.5vh;
 +
cursor:pointer;
 +
text-decoration: none;
 +
color: #ececec;
 +
padding-right:2vw;
 +
padding-top:2vh;
 +
display: block;
 +
border-bottom-style:none;
 +
}
 +
 +
.navbar li a:link{
 +
font-weight: normal;
 +
text-decoration: none;
 +
color: #ececec;
 +
}
 +
 +
.navbar li a:visited{
 +
font-weight: normal;
 +
text-decoration: none;
 +
color: white;
 +
}
 +
 +
.navbar li a:hover{
 +
font-weight: bold;
 +
text-decoration: none;
 +
color: white;
 +
}
 +
 +
.navbar li a:active{
 +
font-weight: bold;
 +
text-decoration: none;
 +
color: white;
 +
}
 +
 +
#computer li a:active{
 +
font-weight: bold;
 +
text-decoration: none;
 +
color: white;
 +
}
 +
 +
#tabletmenu li a:active{
 +
font-weight: bold;
 +
text-decoration: none;
 +
color: white;
 +
}
 +
 +
#computer{
 +
text-align:center;
 +
width:100vw;
 +
}
 +
 +
.computer li {
 +
width: auto;
 +
text-align:center;
 +
height: 7vh;
 +
line-height: 2.5vh;
 +
display:inline-block;
 +
z-index:666;
 +
}
 +
 +
/*.drop{
 +
width: auto;
 +
position: absolute;
 +
display:none;
 +
padding-top:0;
 +
margin-left:-1.5vw;
 +
background-color:#333;
 +
box-shadow: 0 1em 1em 0 rgba(0, 0, 0, 0.5);
 +
z-index:333;
 +
margin-top:2.3vh;
 +
}
 +
 +
li:hover .drop {
 +
display: block;
 +
}
 +
 +
.drop li {
 +
width: auto;
 +
height: 6vh;
 +
line-height: 2vh;
 +
background-color:#333;
 +
padding-left:clear;
 +
padding-left:1vw;
 +
padding-right:1vw;
 +
margin:0;
 +
}
 +
.drop a{
 +
font-size: 2vh;
 +
text-align: left;
 +
padding-left:0;
 +
margin:0;
 +
}*/
 +
 +
li a.current{
 +
font-weight:600;
 +
color:white;
 +
}
 +
 +
#menu{
 +
background-color:#019ac8;
 +
text-decoration:none;
 +
border:none;
 +
text-align:left;
 +
}
 +
 +
#tabletbutton{
 +
background-color:#019ac8;
 +
text-decoration:none;
 +
border:none;
 +
cursor:pointer;
 +
text-align:left;
 +
margin-left:1vw;
 +
padding-top:0.3vh;
 +
height:6vh;
 +
width:auto;
 +
}
 +
 +
#tabletmenu{
 +
display:none;
 +
background-color:#019ac8;
 +
width:auto;
 +
text-decoration:none;
 +
border:none;
 +
cursor:pointer;
 +
margin-left:0;
 +
padding-right:2vw;
 +
padding-left:2vw;
 +
text-align:left;
 +
position:absolute;
 +
z-index:9999;
 +
height:100vh;
 +
margin-top:0;
 +
box-shadow: 0 1em 1em 0 rgba(0, 0, 0, 0.5);
 +
}
 +
 +
#tabletmenu > ul > li:first-child{
 +
margin-top:2vh;
 +
}
 +
 +
#tabletmenu > ul > li{
 +
margin-top:0;
 +
width:auto;
 +
padding:0;
 +
margin-bottom:0;
 +
line-height: 3vh;
 +
}
 +
 +
#tabletmenu > ul > li > a{
 +
color:#ececec;
 +
margin-bottom:0;
 +
}
 +
 +
#tabletmenu > ul > li > a.current{
 +
font-weight:600;
 +
color:white;
 +
}
 +
 +
#tabletmenu > ul > li > a:hover{
 +
color:white;
 +
}
 +
 +
#computer > ul > li > a{
 +
color:#ececec;
 +
}
 +
 +
#computer > ul > li > a:hover{
 +
color:white;
 +
font-weight:600;
 +
}
 +
 +
#computer > ul > li > a.current{
 +
font-weight:600;
 +
color:white;
 +
}
 +
 +
#computer.drop{
 +
width: 100%;
 +
position: absolute;
 +
display:none;
 +
background-color:#333;
 +
padding-top:0;
 +
margin-left:-1.5vw;
 +
box-shadow: 0 1em 1em 0 rgba(0, 0, 0, 0.5);
 +
z-index:333;
 +
}
 +
 +
#computer > ul > li .drop li a{
 +
width: auto;
 +
height: 6vh;
 +
line-height: 2vh;
 +
background-color:#333;
 +
color:#ececec;
 +
padding-left:clear;
 +
padding-left:0.5vw;
 +
margin:0;
 +
}
 +
#computer .drop a{
 +
font-size: 2vh;
 +
text-align: left;
 +
padding-left:0;
 +
margin:0;
 +
}
 +
 +
#computer > ul > li .drop li a:hover{
 +
font-weight: bold;
 +
text-decoration: none;
 +
color: white;
 +
}
 +
 +
#computer > ul > li > a:active{
 +
color:white;
 +
font-weight:600;
 +
}
 +
 +
/* Banner */
 +
 
 +
    .banner{
 +
position: center;
 +
width:100%;
 +
height:auto;
 +
text-align:center;
 +
position: relative;
 +
margin:0;
 +
z-index:333;
 +
}
 +
#banner{
 +
width:100%;
 +
height:auto;
 +
}
 +
 +
/* MainHeader */
 +
   
 +
.mainHeader{
 +
text-align:center;
 +
width:100%;
 +
}
 +
 
 +
#mainHeader{
 +
text-align:center;
 +
}
 +
#mainHeader h1{
 +
 +
vertical-align:middle;
 +
font-family: 'Love Ya Like A Sister', cursive;
 +
font-size:42pt;
 +
padding-top:7vh;
 +
padding-bottom:9vh;
 +
}
 +
 +
/*.page {
 +
        width: 100%;
 +
        float: none;
 +
       
 +
        }*/
 +
 +
@media only screen and (min-width: 800px){
 +
.page{
 +
width:65vw;
 +
margin-left:7vw;
 +
float:left;
 +
                font-family:calibri;
 +
                font-size:14pt;
 +
}}
 +
 +
/* abstract */
 +
   
 +
.abstract{
 +
float:left;
 +
width:60.8vw;
 +
height:auto;
 +
border:3px solid #019ac8;
 +
text-align:center;
 +
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
 +
border-radius:6px;
 +
margin-bottom:2vh;
 +
padding:2vh 2vw 2vh 2vw;
 +
                font-size:14pt;
 +
                font-weight:bold;
 +
}
 +
 
 +
/*.abstract h5{
 +
float:left;
 +
padding-bottom:7pt;
 +
font-family: 'Love Ya Like A Sister', cursive;
 +
}*/
 +
.abstract p{
 +
clear:both;
 +
text-align:justify;
 +
font-size:14pt;
 +
                font-family:calibri;
 +
                font-weight:bold;
 +
}
 +
 +
/*.abstract2{
 +
width:90vw;
 +
margin-left:5vw;
 +
height:auto;
 +
border:3px solid #019ac8;
 +
text-align:center;
 +
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
 +
border-radius:6px;
 +
margin-bottom:5vh;
 +
padding:1vh 3vw 1vh 3vw;
 +
}
 +
.abstractHP{
 +
float:left;
 +
width:70vw;
 +
margin-left:0;
 +
height:auto;
 +
border:3px solid #019ac8;
 +
text-align:center;
 +
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
 +
border-radius:6px;
 +
margin-bottom:5vh;
 +
padding:1vh 3vw 1vh 3vw;
 +
}*/
 +
 +
/* highlights */
 +
.rechts{
 +
float:right;
 +
margin-right:7vw;
 +
width:14vw;
 +
height:auto;
 +
font-size:14pt;
 +
text-align:center;
 +
}
 +
 
 +
    .highlights{
 +
float:right;
 +
margin-right:0;
 +
height:auto;
 +
                width:13.7vw;
 +
font-size:14pt;
 +
border:3px solid #019ac8;
 +
text-align:center;
 +
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
 +
border-radius:6px;
 +
margin-bottom:3vh;
 +
padding:1vh 0;
 +
}
 +
 +
.highlights a{
 +
border-bottom:none;
 +
                text-decoration:none;
 +
line-height:5vh;
 +
}
 +
       
 +
        .highlights a:visited{
 +
color:#019ac8;
 +
                text-decoration:none;
 +
}
 +
 +
.highlights a:hover{
 +
font-weight:600;
 +
}
 +
        .highlights a:active{
 +
                text-decoration:none;
 +
        }
 +
 +
/*.see_other{
 +
width:14vw;
 +
height:auto;
 +
margin-bottom:2.5vh;
 +
font-size:14pt;
 +
color:#ececec;
 +
background-color:#019ac8;
 +
border:3px solid #019ac8;
 +
text-align:center;
 +
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
 +
border-radius:6px;
 +
padding:1vh 0 1vh 0;
 +
}*/
 +
 +
/*@media screen and (max-width: 800px){
 +
.see_other{
 +
width:20vw;
 +
float:right;
 +
height:auto;
 +
margin-bottom:2.5vh;
 +
font-size:14pt;
 +
color:#ececec;
 +
background-color:#019ac8;
 +
border:3px solid #019ac8;
 +
text-align:center;
 +
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
 +
border-radius:6px;
 +
padding:1vh 0 1vh 0;
 +
}}
 +
 +
a button.see_other:hover{
 +
font-weight: bold;
 +
text-decoration: none;
 +
color: white;
 +
cursor:pointer;
 +
}*/
 +
 +
.back_top{
 +
height:auto;
 +
                width:14vw;
 +
font-size:14pt;
 +
color:#ececec;
 +
background-color:#019ac8;
 +
border:3px solid #019ac8;
 +
text-align:center;
 +
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
 +
border-radius:6px;
 +
padding:1vh 0 1vh 0;
 +
}
 +
 
 +
a button.back_top:hover{
 +
font-weight: bold;
 +
text-decoration: none;
 +
color: white;
 +
cursor:pointer;
 +
}
 +
/* submenu
 +
   
 +
.submenu{
 +
width:30vw;
 +
height:10vh;
 +
margin-left:34.5vw;
 +
background-color:white;
 +
text-align:center;
 +
margin-bottom:10vh;
 +
}
 +
 +
.submenu_results{
 +
width:90vw;
 +
height:10vh;
 +
margin-left:5vw;
 +
background-color:white;
 +
margin-bottom:100px;
 +
text-align:center;
 +
}
 +
 +
.button_r{
 +
background-color:#019ac8;
 +
cursor:pointer;
 +
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
 +
border:none;
 +
border-radius:6px;
 +
text-align:center;
 +
vertical-align:middle;
 +
padding: 0 0 0 0;
 +
width:42vw;
 +
}
 +
 +
.button_r h2{
 +
color:#ececec;
 +
font-size:30pt;
 +
line-height:42px;
 +
vertical-align:middle;
 +
display:block;
 +
text-align:center;
 +
padding-top:33px;
 +
}
 +
 +
.button_r:hover{
 +
cursor:pointer;
 +
}
 +
    .button_r h2:hover{
 +
font-weight:bold;
 +
text-decoration:none;
 +
color:white;
 +
cursor:pointer;
 +
}
 +
.button_m{
 +
background-color:#019ac8;
 +
cursor:pointer;
 +
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
 +
border:none;
 +
border-radius:6px;
 +
text-align:center;
 +
vertical-align:middle;
 +
padding: 0 0 0 0;
 +
width:27vw;
 +
}
 +
 +
.button_m h2{
 +
color:#ececec;
 +
font-size:30pt;
 +
line-height:42px;
 +
vertical-align:middle;
 +
display:block;
 +
text-align:center;
 +
padding-top:33px;
 +
}
 +
 +
.button_m:hover{
 +
cursor:pointer;
 +
}
 +
    .button_m h2:hover{
 +
font-weight:bold;
 +
text-decoration:none;
 +
color:white;
 +
cursor:pointer;
 +
}
 +
 +
#a{
 +
float:left;
 +
}
 +
 +
#b{
 +
float:none;
 +
}
 +
 +
#c{
 +
float:right;
 +
}*/
 +
 +
/* Content */
 +
    .content{
 +
font-size:14pt;
 +
font-family:calibri;
 +
text-align:justify;
 +
float:left;
 +
                width:100%;
 +
                padding:0;
 +
}
 +
        .content h6{
 +
                padding-top:10px;
 +
        }
 +
.content2{
 +
font-size:14pt;
 +
}
 +
#content2{
 +
font-family:calibri;
 +
width:86vw;
 +
margin-left:7vw;
 +
text-align:justify;
 +
padding:0 0 0 0;
 +
}
 +
.contentHP1{
 +
font-size:14pt;
 +
font-family:calibri;
 +
width:30vw;
 +
margin-left:0;
 +
text-align:justify;
 +
margin-bottom:5vh;
 +
float:left;
 +
}
 +
.contentHP2{
 +
font-size:14pt;
 +
font-family:calibri;
 +
width:30vw;
 +
margin-right:0;
 +
text-align:justify;
 +
float:right;
 +
margin-bottom:5vh;
 +
}
 +
.contentHP3{
 +
clear:both;
 +
font-size:14pt;
 +
font-family:calibri;
 +
width:30vw;
 +
margin-left:0;
 +
text-align:justify;
 +
float:left;
 +
margin-bottom:5vh;
 +
}
 +
 +
.more_parts{
 +
width:90vw;
 +
margin-left:5vw;
 +
background-color:white;
 +
text-align:center;
 +
margin-bottom:5vh;
 +
 +
}
 +
 +
.specialPrize{
 +
width:25vw;
 +
font-size:14pt;
 +
color:#ececec;
 +
background-color:#019ac8;
 +
border:3px solid #019ac8;
 +
text-align:center;
 +
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
 +
border-radius:6px;
 +
padding:0 0 0 0;
 +
}
 +
 +
.specialPrize h2{
 +
font-weight:normal;
 +
color:#ececec;
 +
margin:0;  /* dringend notwendig damit der button schmal ist!!!*/
 +
}
 +
 +
.specialPrize h2:hover{
 +
font-weight: bold;
 +
text-decoration: none;
 +
color: white;
 +
cursor:pointer;
 +
}
 +
 +
a button.specialPrize:hover{
 +
font-weight: bold;
 +
text-decoration:none;
 +
color:white;
 +
cursor:pointer;
 +
}
 +
 
 +
/* Images */
 +
 
 +
    .imageHP_r{
 +
width:30vw;
 +
height:auto;
 +
margin-right:0;
 +
float:right;
 +
margin-top:3.7vh;
 +
}
 +
.imageHP_l{
 +
width:30vw;
 +
height:auto;
 +
margin-left:0;
 +
float:left;
 +
margin-top:3.5vh;
 +
}
 +
 +
/* Tabelle */
 +
   
 +
table{
 +
border:3px solid #019ac8;
 +
border-radius:6px;
 +
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
 +
}
 +
#groupParts{
 +
margin-left:5vw;
 +
margin-right:5vw;
 +
width:90vw;
 +
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
 +
border:3px solid #019ac8;
 +
border-radius:6px;
 +
font-size:14pt;
 +
height:auto;
 +
border-spacing:0;
 +
text-align:center;
 +
margin-bottom:5vh;
 +
}
 +
th{
 +
font-weight:bold;
 +
background-color:#019ac8;
 +
color:white;
 +
}
 +
th, td{
 +
border:1px solid #019ac8;
 +
}
 +
th, td #t1{
 +
width:7vw;
 +
}
 +
th, td #t2{
 +
width:7vw;
 +
}
 +
th, td #t3{
 +
width:7vw;
 +
}
 +
th, td #t4{
 +
    width:12vw;
 +
}
 +
th, td #t5{
 +
width:17vw;
 +
}
 +
th, td #t6{
 +
width:17vw;
 +
}
 +
th, td #t7{
 +
width:17vw;
 +
}
 +
th, td #t8{
 +
width:6vw;
 +
}
 +
/* Footer */
 +
   
 +
#footer{
 +
background-color:#333;
 +
background: -webkit-linear-gradient(top, black 30%, #4d4d4d);
 +
background: -o-linear-gradient(bottom, black 30%, #4d4d4d);
 +
background: -moz-linear-gradient(bottom, black 30%, #4d4d4d);
 +
background: -linear-gradient(to bottom, black 30%, #4d4d4d);
 +
height:10%;
 +
padding-bottom:0;
 +
width:100vw;
 +
}
 +
.footer{
 +
clear:both;
 +
margin-bottom:0;
 +
}
 +
 
 +
/* Links IDs */
 +
 
 +
    .verlinked{
 +
margin-bottom:3vh;
 +
margin-top:3vh;
 +
clear:both;
 +
                z-index:666;
 +
}
 +
    .verlinked h5{
 +
                height:7vh;
 +
                padding-top:11vh;
 +
    }
 +
 +
.read_more{
 +
width:auto;
 +
float:left;
 +
font-size:14pt;
 +
color:#ececec;
 +
background-color:#019ac8;
 +
border:3px solid #019ac8;
 +
text-align:center;
 +
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
 +
border-radius:6px;
 +
padding:0 2vw;
 +
margin-bottom:1vh;
 +
}
 +
 +
.read_more p{
 +
padding:0.5vh 0;
 +
margin:0;
 +
}
 +
 +
button.read_more:hover{
 +
font-weight: bold;
 +
text-decoration: none;
 +
color: white;
 +
cursor:pointer;
 +
}
 +
        .bild{
 +
        font-size:12pt;
 +
        text-align:justify;
 +
        }
 +
rel="stylesheet" href="bluebox/css/theDoctor.css"
 +
</style>
 +
<script type="text/javascript">
 +
(function($) {
 +
 
 +
skel.breakpoints({
 +
wide: '(max-width: 1680px)',
 +
normal: '(max-width: 1280px)',
 +
narrow: '(max-width: 980px)',
 +
narrower: '(max-width: 840px)',
 +
mobile: '(max-width: 736px)',
 +
mobilep: '(max-width: 480px)'
 
});
 
});
</script>
+
 
 +
$(function() {
 +
 
 +
var $window = $(window),
 +
$body = $('body');
 +
 
 +
// Disable animations/transitions until the page has loaded.
 +
$body.addClass('is-loading');
 +
 
 +
$window.on('load', function() {
 +
$body.removeClass('is-loading');
 +
});
 +
 
 +
// Fix: Placeholder polyfill.
 +
$('form').placeholder();
 +
 
 +
// Prioritize "important" elements on narrower.
 +
skel.on('+narrower -narrower', function() {
 +
$.prioritize(
 +
'.important\\28 narrower\\29',
 +
skel.breakpoint('narrower').active
 +
);
 +
});
 +
 
 +
// Dropdowns.
 +
$('#nav > ul').dropotron({
 +
offsetY: -15,
 +
hoverDelay: 0,
 +
alignment: 'center'
 +
});
 +
 
 +
// Off-Canvas Navigation.
 +
 
 +
// Title Bar.
 +
$(
 +
'<div id="titleBar">' +
 +
'<a href="#navPanel" class="toggle"></a>' +
 +
'<span class="title">' + $('#logo').html() + '</span>' +
 +
'</div>'
 +
)
 +
.appendTo($body);
 +
 
 +
// Navigation Panel.
 +
$(
 +
'<div id="navPanel">' +
 +
'<nav>' +
 +
$('#nav').navList() +
 +
'</nav>' +
 +
'</div>'
 +
)
 +
.appendTo($body)
 +
.panel({
 +
delay: 500,
 +
hideOnClick: true,
 +
hideOnSwipe: true,
 +
resetScroll: true,
 +
resetForms: true,
 +
side: 'left',
 +
target: $body,
 +
visibleClass: 'navPanel-visible'
 +
});
 +
 
 +
// Fix: Remove navPanel transitions on WP<10 (poor/buggy performance).
 +
if (skel.vars.os == 'wp' &amp;&amp; skel.vars.osVersion < 10)
 +
$('#titleBar, #navPanel, #page-wrapper')
 +
.css('transition', 'none');
 +
 
 +
});
 +
 
 +
})(jQuery);
 +
</script>
 +
<script type="text/javascript">
 +
$(document).ready(function(){
 +
$("#header").load("header.html");
 +
$("#footer").load("footer.html");
 +
$(window).scroll(function(event){
 +
var scrollY = $(window).scrollTop();
 +
var navbar = $(".navbar");
 +
var computer = $(".computer")
 +
var tablet = $(".tablet")
 +
var topButton = $('button.back_top');
 +
var highlights = $(".rechts");
 +
 +
    if(scrollY > $("#title").height()){
 +
navbar.css({"top":"17px", "position":"fixed"});
 +
}else{
 +
navbar.css({"top":"0", "position":"static"});
 +
}
 +
 +
if(scrollY > 1300){
 +
highlights.css({"top": "10vh","position": "fixed","right":"0"});
 +
}else{
 +
highlights.css({"top": "0","position": "static"});
 +
}
 +
 +
 +
        $("#lab1b").click(function(){
 +
$("#lab1c").toggle();
 +
});
 +
 +
$("#lab2b").click(function(){
 +
$("#lab2c").toggle();
 +
});
 +
 +
$("#lab3b").click(function(){
 +
$("#lab3c").toggle();
 +
});
 +
 +
$("#lab4b").click(function(){
 +
$("#lab4c").toggle();
 +
});
 +
 +
$("#lab5b").click(function(){
 +
$("#lab5c").toggle();
 +
});
 +
 +
    });
 +
 +
});
 +
 
 +
 
 +
$(document).ready(function(){
 +
 +
if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)){
 +
$(".tablet").show();
 +
$("#tabletbutton").click(function(){
 +
$("#tabletmenu").toggle();
 +
});
 +
}
 +
else{
 +
$(".computer").show();
 +
}
 +
});
 +
 
 +
$(document).ready(function(){
 +
 +
if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)){
 +
$("#logoleiste").css({"width":"70vw"});
 +
}
 +
else{
 +
$("#logoleiste").css({"width":"50vw"});
 +
}
 +
});
 +
</script>
 +
<style>@import 'https://fonts.googleapis.com/css?family=Love+Ya+Like+A+Sister';</style>
 +
</head>
 +
 
 +
 
 
<body>
 
<body>
 
<div class="vviki" id="vviki">
 
<div class="vviki" id="vviki">
<div id="head">
 
 
<div id="title">
 
<div id="title">
 
<img id="logoleiste" src="https://static.igem.org/mediawiki/2016/8/83/T--TU_Darmstadt--titel.png" alt="iGEM TU Darmstadt 2016"/>
 
<img id="logoleiste" src="https://static.igem.org/mediawiki/2016/8/83/T--TU_Darmstadt--titel.png" alt="iGEM TU Darmstadt 2016"/>
 
</div>
 
</div>
</html>{{Team:TU_Darmstadt/MainMenu}}<html>
+
<div class="navbar">
 +
<div class="tablet" style="display: none">
 +
    <div id="menu">
 +
  <button id="tabletbutton">
 +
  <img src="https://static.igem.org/mediawiki/2016/c/c9/T--TU_Darmstadt--zahnrad.png" alt="menu" id="tabletbutton"></img></button>
 +
    <div id="tabletmenu">
 +
<ul>
 +
            <li ><a href="https://2016.igem.org/Team:TU_Darmstadt/Achievements">Achievements</a></li>
 +
            <li ><a href="https://2016.igem.org/Team:TU_Darmstadt/Lab">In the Lab</a></li>
 +
            <li ><a href="https://2016.igem.org/Team:TU_Darmstadt/Hardware">Robotics</a></li>
 +
            <li ><a class="current" href="https://2016.igem.org/Team:TU_Darmstadt/Model">Modelling</a></li>
 +
            <li ><a href="https://2016.igem.org/Team:TU_Darmstadt/Human_Practices">Human Practices</a></li>
 +
            <li ><a href="https://2016.igem.org/Team:TU_Darmstadt/Collaborations">Collaborations</a></li>
 +
            <li ><a href="https://2016.igem.org/Team:TU_Darmstadt/Results_Parts">Results + Parts</a></li>
 +
            <li ><a href="https://2016.igem.org/Team:TU_Darmstadt/Notebook">Labbook</a></li>
 +
<li ><a href="https://2016.igem.org/Team:TU_Darmstadt/Team">Team</a></li>
 +
            </ul>
 +
</div>
 +
</div>
 +
</div>
 +
<div class="computer" id="computer" style="display: none">
 +
<ul>
 +
<li ><a href="https://2016.igem.org/Team:TU_Darmstadt/Achievements">Achievements</a></li>
 +
<li ><a href="https://2016.igem.org/Team:TU_Darmstadt/Lab">In the Lab</a>
 +
<!--<div class="drop">
 +
<ul>
 +
    <li><a href="LabReporter.html">Reporter</a></li>
 +
<li><a href="OrthoPair.html">Orthogonal Pair</a></li>
 +
<li><a href="ColE2Im.html">KILL(switch)</a></li>
 +
<li><a href="GI.html">Genomic Integration</a></li>
 +
<li><a href="ChemSyn.html">Chemical Synthesis</a></li>
 +
</ul>
 +
</div> -->
 +
</li>
 +
<li ><a href="https://2016.igem.org/Team:TU_Darmstadt/Hardware">Robotics</a></li>
 +
<li ><a class="current" href="https://2016.igem.org/Team:TU_Darmstadt/Model">Modeling</a>
 +
    <!-- <div class="drop">
 +
    <ul>
 +
    <li><a href="#ThOv">Theoretical Overview</a></li>
 +
    <li><a href="#Mod_m">Methods</a></li>
 +
    <li><a href="#Mod_r">Results</a></li>
 +
    </ul>
 +
    </div> -->
 +
</li>
 +
<li ><a href="https://2016.igem.org/Team:TU_Darmstadt/Human_Practices">Human Practices</a></li>
 +
<li ><a href="https://2016.igem.org/Team:TU_Darmstadt/Collaborations">Collaborations</a></li>
 +
<li ><a href="https://2016.igem.org/Team:TU_Darmstadt/Results_Parts">Results + Parts</a>
 +
    <!-- <div class="drop">
 +
    <ul>
 +
    <li><a href="Results.html">Results</a></li>
 +
    <li><a href="Parts.html">Parts</a></li>
 +
    </ul>
 +
    </div> -->
 +
</li>
 +
<li ><a href="https://2016.igem.org/Team:TU_Darmstadt/Notebook">Labbook</a></li>
 +
<li ><a href="https://2016.igem.org/Team:TU_Darmstadt/Team">Team</a></li>
 +
</ul>
 +
</div>
 +
</div>
 
<div class="banner"><img id="banner" src="https://static.igem.org/mediawiki/2016/8/86/T--TU_Darmstadt--team.jpg" alt="teamphoto"></img>
 
<div class="banner"><img id="banner" src="https://static.igem.org/mediawiki/2016/8/86/T--TU_Darmstadt--team.jpg" alt="teamphoto"></img>
 
</div>
 
</div>
 
<div id="mainHeader">
 
<div id="mainHeader">
<h1>MODELING</h1>
+
<h1>ROBOTICS</h1>
 
    </div>
 
    </div>
</div>
 
 
<div class="page">
 
<div class="page">
 
<div class="abstract">
 
<div class="abstract">
 
    <p><b>ABSTRACT</b><br/>
 
    <p><b>ABSTRACT</b><br/>
Bonding of proteins is highly depending on structural properties which in turn are determined by the amino acid sequences. Changing the amino acid sequence of one participating partner could consequently diminish it's binding ability. Therefore it is important to estimate the influence of mutations on the protein structure. This is particularly true for mutations from natural to non-natural amino acids.<br/>To estimate the influence of <i>O</i>-methyl tyrosine on Colicin E2's immunity protein we applied several molecular dynamics simulations leading to 1300&nbsp;ns in total simulation time. To do this we estimated <i>O</i>-methyl tyrosine parameters for the CHARMm&nbsp;22 and the GROMOS36a7 force field. We evaluated our simulations by applying several well documented evaluation methods like secondary structure analysis, plotting the solvent accesible surface area, and RMSD and RMSF. Our first simualtion analysis led to the conclusion that <i>O</i>-methyl tyrosine had no influence on the immunity protein.<br/>To estimate possible influences on the thermodynamics of the system we calculated the binding energy between Colicin E2 and it's immunity protein by pulling experiments with following umbrella sampling molecular dynamics simulations. The binding energy was afterwards calculated using the WHAM algorithm showing only minor differences.</p>
+
<b>One task of our project is to monitor and to keep alive manipulated <i>E.&nbsp;Coli</i> before they die, since they aren't able to survive on their own due to their dependence on non-natural amino acid. To catch the moment before the bacteria dies, a flourescent protein was implemented in such a way that it emits light as a warn signal.<br>  
 +
Therefore, our team decided to build a fully automatized pipetting robot that's able to locate a set of samples, detect potential light emission and pipet a specific amount of nonnatural amino acid onto the fluorescent sample.<br>
 +
The foundation for the robot lays a 3D-printer due to the easy handling of movements in three dimensions. By controlling these movements with an optical system the autonomy of the robot should be be increased even more.</b></p>
 
</div>
 
</div>
 +
 
<div class="content">
 
<div class="content">
    <div class="verlinked" id="ThOv"><h2>THEORETICAL OVERVIEW</h2></div>
+
    <div class="verlinked" id="intro"><h5>INTRODUCTION</h5></div>
<h5 id="MD" style="padding-top:0;">Molecular Dynamics Simulation</h5>
+
<p><h6>Development of 3D printers &amp; possibilities</h6>
<p><h6>Introduction</h6></p>
+
<br>
<p>Molecular Dynamics (MD) Simulations is a method to describe atomic and molecular movements. Molecular Dynamics simulations depend on several simplifications that enables the simulation to range from nanoseconds up to severeal milliseconds in systems containg of over one hundred thousand atoms. This enables the possibility to study different biomolecular processes like protein protein binding or enzyme dynamics. Because of the deterministic nature of the system it is possible to calculate thermodynamic properties like free energy or free binding enthalpies.</p>
+
In the 80s Chuck Hull invented the first standardized 3D printer, based on a procedure which is known as stereolithography (SLA, [1]). Moving from SLA to full deposit modeling (FDM) techniques, the 3D printing idea became alive in the Do&#8209;It&#8209;Yourself community. Ever since that time, basic 3D printers are accessible for little money and due to the open source idea of projects like REPRAP [2] affordable for many. In last years project, iGEM TU Darmstadt build already a fully working SLA printer, capable of feeding it with biological engineered plastics [3].<br>
<h6>Assumptions</h6><br/>
+
So now, the hardware branch decided to rebuild a clone of the Ultimaker 2 FDM printer [4] and exchange the extruder with a camera and a pipette to create a pipetting robot. Using several open&#8209;source parts and software, it is the idea to establish an easy manageable robot to help the daily biologist's work.  
<p>To describe atomistic or molecular behavior the exact system conditions like positions and energies. The energies of an atomic system are described by the Schr&oumldinger equation (eq. \ref{Schrödinger}) with wavefunction \(\Psi\) (eq. \ref{wavefunction}), kinetic energies \(\hat{T}_{e}\) and \(\hat{T}_{N}\) and potential energies \(\hat{V}_{e}\), \(\hat{V}_{N}\) and \(\hat{V}_{eN}\). Terms with subscript \(_{e}\) are terms concerning the electrons and terms with subscript \(_{N}\) are terms concerning the nuclei.  
+
</p><p>
+
<center>
+
$$
+
\begin{equation}
+
(\hat{T}_{e} + \hat{T}_{N} + \hat{V}_{e} + \hat{V}_{N} + \hat{V}_{eN})\Psi=i \hbar \frac{\partial}{\partial t}\Psi
+
\label{Schrödinger}
+
\end{equation}$$
+
$$
+
\begin{equation}
+
\Psi=\Psi(\vec{r}_{1},..., \vec{r}_{N_{e}},\vec{r}_{1},...,\vec{r}_{N_{N}})
+
\label{wavefunction}
+
\end{equation}$$
+
</center>
+
</p><p>
+
Since there is no possibility to solve these equations numerical, it is necessary to simplify the system description. The first assumption depends on the Born-Oppenheimer approximation that the Schr&oumldinger equation can be splitted into two parts, one for the electrons and one for the nuclei respectivly. Since the electrons are far more mobile the dynamic of the system can be defined by the nuclei positions. <br/>Molecular Dynamics simulations depend on several simplifications. First we assume in accord with the Born-Oppenheimer approximation that electronical movement has no influence on the overall atomic momentum because electrons will simply follow the nuclear movements in the simulated time scales. Second we can describe the potential energy function by a sum of simple terms. These terms are described in the so called force field which will be described later on. Third the system potential is evaluated by deriving the forces and applying Newtonian mechanic calculations as shown in equation \ref{newton} and \ref{newton1}.</p>
+
<p>
+
<center>
+
$$
+
\begin{equation}
+
M_{K}\frac{d\vec{v}_{1}}{dt} = M_{K}\frac{d^{2}\vec{r}_{1}}{dt^{2}} = \vec{F}_{\vec{r}_{1}} = \frac{\partial V\left(\vec{r}_{1},...,\vec{r}_{N}\right)}{\partial \vec{r}_{1}}
+
\label{newton}
+
\end{equation}
+
$$
+
</center>
+
 
</p>
 
</p>
 
<p>
 
<p>
<center>
+
<h6>Lab 3.0</h6>
$$
+
<br>
\begin{equation}
+
Following the concept of the industry 3.0, the automation of simple tasks by robots (refers to the 4th stage of industrial revolution)  let us introduce the laboratory 3.0, which enables scientists to concentrate on actual science by the automation of simple, repeating work. This task is fulfilled with intelligent robots, which are enabled to detect, react and response to the experimenter.
F_{ij}=-\frac{\partial}{\partial r_{ij}}V_{force~field}
+
\label{newton1}
+
\end{equation}
+
$$
+
</center>
+
 
</p>
 
</p>
<p>To solve these terms numerically we have to discretize the trajectory and therefore use an integrator for the small time steps. Several different integrators were developed today, of which the velocity-Verlet algorithm is the most used (eq. \ref{VV1} & \ref{VV2}).</p>
 
 
<p>
 
<p>
<center>
+
<h6>Connection to our team</h6>
$$
+
<br>
\begin{equation}
+
iGEM TU DARMSTADT is a young and dynamic team of engaged researches. We have limited resources, namely time and money and we have to invent our lab work every day again, to reach more and stayfocus on science. We have the possibilities, thanks to iGEM, to experiment on our own ideas and to try reaching the sky (or actual the biologist's equivalent to something really cool).
r_{i}(t_{0} + \Delta t) = r_{i}(t_{0}) + v_{i}(t_{0})\Delta t + \frac{1}{2}a_{i}(t_{0})\Delta t^{2}
+
Interdisciplinary opens our mind and sharpens our knowledge for the important things. It is really helpful, if we work together and benefit from each other.
\label{VV1}
+
\end{equation}
+
$$
+
</center>
+
 
</p>
 
</p>
<p>
 
<center>
 
$$
 
\begin{equation}
 
v_{i}(t_{o}+\Delta t) = v_{i}(t_{0}) + \frac{1}{2}[a_{i}(t_{o} + \Delta t)]\Delta t
 
\label{VV2}
 
\end{equation}
 
$$
 
</center>
 
</p>
 
<p>
 
  
<br/>The temperature of the system is directly correlated to the distribution of kinetic energies. Therefore the temperature of the system can be controlled by manipulating the atom velocities. A possible way to do this was proposed by Berendsen by coupling the system to a heat bath resulting in a NVT ensemble (eq. \ref{Berendsen}).</p>
 
 
<p>
 
<p>
<center>
+
References:
$$
+
<br>
\begin{equation}
+
<ol>
a_{i}=\frac{F_{i}}{m_{i}} + \frac{1}{2 \tau_{T}} \left( \frac{T_{B}}{T_{t}} -1 \right) v_{i}
+
<li><a href="http://edition.cnn.com/2014/02/13/tech/innovation/the-night-i-invented-3d-printing-chuck-hall/">http://edition.cnn.com/2014/02/13/tech/innovation/the-night-i-invented-3d-printing-chuck-hall</a></li>
\label{Berendsen}
+
<li><a href="https://2015.igem.org/Team:TU_Darmstadt/Project/Tech">https://2015.igem.org/Team:TU_Darmstadt/Project/Tech</a></li>
\end{equation}
+
<li><a href="http://reprap.org/wiki/About">http://reprap.org/wiki/About</a></li>
$$
+
<li><a href="http://www.thingiverse.com/thing:811271">http://www.thingiverse.com/thing:811271, jasonatepaint</a></li>
</center>
+
</ol>
 
</p>
 
</p>
<h5 id="FFs">Empirical Force Fields</h5>
+
<p>Empirical Force Fields are the backbone of every Molecular Dynamics simulation. Typically the force fields are diveded into two parts, bonded and nonbonded interactions. Bonded interactions consist of chemical bond stretching, angle bending, and rotation of dihedrals and impropers. Nonbonded interactions are approximated by Coulomb interactions (ionic) and Lennard-Jones potentials. The overall CHARMm (Chemistry at HARvard Macromolekular mechanics) potential is calculated by summing up these main potentials ( \( V_{CHARMm} = V_{bonded} + V_{nonbonded} \) ).  
+
<div class="verlinked" id="goals"><h5>GOALS</h5></div>
<br/>
+
<p>
In equation \ref{CHARMM_bonded} and \ref{CHARMM_nonbonded} the bonded and nonbonded Potentials of the CHARMM force field are displayed. All terms consist of an equilibrium value marked with \(0\) and a force constant \(K\).</p>
+
The main task is to develop a machine which is capable to monitor our organisms and their health condition in order to keep them alive. Therefore the machine has to measure the light emittance of the organisms and be capable of dropping liquids into our containers. This has to be independent of the exact position of the container, which requires an automatic tracking system.<br>
 +
The idea is that one places a container somewhere under the machines working area and click a run button of a program. The machine starts its routine by tracking the new container and measuring the light emittance of the organisms. Based on the measurement the machine decides whether to feed the organisms with non&#8209;natural amino acid or not. After a period of time it repeats this routine until the stop button of the program is clicked.<br>
 +
These are only the minimum requirements for our project needs. We decided to go one step further ans designed our machine in such a way, that it serves as a multi purpose platform which is adaptable and easy to modify. Our aim is that it is possible to add new features and software, inviting other scientists to improve our platform and share their ideas with the community.<br>
 +
For example our liquid system can be upgraded to be able to prepare 96-well plates with probes and monitor routines, by using the optic.
 +
Or our measuring head can be changed back to a printer head which allows to 3D print again with just a few changes.<br>
 +
One has a vast room of possibilities, just using the concept of the accurate positioning of a probe in the 3D space.<br>
 +
Due to the fact that we try to stick to widely used open-source software and standard commercial parts, our machine can be easily combined with the most DIY products, making it reusable, flexible and cheap.<br>
 +
In the special case of the TU Darmstadt and the next generations of iGEM competitors we have the idea to develop our technical equipment further from year to year and combining them. Our SLA printer from the last years competition was upgraded and is nearly ready for use again, giving us the possibility to manufacture parts for prototyping in our lab. Also this years project will serve as a starting point for the next years technical development team. New ideas and possibilities have been already discussed and we are looking forward to the next years competition.<br>
 +
</p>
 +
 +
<div class="verlinked" id="setup"><h5>SETUP OVERVIEW</h5></div>
 +
<!--Hier die svg Datei einbinden, die den dreidimensionalen Aufbau anzeigt.
 +
Einzelne Parts sollen anklickbar sein und eine Box unterhalb des Ausbaus soll aufklappen (hier javascript shizzle)
 +
Bei drüberfahren derMaus über die jeweiligen parts sol außerdem die parts gehighlightet werden (rest drumherum wird transparent), also in das Bild wechseln.
 +
Wenn schon eine Box geöffnet ist, aber ein anderer part geklicktwird soll sich diese öffnen und dafür die andere wieder schließen.-->
 +
 +
<div class="verlinked" id="func"><h5>FUNCTIONALITY</h5></div>
 +
The functionality of the pipetting robot comprises the three&#8209;dimensional agility of a 3D-printer, the possibility to pipet a specific amount of non natural amino acid (short:&nbsp;nnAA) using a syringe pump as well as intelligent visual object recognition so that it is able to distinguish between samples that require more nnAA from samples that still contain a sufficient amount.
 +
With that said it is capable to autonomously keep alive the modified <i>E.&nbsp;coli</i> bacteria, given that it is activated and connected to a reliable power supply.<br>
 +
To fulfill the task of keeping alive the bacteria it loops through a specially designed procedure. Initially the robot scans the internal space for samples by lighting the downside of the shelf space using infrared LEDs and monitoring the shadows of the placed reservoirs with a camera. If the contrast is sufficiently high, which is given due to isolation from light sources from outside, it is able to detect the edges of the mentioned reservoirs, fit a circle onto it and compute the distance between the reservoir and the camera itself. Furthermore it is possible to put an entire rack of reservoirs under observation due to its ability to recognize even rectangles.<br>
 +
Shortly after the detection of the samples the distance data is transferred to the 3D control and the head of the robot moves in direction of the first reservoir. To check whether the bacteria needs more nnAA the robot uses the fluorescence of the protein mVenus that has been inserted into the bacteria. Therefore the robot excites the protein via high power LEDs and detects the emitted photons. To exclude reflected light from the LEDs that would disturb the measurement a longpass filter cuts of the spectrum below the emission peak of the protein. In dependence of the fluorescence signal the robot decides whether it is necessary to pipet nnAA onto the sample. If that's the case the robot moves the samples in z-range just so that the syringe reaches the sample and is able to securely add the nnAA.<br>
 +
Eventually the robot recommences the procedure described above, except for the scanning of the individual positions of the samples, which are saved temporarily until all samples are checked. As long as the robot is activated, connected to a power supply and the syringe pump does not run out on nnAA the robot will loop through this whole process and keep the bacteria alive without a need of human interaction.
 +
Nevertheless it is possible to check what the robot is doing via a livestream of the camera visible on the graphical user interface, since there is no other opportunity to look inside the robot itself while it is working.
 +
<br>
 +
 +
<div class="verlinked" id="achie"><h5>ACHIEVEMENTS</h5></div>
 +
<p><ul>
 +
<li>Successfully redesign a 3D printer chassis to meet our requirements</li>
 +
<li>Construct a unique base platform with integrated IR LEDs for measuring and positioning purposes</li>
 +
<li>Design a measuring probe with a camera device with an integrated optical filter system and LEDs</li>
 +
<li>Construct a syringe pump system to add liquids down to µl accuracy</li>
 +
<li>Implementing a unique GUI to run our program featuring a multi threading system optimizing the overall performance</li>
 +
<li>Implementing an automatic object tracking system including a vector based feedback system for positioning</li>
 +
<li>Connecting a Raspberry Pi with an Arduino Micro controller by establishing a serial connection between the two devices, allowing a variety of different tasks</li>
 +
<li>Data of all CADs designed by the TU Darmstadt technical department</li>
 +
<li>A complete <a href="#build">build instruction</a> including a <a href="#bom">BOM</a> (Bill of Materials incl. prices) and a step by step video tutorial</li>
 +
</ul></p>
 +
 +
 +
 +
 +
 +
<div class="verlinked" id="mech"><h5>Mechanics</h5></div>
 +
 +
<div class="verlinked" id="optics"><h5>Optics</h5></div>
 
<p>
 
<p>
<center>
+
<div class="verlinked" id="wave"><h6>Operating range of wavelengths</h6></div>
$$
+
\begin{equation}
+
The robot optics consists of two big components, a camera head, and a lightbox.
V_{bonded} = \sum_{bonds}{K_{b}(b-b_{0})^{2}} + \sum_{angels}{K_{\theta}(\theta-\theta_{0})^{2}} + \sum_{torsions}{K_{\phi}(1+cos(n\phi-\delta))} + \\ \sum_{impropers}{K_{\psi}(\psi-\psi_{0})^{2}} + \sum_{Urey-Bradley}{K_{UB}(r_{1,3}-r_{1,3,o})^{2}} + \sum_{\phi\psi}{V_{CMAP}}
+
The camera head is responsible for two tasks, which are the detection and localization of cuvettes, and the fluorescence measurements.
\label{CHARMM_bonded}
+
The light table illuminates the sample table uniformly from below, thereby aiding the camera to reliably do the detection work.
\end{equation}
+
The fluorescence measurement and object detection are separated in terms of their operating range of wavelengths.
$$
+
All the detection occurs at wavelengths above 860nm, which is near infrared.  
$$
+
The light table radiates uniform infrared light, while the camera chip is capable of capturing this wavelength.
\begin{equation}
+
There is nothing special to the camera chip. Actually all commercially available CCD-Chips can potentially capture near infrared, but this is usually an undesirable feature for photographic purposes,
V_{nonbonded}=\sum_{nonbonded}{\frac{q_{i}q_{j}}{4\pi D r_{ij}}}+ \sum_{nonbonded}{\epsilon_{ij}\left[\left(\frac{R_{min,ij}}{r_{ij}}\right)^{12}-2\left(\frac{R_{min,ij}}{r_{ij}}\right)^{6}\right] }
+
since it falsifies image colors, at least from a human point of view. This is why camera lenses are usually equipped with an infrared filter.  
\label{CHARMM_nonbonded}
+
In our case, we use our own lens system, where we removed the infrared filter.
\end{equation}
+
The reason why we chose the detection to operate at infrared is because we are mainly dealing with GFP, which does not absorb infrared.  
$$
+
Otherwise, over a long time of illumination during periods of detection the fluorescent proteins would bleach out unnecessarily.
</center>
+
Now, if we take a look at the camera head, there is also a slight spectral separation: The GFP’s are stimulated at wavelengths lower than the emission wavelengths.
</p>
+
The stimulation occurs at a central wavelength of 465&nbsp;nm, while the emission takes place at a central wavelength of 525&nbsp;nm.  
<p>The additional terms CMAP and Urey-Bradley are correctional terms for backbone atoms and 1, 3 interactions respectively.</p>
+
The reason for this separation is, that we use continuous rather than pulsed stimulation.<br></p>
<h5 id="SimAn">Simulation Analysis</h5>
+
<p>Because of the vast amount of data that is produced by Molecular Dynamics simulations it is essential to process the data into more accesible formats. To perform this task we applied several approaches like comparison of the solvent accesible surface area (SASA) over time.</p>
+
<h6 id="RMSD">Root Mean Square Deviation</h6>
+
<p>The Root Mean Square Deviation (RMSD) describes the sum of distances of all selected atoms \(n\) between themselves in a selceted timestep \(\tau\) and a reference timestep \(r\) (eq. \ref{RMSD}). Plotted over time it is possible to detect fluctuations in the whole molecular configuration and therefore it is possible to conclude structures of high stability from plateaus in the RMSD.</p>
+
 
<p>
 
<p>
<center>
+
<div class="verlinked" id="fluor"><h6>Fluorescence measurement and filtering</h6></div>
$$
+
\begin{equation}
+
For pulse measurements there is a need for advanced high frequency circuitry, which is capable of forcing the LEDs to emit pulse lengths of picoseconds.
RMSD_{\tau}=\sqrt{\sum_{n=1}^{N}{\left((x_{\tau,n}-x_{r,n})^{2}+(y_{\tau}-y_{r,n})^{2}+(z_{\tau,n}-z_{r,n})^{2}\right)}}
+
LEDs have rise and fall times in the nanosecond region, if they are used in a simple on/off manner.
\label{RMSD}
+
For continuous measurements there are just two interconnected selections to be made: The wavelength of stimulation, and a corresponding optical filter.
\end{equation}
+
In our case it is a long pass filter with a cutoff wavelength of 515nm.
$$
+
It is capable of blocking most of the stimulation light, while letting GFP emission pass. The camera captures a long-exposed image to be further analyzed.
</center>
+
To get rid of the residual stimulation light appearing in that image, the image is digitally color-filtered, and segmented into regions of interest (ROI).
</p>
+
The determination of ROIs occurs simultaneously with the detection of cuvettes.
<p>
+
The filtering is very strong, and does indeed block some of the already weak GFP fluorescence.
By chosing the right atom selection it is possible to evaluate different behaviour of protein subgroups. For example if the RMSD between C&alpha; atoms is calculated it is possible to plot the backbone movement over time and hence detect configurations that differ from the starting structure. This is important if the one wants to search for different thermodynamic stable ensembles of the protein or molecul of interest.
+
This is why we use an exposure time of 10 seconds for a fluorescence capture, to make sure enough data is collected.</p><p>
</p>
+
 
<h6 id="RMSF">Root Mean Square Fluctuation</h6>
+
<div class="verlinked" id="cam"><h6>Optical Hardware - Camera Head</h6></div>
<p>Similar to the RMSD the Root Mean Square Fluctuation describes the sum of distances of all selected atoms. In this case the distance per atom between all selected configuartions is calculated and summed over time. Therefore it is possible to spot out residues with strong mobility and consequntly residues that are part of fluctuating and disordered protein subunits.</p>
+
We are using the 8 megapixels PiCamera, because we have access to its capturing settings like framerate,
<p>
+
exposure time, gains, light sensitivity etc. over existing Programming interface [1],
<center>
+
which is absolutely necessary since detection and measurement have totally different requirements.
$$
+
Another benefit is, that we are able to capture directly in grayscale (Y part of YUV) for fast detection purposes, and switch to RGB when doing
\begin{equation}
+
fluorescence measurements. We don't have these degrees of freedom with an usual USB camera. The bad thing is, the stock camera itself is equipped
RMSF_{n}=\sqrt{\sum_{\tau=1}^{T}{\left((x_{n}-x_{0})^{2}+(y_{n}-y_{0})^{2}+(z_{n}-z_{0})^{2}\right)}}
+
with a very minimal lens system. Since detection and measurement not only occur at different wavelengths, but also at different distances to the vessels
\label{RMSF}
+
(fluorescence images are taken from each single cuvette, while the camera head is directly placed over its opening), there is a need for adjusting the focus.  
\end{equation}
+
We have therefore developed a focusing system consisting of a so called voice coil, which inhabits a 3D printed adapter socket for the PiCamera.
$$
+
The adapter socket also harbors the optical longpass filter. The voice coil holds a suspended lens, which can be adjusted in its distance to the camera chip.
</center>
+
This method is used in most smartphones. In our case, we salvaged our voice coil out of an old webcam.
 +
The voice coil is fed with a PWM signal provided directly by the Raspberry Pi's hardware PWM channel.
 +
We use a simple L297 H-Bridge Stepperdriver to amplify the PWM signal, and to decouple the Raspberry Pi's precious hardware PWM pin.
 +
Different duty cycles mean different focal positions. The coil current is tuned with a potentiometer.
 +
In this way we are able to automatically focus the lens by evaluating simple Sobel-filter-based sharpness measurements.
 +
Our autofocus is finding best sharpness within 2 seconds, using a robust global search algorithm.
 +
It is applied every time a new set of racks and cuvettes is placed into the robot, i.e. prior to each new session.
 +
Also, to adjust the focus for individual fluorescence captures, the sharpness of the individual cuvette corners is considered.
 +
The camera head also harbors the stimulating LEDs, which are 4 high Power Cree XTE, driven by a 0.9 amp
 +
current source and a PWM signal delivered by the Raspberry Pi.
 +
<br>
 +
<div class="verlinked" id="lightbox"><h6>Optical Hardware - Lightbox</h6></div>
 +
The lightbox is an essential part of the detection. All applied detection algorithms rely on thresholding the image,
 +
or filtered versions of it. The thresholding is basically doing a binary selection of relevant vs. irrelevant image information.
 +
But with thresholding there is always a loss of relevant image information. If there is less clutter in the image,
 +
then there is no need to use strong thresholds, therefore conserving more of the relevant image information.  
 +
The lightbox is acting as a clean background, creating only low amount of static noise and clutter due to its uniform radiation of light,
 +
allowing to use less strict thresholds. It also emphasizes the vessel corners. This enhances detection reliability beyond comparison.
 +
The heart of the lightbox is a Plexiglas panel called “Endlighten”.
 +
Light is laterally injected, and reflected off systematic impurities inside the panel [2].
 +
The light then leaves the panel uniformly in all directions.
 +
Light leaving the panel back side is mirrored to the front side by a white reflective Plexiglas,
 +
and additionally diffused by a diffusor plate, also made of Plexiglas. All Plexiglas panels are products of Evonik, the original.
 +
The light is injected by flat-end infrared LEDs which are mounted on 3d printed rails and tightly clamped to the sides of the
 +
Endlighten panel. The LEDs are driven by constant current sources to give them a hopefully long lifetime.
 
</p>
 
</p>
<h6 id="DSSP">DSSP</h6>
+
<p>References<br>
<p><i>Define Secondary Structures of Proteins</i> (DSSP) by Wolfgang Kabsch and Christian Sander is a standard program to analyse secondary structure properties of proteins. The main idea to discriminate between different secondary structures is to based on the presence of H bonds because this can be represented by one energy value. This definition enables the algorithm to distinguish different types of &alpha; helices, &beta; sheets, and turns.<br/>
+
[1]: <a href="https://picamera.readthedocs.io/en/release-1.12/">https://picamera.readthedocs.io/en/release-1.12/</a><br>
The electrostatic interations between two groups are calculated by assigning partial charges to each C (\(+q_{1}\)), O (\(-q_{1}\)), N (\(-q_{2}\)), and H (\(+q_{2}\)), with \(q_{1} = 0.42~e\) and \( q_{2} = 0.20~e\) and r(AB) being the distance between two atoms A and B in Angstr&oumlm. An H bond is defined by \( E < -0.5~\frac{kcal}{mol}\).
+
[2]: <a href="https://www.plexiglas-shop.com/pdfs/en/212-15-PLEXIGLAS-LED-edge-lighting-en.pdf">https://www.plexiglas-shop.com/pdfs/en/212-15-PLEXIGLAS-LED-edge-lighting-en.pdf</a>
 
</p>
 
</p>
<p>
+
$$
+
<div class="verlinked" id="cool"><h5>Cooling</h5></div>
\begin{equation}
+
All electronic components produce a significant amount of heat, especially the motor parts, power supply, and the Raspberry Pi.
E = q_{1} q_{2} \left( \frac{1}{r(ON)} + \frac{1}{r(CH)} + \frac{1}{r(OH)} + \frac{1}{r(CN)} \right) 332~\frac{kcal}{mol}
+
Since the robot chassis is meant to be completely enclosed to keep light out, heat is going to pile up in the upper part of the interior sooner or later.
\label{DSSP}
+
To protect the probes from temperatures above room temperature, it is necessary to include a cooling system, which ensures proper air circulation, and does not let in ambient light.
\end{equation}
+
To fulfill these two requirements we decided to adapt a double-walled cooling system. The simplest implementation of it is based on the fact that warm air rises naturally, and incorporates the power supply as the air intake.
$$
+
The power supply is placed on the bottom of the robot, and sucks in fresh air. The air, which is getting warmed up by the interior rises to the top and is being sucked out by a radial fan through an extractor hood, made of a laser&nbsp;cutted MDF grid.
</p>
+
The warm air in between the MDF grid and the outer wall is directed through a 3D&nbsp;printed exhaust tunnel. Thus, ambient light is being held out.
<h5 id="BEC">Binding Energy Calculations</h5>
+
<p>Alchemical Free Energy Perturbation (FEP) is a method in computational biology to obtain energy differences from molecular dynamics or Metropolis Monte Carlo simulations between two system states. In here the system is slowly transformed from state \(i\) to state \(j\) through non-natural intermediates which are sampled by slowly decreasing the intermolecular interactions. The core equation (eq \ref{FEGG}) for the Helmholtz free energy difference between states \(i\) and \(j\) \(\Delta A_{ij}\) is derived from statistical mechanics. \(Q\) represents the canonical partition function, \(k_B\) the Boltzman constant, \(U\) the corresponding potential system energy in relation to the coordinates and momenta \(\vec{q}\), \(T\)the temperatur and \(\Gamma\) the volume of potential states of \(\vec{q}\).</p>
+
<div class="verlinked" id="softw"><h5>Software</h5></div>
 +
 +
<div class="verlinked" id="marl"><h6>Marlin</h6></div>
 +
 +
<div class="verlinked" id="opencv"><h6>OpenCV</h6></div>
 +
 +
<div class="verlinked" id="pyqt"><h6>PyQt</h6></div>
 +
<p>Qt is a software tool to develop a GUI (Graphical User Interface). It is available under a commercial license and a open-source license. The software is a cross-platform application framework, which means it runs on the most computer systems like Unix or Windows. The underlying programming language is C++ and Qt can use already existing programming languages like Javascript, making it a powerful tool.<br>
 +
The main idea of Qt is to use a system of signals and slots to have an easy framework to connect displayed elements with underlying functions. Also the re usability of already existing code is enhanced. Every graphical element, for example a button, emits its own signal when its pressed or used. The signal then can be used to trigger an action, for example closing a window. If the signal is not connected to a function nothing will happen, however the signal will be emitted with no consequences. Now it is possible to connect the emitted signal with a desired action, called slot, and the program gets its unique behavior.<br>
 +
Qt is widely used by companies like the European Space Agency, Samsung, DreamWorks, Volvo and many more.
 +
To be able to combine the possibilities of Qt with the simplicity of the Python programming language, PyQt was developed. PyQt is a binding for Python to be able to use the Qt methods within the Python syntax. <br>
 +
To be able to get a direct preview of the constructed GUI, Qt Designer is a helpful tool. It is basically a constructing tool in which it is possible to use the objects as visible ones, making it possible to move them around and arranging them in the desired manner. To later work with the code itself, PyQt uses a method called pyuic(number) which is executed through the terminal. The number in the brackets stands for the version number.<br>
 +
After converting the code one can open the GUI as a regular python script and work with it as usual. </p>
  
<p>
 
$$
 
\begin{equation}
 
\Delta A_{ij} = -k_{B} T \frac{Q_{j}}{Q_{i}} = -k_{B} T~ln \left( \frac{\int_{\Gamma_{j}}e^{-\frac{U_{j}(\vec{q})}{k_{B}T}}d \vec{q}}{\int_{\Gamma_{i}}e^{-\frac{U_{i}(\vec{q})}{k_{B}T}}d \vec{q}}\right)
 
\label{FEGG}
 
\end{equation}
 
$$
 
 
<p>
 
<p>
To calculate free energy differences between states with low state space overlap a thermodynamic cycle can be constructed hence the Helmholtz free energy is a thermodynamic state function. The most straightforward way to calculate state transition free energy changes would be to simulate the naturaly occuring process. For example the binding free energy between two protein can be calculated by sperarating both proteins. This approach however has high computational costs since the whole water filled box has to be simulated resulting in large systems.<br/>The alchemical perturbation approach relies on simulating several intermidiate states over which Coulomb and Lennard-Jones interactions are slowly decreased. This is controlled via a coupling factor \(\lambda\) (eq \ref{lambda}). The resulting potential energy \(U\) at state \(\lambda\) is subsequently calculated as sum of the two end states \(U_0\), \(U_1\) and all not decoupled interacions \(U_{unaffected}\).
+
References:<br>
<p>
+
<a href="https://riverbankcomputing.com/software/pyqt/intro<br>">https://riverbankcomputing.com/software/pyqt/intro<br></a>
$$
+
<a href="https://www.qt.io/">https://www.qt.io/</a><br>
\begin{equation}
+
<a href="https://en.wikipedia.org/wiki/Qt_(software)">https://en.wikipedia.org/wiki/Qt_(software)</a><br>
U(\lambda,\vec{q}) = (1-\lambda)~U_{0}(\vec{q}) + \lambda~U_{1}(\vec{q}) + U_{unaffected}(\vec{q})
+
\label{lambda}
+
\end{equation}
+
$$
+
 
</p>
 
</p>
The overall free energy change \(\Delta A_{0,1}\) is consequently calculated as sum over all free energy changes (eq. \ref{TC}).
+
</p>
+
<div class="verlinked" id="develop"><h5>FURTHER DEVELOPMENTS</h5></div>
<p>
+
<p>Due to a tight time schedule from start to the end of iGEM it wasn't possible for us to to realize all ideas and planned developments in respect of improvement of the robot itself and further applications other than its current very specialized task.
$$
+
First of all it should be mentioned that the current model of the robot is designed to work with only one kind of bacteria culture in virtue of the not solved problem of sterility. For a working process with more kinds of bacteria cultures it is absolutely indispensable to develop a system that is able to avoid all sorts of contamination between the different bacteria. Therefore it would be an option to have an extra reservoir filled with ethanol in which the tip of the syringe can be sterilized between the checks of different samples.
\begin{equation}
+
Another modification that would be useful for working with individual bacteria cultures is make the power LED's changeable. This is necessary if the the wavelength of the LED's does not overlap with absorption spectrum of the fluorescent proteins or overlaps with a part of the spectrum that has a very low absorption efficiency.
\Delta A_{0,1} = \sum^{1}_{\lambda=0} {\Delta A_{\lambda,\Delta \lambda}}
+
<br>Moreover, apart from the latter developments it may be useful to add one more syringe pump to the current setup, just so that it would be possible to remove liquid from the samples. Of course, this only makes sense, if the above mentioned idea of a sterility progress is implemented, due to the fact that the tip of the removing syringe has to be inserted into the liquid. And thus a contamination, in case of different bacteria cultures, would occur.
\label{TC}
+
<br>Besides, a usage of the robot except for its “normal” tasks of observing bacteria would be a neat extension. For example a useful modification of the robot to a functional 3D-printer would be convenient, due to its setup that resembles an <i>Ultimaker 3D-printer</i>. Essential alterations would be to replace the sample stage with a heatbed and to replace the current head with a printhead hotend. Since the current head can be clipped it wouldn't be too much of a challenge. Furthermore, a change of the syringe extruder is necessary, if the printer should work with plastics.
\end{equation}
+
An alternative approach is a kind of paste 3D-printer. In this case it wouldn't even be needed to change the head and the syringe, because of the already viscous properties of the paste.
$$
+
 
</p>
 
</p>
<p>
+
Gibb's free energy differences between two &lambda; states can be calculated by equation \ref{Calc}.
+
</p><p>
+
$$
+
\begin{equation}
+
<div class="verlinked" id="build"><h5>BUILDING INSTRUCTIONS</h5></div>
\Delta G~(\lambda^{'} \rightarrow \lambda^{"}) = -k_{B}T~\Bigg \langle exp \left( -\frac{U(\lambda^{"})-U(\lambda^{'})}{k_{B}T} \right) \Bigg \rangle
+
\label{Calc}
+
<div class="verlinked" id="vid"><h6>Construction Video</h6>
\end{equation}
+
</html>{{Team:TU_Darmstadt/Video|src=https://static.igem.org/mediawiki/2016/d/d6/T--TU_Darmstadt--testvideo.mp4}}<html>
$$
+
</div>
</p>
+
Interactions of molecules are represented by Lennard-Jones and Coulomb interactions. This can lead to problems when Lennard-Jones interactions are decoupled and charge interactions are still active. This ensemble will lead to a clashing of the molecules since the charges will attract each other without any form of antagonistic force. To avoid this problem position restraints are added which have to be considered in the end calculation.<br/>In order to evaluate the simulations of the itermediate states and calculate the free energy difference between the end states several algorithms have been developed (e.g., Exponential Averaging (EXP) or Bennett Acceptance Ratio (BAR)). BAR computes the energy difference between two simulations generating the trajectories \( n_i \) and \( n_j \) with the corresponding potential energy functions \(U_i\) and \(U_j\). The free energy difference \(\Delta A_{ij}\) can then be written as in equation \ref{Bennett} where \(f()\) stands for the Fermi function (eq. \ref{Fermi}).
+
<div class="verlinked" id="bom"><h6>Bill Of Materials</h6></div>
<p>
+
$$
+
\begin{equation}
+
\Delta A_{ij} = k_B T ~ \left( ln \frac{\sum_j f(U_i - U_j + k_B T~ln \frac{Q_i n_j}{Q_j n_i})}{\sum_i f(U_j - U_i - k_B T~ln \frac{Q_i n_j}{Q_j n_i})} - ln \frac{n_j}{n_i} \right)+ k_B T~ln \frac{Q_i n_j}{Q_j n_i}
+
\label{Bennett}
+
\end{equation}
+
$$
+
</p>
+
<p>
+
$$
+
\begin{equation}
+
f(x) = \frac{1}{1 + e^{~\beta x}}
+
\label{Fermi}
+
\end{equation}
+
$$
+
</p>
+
<p>
+
The Term \(k_B T~ln \frac{Q_i n_j}{Q_j n_i}\) has to be approximated since it can not be computed analytically. Equation \ref{Bennett2} describes the relation used by Bennett et al. to estimate the term. Once it has been determined the free energy difference can be calculated by equation \ref{Bennett3}.
+
</p>
+
<p>
+
$$
+
\begin{equation}
+
\sum_j f\left(U_i - U_j + k_B T~ln \frac{Q_i n_j}{Q_j n_i}\right) = \sum_i f\left(U_j - U_i - k_B T~ln \frac{Q_i n_j}{Q_j n_i}\right)
+
\label{Bennett2}
+
\end{equation}
+
$$
+
</p>
+
<p>
+
$$
+
\begin{equation}
+
\Delta A_{ij} = - k_B T ~ ln \frac{n_j}{n_i} + k_B T~ln \frac{Q_i n_j}{Q_j n_i}
+
\label{Bennett3}
+
\end{equation}
+
$$
+
</p>Later on Shirts et al. derived the BAR method by applying maximum likelihood techniques.
+
<br/>Since common analysis methods in biochemistry often rely on titration only dissociation (\(K_{d}\)) respectively association constants (\(K_{a}\)) can be concluded from experiments. Therefore the dissociation constants were calculated by using equation \ref{gibbs}.
+
</p>
+
<p>
+
$$
+
\begin{equation}
+
K_{a/d} = e^{-\frac{\Delta G}{RT}}
+
\label{gibbs}
+
\end{equation}
+
$$
+
</p>
+
<div class="verlinked" id="Mod_m"><h2>METHODS</h2></div>
+
<h5 style="padding-top:0;">Visualisations</h5>
+
+
<h6>Colicin E2</h6>
+
<p>No obtainable 3D model of Colicin E2 was found in the Research Collaboration for Structural Bioinformatics (RCSB) Protein Data Bank (PDB) at the Brookhaven National Laboratory and the Protein Data Bank in Europe (PDBe) at the European Bioinformatics Institue (EMBL-EBI). Kristallographic structures of the DNase subunit of Colicin E2 and it's bacterial import subunit was available. Therefore we chose to use homology modelling to obtain a 3D structure of Colicin E2. For homology modelling the <a href="http://www.sbg.bio.ic.ac.uk/phyre2/html/page.cgi?id=index">Protein Homology/analogY Recognition Engine V 2.0</a> (PHYRE<sup style="font-size: 12pt; vertical-align:baseline; position: relative; top: -0.4em">2</sup>) [] server was used in combination with the amino acid sequence obtained from the Universal Protein Resource  (UniProt) Protein Knowledgebase (UniProtKB) entrance <a href="http://www.uniprot.org/uniprot/P04419">P04419</a> [].<br/>The obtained model was based on the known subunits of Colicin E2 and Colicin E3, a close realtive. A CHARMm topology was then produced via the pdb2gmx module of GROMACs 5.1.3, the model was solvated in TIP3P water and energy minimized using the steepest descend algorithm to !FEHLTNOCH! kJ/mol.</p>
+
 
+
<h5>Force Field Parametrization</h5>
+
<p>A 3D model of <i>o</i>-methyl tyrosine was created using Avogadro 1.1.1 and energy minimized using the steepest descend algorithm in vacuum. The so obtained model was subsequently parsed to the <a href="http://www.swissparam.ch/">SwissParam</a> [] topology server. The created topology was then used to derive parameters for the CHARMm residue force field so that for any protein with <i>o</i>-methyl tyrosine a topology could be created. Since <i>o</i>-methyl tyrosine is very similar to tyrosine most parameters could be adopted.<br/>CHARMm is an atom type based force field, meaning that every parameter is not dependend on the residue but on the assigned atom types taking part in the interactions. As a result we had to define several new atom types to account for the changed properties of the methyl ether since no other benzyl ether atoms could be found in the force field parameter files.<br/>
+
<center><img src="https://static.igem.org/mediawiki/2016/f/f4/T--TU_Darmstadt--forec_field_style.png" style="width: 80%;"></center><br/>
+
To implement the newly derived parameters we had to update several force field parameter files that we gathered from the GROMACS&nbsp;5.0.4 software suite. This was due to the case that all parameter files had to be compatible to the GROMACS software suite. First we had to implement the new amino acid in the <b>aminoacids.rtp</b> file which basically serves as a register for all known residues. The amino acid entry contains a three letter code by which it will be identified, all atoms with name, type and charge, all bonds between these atoms as well as impropers and CMAPs. Since the last two entries only concern the backbone atoms, we simply copied those entries. Atom charges were duplicated from tyrosine for all atoms that were not involved in the ether bond. The ether methyl group was represented by a standard methyl group with <i>CT3</i> carbon and <i>HA</i> hydrogen. This atom classes represent alanin's C&beta; and the C&delta; atom of methionin.<br/>A new atom class named <i>OE</i> was introduced to represent the ether oxygen since there are no ether oxygen parameters for amino acid residues in the CHARMm force field files. We used parameters from the generated topology file to derive parameters for all interactions from the <i>OE</i> atom type. To implement these parameters we updated the <i>bondtypes</i>, <i>angletypes</i>, and <i>dihedrals</i> in the <b>ffbonded.itp</b> file. Similar we updated the <b>ffnonbonded.itp</b> file sections <i>atomtypes</i>, and <i>pairtypes</i>. Subsequently we add an <i>OE</i> entry to the <b>atomtypes.atp</b> file.<br/>CHARMm simulates aromaticity through dummy atoms which will be calculated automatically. To achiev this for our new amino acid we updated the <b>aminoacids.vsd</b> file and inserted every bond length and angle. Finally we had to assign a three letter code to represent our amino acid in the topology and structure files. We chose <b>OMT</b>. This resulted in the empirical force field CHARMm&nbsp;27&nbsp;OMT.
+
</p>
+
 
+
<h5 id="MDS">Molecular Dynamics Simulations</h5>
+
<p>3D structures of Colicin E2 DNase subunit (SAse) and it's immunity protein were obtained from RCSB PDB entrance <a href="http://www.ebi.ac.uk/pdbe/entry/pdb/3U43">3U43</a> [] . Since the main binding occurs between the DNase subunit and the immunity protein only this Colicin E2 subunit was simulated. Furthermore we established a minimized Colicin E2 in <a href="">another project part</a> and wanted to test it's operational capability. <br/>To insert mutations inside the immunity protein we inserted the energy minimized structure of OMT at the desired position. Positions of backbone atoms were fitted to those of the replaced amino acid so that the backbone integrity was preserved. This was achieved through the implementation of Kabsch's algorithm for structural alignments in the <a href="http://thegrantlab.org/bio3d/index.php">Bio3D package</a> [] for the <a href="https://www.r-project.org/">statistical computing language R</a> []. Additionaly we used Bio3D's pdb processing package to seperate Colicin E2 DNase subunit and its immunity protein.<br/>
+
All molecular dynamics simualtions were performed with the <a href="http://www.gromacs.org/">GROningen MAchine for Chemical Simulations</a> (GROMACS) 5.0.3 [] software suite. As empirical force field CHARMm&nbsp;27&nbsp;OMT was used. An explicit water model with TIP3P water was chosen and a cubic box with edge length !FEHLTNOCH!&nbsp;nm was constructed. The box was subsequently filled with water and the system was neutralized through insertions of chloride ions. After neutralization the system was energy minimized with the steepest descent algorithm until it converted. The exact values can be found in <a href="">table 1</a>. To generate velocity and temperate the system a small equilibration run of about 500&nbsp;ps was performed. The end temperature was set to 298&nbsp;K and the Berendsen thermostat and the velocity-Verlet integrator with a stepsize of 2&nbsp;fs were used. After this equilibration run a NVT ensemble was achieved. To achieve a NPT ensemble the equilibration run was repeated with applied pressure coupling to 1&nbsp;bar. Subsequently the final MD production run was performed. Every 5000st step was saved resulting in a trajectory of 10001 conformations ranging over 100&nbsp;ns simualtion time.</p>
+
 
+
<h5>Molecular Dynamics Simulations Analysis</h5>
+
<p>Simulation Analysis was performed using the R [] package Bio3D []. All plots were created using the R package ggplot2 []. For visualization of protein structures and trajectories the PyMOL visualization system [] was used. To compensate for eventual jumps due to translations across the PBC barriers a GROMACS internal fitting program was applied (<i>gmx trjconv -center -pbc nojump</i>). To exclude translational and rotational movement of the simulated protein we applied the GROMACS internal fitting algorithms <i>gmx trjconv -fit rot+trans</i>. These trajectory manipulations were performed because several analysis methods like <a href="Theory.html#RMSD">RMSD</a> and <a href="Theory.html#RMSF">RMSF</a> rely on distance calculations between atom positions over time. In these analyses the translational and rotational movements are not of interest since we only want to visualize the movement of atoms in relation to the simulated protein to test for different configuarations and structural flexibility. Additionally the crossing of PBC barriers would increase the distance between two atom positions drastically since the atom would be relocated to the opposing site of the simualted system.</p>
+
 
+
<h5>Binding Energy Calculations</h5>
+
<p>For binding energy calculations we applied pulling simulations followed by umbrella sampling of ?30? different configuartions along the reaction coordinate, namely the x-axis. To perform the pulling simulation average structures of Colicin E2 and it's immunity protein in TIP3P water was simulated. To do this we constructed a box with the dimensions 16&nbsp;nm, 5.5&nbsp;nm, and 6.5&nbsp;nm. The Complex was centered at 3&nbsp;nm, 2.75&nbsp;nm, and 3.25&nbsp;nm. The system was filled with sodium and chloride atoms to a concentration of 0.1&nbsp;M and susequently energy minimized to a potential energy of !FEHLTNOCH!. The system was equilibrated according to the <a href="#MDS">former simulations</a>. Pulling was performed over 1&nbsp;ns with a pull rate of 0.01&nbsp;nm/ps resulting in 10&nbsp;nm overall pulling. A harmonic umbrella pulling potential with 250,000&nbsp;\(\frac{kJ}{mol~nm^2}\) was applied. The pulling simulation resulted in a center of mass difference of about !FEHLTNOCH!&nbsp;nm.<p style="color:red">(Eventuell noch unterschiedliche pulling Simulationen zeigen.)</p></p>
+
</p>
+
<div class="verlinked" id="Mod_r"><h2>RESULTS</h2></div>
+
<p>"- yes, their son, Harry -"Mr. Dursley was the director of a firm called Grunnings, which made drills. He was a big, beefy man with hardly any neck, although he did have a very large mustache. Mrs. Dursley was thin and blonde and had nearly twice the usual amount of neck, which came in very useful as she spent so much of her time craning over garden fences, spying on the neighbors. The Dursleys had a small son called Dudley and in their opinion there was no finer boy anywhere.<br/>
+
The Dursleys had everything they wanted, but they also had a secret, and their greatest fear was that somebody would discover it. They didn't think they could bear it if anyone found out about the Potters. Mrs. Potter was Mrs. Dursley's sister, but they hadn't met for several years; in fact, Mrs. Dursley pretended she didn't have a sister, because her sister and her good-for-nothing husband were as unDursleyish as it was possible to be. The Dursleys shuddered to think what the neighbors would say if the Potters arrived in the street. The Dursleys knew that the Potters had a small son, too, but they had never even seen him. This boy was another good reason for keeping the Potters away; they didn't want Dudley mixing with a child like that.<br/>
+
When Mr. and Mrs. Dursley woke up on the dull, gray Tuesday our story starts, there was nothing about the cloudy sky outside to suggest that strange and mysterious things would soon be happening all over the country. Mr. Dursley hummed as he picked out his most boring tie for work, and Mrs. Dursley gossiped away happily as she wrestled a screaming Dudley into his high chair.<br/>
+
None of them noticed a large, tawny owl flutter past the window.<br/>
+
<b>[....]</b></p>
+
    <p>
+
 
    </div>
 
    </div>
<div class="references"><h6>References</h6>
 
            <ul><li>[1]</li><li>[2]</li><li>[3]</li></ul></div>
 
 
    </div>
 
    </div>
 
<div class="rechts">
 
<div class="rechts">
<div class="scrollbox"><div class="highlights"><a href="#ThOv">Theoretical Overview</a><br/><a href="#Mod_m">Methods</a><br/><a href="#Mod_r">Results</a></div>
+
<div class="highlights">
    <div><a href="#mainHeader"><button class="back_top_full">Back to the Top</button></a></div>
+
<a href="#intro">Introduction</a><br/>
</div></div>
+
<a href="#goals">Goals</a><br/>
</html>{{Team:TU_Darmstadt/Footer}}<html>
+
<a href="#setup">Setup Overview</a><br/>
 +
<a href="#mech">Mechanics</a><br/>
 +
<a href="#optics">Optics</a><br/>
 +
<a href="#cool">Cooling</a><br/>
 +
<a href="#softw">Software</a><br/>
 +
<a href="#achie">Achievements</a><br/>
 +
<a href="#develop">Further Developments</a><br/>
 +
<a href="#build">Building Instructions</a>
 +
 +
 +
</div>
 +
    <div><a href="#mainHeader"><button class="back_top">back to the top</button></a></div>
 +
</div>
 +
<div class="footer" id="footer">
 +
</div>
 
</div>
 
</div>
 
</body>
 
</body>
 +
 +
</p>
 +
<!--
 +
NewPP limit report
 +
CPU time usage: 0.006 seconds
 +
Real time usage: 0.006 seconds
 +
Preprocessor visited node count: 9/1000000
 +
Preprocessor generated node count: 44/1000000
 +
Post‐expand include size: 41/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 2016_igem_org:pcache:idhash:3306-0!*!*!*!*!*!* and timestamp 20161003081319 and revision id 157806
 +
-->
 +
</div>             <div class="visualClear"></div>
 +
            </div>
 +
    </div>
 +
 +
        </div>
 +
 +
        <!-- Side Menubar -->
 +
        <div id="sideMenu">
 +
            <a href="https://2016.igem.org">
 +
                <div id="home_logo" >
 +
                <img src="https://static.igem.org/mediawiki/2016/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>
 
</html>

Revision as of 13:22, 14 October 2016

<!DOCTYPE html> Team:TU Darmstadt/Model - 2016.igem.org

Loading menubar.....

Team:TU Darmstadt/Model

iGEM TU Darmstadt 2016

ROBOTICS

ABSTRACT
One task of our project is to monitor and to keep alive manipulated E. Coli before they die, since they aren't able to survive on their own due to their dependence on non-natural amino acid. To catch the moment before the bacteria dies, a flourescent protein was implemented in such a way that it emits light as a warn signal.
Therefore, our team decided to build a fully automatized pipetting robot that's able to locate a set of samples, detect potential light emission and pipet a specific amount of nonnatural amino acid onto the fluorescent sample.
The foundation for the robot lays a 3D-printer due to the easy handling of movements in three dimensions. By controlling these movements with an optical system the autonomy of the robot should be be increased even more.

INTRODUCTION

Development of 3D printers & possibilities

In the 80s Chuck Hull invented the first standardized 3D printer, based on a procedure which is known as stereolithography (SLA, [1]). Moving from SLA to full deposit modeling (FDM) techniques, the 3D printing idea became alive in the Do‑It‑Yourself community. Ever since that time, basic 3D printers are accessible for little money and due to the open source idea of projects like REPRAP [2] affordable for many. In last years project, iGEM TU Darmstadt build already a fully working SLA printer, capable of feeding it with biological engineered plastics [3].
So now, the hardware branch decided to rebuild a clone of the Ultimaker 2 FDM printer [4] and exchange the extruder with a camera and a pipette to create a pipetting robot. Using several open‑source parts and software, it is the idea to establish an easy manageable robot to help the daily biologist's work.

Lab 3.0

Following the concept of the industry 3.0, the automation of simple tasks by robots (refers to the 4th stage of industrial revolution) let us introduce the laboratory 3.0, which enables scientists to concentrate on actual science by the automation of simple, repeating work. This task is fulfilled with intelligent robots, which are enabled to detect, react and response to the experimenter.

Connection to our team

iGEM TU DARMSTADT is a young and dynamic team of engaged researches. We have limited resources, namely time and money and we have to invent our lab work every day again, to reach more and stayfocus on science. We have the possibilities, thanks to iGEM, to experiment on our own ideas and to try reaching the sky (or actual the biologist's equivalent to something really cool). Interdisciplinary opens our mind and sharpens our knowledge for the important things. It is really helpful, if we work together and benefit from each other.

References:

  1. http://edition.cnn.com/2014/02/13/tech/innovation/the-night-i-invented-3d-printing-chuck-hall
  2. https://2015.igem.org/Team:TU_Darmstadt/Project/Tech
  3. http://reprap.org/wiki/About
  4. http://www.thingiverse.com/thing:811271, jasonatepaint

GOALS

The main task is to develop a machine which is capable to monitor our organisms and their health condition in order to keep them alive. Therefore the machine has to measure the light emittance of the organisms and be capable of dropping liquids into our containers. This has to be independent of the exact position of the container, which requires an automatic tracking system.
The idea is that one places a container somewhere under the machines working area and click a run button of a program. The machine starts its routine by tracking the new container and measuring the light emittance of the organisms. Based on the measurement the machine decides whether to feed the organisms with non‑natural amino acid or not. After a period of time it repeats this routine until the stop button of the program is clicked.
These are only the minimum requirements for our project needs. We decided to go one step further ans designed our machine in such a way, that it serves as a multi purpose platform which is adaptable and easy to modify. Our aim is that it is possible to add new features and software, inviting other scientists to improve our platform and share their ideas with the community.
For example our liquid system can be upgraded to be able to prepare 96-well plates with probes and monitor routines, by using the optic. Or our measuring head can be changed back to a printer head which allows to 3D print again with just a few changes.
One has a vast room of possibilities, just using the concept of the accurate positioning of a probe in the 3D space.
Due to the fact that we try to stick to widely used open-source software and standard commercial parts, our machine can be easily combined with the most DIY products, making it reusable, flexible and cheap.
In the special case of the TU Darmstadt and the next generations of iGEM competitors we have the idea to develop our technical equipment further from year to year and combining them. Our SLA printer from the last years competition was upgraded and is nearly ready for use again, giving us the possibility to manufacture parts for prototyping in our lab. Also this years project will serve as a starting point for the next years technical development team. New ideas and possibilities have been already discussed and we are looking forward to the next years competition.

SETUP OVERVIEW
FUNCTIONALITY
The functionality of the pipetting robot comprises the three‑dimensional agility of a 3D-printer, the possibility to pipet a specific amount of non natural amino acid (short: nnAA) using a syringe pump as well as intelligent visual object recognition so that it is able to distinguish between samples that require more nnAA from samples that still contain a sufficient amount. With that said it is capable to autonomously keep alive the modified E. coli bacteria, given that it is activated and connected to a reliable power supply.
To fulfill the task of keeping alive the bacteria it loops through a specially designed procedure. Initially the robot scans the internal space for samples by lighting the downside of the shelf space using infrared LEDs and monitoring the shadows of the placed reservoirs with a camera. If the contrast is sufficiently high, which is given due to isolation from light sources from outside, it is able to detect the edges of the mentioned reservoirs, fit a circle onto it and compute the distance between the reservoir and the camera itself. Furthermore it is possible to put an entire rack of reservoirs under observation due to its ability to recognize even rectangles.
Shortly after the detection of the samples the distance data is transferred to the 3D control and the head of the robot moves in direction of the first reservoir. To check whether the bacteria needs more nnAA the robot uses the fluorescence of the protein mVenus that has been inserted into the bacteria. Therefore the robot excites the protein via high power LEDs and detects the emitted photons. To exclude reflected light from the LEDs that would disturb the measurement a longpass filter cuts of the spectrum below the emission peak of the protein. In dependence of the fluorescence signal the robot decides whether it is necessary to pipet nnAA onto the sample. If that's the case the robot moves the samples in z-range just so that the syringe reaches the sample and is able to securely add the nnAA.
Eventually the robot recommences the procedure described above, except for the scanning of the individual positions of the samples, which are saved temporarily until all samples are checked. As long as the robot is activated, connected to a power supply and the syringe pump does not run out on nnAA the robot will loop through this whole process and keep the bacteria alive without a need of human interaction. Nevertheless it is possible to check what the robot is doing via a livestream of the camera visible on the graphical user interface, since there is no other opportunity to look inside the robot itself while it is working.
ACHIEVEMENTS

  • Successfully redesign a 3D printer chassis to meet our requirements
  • Construct a unique base platform with integrated IR LEDs for measuring and positioning purposes
  • Design a measuring probe with a camera device with an integrated optical filter system and LEDs
  • Construct a syringe pump system to add liquids down to µl accuracy
  • Implementing a unique GUI to run our program featuring a multi threading system optimizing the overall performance
  • Implementing an automatic object tracking system including a vector based feedback system for positioning
  • Connecting a Raspberry Pi with an Arduino Micro controller by establishing a serial connection between the two devices, allowing a variety of different tasks
  • Data of all CADs designed by the TU Darmstadt technical department
  • A complete build instruction including a BOM (Bill of Materials incl. prices) and a step by step video tutorial

Mechanics
Optics

Operating range of wavelengths
The robot optics consists of two big components, a camera head, and a lightbox. The camera head is responsible for two tasks, which are the detection and localization of cuvettes, and the fluorescence measurements. The light table illuminates the sample table uniformly from below, thereby aiding the camera to reliably do the detection work. The fluorescence measurement and object detection are separated in terms of their operating range of wavelengths. All the detection occurs at wavelengths above 860nm, which is near infrared. The light table radiates uniform infrared light, while the camera chip is capable of capturing this wavelength. There is nothing special to the camera chip. Actually all commercially available CCD-Chips can potentially capture near infrared, but this is usually an undesirable feature for photographic purposes, since it falsifies image colors, at least from a human point of view. This is why camera lenses are usually equipped with an infrared filter. In our case, we use our own lens system, where we removed the infrared filter. The reason why we chose the detection to operate at infrared is because we are mainly dealing with GFP, which does not absorb infrared. Otherwise, over a long time of illumination during periods of detection the fluorescent proteins would bleach out unnecessarily. Now, if we take a look at the camera head, there is also a slight spectral separation: The GFP’s are stimulated at wavelengths lower than the emission wavelengths. The stimulation occurs at a central wavelength of 465 nm, while the emission takes place at a central wavelength of 525 nm. The reason for this separation is, that we use continuous rather than pulsed stimulation.

Fluorescence measurement and filtering
For pulse measurements there is a need for advanced high frequency circuitry, which is capable of forcing the LEDs to emit pulse lengths of picoseconds. LEDs have rise and fall times in the nanosecond region, if they are used in a simple on/off manner. For continuous measurements there are just two interconnected selections to be made: The wavelength of stimulation, and a corresponding optical filter. In our case it is a long pass filter with a cutoff wavelength of 515nm. It is capable of blocking most of the stimulation light, while letting GFP emission pass. The camera captures a long-exposed image to be further analyzed. To get rid of the residual stimulation light appearing in that image, the image is digitally color-filtered, and segmented into regions of interest (ROI). The determination of ROIs occurs simultaneously with the detection of cuvettes. The filtering is very strong, and does indeed block some of the already weak GFP fluorescence. This is why we use an exposure time of 10 seconds for a fluorescence capture, to make sure enough data is collected.

Optical Hardware - Camera Head
We are using the 8 megapixels PiCamera, because we have access to its capturing settings like framerate, exposure time, gains, light sensitivity etc. over existing Programming interface [1], which is absolutely necessary since detection and measurement have totally different requirements. Another benefit is, that we are able to capture directly in grayscale (Y part of YUV) for fast detection purposes, and switch to RGB when doing fluorescence measurements. We don't have these degrees of freedom with an usual USB camera. The bad thing is, the stock camera itself is equipped with a very minimal lens system. Since detection and measurement not only occur at different wavelengths, but also at different distances to the vessels (fluorescence images are taken from each single cuvette, while the camera head is directly placed over its opening), there is a need for adjusting the focus. We have therefore developed a focusing system consisting of a so called voice coil, which inhabits a 3D printed adapter socket for the PiCamera. The adapter socket also harbors the optical longpass filter. The voice coil holds a suspended lens, which can be adjusted in its distance to the camera chip. This method is used in most smartphones. In our case, we salvaged our voice coil out of an old webcam. The voice coil is fed with a PWM signal provided directly by the Raspberry Pi's hardware PWM channel. We use a simple L297 H-Bridge Stepperdriver to amplify the PWM signal, and to decouple the Raspberry Pi's precious hardware PWM pin. Different duty cycles mean different focal positions. The coil current is tuned with a potentiometer. In this way we are able to automatically focus the lens by evaluating simple Sobel-filter-based sharpness measurements. Our autofocus is finding best sharpness within 2 seconds, using a robust global search algorithm. It is applied every time a new set of racks and cuvettes is placed into the robot, i.e. prior to each new session. Also, to adjust the focus for individual fluorescence captures, the sharpness of the individual cuvette corners is considered. The camera head also harbors the stimulating LEDs, which are 4 high Power Cree XTE, driven by a 0.9 amp current source and a PWM signal delivered by the Raspberry Pi.
The lightbox is an essential part of the detection. All applied detection algorithms rely on thresholding the image, or filtered versions of it. The thresholding is basically doing a binary selection of relevant vs. irrelevant image information. But with thresholding there is always a loss of relevant image information. If there is less clutter in the image, then there is no need to use strong thresholds, therefore conserving more of the relevant image information. The lightbox is acting as a clean background, creating only low amount of static noise and clutter due to its uniform radiation of light, allowing to use less strict thresholds. It also emphasizes the vessel corners. This enhances detection reliability beyond comparison. The heart of the lightbox is a Plexiglas panel called “Endlighten”. Light is laterally injected, and reflected off systematic impurities inside the panel [2]. The light then leaves the panel uniformly in all directions. Light leaving the panel back side is mirrored to the front side by a white reflective Plexiglas, and additionally diffused by a diffusor plate, also made of Plexiglas. All Plexiglas panels are products of Evonik, the original. The light is injected by flat-end infrared LEDs which are mounted on 3d printed rails and tightly clamped to the sides of the Endlighten panel. The LEDs are driven by constant current sources to give them a hopefully long lifetime.

References
[1]: https://picamera.readthedocs.io/en/release-1.12/
[2]: https://www.plexiglas-shop.com/pdfs/en/212-15-PLEXIGLAS-LED-edge-lighting-en.pdf

Cooling
All electronic components produce a significant amount of heat, especially the motor parts, power supply, and the Raspberry Pi. Since the robot chassis is meant to be completely enclosed to keep light out, heat is going to pile up in the upper part of the interior sooner or later. To protect the probes from temperatures above room temperature, it is necessary to include a cooling system, which ensures proper air circulation, and does not let in ambient light. To fulfill these two requirements we decided to adapt a double-walled cooling system. The simplest implementation of it is based on the fact that warm air rises naturally, and incorporates the power supply as the air intake. The power supply is placed on the bottom of the robot, and sucks in fresh air. The air, which is getting warmed up by the interior rises to the top and is being sucked out by a radial fan through an extractor hood, made of a laser cutted MDF grid. The warm air in between the MDF grid and the outer wall is directed through a 3D printed exhaust tunnel. Thus, ambient light is being held out.
Software
Marlin
OpenCV
PyQt

Qt is a software tool to develop a GUI (Graphical User Interface). It is available under a commercial license and a open-source license. The software is a cross-platform application framework, which means it runs on the most computer systems like Unix or Windows. The underlying programming language is C++ and Qt can use already existing programming languages like Javascript, making it a powerful tool.
The main idea of Qt is to use a system of signals and slots to have an easy framework to connect displayed elements with underlying functions. Also the re usability of already existing code is enhanced. Every graphical element, for example a button, emits its own signal when its pressed or used. The signal then can be used to trigger an action, for example closing a window. If the signal is not connected to a function nothing will happen, however the signal will be emitted with no consequences. Now it is possible to connect the emitted signal with a desired action, called slot, and the program gets its unique behavior.
Qt is widely used by companies like the European Space Agency, Samsung, DreamWorks, Volvo and many more. To be able to combine the possibilities of Qt with the simplicity of the Python programming language, PyQt was developed. PyQt is a binding for Python to be able to use the Qt methods within the Python syntax.
To be able to get a direct preview of the constructed GUI, Qt Designer is a helpful tool. It is basically a constructing tool in which it is possible to use the objects as visible ones, making it possible to move them around and arranging them in the desired manner. To later work with the code itself, PyQt uses a method called pyuic(number) which is executed through the terminal. The number in the brackets stands for the version number.
After converting the code one can open the GUI as a regular python script and work with it as usual.

References:
https://riverbankcomputing.com/software/pyqt/intro
https://www.qt.io/
https://en.wikipedia.org/wiki/Qt_(software)

FURTHER DEVELOPMENTS

Due to a tight time schedule from start to the end of iGEM it wasn't possible for us to to realize all ideas and planned developments in respect of improvement of the robot itself and further applications other than its current very specialized task. First of all it should be mentioned that the current model of the robot is designed to work with only one kind of bacteria culture in virtue of the not solved problem of sterility. For a working process with more kinds of bacteria cultures it is absolutely indispensable to develop a system that is able to avoid all sorts of contamination between the different bacteria. Therefore it would be an option to have an extra reservoir filled with ethanol in which the tip of the syringe can be sterilized between the checks of different samples. Another modification that would be useful for working with individual bacteria cultures is make the power LED's changeable. This is necessary if the the wavelength of the LED's does not overlap with absorption spectrum of the fluorescent proteins or overlaps with a part of the spectrum that has a very low absorption efficiency.
Moreover, apart from the latter developments it may be useful to add one more syringe pump to the current setup, just so that it would be possible to remove liquid from the samples. Of course, this only makes sense, if the above mentioned idea of a sterility progress is implemented, due to the fact that the tip of the removing syringe has to be inserted into the liquid. And thus a contamination, in case of different bacteria cultures, would occur.
Besides, a usage of the robot except for its “normal” tasks of observing bacteria would be a neat extension. For example a useful modification of the robot to a functional 3D-printer would be convenient, due to its setup that resembles an Ultimaker 3D-printer. Essential alterations would be to replace the sample stage with a heatbed and to replace the current head with a printhead hotend. Since the current head can be clipped it wouldn't be too much of a challenge. Furthermore, a change of the syringe extruder is necessary, if the printer should work with plastics. An alternative approach is a kind of paste 3D-printer. In this case it wouldn't even be needed to change the head and the syringe, because of the already viscous properties of the paste.

BUILDING INSTRUCTIONS
Construction Video
Bill Of Materials

×

Loading ...