Difference between revisions of "Team:DTU-Denmark/Software"

Line 49: Line 49:
 
         <div class="collapse navbar-collapse" id="nav-collapse">
 
         <div class="collapse navbar-collapse" id="nav-collapse">
 
           <ul class="nav nav-justified">
 
           <ul class="nav nav-justified">
           
+
<li class="">
            <li >
+
<a href="/Team:DTU-Denmark"
              <a class="active" href="/Team:DTU-Denmark">Home</a>
+
  >Home
            </li>
+
                                          </a></li>
           
+
<li class="">
            <li >
+
<a href="/Team:DTU-Denmark/attributions"
              <a class="active" href="/Team:DTU-Denmark/Team">Team</a>
+
  >Team and Attributions
            </li>
+
                                          </a></li>
           
+
<li class="">
            <li >
+
<a href="/Team:DTU-Denmark/Project"
              <a class="active" href="/Team:DTU-Denmark/Project">Project</a>
+
  class="dropdown-toggle"
            </li>
+
  data-toggle="dropdown"
           
+
  role="button"
            <li >
+
  aria-expanded="false">Project
              <a class="active" href="/Team:DTU-Denmark/Practices">Human Practices</a>
+
                                          <span class="caret"></span></a><ul class="dropdown-menu" role="menu">
            </li>
+
<li class="">
           
+
<a href="/Team:DTU-Denmark/Project/Tyrocidine"
            <li >
+
  >Tyrocidine
              <a class="active" href="/Team:DTU-Denmark/Part_Collection">Parts</a>
+
                                          </a></li>
            </li>
+
<li class="">
           
+
<a href="/Team:DTU-Denmark/Project/Chip"
            <li >
+
  >Lab-on-a-disc
              <a class="active" href="/Team:DTU-Denmark/Journal">Journal</a>
+
                                          </a></li>
            </li>
+
<li class="">
           
+
<a href="/Team:DTU-Denmark/Project/Surfactin"
            <li class="active" >
+
  >Surfactin
              <a class="active" href="/Team:DTU-Denmark/Software">Software</a>
+
                                          </a></li>
            </li>
+
<li class="">
           
+
<a href="/Team:DTU-Denmark/Project/Intein"
            <li >
+
  >Intein
              <a class="active" href="/Team:DTU-Denmark/Achivements">Achievements</a>
+
                                          </a></li>
            </li>
+
<li class="">
           
+
<a href="/Team:DTU-Denmark/Project/MAGE"
 +
  >MAGE Subtilis
 +
                                          </a></li>
 +
<li class="">
 +
<a href="/Team:DTU-Denmark/Procject/Background"
 +
  >Background
 +
                                          </a></li>
 +
<li class="">
 +
<a href="/Team:DTU-Denmark/Project/Detection"
 +
  >Detection of NRP
 +
                                          </a></li>
 +
<li class="">
 +
<a href="/Team:DTU-Denmark/Project/Overview"
 +
  >Overview
 +
                                          </a></li></ul></li>
 +
<li class="">
 +
<a href="/Team:DTU-Denmark/Practices"
 +
  >Human Practices
 +
                                          </a></li>
 +
<li class="">
 +
<a href="/Team:DTU-Denmark/Part_Collection"
 +
  >Parts
 +
                                          </a></li>
 +
<li class="">
 +
<a href="/Team:DTU-Denmark/Journal"
 +
  >Journal
 +
                                          </a></li>
 +
<li class=" active">
 +
<a href="/Team:DTU-Denmark/Software"
 +
  >Software
 +
                                          </a></li>
 +
<li class="">
 +
<a href="/Team:DTU-Denmark/Achievements"
 +
  >Achievements
 +
                                          </a></li>
 
             <li class="hidden-xs">
 
             <li class="hidden-xs">
 
               <a href="http://facebook.com/dtubiobuilders" data-toggle="tooltip" data-placement="bottom" title="Follow us on Facebook">
 
               <a href="http://facebook.com/dtubiobuilders" data-toggle="tooltip" data-placement="bottom" title="Follow us on Facebook">
Line 106: Line 140:
 
       <div class="container-fluid" id="scrollspy">
 
       <div class="container-fluid" id="scrollspy">
 
         <ul class="nav nav-justified">
 
         <ul class="nav nav-justified">
           <li><a class="page-scroll" href="#The-Wiki-Wizard">The Wiki Wizard</a></li><li><a class="page-scroll" href="#Oligolizer-title-in-making">Oligolizer (title in making)</a></li>
+
           <li><a class="page-scroll" href="#The-Wiki-Wizard">The Wiki Wizard</a></li><li><a class="page-scroll" href="#NOD-Nrps-Oligo-Designer">NOD Nrps Oligo Designer</a></li>
 
         </ul>
 
         </ul>
 
       </div>
 
       </div>
Line 131: Line 165:
 
                
 
                
 
               <li>
 
               <li>
                 <a id="Oligolizer-title-in-making-submenu" class="btn btn-default btn-transparent btn-lg page-scroll" href="#Oligolizer-title-in-making">Oligolizer (title in making)</a>
+
                 <a id="NOD-Nrps-Oligo-Designer-submenu" class="btn btn-default btn-transparent btn-lg page-scroll" href="#NOD-Nrps-Oligo-Designer">NOD Nrps Oligo Designer</a>
 
               </li>
 
               </li>
 
                
 
                
Line 142: Line 176:
 
                
 
                
 
               <li>
 
               <li>
                 <a id="Oligolizer-title-in-making-submenu" class="page-scroll" href="#Oligolizer-title-in-making">Oligolizer (title in making)</a>
+
                 <a id="NOD-Nrps-Oligo-Designer-submenu" class="page-scroll" href="#NOD-Nrps-Oligo-Designer">NOD Nrps Oligo Designer</a>
 
               </li>
 
               </li>
 
                
 
                
Line 217: Line 251:
 
   </a>
 
   </a>
 
</div>
 
</div>
       <p>Creating and editing wiki pages, uploading files with the correct name can be a tedious task. Therefore we are making the Wiki Wizard, which helps with the naming of pages and files, making sure that they have the correct namespace etc. Also it has a WYSIWYG editor for content and syntax highlighted editors for html, javascript and css files.</p>
+
       <p>Creating and designing an iGEM wiki can be a difficult and timeconsuming task. We believe an easier way to create wikis can help many teams. Therefore we created the Wiki Wizard.</p>
 +
 
 +
<p>The Wiki Wizard takes care of namespacing pages and files, and can automatically generate a referene list for a page, while editing the pages, a preview of the wiki can be seen by clicking on the &rsquo;Team main page&rsquo; link in the menu.</p>
  
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
  
<h1><strong>It can be found on <a href="http://github.com/dkmva/igem-wiki-wizard"><span class="fa fa-github  fa-spin fa-spin fa-spin fa-spin fa-spin fa-spin fa-spin" style="color:rgb(0, 0, 0);font-size:24px;"></span></a><a href="http://github.com/dkmva/igem-wiki-wizard">GitHub</a></strong></h1>
+
<h1>Wiki creation</h1>
 +
 
 +
<p>With our wiki wizard, you can choose an existing theme, upload a theme made by someone else, or create your own. The tool is based on Flask and uses the Jinja engine for templates. By default the Wiki Wizard sets a theme and creates pages corresponding to the ones set by default on the iGEM wiki.</p>
 +
 
 +
<h2>Content</h2>
 +
 
 +
<h4>Page</h4>
 +
 
 +
<p>In the Wiki Wizard a page is a container for one or more sections, in which the page content is written. A page can also be given an image, template, position, name and url.</p>
 +
 
 +
<ul>
 +
<li>The template determines the overall layout of the page.</li>
 +
<li>The image is a setting, that themes can use for page specific images.</li>
 +
<li>Position determines the order pages in the menu, unless the menu is specified in menu(see below)</li>
 +
<li>The name is shown in the menu and</li>
 +
<li>The URL is the link to the page &ndash; <em>e.g.</em> blank for front page, or Team for team page</li>
 +
</ul>
 +
 
 +
<p>&nbsp;</p>
 +
 
 +
<h4>Section</h4>
 +
 
 +
<p>Sections are where the content is stored. These can be edited either in the page editor or separately in the section editor. &nbsp;To make writing easier, the section content is written in a CKEDITOR frame, which allows you to write HTML as you would write a page in Word. Sections can also be given an image, template, position and name.</p>
 +
 
 +
<ul>
 +
<li>The image is a setting, that themes can use for section specific images.</li>
 +
<li>The template determines which and how content is rendered</li>
 +
<li>Position determines the order of the sections on a page and</li>
 +
<li>The name is used for section headers, and themes can use it to create section links.</li>
 +
</ul>
 +
 
 +
<p>&nbsp;</p>
 +
 
 +
<h4>Entities</h4>
 +
 
 +
<p>Besides keeping track of your pages, the Wiki Wizard can also store your teams members, advisors, sponsors etc as Entities. Section templates can be designed to show (some of) these, thus adding members to your members section can be done with a few clicks. Again these can be edited in a CKEDITOR frame (see above) and have some settings. They are, image, position name, role and link.</p>
 +
 
 +
<ul>
 +
<li>Images are used to for <em>e.g.</em> member section images.</li>
 +
<li>Position determines the order</li>
 +
<li>Role is used to filter <em>e.g.</em> members for the member section.</li>
 +
<li>Name is the name of the entity.</li>
 +
<li>Link can be used to make links to <em>e.g.</em> sponsor websites</li>
 +
</ul>
 +
 
 +
<h4>Menu</h4>
 +
 
 +
<p>The menu can be used to create a nested menu or add external links to the menu. Each item in the menu can have page, parent, position, name url and children.</p>
 +
 
 +
<ul>
 +
<li>Page is used to make a link to a page</li>
 +
<li>Position determines order</li>
 +
<li>Name and url can be used to make external links, these are ignored if page is assigned.</li>
 +
<li>Parent/Children can be used to create dropdowns. Items with a parent, will be listed under the parent, and children are the items listed under the current item. How many levels of the menu may be limited by the selected theme.</li>
 +
</ul>
 +
 
 +
<h4>Timeline</h4>
 +
 
 +
<p>Timeline entries can be used to quickly generate a timeline/journal. These entries have a date, title and content, which again is edited with a CKEDITOR. The timeline can be inserted in a specific section by selecting a template that shows timeline entries.</p>
 +
 
 +
<h4>References</h4>
 +
 
 +
<p>Keeping track of reference order is tedious. Therefore references can be added here. They should have the reference text, and a reference id.</p>
 +
 
 +
<ul>
 +
<li>The id is used to insert citations in the content, similar to LaTeX, they can be inserted as [-1]</li>
 +
<li>Reference text, is the text that will be shown in the reference list</li>
 +
</ul>
 +
 
 +
<p style="margin-left:18.0pt;">These settings can be grabbed automatically by supplying a doi. And the theme should include a reference section template used to display the generated reference list.</p>
 +
 
 +
<h2>&nbsp;</h2>
 +
 
 +
<h2>Files</h2>
 +
 
 +
<p>Files can be uploaded to the Wiki Wizard here. No need to worry about namespacing, as the Wizard will rename files to the correct namespace when uploading to the wiki (see below).</p>
 +
 
 +
<h2>&nbsp;</h2>
 +
 
 +
<h2>Settings</h2>
 +
 
 +
<p>The settings tab can be used to select the base url, that the wiki should upload to. This year it is 2015.igem.org, next year it should be 2016.igem.org. This is also the page where the team name is entered, so that the Wizard can upload and rename files correctly. The last setting, is used to determine whether or not, it should be possible for new users to register on the Wizard, this option should be ticked off, once the desired users have been created. Users can be also created and deleted under the Advanced -&gt; Users tab.</p>
 +
 
 +
<h2>&nbsp;</h2>
 +
 
 +
<h2>Theme</h2>
 +
 
 +
<p>This section can be used to edit/upload files for the current theme under theme files. And themes can be selected under Select theme.</p>
 +
 
 +
<p>&nbsp;</p>
 +
 
 +
<h2>Wiki Upload</h2>
 +
 
 +
<p>The Wiki Wizard can upload the files and content to the iGEM servers and automatically rename files to the correct namespace. No need to individually upload the files and edit pages, just select what you want to upload, and the Wizard takes care of the rest.</p>
 +
 
 +
<h2>Writing themes</h2>
 +
 
 +
<p>The theme system utilises Flask-Themes2 for theme selection, more on how to write themes can be seen <a href="https://flask-themes2.readthedocs.org/en/latest/#writing-templates">here</a></p>
 +
 
 +
<h1>&nbsp;</h1>
  
 
     </div>
 
     </div>
Line 228: Line 363:
 
 
 
 
<div id="Oligolizer-title-in-making">
+
<div id="NOD-Nrps-Oligo-Designer">
 
   <div class="container">
 
   <div class="container">
 
     <div class="row col-md-12">
 
     <div class="row col-md-12">
 
       <h1>
 
       <h1>
         Oligolizer (title in making)
+
         NOD Nrps Oligo Designer
 
       </h1>
 
       </h1>
        
+
       <p>In order to fully utilise high throughput methods, you must be able to do high throughput design.</p>
 +
 
 +
<p>We developed a prototype oligo designer for NRPS library production and screening in python (NOD).</p>
 +
 
 +
<h2>Usage</h2>
 +
 
 +
<p>NOD is a commandline program, that takes a fasta file with one or more dna sequences encoding a NRPS and prints oligos that can be used to alter the specifity of each module. Also shipped with the tool is a simple UI, that can be run instead.</p>
 +
 
 +
<p>&nbsp;</p>
 +
 
 +
<h2>Requirements</h2>
 +
 
 +
<p>NOD requires a few extra programs. It uses HMMSEARCH of HMMER to identify the adenylation domains and MUSCLE to identify the stachelhaus code, it is written in python and requires BioPython. To run the UI, wxPython must also be installed.</p>
 +
 
 +
<p>&nbsp;</p>
 +
 
 +
<h2>Development</h2>
 +
 
 +
<p>The code for identification of adenylation domains and stachelhaus is based on antiSMASH, but has been slightly modified in order to not only identify the stachelhaus code, but also keep track on the positions in the unaligned sequence.</p>
 +
 
 +
<p>After identifying the stachelhaus residues, the stachelhaus code is compared to the stachelhaus code of different specificities. By comparing the degenerate sequence of the new stachelhaus code to the sequence of the native code, the changes are scored based on the amount of oligos required to incorporate all changes followed by the number of required mismatches. More than one oligo may be necessary, if changes are too far apart. The oligos are designed to be 90 nucleotides long with homologous ends of atleast 15 nucleotides in each end.</p>
 +
 
 +
<p>&nbsp;</p>
 +
 
 +
<h2>Perspectives</h2>
 +
 
 +
<p>The developed tool is only a prototype and several improvements could be added.</p>
 +
 
 +
<ul>
 +
<li>Currently the program randomly selects a codon from a degenerate codon if more than have the same required mismatches to incorporate. An improvement to this, could be to score codons according to codon usage.</li>
 +
<li>The oligo folding is not optimised, but this could be added by using ViennaRNA.</li>
 +
<li>With more data on incorporation efficiencies, it would be possible to calculate the allelic replacement of each oligo set, in order to select the stachelhaus code with highest allelic replacement</li>
 +
</ul>
 +
 
 
     </div>
 
     </div>
 
   </div>
 
   </div>

Revision as of 16:51, 18 September 2015

The Wiki Wizard

Creating and designing an iGEM wiki can be a difficult and timeconsuming task. We believe an easier way to create wikis can help many teams. Therefore we created the Wiki Wizard.

The Wiki Wizard takes care of namespacing pages and files, and can automatically generate a referene list for a page, while editing the pages, a preview of the wiki can be seen by clicking on the ’Team main page’ link in the menu.

 

Wiki creation

With our wiki wizard, you can choose an existing theme, upload a theme made by someone else, or create your own. The tool is based on Flask and uses the Jinja engine for templates. By default the Wiki Wizard sets a theme and creates pages corresponding to the ones set by default on the iGEM wiki.

Content

Page

In the Wiki Wizard a page is a container for one or more sections, in which the page content is written. A page can also be given an image, template, position, name and url.

  • The template determines the overall layout of the page.
  • The image is a setting, that themes can use for page specific images.
  • Position determines the order pages in the menu, unless the menu is specified in menu(see below)
  • The name is shown in the menu and
  • The URL is the link to the page – e.g. blank for front page, or Team for team page

 

Section

Sections are where the content is stored. These can be edited either in the page editor or separately in the section editor.  To make writing easier, the section content is written in a CKEDITOR frame, which allows you to write HTML as you would write a page in Word. Sections can also be given an image, template, position and name.

  • The image is a setting, that themes can use for section specific images.
  • The template determines which and how content is rendered
  • Position determines the order of the sections on a page and
  • The name is used for section headers, and themes can use it to create section links.

 

Entities

Besides keeping track of your pages, the Wiki Wizard can also store your teams members, advisors, sponsors etc as Entities. Section templates can be designed to show (some of) these, thus adding members to your members section can be done with a few clicks. Again these can be edited in a CKEDITOR frame (see above) and have some settings. They are, image, position name, role and link.

  • Images are used to for e.g. member section images.
  • Position determines the order
  • Role is used to filter e.g. members for the member section.
  • Name is the name of the entity.
  • Link can be used to make links to e.g. sponsor websites

Menu

The menu can be used to create a nested menu or add external links to the menu. Each item in the menu can have page, parent, position, name url and children.

  • Page is used to make a link to a page
  • Position determines order
  • Name and url can be used to make external links, these are ignored if page is assigned.
  • Parent/Children can be used to create dropdowns. Items with a parent, will be listed under the parent, and children are the items listed under the current item. How many levels of the menu may be limited by the selected theme.

Timeline

Timeline entries can be used to quickly generate a timeline/journal. These entries have a date, title and content, which again is edited with a CKEDITOR. The timeline can be inserted in a specific section by selecting a template that shows timeline entries.

References

Keeping track of reference order is tedious. Therefore references can be added here. They should have the reference text, and a reference id.

  • The id is used to insert citations in the content, similar to LaTeX, they can be inserted as [-1]
  • Reference text, is the text that will be shown in the reference list

These settings can be grabbed automatically by supplying a doi. And the theme should include a reference section template used to display the generated reference list.

 

Files

Files can be uploaded to the Wiki Wizard here. No need to worry about namespacing, as the Wizard will rename files to the correct namespace when uploading to the wiki (see below).

 

Settings

The settings tab can be used to select the base url, that the wiki should upload to. This year it is 2015.igem.org, next year it should be 2016.igem.org. This is also the page where the team name is entered, so that the Wizard can upload and rename files correctly. The last setting, is used to determine whether or not, it should be possible for new users to register on the Wizard, this option should be ticked off, once the desired users have been created. Users can be also created and deleted under the Advanced -> Users tab.

 

Theme

This section can be used to edit/upload files for the current theme under theme files. And themes can be selected under Select theme.

 

Wiki Upload

The Wiki Wizard can upload the files and content to the iGEM servers and automatically rename files to the correct namespace. No need to individually upload the files and edit pages, just select what you want to upload, and the Wizard takes care of the rest.

Writing themes

The theme system utilises Flask-Themes2 for theme selection, more on how to write themes can be seen here

 

NOD Nrps Oligo Designer

In order to fully utilise high throughput methods, you must be able to do high throughput design.

We developed a prototype oligo designer for NRPS library production and screening in python (NOD).

Usage

NOD is a commandline program, that takes a fasta file with one or more dna sequences encoding a NRPS and prints oligos that can be used to alter the specifity of each module. Also shipped with the tool is a simple UI, that can be run instead.

 

Requirements

NOD requires a few extra programs. It uses HMMSEARCH of HMMER to identify the adenylation domains and MUSCLE to identify the stachelhaus code, it is written in python and requires BioPython. To run the UI, wxPython must also be installed.

 

Development

The code for identification of adenylation domains and stachelhaus is based on antiSMASH, but has been slightly modified in order to not only identify the stachelhaus code, but also keep track on the positions in the unaligned sequence.

After identifying the stachelhaus residues, the stachelhaus code is compared to the stachelhaus code of different specificities. By comparing the degenerate sequence of the new stachelhaus code to the sequence of the native code, the changes are scored based on the amount of oligos required to incorporate all changes followed by the number of required mismatches. More than one oligo may be necessary, if changes are too far apart. The oligos are designed to be 90 nucleotides long with homologous ends of atleast 15 nucleotides in each end.

 

Perspectives

The developed tool is only a prototype and several improvements could be added.

  • Currently the program randomly selects a codon from a degenerate codon if more than have the same required mismatches to incorporate. An improvement to this, could be to score codons according to codon usage.
  • The oligo folding is not optimised, but this could be added by using ViennaRNA.
  • With more data on incorporation efficiencies, it would be possible to calculate the allelic replacement of each oligo set, in order to select the stachelhaus code with highest allelic replacement
Technical University of Denmark
Department of Systems Biology
Søltofts Plads 221
2800 Kgs. Lyngby
Denmark
P: +45 45 25 25 25
M: dtu-igem-2015@googlegroups.com