Team:DTU-Denmark/Software

The Wiki Wizard

Creating and designing iGEM wikis can be a difficult and time consuming task. We developed the Wiki Wizard as we believe that teams would benefit from an easier way to create and design their wiki. The Wiki Wizard is a content management system (CMS) that allows the user to create and edit pages easily. It includes functions such as: name spacing 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 users to create wikis that are in compliance with the wiki standards specified by iGEM.

You can find it and an installation guide here: GitHub

Wiki creation

With our wiki wizard you can choose an existing theme, upload a theme made by someone else, or create your own theme. 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. The secition content is written in a CKEDITOR frame, which allows you to write HTML as you would write a page in Word. This makes editing easier and allows users 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, 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. These settings are: image, position name, role, and link.

  • I​mages can be used, for example member section images.
  • Position determines the order of entities.
  • ​Role is used to filter entities; e​.g. by splitting up​ members in team members and advisors.
  • ​Name is the name of the entity.
  • L​ink can be used to make links to for example 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, associated with it.

  • ​Page is used to make a link to a page.
  • ​Position determines the order of menu items.
  • ​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 with 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 a tedious task, when writing your project pages. In 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 with \ cite{ref_id} without spaces.
  • ​"Reference text" is the text that will be shown in the reference list.

These settings can be grabbed automatically by supplying the doi for the reference. The references will only be displayed, if the reference is used. The default themes include a reference section template which will show the reference list.

Files

Files can be uploaded to the Wiki Wizard under "Files". The Wiki Wizard automatically rename files to the correct namespacing, when the files are later uploaded to the wiki (see below).

Settings

The settings tab can be used to select the base url that the wiki should be 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 found here.

Themes can be uploaded to the Wiki Wizard as a zip file containing the theme folder. 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 envision that a future Wiki Wizard contains the following improvements:

  • A graphical menu builder that can be used to design the main menu using drag and drop.
  • Improvements of the collaboration feature that possibly use socketio to keep changes of the fields live.
  • Replacing the admin feature with inline editing, which would 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 and an installation guide here: GitHub

Usage

NOD is a command line program that takes a fasta file with one or more DNA sequences encoding a NRPS and outputs 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. We suggest to implement the following improvements:

  • Currently the program randomly selects a codon from a degenerate codon if there are more than one option with the same required mismatches. An improvement to this, could be to score codons according to codon usage.
  • The oligo folding is not optimized, but this could be added by adding 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