Difference between revisions of "Team:Edinburgh UG/Lexicon Encoding"

 
(20 intermediate revisions by 2 users not shown)
Line 11: Line 11:
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
 
     </head>
 
     </head>
 +
 +
<style type="text/css">
 +
 +
    #contentSub, #footer-box, #catlinks, #search-controls, #p-logo, .printfooter, .firstHeading,.visualClear
 +
 +
    {
 +
 +
    display:  none;
 +
 +
    }
 +
 +
    #top_menu_under
 +
    {
 +
    height: 0;
 +
    }
 +
 +
    #top-section {
 +
    height: 0px;
 +
    border-top: 0;
 +
    border-left: none;
 +
    border-right: none;
 +
    }
 +
      #globalWrapper
 +
        {
 +
        width: 100%;
 +
        height: 100%;
 +
        border: 0px;
 +
        background-color: #ffffff;
 +
        margin: 0px;
 +
        padding: 0px;
 +
        font-size: 100%
 +
        }
 +
 +
        #content
 +
        {
 +
          width: 100%;
 +
          height: 100%;
 +
          margin-left: auto;
 +
          margin-right: auto;
 +
          background-color: #ffffff;
 +
          padding: 0px;
 +
          font-size: 100%;
 +
        }
 +
 +
 +
    }
 +
 +
    section {
 +
        padding: 75px 0;
 +
    }
 +
 +
    .section-heading {
 +
        margin: 30px 0;
 +
        font-size: 4em;
 +
    }
 +
 +
    .section-lead {
 +
        margin: 30px 0;
 +
    }
 +
 +
    .section-paragraph {
 +
        margin: 30px 0;
 +
    }
 +
 +
    .headline {
 +
        padding: 120px 0;
 +
    }
 +
 +
    @media(max-width:768px) {
 +
        .container {
 +
            margin: 0 15px;
 +
        }
 +
      }
 +
 +
</style>
  
 
<div id="custom-bootstrap-menu" class="navbar navbar-default navbar-fixed-top" role="navigation">
 
<div id="custom-bootstrap-menu" class="navbar navbar-default navbar-fixed-top" role="navigation">
     <div class="container-fluid">
+
     <div class= "container-fluid">
        <div class="navbar-header">
+
      <!-- Navigation -->
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-menubuilder"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span>
+
      <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
            </button>
+
          <div class="container">
        </div>
+
              <!-- Brand and toggle get grouped for better mobile display -->
        <div class="collapse navbar-collapse navbar-menubuilder">
+
              <div class="navbar-header">
            <ul class="nav navbar-nav navbar-right">
+
                  <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
              <li class="active">
+
                      <span class="sr-only">Toggle navigation</span>
                  <a href="https://2016.igem.org/Team:Edinburgh_UG">Home</a></li>
+
                      <span class="icon-bar"></span>
                  <li class="dropdown">
+
                      <span class="icon-bar"></span>
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Team<span class="caret"></span></a>
+
                      <span class="icon-bar"></span>
                    <ul class="dropdown-menu" role="menu">
+
                  </button>
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Team">Team</a></li>
+
                  <a class="navbar-brand" href="https://2016.igem.org/Team:Edinburgh_UG">
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Collaborations">Collaboration</a></li>
+
                      <img src="https://static.igem.org/mediawiki/2016/9/92/Edinburgh_logo2_MINI.png" alt="">
                    </ul>
+
                  </a>
                  </li>
+
              </div>
                  <li class="dropdown">
+
 
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Project<span class="caret"></span></a>
+
              <!-- Collect the nav links, forms, and other content for toggling -->
                    <ul class="dropdown-menu" role="menu">
+
              <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Description">Project</a></li>
+
                  <ul class="nav navbar-nav">
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Description">Description</a></li>
+
                      <li>
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Design">Design</a></li>
+
                          <a href="https://2016.igem.org/Team:Edinburgh_UG">Home</a>
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Experiments">Experiments</a></li>
+
                      </li>
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Proof">Proof of Concept</a></li>
+
                      <li class="dropdown">
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Demonstrate">Demonstrate</a></li>
+
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Team<span class="caret"></span></a>
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Results">Results</a></li>
+
                        <ul class="dropdown-menu" role="menu">
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Notebook">Notebook</a></li>
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Team">Team</a></li>
                    </ul>
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Attribution">Attribution</a></li>
                  </li>
+
                        </ul>
                  <li class="dropdown">
+
                      </li>
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Parts<span class="caret"></span></a>
+
                      <li class="dropdown">
                    <ul class="dropdown-menu" role="menu">
+
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Human Practices<span class="caret"></span></a>
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Parts">Team Parts</a></li>
+
                        <ul class="dropdown-menu" role="menu">
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Basic_Part">Basic Parts</a></li>
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Overview">Overview</a> </li>
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Composite_Part">Composite Parts</a></li>
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/HP/Silver">Silver</a> </li>
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Part_Collection">Part Collection</a> </li>
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/HP/Gold">Gold</a> </li>
                    </ul>
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Medal_Criteria">Medal Criteria</a> </li>
                  </li>
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Integrated_Practices">Integrated Practices</a> </li>
                  <li class="dropdown">
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Engagement">Engagement</a> </li>
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Dry Lab<span class="caret"></span></a>
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Ethics">Ethics</a> </li>
                    <ul class="dropdown-menu" role="menu">
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Mary_Queen_of _Scots">Mary Queen of Scots</a> </li>
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Lexicon_Encoding">Lexicon Encoding</a></li>
+
                        </ul>
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Error_Correction">Error Correction</a></li>
+
                      </li>
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Encryption">Encryption</a></li>
+
                      <li class="dropdown">
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Files">Files</a></li>
+
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Project<span class="caret"></span></a>
                    </ul>
+
                        <ul class="dropdown-menu" role="menu">
                  </li>
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Description">Description</a></li>
                  <li class="dropdown">
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Design">Design</a></li>
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Safety<span class="caret"></span></a>
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Proof">Proof of Concept</a></li>
                    <ul class="dropdown-menu" role="menu">
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Demonstrate">Demonstrate</a></li>
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Safety">Safety</a></li>
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Notebook">Notebook</a></li>
                    </ul>
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Protocols">Protocols</a></li>
                  </li>
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Limitations">Advantages and Limitations</a></li>
                  <li class="dropdown">
+
                        </ul>
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Human Practices<span class="caret"></span></a>
+
                      </li>
                    <ul class="dropdown-menu" role="menu">
+
                      <li class="dropdown">
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Human_Practices">Human Practices</a></li>
+
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Informatics<span class="caret"></span></a>
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Silver">Silver</a> </li>
+
                        <ul class="dropdown-menu" role="menu">
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Gold">Gold</a> </li>
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Lexicon_Encoding">Lexicon Encoding</a></li>
                       <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Integrated_Practices">Integrated Practices</a> </li>
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Error_Correction">Error Correction</a></li>
                       <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Engagement">Engagement</a> </li>
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Encryption">Encryption</a></li>
                    </ul>
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Files">Files</a></li>
                  </li>
+
                        </ul>
                  <li class="dropdown">
+
                      </li>
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Awards<span class="caret"></span></a>
+
                      <li class="dropdown">
                    <ul class="dropdown-menu" role="menu">
+
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Parts<span class="caret"></span></a>
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Entrepreneurship">Entrepreneurship</a></li>
+
                        <ul class="dropdown-menu" role="menu">
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Hardware">Hardware</a> </li>
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Basic_Part">Basic Parts</a></li>
                       <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Software">Software</a> </li>
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Composite_Part">Composite Parts</a></li>
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Measurement">Measurement</a> </li>
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Part_Collection">Part Collection</a> </li>
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Model">Model</a> </li>
+
                        </ul>
                    </ul>
+
                       </li>
                  </li>
+
                       <li>
                  <li class="dropdown">
+
                          <a href="https://2016.igem.org/Team:Edinburgh_UG/Collaboration">Collaboration</a>
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Interlab<span class="caret"></span></a>
+
                      </li>
                    <ul class="dropdown-menu" role="menu">
+
                      <li class="dropdown">
                      <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Plate_Reader">Plate Reader</a></li>
+
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Awards<span class="caret"></span></a>
                    </ul>
+
                        <ul class="dropdown-menu" role="menu">
                  </li>
+
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Software">Software</a> </li>
            </ul>
+
                        </ul>
        </div>
+
                      </li>
 +
                       <li class="dropdown">
 +
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Safety<span class="caret"></span></a>
 +
                        <ul class="dropdown-menu" role="menu">
 +
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Safety/Biological Safety">Biological Safety</a></li>
 +
                        </ul>
 +
                      </li>
 +
                      <li class="dropdown">
 +
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Interlab<span class="caret"></span></a>
 +
                        <ul class="dropdown-menu" role="menu">
 +
                          <li><a href="https://2016.igem.org/Team:Edinburgh_UG/Plate_Reader">Plate Reader</a></li>
 +
                        </ul>
 +
                      </li>
 +
                  </ul>
 +
              </div>
 +
              <!-- /.navbar-collapse -->
 +
          </div>
 +
          <!-- /.container -->
 +
      </nav>
 
     </div>
 
     </div>
 
</div>
 
</div>
 +
    <!-- End of menu  -->
  
  <header>
+
 
      <div class="row full-size">
+
<div class="row">
        <div class="col-sm-2"></div>
+
      <div class="col-sm-12">
        <div class="col-sm-8">
+
          <img src="https://static.igem.org/mediawiki/2016/9/9f/EdiGEM16UGLexEncodingHeader.png" class="img-responsive center-block">
            <img class="img-responsive img-center" src="https://static.igem.org/mediawiki/2016/6/6a/EdiGEM16UGLexEnc.jpeg" alt="">
+
        </div>
+
        <div class="col-sm-2"></div>
+
 
       </div>
 
       </div>
   </header>
+
   </div>
 +
  <br>
 +
  <br>
  
 
   <div class="container-fluid">
 
   <div class="container-fluid">
 
     <div class="row full-size">
 
     <div class="row full-size">
       <div class="col-sm-2"></div>
+
       <div class="col-sm-3"></div>
       <div class="col-sm-8">
+
       <div class="col-sm-6">
 +
        <p></p>
 
         <centre style="font-size:160%;">To create BabblED we needed the capacity to rapidly design and process the information contained in a large lexicon of BabbleBricks. This would have been practically impossible to accomplish by hand and hence required the creation of a software tool with the functionality to encode and decode BabbleBlocks and BabbleBlocks.</centre>
 
         <centre style="font-size:160%;">To create BabblED we needed the capacity to rapidly design and process the information contained in a large lexicon of BabbleBricks. This would have been practically impossible to accomplish by hand and hence required the creation of a software tool with the functionality to encode and decode BabbleBlocks and BabbleBlocks.</centre>
 
<centre style="font-size:160%;">You can read more about all these mechanisms below or jump straight into the code at our <a href="https://github.com/Edinburgh-iGEM2016/Lexicon-Encoding-and-Decoding" target="_self">Github</a></centre>
 
<centre style="font-size:160%;">You can read more about all these mechanisms below or jump straight into the code at our <a href="https://github.com/Edinburgh-iGEM2016/Lexicon-Encoding-and-Decoding" target="_self">Github</a></centre>
 +
      <p></p>
 
       </div>
 
       </div>
       <div class="col-sm-2"></div>
+
       <div class="col-sm-3"></div>
 
     </div>
 
     </div>
 
   </div>
 
   </div>
   
+
 
 +
<br>
 +
<br>
 
   <div class="container-fluid">
 
   <div class="container-fluid">
     <div class="col-cm-2"></div>
+
     <div class="col-cm-3"></div>
     <div class="col-cm-8">
+
     <div class="col-cm-6">
 
     <div id="accordian" class="panel-group">
 
     <div id="accordian" class="panel-group">
 
         <div class="panel panel-default">
 
         <div class="panel panel-default">
Line 130: Line 227:
 
           <div id="collapseOne" class="panel-collapse collapse">
 
           <div id="collapseOne" class="panel-collapse collapse">
 
               <div class="panel-body">
 
               <div class="panel-body">
                 <p>A checksum is a commonly used technique in network engineering that we’ve adapted for use in DNA storage. In this format the checksum allows the detection of errors in a BabbleBlock (DNA sentence). The checksum holds the sum of the word coding regions of BabbleBricks (DNA words) in a BabbleBlock in a 4 BabbleBrick region that can be found towards the end of a BabbleBlock.</p>
+
                 <p>To encode the BabbleBricks that make up a lexicon we begin by taking a list of information units, for example words. We then enumerate this list first in decimal and then in base 4. This conversion enables us to encode numbers using digits 0-3 instead of the normal 0-9 in decimal. We convert these base 4 numbers into their DNA equivalent using the schema; A is 0, T is 1, G is 2, C is 3 and pad them all up to 5 base pairs. Now we have these variable sequences we must ensure that no illegal
                 <img src="https://static.igem.org/mediawiki/2016/d/d1/EdiGEM16ug_checksum.jpeg" class="img-responsive center-block">
+
restriction sites can occur so we add gap sequences. Finally we append a stop codon region, restriction site preventing gapped error correcting region and hangs in each BabbleBrick form. For example:</p>
        <p>When a BabbleBlock is being translated the checksum is looked at first to see if it matches the sums of the word coding regions in the DNA we get back from sequencing. If this is the case, no errors have appeared and the translation program can proceed as normal however if there is no match an error has occurred somewhere in the BabbleBlock and other error correcting mechanisms will have to be used to make sure the stored information can still be read back.</p>
+
                 <img src="https://static.igem.org/mediawiki/2016/c/c9/EdiGEM16UGlex_encoding.png" class="img-responsive center-block">
 
         </div>
 
         </div>
 
           </div>
 
           </div>
Line 144: Line 241:
 
           <div id="collapseTwo" class="panel-collapse collapse">
 
           <div id="collapseTwo" class="panel-collapse collapse">
 
               <div class="panel-body">
 
               <div class="panel-body">
                 <p>The Optimal Rectangular Code (ORC) is a type of error correcting code that is present in all of our BabbleBricks. When the checksum detects an error the next action is to checks the ORCs in each word and use them to correct any errors that have taken place as follows:</p>
+
                 <p>When we assemble our BabbleBricks together to create BabbleBlocks its vital we know what the sequence will be for both verification purposes, so that we can instruct the user exactly which BabbleBricks to use and so we can work out our checksum and address values. We start by appending our word coding BabbleBricks together:</p>
                 <img src="https://static.igem.org/mediawiki/2016/2/2a/EdiGEM16ug_orc.jpeg" class="img-responsive center-block">
+
<p></p>
        <p>Unfortunately, the ORC can only locate and fix single base pair errors however the properties of the ORC facilitate another added level of error correction.</p>
+
                 <centre>5' GGAGACCAAAATAGCTAATCACTTATGAAAGGAATTAAGGAATTAA + GGAGACCAAATTAGCTAATCACTTATGAAAGGATTTAAGGATTTAA</centre>
 +
<p></p>
 +
      <centre>5' GGAGACCAAAATAGCTAATCACTTATGAAAGGAATTAAGGAATTAAGGAGACCAAATTAGCTAATCACTTATGAAAGGATTTAAGGATTTAA</centre>
 +
<p></p>
 +
        <p>We then look at the word coding regions spaced at regular intervals and use them to calculate a checksum as described in the error correction section <a href="https://2016.igem.org/Team:Edinburgh_UG/Error_Correction" target="_self">here</a>. Finally, we append an address BabbleBlock which acts like a line number telling the decoding program where this BabbleBlock lies in the overall archive.</p>
 
         </div>
 
         </div>
 
           </div>
 
           </div>
Line 158: Line 259:
 
           <div id="collapseThree" class="panel-collapse collapse">
 
           <div id="collapseThree" class="panel-collapse collapse">
 
               <div class="panel-body">
 
               <div class="panel-body">
                 <p>If the Optimal Rectangular Code (ORC) detects more than the single base pair error it can fix using its normal actions the SuperFixer function is called. The SuperFixer uses the ORC and works out all the possible words in the lexicon that fit this pattern. For any given ORC this is a maximum of 4 words and indeed there are many words that have unique ORC’s. Once the SuperFixer has narrowed down the possible words the list of possibilities is compared to what appears in the actual DNA and the sequence with the lowest Levenshtein distance is used in the translation. Levenshtein distance is a metric which shows the number of deletions, insertions or substitutions it will take to turn one string (or sequence) into another.</p>
+
                 <p>In order to decode a BabbleBlock we first look at our checksum and use it to verify whether or not error correction needs to be done - if some mistakes are flagged we use our error correcting apparatus and return their results (what our sequence was before the change) back to the decoding program. The error correcting program will look at each word coding region, convert it back to its numerical values and use it as an index to look up the information value of that BabbleBrick in the lexicon. Having decoded all the BabbleBlocks in a batch these will then be sorted in order using the address found at the end of each sequence before the decoded information is returned to the user.</p>
                <img src="https://static.igem.org/mediawiki/2016/3/38/EdiGEM16ug_ld.jpeg" class="img-responsive center-block">
+
        <p>By taking the minimum Levenshtein distance we always work under the assumption that the smallest number of errors is most probable. This assumption gives the best performance across errors of different magnitudes due to the robustness of DNA as a molecule making small errors considerably more likely than larger ones.</p>
+
 
               </div>
 
               </div>
 
           </div>
 
           </div>
 
         </div>
 
         </div>
 
         </div>
 
         </div>
     <div class="col-cm-2"></div>
+
     <div class="col-cm-3"></div>
 
     </div>
 
     </div>
 
   </div>
 
   </div>
 +
 +
  <br>
 +
  <br>
  
 
   <div class="row">
 
   <div class="row">
Line 173: Line 275:
 
               <div class="col-lg-12">
 
               <div class="col-lg-12">
 
                   <hr>
 
                   <hr>
                   <h2 class="intro-text text-center">Contact
+
                   <h2 class="intro-text text-center">Follow
 
                       <strong>Us</strong>
 
                       <strong>Us</strong>
 
                   </h2>
 
                   </h2>
 
                   <hr>
 
                   <hr>
 
                   <div class="intro-text text-center">
 
                   <div class="intro-text text-center">
                      <p><a href="mailto:edinburgh.igem2016@gmail.com">edinburgh.igem2016@gmail.com</a>
 
                      </p>
 
 
                       <ul class="list-inline banner-social-buttons">
 
                       <ul class="list-inline banner-social-buttons">
 
                           <li>
 
                           <li>
                               <a href="https://twitter.com/EdiGEM2016"><img src="https://static.igem.org/mediawiki/2016/0/04/Twitterlogo_ed2016.png"></img></a>
+
                               <a href="https://twitter.com/EdiGEM2016"><img src="https://static.igem.org/mediawiki/2016/9/94/Edinburgh2_t2.jpg"></img></a>
 
                           </li>
 
                           </li>
 
                           <li>
 
                           <li>
                               <a href="https://www.facebook.com/EdiGEM2016"><img src="https://static.igem.org/mediawiki/2016/c/c2/Facebook_ed2016.png"></img></a>
+
                               <a href="https://www.facebook.com/EdiGEM2016"><img src="https://static.igem.org/mediawiki/2016/c/ce/Edinburgh2_f2.png"></img></a>
 
                           </li>
 
                           </li>
 
                           <li>
 
                           <li>
                               <a href="https://www.instagram.com/edigem2016/"><img src="https://static.igem.org/mediawiki/2016/5/5d/Instagram_ed2016.png"></img></a>
+
                               <a href="https://www.instagram.com/edigem2016/"><img src="https://static.igem.org/mediawiki/2016/6/64/Edinburgh2_insta2.png"></img></a>
 
                           </li>
 
                           </li>
 
                       </ul>
 
                       </ul>
Line 195: Line 295:
 
           </div>
 
           </div>
 
       </div>
 
       </div>
 +
<br>
 +
<br>
 +
 +
  
 
</body>
 
</body>
 
</html>
 
</html>

Latest revision as of 00:27, 20 October 2016



To create BabblED we needed the capacity to rapidly design and process the information contained in a large lexicon of BabbleBricks. This would have been practically impossible to accomplish by hand and hence required the creation of a software tool with the functionality to encode and decode BabbleBlocks and BabbleBlocks. You can read more about all these mechanisms below or jump straight into the code at our Github



To encode the BabbleBricks that make up a lexicon we begin by taking a list of information units, for example words. We then enumerate this list first in decimal and then in base 4. This conversion enables us to encode numbers using digits 0-3 instead of the normal 0-9 in decimal. We convert these base 4 numbers into their DNA equivalent using the schema; A is 0, T is 1, G is 2, C is 3 and pad them all up to 5 base pairs. Now we have these variable sequences we must ensure that no illegal restriction sites can occur so we add gap sequences. Finally we append a stop codon region, restriction site preventing gapped error correcting region and hangs in each BabbleBrick form. For example:

When we assemble our BabbleBricks together to create BabbleBlocks its vital we know what the sequence will be for both verification purposes, so that we can instruct the user exactly which BabbleBricks to use and so we can work out our checksum and address values. We start by appending our word coding BabbleBricks together:

5' GGAGACCAAAATAGCTAATCACTTATGAAAGGAATTAAGGAATTAA + GGAGACCAAATTAGCTAATCACTTATGAAAGGATTTAAGGATTTAA

5' GGAGACCAAAATAGCTAATCACTTATGAAAGGAATTAAGGAATTAAGGAGACCAAATTAGCTAATCACTTATGAAAGGATTTAAGGATTTAA

We then look at the word coding regions spaced at regular intervals and use them to calculate a checksum as described in the error correction section here. Finally, we append an address BabbleBlock which acts like a line number telling the decoding program where this BabbleBlock lies in the overall archive.

In order to decode a BabbleBlock we first look at our checksum and use it to verify whether or not error correction needs to be done - if some mistakes are flagged we use our error correcting apparatus and return their results (what our sequence was before the change) back to the decoding program. The error correcting program will look at each word coding region, convert it back to its numerical values and use it as an index to look up the information value of that BabbleBrick in the lexicon. Having decoded all the BabbleBlocks in a batch these will then be sorted in order using the address found at the end of each sequence before the decoded information is returned to the user.




Follow Us