Difference between revisions of "Team:EPFL/Software CELLO"

Line 2: Line 2:
 
<html>
 
<html>
  
         <div class="simple-page">
+
         <div class="simple-page centered-page">
 
             <section class="">
 
             <section class="">
 
                 <div class="container">
 
                 <div class="container">
 
                     <div class="col-md-10 col-md-offset-1 text-center">
 
                     <div class="col-md-10 col-md-offset-1 text-center">
                         <h2 class="lead animate-box">Cello</h2>
+
                         <h2 class="lead animate-box">intelligene.plus</h2>
 +
                        <p class="sub-lead text-center animate-box">
 +
                            A Handy Database for Genetic Gates, Parts, and scRNAs
 +
                        </p>
 
                         <div class="spacer h20"></div>
 
                         <div class="spacer h20"></div>
 
                         <hr class="animate-box"/>
 
                         <hr class="animate-box"/>
 
                         <div class="spacer h20"></div>
 
                         <div class="spacer h20"></div>
                         <p class="sub-lead text-justify animate-box">
+
                         <p class="sub-lead justified animate-box">
                             Over the course of this summer, we developed a suite of tools intended to help users
+
                             Although research around the creation of dCas9-based gate designs is exploding,  
                             design their own biological circuits for their target systems. Our journey into the
+
                             finding these new gate structures can be surprisingly difficult, as they are
                            realm of bioinformatics began when we discovered Cello. Published on April 1<sup>st</sup>, 2016
+
                             often scurried away in papers or projects for competitions like iGEM. To combat
                             in <a href="http://science.sciencemag.org/content/352/6281/aac7341">
+
                            this issue, we decided to create a database of dCas9-based logic gate designs. In
                                Science</a>, Cello takes user inputs in the form of a circuit described using
+
                             this database, the logic gates are described in terms of their parts - such as
                                <a href="https://en.wikipedia.org/wiki/Verilog">Verilog</a>
+
                             promoters, terminators, and ribozymes - instead of just simple DNA sequences.  
                             code, and a user constraint file (UCF) that contains biological data pertaining to the  
+
                             Parts can be easily added to the database through beautiful forms. intelligene.plus
                            system chosen by the user and a list of gates that the user can put in that system. By
+
                             features intuitive tools to allow users to create new gate designs and attribute
                            combining these two inputs with a series of algorithms, the program returns one or more
+
                             different functions to different areas of parts such as promoters, allowing complex
                             plasmids that, once put in a host cell, will recreate the circuit the user has defined.
+
                            interactions within gates.
                             By choosing the input promoters, the user can decide what molecules or transcription
+
                             factors to use as inputs to the logical circuit. This circuit can allow the cell to make
+
                             novel decisions and calculations based on its environment, metabolism, and health.
+
 
+
 
                         </p>
 
                         </p>
                         <div class="spacer h50"></div>
+
                         <br>
                         <p class="animate-box">
+
                         <p class="sub-lead justified animate-box">
                             <img src="img/cello_simple.png" />
+
                             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.  
 
                         </p>
 
                         </p>
                         <div class="spacer h50"></div>
+
                    </div>
                         <p class="sub-lead text-justify">
+
                </div>
                            Cello is immensely powerful, as well as accurate. In its original round of testing,
+
            </section>
                            the authors found that 75% of the 60 circuits texted acted exactly as expected for all
+
        </div>
                            input combinations. Cello is modular, which makes it adaptable to user requirements.
+
        <div class="simple-page">
                            These requirements are passed to it using a User Constraint File, which also contains
+
            <section class="">
                            information specific to the biological system that is being used, such as gates that are
+
                <div class="container animate-box">
                             available to use.  
+
                    <div class="col-md-10 col-md-offset-1 text-center">
 +
                        <h2 class="text-uppercase">Design</h2>
 +
                         <div class="spacer h20"></div>
 +
                         <hr class="animate-box"/>
 +
                        <div class="spacer h20"></div>
 +
                    </div>
 +
                    <div class="spacer h30"></div>
 +
                    <div class="col-md-8 col-md-push-2">
 +
                        <p>
 +
                             <img src="img/overoverview_intelligene.plus.png" alt="" />
 
                         </p>
 
                         </p>
                        <br>
+
                    </div>
                       
+
                    <div class="spacer h30"></div>
                        <p class="sub-lead text-justify">
+
                    <div class="col-md-10 col-md-offset-1 text-center">
                        Cello does not work with all biochemistries, unfortunately. Although it works well with CRISPRi,
+
                         <p class="sub-lead justified animate-box">
                        it does not accept newer dCas9-based gate structures and technologies. We felt that we could make
+
                             intelligene.plus is made to communicate directly with <a href="https://2016.igem.org/Team:EPFL/software_cello.html">Cello</a>,
                        Cello even more powerful by introducing these new biochemistries, and scRNA specifically (link
+
                            a program which automates synthetic genetic network design. As such, when a request is made to
                        Zalatan). This is because dCas9 allows for the creation of “programmable” transcription factors.
+
                            it through its API, it returns an appropriate list of gates, based on the required number of gates
                        Finding actual transcription factors that work well in the host, but also don’t interfere with its
+
                            for the circuit and user specifications, in the form of a JSON file. This JSON file contains all
                        genome is a real challenge. With dCas9, guide RNAs can be used to guide the dCas9 to specific
+
                            of the necessary information for Cello to operate correctly, including: the construction of each  
                        23-nucleotide long targets. In addition, transcriptional effectors can be attached to the dCas9
+
                            gate in terms of its parts, the sequences of each part, the response functions of each gate, and
                        directly, or attached to the RNA directly using an architecture first described by
+
                            a list of “associated parts” which are common to multiple gates. To understand how intelligene.plus
                         <a href="https://www.ncbi.nlm.nih.gov/pubmed/25533786">Zalatan et al.
+
                            is able to return this data file, it is important to understand the structure of data in the  
                             (2015)</a>. See our <a href="https://2016.igem.org/Team:EPFL/Description">Project Description</a> for more details! Using this structure, we can have
+
                            website. Although we refer to intelligene.plus as a single MySQL database, it is really more
                        multiple effectors in the same synthetic system, with varying degrees of repression and activation,  
+
                            important to think of it as a collection of databases. Various types of parts are divided amongst
                        effectively fine-tuning the transcriptional response to each promoter. This system is made even more
+
                            these databases. When it is time to retrieve parts from the databases, the gate templates are used
                        powerful by the discovery of “programmable” promoters, which have certain known internal regions in
+
                            to rummage through the databases of each part type and fetch the correct number of each type of
                        which the code can be changed without affecting the strength of the promoter. By modifying the code
+
                            part to build the necessary gates. Although at the time of wikifreeze, we have not yet integrated
                        in these regions, it is possible to give each promoter its own ‘barcode’, which can be targeted by
+
                            methods into the database to create response functions for the generated gates, you can find a
                        a unique guide RNA. <a href="https://2016.igem.org/Team:EPFL/Deskgen">Click here to see the barcodes we designed.</a></p>
+
                            model that we have elucidated to do just this <a href="https://2016.igem.org/Team:EPFL/model.html">here</a>. Time permitting,
                        <br>
+
                            we will integrate this functionality after wikifreeze.
                        <p class="sub-lead text-justify">
+
                        </p>
                            The current organization of information in the program could also be improved,
+
                    </div>
                             to the benefit of the program’s usability. The current implementation of the UCF
+
                    <div class="spacer h30"></div>
                            has certain limitation. In particular, the only publically available UCFs are
+
                    <div class="col-md-8 col-md-push-2">
                            defined in <em>E. coli</em>, meaning that it is not immediately usable in other systems.
+
                        <p>
                            This brings up an even more important point: UCFs are treated as completely local
+
                             <img src="img/table_gates.png" alt="" />
                            files, meaning that for one researcher to use information obtained by another,
+
                            that information has to be passed directly from one to the other. This is inefficient
+
                            since it is likely that at any given point more gate structures would have been
+
                            invented than someone would be aware of, since those structures might be locked away
+
                            in another person’s local file. Finally, using Cello requires a basic understanding
+
                            of how Verilog code works, meaning that understanding how to use a coding language
+
                            is necessary before you can start to use the program.
+
 
                         </p>
 
                         </p>
 
                     </div>
 
                     </div>
Line 79: Line 83:
 
         <div class="simple-page">
 
         <div class="simple-page">
 
             <section class="">
 
             <section class="">
                 <div class="container">
+
                 <div class="container animate-box">
 
                     <div class="col-md-10 col-md-offset-1 text-center">
 
                     <div class="col-md-10 col-md-offset-1 text-center">
                         <h2 class="lead">Our modifications</h2>
+
                         <h2 class="text-uppercase">Features</h2>
 
                         <div class="spacer h20"></div>
 
                         <div class="spacer h20"></div>
                         <hr />
+
                         <hr class="animate-box"/>
 
                         <div class="spacer h20"></div>
 
                         <div class="spacer h20"></div>
                         <h3>Graphical User Interface</h3>
+
                    </div>
 +
                    <div class="col-md-10 col-md-offset-1">
 +
                         <h3>User interface</h3>
 
                         <p class="sub-lead text-justify">
 
                         <p class="sub-lead text-justify">
                             The first modification we made was to eliminate the need to understand how to  
+
                             In line with our goal of making dCas9-based gate technology as easy as possible to  
                             code in Verilog to be able to use Cello. Verilog is not a difficult programming
+
                            use, our user interface is remarkably simple. Buttons on the side-bar allow you to  
                             language, but learning any programming language can be challenging for beginners,
+
                             create standard parts of different types. Once these parts are on the workbench,
                            and we wanted to open up Cello to people who had no other programming experience,
+
                             they can be dragged-and-dropped so that the user can rearrange them as they wish.  
                            and eliminate the initial learning curve due to this technological barrier. The
+
                             The possible relationships between parts include their genetic order and transcriptional
                             user interface we developed is based on an intuitive drag-and-drop interface. This
+
                             activation or repression. These relationships can be defined by the users through
                             interface is based on a template by <a href="https://github.com/edwardball/academo.org">
+
                             dragging-and-dropping links between the parts.  
                            edwardball</a>, and uses the jsPlump library. Some users may feel more at home
+
                             using Verilog code, so the original input forms are still available on their original page.  
+
 
                         </p>
 
                         </p>
 
                     </div>
 
                     </div>
Line 102: Line 106:
 
         </div>
 
         </div>
 
         <div class="centered-page">
 
         <div class="centered-page">
             <section class="sapphire">
+
             <section class="purple">
 
                 <div class="container">
 
                 <div class="container">
 
                     <div class="col-md-12">
 
                     <div class="col-md-12">
 
                         <div class="spacer h40"></div>
 
                         <div class="spacer h40"></div>
 
                         <!--NTH: qualità -->
 
                         <!--NTH: qualità -->
                         <img class="video" src="img/videoGIF/cello_designer_demo_and.gif" alt="">
+
                         <img class="video" src="img/videoGIF/intelligene_plus_ui.gif" alt="">
 
                         <div class="spacer h40"></div>
 
                         <div class="spacer h40"></div>
 
                     </div>
 
                     </div>
Line 113: Line 117:
 
             </section>
 
             </section>
 
         </div>
 
         </div>
        <div class="spacer h20"></div>
 
  
 
         <div class="simple-page">
 
         <div class="simple-page">
 
             <section class="">
 
             <section class="">
                 <div class="container">
+
                 <div class="container animate-box">
                     <div class="col-md-10 col-md-offset-1 text-center">
+
                     <div class="col-md-10 col-md-offset-1">
                         <h3>Accepting External Inputs</h3>
+
                         <h3>Part Forms</h3>
 
                         <p class="sub-lead text-justify">
 
                         <p class="sub-lead text-justify">
                        In order to add the new biochemistries to Cello, we first had to delve into its
+
                            When selecting the parts that have to be used for each gate
                        inner workings. A large part of our time was spent trying to understand what each
+
                            two options are given: users can choose parts that have already
                        part of the program did, and how it interacted with its libraries. It was during
+
                            been submitted to the database, or they may choose to submit new
                        this point that we identified two bugs in the program which we reported to the  
+
                            parts. In the case of submitting new parts, the relevant entry
                        development team of Cello, through Prashant Vaidyanathan at Boston University.  
+
                            information is prompted by neat forms. This information generally
                        This led to an updated version of the NetSynth library being made to deal with
+
                            includes, but is not limited, to the name and sequence of the part.  
                        gates that were not NOT, NOR, or AND.  
+
 
                         </p>
 
                         </p>
                         <br>
+
                    </div>
 +
                </div>
 +
            </section>
 +
        </div>
 +
        <div class="centered-page">
 +
            <section class="blue">
 +
                <div class="container">
 +
                    <div class="col-md-12">
 +
                         <div class="spacer h40"></div>
 +
                        <!--NTH: qualità -->
 +
                        <img class="video" src="img/videoGIF/intelligene_plus_select_create.gif" alt="">
 +
                        <div class="spacer h40"></div>
 +
                    </div>
 +
                </div>
 +
            </section>
 +
        </div>
 +
 
 +
        <div class="simple-page">
 +
            <section class="">
 +
                <div class="container animate-box">
 +
                    <div class="col-md-10 col-md-offset-1">
 +
                        <h3>Sequence Highlighter</h3>
 
                         <p class="sub-lead text-justify">
 
                         <p class="sub-lead text-justify">
                             We felt that the best way to integrate the aforementioned biochemistries and  
+
                             In the case of promoters, multiple functional areas may exist. For example,
                             to also make the program more open-sourced would be to move the storage of  
+
                            certain regions of the promoter may be known to be particularly effective
                            information about dCas9-based gates to the web. Since we did not find an extant database
+
                            targets for repression, and others for activation. In addition, some areas
                             for parts with this biochemistry that returns data that is usable by Cello,
+
                             may be known to be able to modified, without changing the function of the  
                             we decided to make an open and free database for these parts.
+
                             promoter. We have a developed a fun tool with a clean design which helps
                             <a href="https://2016.igem.org/Team:EPFL/software_database">You can find out more about
+
                             users define these regions in new promoters. By dragging the cursor over
                                our databases here!</a> Cello had to be modified, however, to accept inputs from
+
                             certain areas of the promoter, these areas can be defined as activating,
                            this third source. As the UCF is written in <a href="http://www.json.org/">JSON</a> (JavaScript Object Notation),
+
                            repressing, or variable regions.</p>
                            we decided that we would also pass information to Cello through JSON files.
+
                    </div>
                            These files also allow dCas9-based gates to work correctly in the target system, by appreciating
+
                </div>
                            the particularities specific to dCas9-based gates. For example, all these gates would require
+
            </section>
                            dCas9 to be expressed in the host cells to function, and many gates would have overlapping effector
+
        </div>
                            molecules. Recopying these "associated sequences" multiple times into the plasmids would constitute a massive waste of
+
        <div class="centered-page">
                            space, so these sequences are copied <em>just once</em> into a separate plasmid. 
+
            <section class="black">
                         </p>
+
                <div class="container">
                         <figure>
+
                    <div class="col-md-12">
                            <img id="associated-plasmid-gif" src="img/cello_associated_plasmid_output.gif">  
+
                        <div class="spacer h40"></div>
                            <figcaption id='associated-plasmid-caption'>The "associated sequences" are visible in Cello's output as part of a separate plasmid.</figcaption>
+
                         <!--NTH: qualità -->
                           
+
                         <img class="video" src="img/videoGIF/intelligene_plus_sequence_highlighter.gif" alt="">
                         </figure>
+
                        <div class="spacer h40"></div>
 +
                    </div>
 +
                </div>
 +
            </section>
 +
        </div>
 +
 
 +
        <div class="simple-page">
 +
            <section class="">
 +
                <div class="container animate-box">
 +
                    <div class="col-md-10 col-md-offset-1">
 +
                         <h3>Gate designer: Saving Elements</h3>
 
                         <p class="sub-lead text-justify">
 
                         <p class="sub-lead text-justify">
                             To know how to use these new gates, Cello requires their response functions.
+
                             Once parts are submitted through the user interface, they are immediately uploaded
                            Since many of these gates would be created at the moment they are needed,
+
                             to the database. After this point they can be suggested to users when they search
                             they might not have experimentally confirmed response functions, but it would
+
                             for the part again.
                            still be important to know how they react. We worked on a model to help
+
                             explain their behavior, which you can find <a href="https://2016.igem.org/Team:EPFL/Model">here</a>.
+
 
                         </p>
 
                         </p>
                         <br>
+
                    </div>
 +
                </div>
 +
            </section>
 +
        </div>
 +
        <div class="centered-page">
 +
            <section class="green">
 +
                <div class="container">
 +
                    <div class="col-md-12">
 +
                         <div class="spacer h40"></div>
 +
                        <!--NTH: qualità -->
 +
                        <img class="video" src="img/videoGIF/intelligene_plus_saving.gif" alt="">
 +
                        <div class="spacer h40"></div>
 +
                    </div>
 +
                </div>
 +
            </section>
 +
        </div>
 +
 
 +
        <div class="simple-page">
 +
            <section class="">
 +
                <div class="container animate-box">
 +
                    <div class="col-md-10 col-md-offset-1">
 +
                        <h3>Gate designer: APIs</h3>
 
                         <p class="sub-lead text-justify">
 
                         <p class="sub-lead text-justify">
                             Cello serves to make the design of synthetic biological genetic circuits easier than ever; our
+
                             intelligene.plus comes with handy APIs, which can be used to call the database from an external source, such as an application like Cello.
                            modifications to Cello continue in the same vein, by making the software more usable, and the  
+
                        </p>
                             information it uses more transferable. Although the impementation of these new features is not
+
                        <pre class="">http://intelligene.plus/<b class="text-success">api</b>/<b class="text-info">apidef</b>?<b>t</b>=typeofdata&<b>query</b>=query&<b>organism</b>=organismName&<b>strain</b>=strainName&<b>format</b>=format</pre>
                             perfect yet – the integration of new genetic material from json files is subject to bugs, and  
+
                        <hr />
                             Cello is not yet connected with intelligene.plus we are working diligently past wiki freeze
+
                        <h6>Example:</h6>
                             to give the synthetic biology community the best tools possible!
+
                        <pre class="">http://intelligene.plus/<b class="text-success">api</b>/<b class="text-info">db</b>?<b>t</b>=pem&<b>query</b>=m&<b>organism</b>=yeast&<b>strain</b>=w303&<b>format</b>=json</pre>
 +
                        <pre>
 +
{"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"
 +
    }
 +
]}
 +
                        </pre>
 +
                    </div>
 +
                </div>
 +
            </section>
 +
        </div>
 +
 
 +
        <div class="simple-page">
 +
            <section class="">
 +
                <div class="container animate-box">
 +
                    <div class="col-md-10 col-md-offset-1 text-center">
 +
                        <h2 class="text-uppercase">Technical specifications</h2>
 +
                        <div class="spacer h20"></div>
 +
                        <hr class="animate-box"/>
 +
                        <div class="spacer h20"></div>
 +
                    </div>
 +
                    <div class="col-md-10 col-md-offset-1">
 +
                        <h3>System requirements</h3>
 +
                        <p class="">
 +
                             The software can run on almost any web server featuring PHP & MySQL.
 +
                        </p>
 +
                        <p class="">
 +
                            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.
 +
                        </p>
 +
                        <p class="">
 +
                             For all practical purposes, it will run on the vast majority of current web hosting offers.
 +
                        </p>
 +
                        <h5>Software Requirements</h5>
 +
 
 +
                        <p>Your web server / web hosting account should have the following software versions:</p>
 +
 
 +
                        <ul>
 +
                            <li> <strong>Linux</strong>: any modern distribution will work. </li>
 +
                            <ul>
 +
                                <li> On shared hosting accounts, you should not even need to worry about this. </li>
 +
                                <li> For dedicated servers, we like to use <a target="_blank" href="https://www.centos.org/">CentOS</a> but RedHat, Debian and others will work just as well. </li>
 +
                                <li> Note: it is possible to run the software on <strong>Windows</strong>, especially for development. This is not an officially supported platform though and we do not recommend it for production servers, especially regarding performance &amp; security.</li>
 +
                                <li> Note: running on <strong>Mac OS X</strong> works fine, especially with a package like MAMP.</li>
 +
                             </ul>
 +
                            <li> <strong>Apache</strong>: version 2.0 or above. </li>
 +
                            <ul>
 +
                                <li> Note: it is possible to run intelligene.plus on <a target="_blank" href="http://www.lighttpd.net/">Lighttpd</a> or <a href="http://nginx.org/">NginX</a> but these are not officially supported configurations and will likely require manual configuration as these servers will not read our <a href="http://intelligene.plus/info/htaccess">.htaccess File</a>.</li>
 +
                            </ul>
 +
                            <li> <strong>MySQL</strong>: version 5.0.3 or above. </li>
 +
                            <ul>
 +
                                <li> InnoDB MUST be enabled (All decent web hosts offer InnoDB)</li>
 +
                                <li> Note: At this point we do not believe that <a target="_blank" href="https://en.wikipedia.org/wiki/Database_abstraction_layer">database abstraction</a> is a practical proposition.</li>
 +
                             </ul>
 +
                            <li> <strong>PHP</strong>: version 5.2 or above. No additional requirements.</li>
 +
                        </ul>
 +
                    </div>
 +
                    <div class="col-md-10 col-md-offset-1">
 +
                        <hr/>
 +
                        <h3>Installation</h3>
 +
                        <p class="">
 +
                            Just download the code from <a href="http://intelligene.plus/info/code">here</a> and put it on a server.
 +
                            Dump the database (<a href="http://intelligene.plus/info/dumpdatabase">link</a>) and then load the index.php.
 +
                            <br/><br/>
 +
                            <kbd>Note that intelligene.plus can be used with no downloads/installations required at <a href="http://intelligeen.plus">www.intelligene.plus</a>.</kbd>
 
                         </p>
 
                         </p>
 
                     </div>
 
                     </div>

Revision as of 22:23, 19 October 2016

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.