Team:EPFL/Software DATABASE

iGEM EPFL 2016

intelligene.plus

A Handy Database for Genetic Gates, Parts, and scRNAs


Although research around the creation of dCas9-based gate designs is exploding, finding these new gate structures can be surprisingly difficult, as they are often scurried away in papers or projects for competitions like iGEM. To combat this issue, we decided to create a database of dCas9-based logic gate designs. In this database, the logic gates are described in terms of their parts - such as promoters, terminators, and ribozymes - instead of just simple DNA sequences. Parts can be easily added to the database through beautiful forms. intelligene.plus features intuitive tools to allow users to create new gate designs and attribute different functions to different areas of parts such as promoters, allowing complex interactions within gates.


Just as Cello seeks to democratize circuit design, intelligene.plus seeks to democratize gate design. In order to allow programs like Cello to pick up these new gate designs, APIs are available that allow these programs to retrieve data from our databases.

Design


intelligene.plus is made to communicate directly with Cello, a program which automates synthetic genetic network design. As such, when a request is made to it through its API, it returns an appropriate list of gates, based on the required number of gates for the circuit and user specifications, in the form of a JSON file. This JSON file contains all of the necessary information for Cello to operate correctly, including: the construction of each gate in terms of its parts, the sequences of each part, the response functions of each gate, and a list of “associated parts” which are common to multiple gates. To understand how intelligene.plus is able to return this data file, it is important to understand the structure of data in the website. Although we refer to intelligene.plus as a single MySQL database, it is really more important to think of it as a collection of databases. Various types of parts are divided amongst these databases. When it is time to retrieve parts from the databases, the gate templates are used to rummage through the databases of each part type and fetch the correct number of each type of part to build the necessary gates. Although at the time of wikifreeze, we have not yet integrated methods into the database to create response functions for the generated gates, you can find a model that we have elucidated to do just this here. Time permitting, we will integrate this functionality after wikifreeze.

Features


User interface

In line with our goal of making dCas9-based gate technology as easy as possible to use, our user interface is remarkably simple. Buttons on the side-bar allow you to create standard parts of different types. Once these parts are on the workbench, they can be dragged-and-dropped so that the user can rearrange them as they wish. The possible relationships between parts include their genetic order and transcriptional activation or repression. These relationships can be defined by the users through dragging-and-dropping links between the parts.

Part Forms

When selecting the parts that have to be used for each gate two options are given: users can choose parts that have already been submitted to the database, or they may choose to submit new parts. In the case of submitting new parts, the relevant entry information is prompted by neat forms. This information generally includes, but is not limited, to the name and sequence of the part.

Sequence Highlighter

In the case of promoters, multiple functional areas may exist. For example, certain regions of the promoter may be known to be particularly effective targets for repression, and others for activation. In addition, some areas may be known to be able to modified, without changing the function of the promoter. We have a developed a fun tool with a clean design which helps users define these regions in new promoters. By dragging the cursor over certain areas of the promoter, these areas can be defined as activating, repressing, or variable regions.

Gate designer: Saving Elements

Once parts are submitted through the user interface, they are immediately uploaded to the database. After this point they can be suggested to users when they search for the part again.

Gate designer: APIs

intelligene.plus comes with handy APIs, which can be used to call the database from an external source, such as an application like Cello.

http://intelligene.plus/api/apidef?t=typeofdata&query=query&organism=organismName&strain=strainName&format=format

Example:
http://intelligene.plus/api/db?t=pem&query=m&organism=yeast&strain=w303&format=json
{"status":true,"response":[
    {
        "id":"1",
        "name":"PCP-MxiI",
        "sequence":"atgtccaaaaccatcgttctttcggtcggcgaggctactcgcactctgactgagatccagtccaccgcagaccgtcagatcttcgaagagaaggtcgggcctctggtgggtcggctgcgcctcacggcttcgctccgtcaaaacggagccaagaccgcgtatcgcgtcaacctaaaactggatcaggcggacgtcgttgattccggacttccgaaagtgcgctacactcaggtatggtcgcacgacgtgacaatcgttgcgaatagcaccgaggcctcgcgcaaatcgttgtacgatttgaccaagtccctcgtcgcgacctcgcaggtcgaagatcttgtcgtcaaccttgtgccgctgggccgtGGCTCCATGGAACGTGTGAGAATGATTAATGTGCAAAGGCTGTTAGAAGCCGCAGAGTTTTTAGAAAGAAGAGAAAGAGAATGCGAACACGGGTATGCCAGTTCTTTCCCTAGCATGCCCTCTCCCAGA",
        "description":"Linear DNA encoding for the fused protein PCP-MxiI. PCP is an RNA binding protein for the sequence PP7, MxiI: gene encoding for MAX-interacting protein I, a mammalian transcriptional repressor domain that is reported to interact with the histone deacetylase Sin3 homolog in yeast."
    },
    {
        "id":"2",
        "name":"activator PEM",
        "sequence":"CGATCGATTGCTAGCTGAGCATCAGCTAGCAC",
        "description":"test dev"
    },
    {
        "id":"3",
        "name":"repressor PEM",
        "sequence":"CGATGCTATGCGGCGGCGCGCATCGATCAGCATCG",
        "description":"test dev"
    },
    {
        "id":"4",
        "name":"MCP-VP64",
        "sequence":"CGATGCTATGCGGCGGCGCGCATCGATCAGCATCGCGATGCTATGCGGCGGCGCGCATCGATCAGCATCGCGATGCTATGCGGCGGCGCGCATCGATCAGCATCGCGATGCTATGCGGCGGCGCGCATCGATCAGCATCGCGATGCTATGCGGCGGCGCGCATCGATCAGCATCGCGATGCTATGCGGCGGCGCGCATCGATCAGCATCG",
        "description":"linear DNA encoding for the RNA binding protein MCP fused to the transcriptional activation domain VP64. VP64 is a transcriptional activator composed of four tandem copies of VP16 connected with glycine-serine linkers. When fused to another protein domain that can bind near the promoter of a gene, VP64 acts as a strong transcriptional activator"
    }
]}
                        

Technical specifications


System requirements

The software can run on almost any web server featuring PHP & MySQL.

More specifically, it runs on the LAMP platform. This means your web server (or web hosting account) should be featured with the following software: Linux + Apache + MySQL + PHP.

For all practical purposes, it will run on the vast majority of current web hosting offers.

Software Requirements

Your web server / web hosting account should have the following software versions:

  • Linux: any modern distribution will work.
    • On shared hosting accounts, you should not even need to worry about this.
    • For dedicated servers, we like to use CentOS but RedHat, Debian and others will work just as well.
    • Note: it is possible to run the software on Windows, especially for development. This is not an officially supported platform though and we do not recommend it for production servers, especially regarding performance & security.
    • Note: running on Mac OS X works fine, especially with a package like MAMP.
  • Apache: version 2.0 or above.
    • Note: it is possible to run intelligene.plus on Lighttpd or NginX but these are not officially supported configurations and will likely require manual configuration as these servers will not read our .htaccess File.
  • MySQL: version 5.0.3 or above.
    • InnoDB MUST be enabled (All decent web hosts offer InnoDB)
    • Note: At this point we do not believe that database abstraction is a practical proposition.
  • PHP: version 5.2 or above. No additional requirements.

Installation

Just download the code from here and put it on a server. Dump the database (link) and then load the index.php.

Note that intelligene.plus can be used with no downloads/installations required at www.intelligene.plus.