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

Line 356: Line 356:
 
   </a>
 
   </a>
 
</div>
 
</div>
       <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>Creating and designing an iGEM wiki can be a difficult and time consuming task. We believe that many teams would benefit from an easier way to create and design, which led us to develop the Wiki Wizard.<br />
 +
The Wiki Wizard is a content&nbsp;management system (CMS) that allows the user to create and edit pages easily. It includes functions such as: namespacing pages and files, referene list for a page, and a preview of the wiki that can be seen by clicking on the &rsquo;Team main page&rsquo; link in the menu. Most importantly, the Wiki Wizard allows user to create wiki that are in compliance with the wiki standards specified by iGEM.</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>You can find it at <span class="fa fa-github"></span><span style="color:#000000;"></span><a href="http://github.com/dkmva/igem-wiki-wizard">GitHub</a></p>
 
+
<p>You can find it at <span class="fa fa-github "></span><span style="color:#000000;"></span><a href="http://github.com/dkmva/igem-wiki-wizard">GitHub</a></p>
+
  
 
<h1>Wiki creation</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>
+
<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 it uses the Jinja engine for loading of templates. By default, the Wiki Wizard uses a bootstrap theme and creates pages corresponding to the standard IGEM pages.</p>
  
 
<h2>Content</h2>
 
<h2>Content</h2>
Line 370: Line 369:
 
<h4>Page</h4>
 
<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>
+
<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 assigned an image, template, position, name, and url.</p>
  
 
<ul>
 
<ul>
 
<li>The template determines the overall layout of the page.</li>
 
<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>T​he 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>Position determines the order of 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>T​he 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>
+
<li>The URL is the link to the page &ndash; e​.g.blank for front page, or &quot;Team&quot; for the team page.</li>
 
</ul>
 
</ul>
 
<p>&nbsp;</p>
 
  
 
<h4>Section</h4>
 
<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>
+
<p>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. This allows user without knowledge of HTML and CSS to generate appealing content. Sections, like pages, can be assigned an image, template, position, and name.</p>
  
 
<ul>
 
<ul>
<li>The image is a setting, that themes can use for section specific images.</li>
+
<li>T​he 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>T​he template determines which and how the content is rendered.</li>
<li>Position determines the order of the sections on a page and</li>
+
<li>​The 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>
+
<li>T​he name is used for section headers. Themes can use the name to create links to sections.</li>
 
</ul>
 
</ul>
  
Line 398: Line 395:
  
 
<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>
 
<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>
 +
 +
<p>Besides keeping track of your pages, the Wiki Wizard can also store your teams members, advisors, sponsors, and etc, as &quot;Entities&quot;. Section templates can be designed to show (some of) these, thus adding members to your members section can be done with a few clicks. The entities can be edited in a CKEDITOR frame (see above) and they are associated with some settings. Thesettings are: image, position name, role, and link.</p>
  
 
<ul>
 
<ul>
<li>Images are used to for <em>e.g.</em> member section images.</li>
+
<li>I​mages are used to for e​.g.member section images.</li>
<li>Position determines the order</li>
+
<li>Position determines the order of entities.</li>
<li>Role is used to filter <em>e.g.</em> members for the member section.</li>
+
<li>​Role is used to filter entities; e​.g. By splitting up​ members in team membrrs and advisors.</li>
<li>Name is the name of the entity.</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>
+
<li>L​ink can be used to make links to e​.g.sponsor websites.</li>
 
</ul>
 
</ul>
  
 
<h4>Menu</h4>
 
<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>
+
<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>
 
<ul>
<li>Page is used to make a link to a page</li>
+
<li>​Page is used to make a link to a page.</li>
<li>Position determines order</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>​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 associated witt a parent, will be listed under the parent, and children are the items listed under the current item. The number of levels of the menu may be limited by the selected theme.<br />
<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>
+
&nbsp;</li>
 
</ul>
 
</ul>
  
 
<h4>Timeline</h4>
 
<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>
+
<p>Timeline entries can be used to quickly generate a timeline/journal. These entries have a date, title, and content, which can be 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>
 
<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>
+
<p>Keeping track of reference order is tedious, bit with the Wiki Wizard, references are ordered automatically. They should have the reference text, and a reference id.</p>
  
 
<ul>
 
<ul>
<li>The id is used to insert citations in the content, similar to LaTeX, they can be inserted as [-1]</li>
+
<li>T​he &quot;id&quot; is used to insert citations in the content. Similar to LaTeX, they can be inserted witth[-1].</li>
<li>Reference text, is the text that will be shown in the reference list</li>
+
<li>​&quot;Reference text&quot; is the text that will be shown in the reference list.</li>
 
</ul>
 
</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>
+
<p>These settings can be grabbed automatically by supplying a doi for the reference. The references Will be displayed, when a reference section is added to the page. The default themes include a reference section template.</p>
  
 
<h2>&nbsp;</h2>
 
<h2>&nbsp;</h2>
Line 437: Line 436:
 
<h2>Files</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>
+
<p>Files can be uploaded to the Wiki Wizard under &quot;Files&quot;. The Wiki Wizard automatically rename files to the correct namespacing when uploading the files to the wiki (see below).</p>
  
<h2>&nbsp;</h2>
+
<p>&nbsp;</p>
  
 
<h2>Settings</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>
+
<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 should be 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 also be created and deleted under the Advanced &shy;&gt; Users tab.</p>
  
 
<h2>&nbsp;</h2>
 
<h2>&nbsp;</h2>
Line 449: Line 448:
 
<h2>Theme</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>This section can be used to edit/upload files for the current theme under theme files. Themes can be selected under &quot;Select Theme&quot;.</p>
 
+
<p>&nbsp;</p>
+
  
 
<h2>Wiki Upload</h2>
 
<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>
+
<p>The Wiki Wizard can upload the files and content to the iGEM servers and automatically rename files to the correct namespace. The Wiki Wizard takes care of the upload using the user&#39;s login to iGEM.</p>
  
 
<h2>Writing themes</h2>
 
<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>
+
<p>The theme system utilises Flask&shy;Themes2 for theme selection. Additional information on writing themes can be seen&nbsp;<a href="https://flask-themes2.readthedocs.org/en/latest/#writing-templates">here</a>.</p>
  
<h1>&nbsp;</h1>
+
<p>Themes can be uploaded to the Wiki Wizard as a zip file containing the theme folder. Briefly described, the theme folder contains one file and two folders.</p>
 +
 
 +
<ul>
 +
<li>info.json</li>
 +
<li>static</li>
 +
<li>templates</li>
 +
</ul>
 +
 
 +
<p>Theme templates are stored in the templates folder and static files are put in the static folder, these can be images, javascript, stylesheets, etc. The info.json stores information about the theme, such as author and a description.</p>
 +
 
 +
<h2>Perspectives</h2>
 +
 
 +
<p>We have several improvements in mind for the Wiki Wizard.</p>
 +
 
 +
<ul>
 +
<li>We would like to add a graphical menu builder, that can be used to design the main menu using drag and drop.</li>
 +
<li>We would also like to improve on the collaboration feature and possibly use socketio to keep changes of the fields live.</li>
 +
<li>Replace the admin feature with inline editing to give a better feel of how the page will look.</li>
 +
</ul>
  
 
     </div>
 
     </div>

Revision as of 03:14, 19 September 2015

The Wiki Wizard

Creating and designing an iGEM wiki can be a difficult and time consuming task. We believe that many teams would benefit from an easier way to create and design, which led us to develop the Wiki Wizard.
The Wiki Wizard is a content management system (CMS) that allows the user to create and edit pages easily. It includes functions such as: namespacing pages and files, referene list for a page, and a preview of the wiki that can be seen by clicking on the ’Team main page’ link in the menu. Most importantly, the Wiki Wizard allows user to create wiki that are in compliance with the wiki standards specified by iGEM.

You can find it at GitHub

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 it uses the Jinja engine for loading of templates. By default, the Wiki Wizard uses a bootstrap theme and creates pages corresponding to the standard IGEM pages.

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 assigned an image, template, position, name, and url.

  • The template determines the overall layout of the page.
  • T​he image is a setting that themes can use for page specific images.
  • Position determines the order of pages in the menu unless the menu is specified in menu (see below).
  • T​he name is shown in the menu, and
  • The URL is the link to the page – e​.g.​ blank for front page, or "Team" for the 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. This allows user without knowledge of HTML and CSS to generate appealing content. Sections, like pages, can be assigned an image, template, position, and name.

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

 

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.

Besides keeping track of your pages, the Wiki Wizard can also store your teams members, advisors, sponsors, and 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. The entities can be edited in a CKEDITOR frame (see above) and they are associated with some settings. Thesettings are: image, position name, role, and link.

  • I​mages are used to for e​.g.​ member section images.
  • Position determines the order of entities.
  • ​Role is used to filter entities; e​.g. By splitting up​ members in team membrrs and advisors.
  • ​Name is the name of the entity.
  • L​ink 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 associated witt a parent, will be listed under the parent, and children are the items listed under the current item. The number of 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 can be 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, bit with the Wiki Wizard, references are ordered automatically. They should have the reference text, and a reference id.

  • T​he "id" is used to insert citations in the content. Similar to LaTeX, they can be inserted witth[-1].
  • ​"Reference text" is the text that will be shown in the reference list.

These settings can be grabbed automatically by supplying a doi for the reference. The references Will be displayed, when a reference section is added to the page. The default themes include a reference section template.

 

Files

Files can be uploaded to the Wiki Wizard under "Files". The Wiki Wizard automatically rename files to the correct namespacing when uploading the files 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 should be 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 also be 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. 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. The Wiki Wizard takes care of the upload using the user's login to iGEM.

Writing themes

The theme system utilises Flask­Themes2 for theme selection. Additional information on writing themes can be seen here.

Themes can be uploaded to the Wiki Wizard as a zip file containing the theme folder. Briefly described, the theme folder contains one file and two folders.

  • info.json
  • static
  • templates

Theme templates are stored in the templates folder and static files are put in the static folder, these can be images, javascript, stylesheets, etc. The info.json stores information about the theme, such as author and a description.

Perspectives

We have several improvements in mind for the Wiki Wizard.

  • We would like to add a graphical menu builder, that can be used to design the main menu using drag and drop.
  • We would also like to improve on the collaboration feature and possibly use socketio to keep changes of the fields live.
  • Replace the admin feature with inline editing to give a better feel of how the page will look.

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).

You can find it at GitHub

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