Difference between revisions of "Team:USTC-Software/project"

Line 71: Line 71:
 
     <ul>
 
     <ul>
 
         <li><a data-scroll href="#item1" class="focused">Overview</a></li>
 
         <li><a data-scroll href="#item1" class="focused">Overview</a></li>
         <li><a data-scroll href="#item2">Description</a></li>
+
         <li><a data-scroll href="#item2">Motivation</a></li>
         <li><a data-scroll href="#item3">Design</a></li>
+
         <li><a data-scroll href="#item3">BioSearch</a></li>
         <li><a data-scroll href="#item4">Experiments</a></li>
+
         <li><a data-scroll href="#item4">Forum</a></li>
         <li><a data-scroll href="#item5">Outlook</a></li>
+
         <li><a data-scroll href="#item5">Plugins</a></li>
 +
        <li><a data-scroll href="#item6">To be improved</a></li>
 
     </ul>
 
     </ul>
 
</div>
 
</div>
Line 84: Line 85:
 
<div id="team-content" style="border: solid;border-width: 1px;border-color: #e1e1e1; background-color: white;border-radius: 2px;">
 
<div id="team-content" style="border: solid;border-width: 1px;border-color: #e1e1e1; background-color: white;border-radius: 2px;">
 
     <div id="item1" class="item one">
 
     <div id="item1" class="item one">
         <h2 style="text-align: center">Overview</h2>
+
         <h2 style="text-align: center">What is Biohub 2.0?</h2>
        <img src="img/project.png" style="width: 500px;margin: 20px 170px;">
+
 
         <div style="padding: 10px 5px 10px 5px;margin-top: 20px">
 
         <div style="padding: 10px 5px 10px 5px;margin-top: 20px">
             <p>Welcome to BioHub! This is an open and fantastic platform with practical functions for synthetic biologists.
+
             <p>Biohub 2.0 is a synthetic biology community, focusing on more efficient Biobricks information retrieval and more convenient biological ideas sharing. It is constructed on the basis of iGEM's official database. The parts inside are filtered and ordered intelligently, and presented to users in a friendly way. Users can grade the parts they've used, or post critical articles under them and exchange ideas with other users. All the data collected in the community will be used for more accurate ordering.</p>
                For scientists whose goal is to make discoveries in biology,
+
             <p>More than a community, Biohub 2.0 is also a flexible plugin system, which allows users to develop new functions and integrated them into the platform. Plugins will have full access to the community's data, so plugin developers can make further analysis of the parts. It's also welcome to deploy plugins that implement useful synthetic biological algorithms. With this mechanism, new tools and algorithms can be acquainted by other scientists more quickly.</p>
                steps using bioinformatics can be seen as the most basic but rather troublesome part.
+
                To solve this, our team created BioHub. </p>
+
             <p>BioHub is a platform with several plugins,
+
                which means that users can not only employ the functions we provide,
+
                but also develop new and useful ones which can meet their special needs,
+
                without caring for servers and network transmission. Others include Pathway finder,
+
                which means find the correlation among genes, Pano, meaning designing genetic circuits like an artist,
+
                Simulation, which can imitate real experimental circumstances, and other splendid functions. </p>
+
 
         </div>
 
         </div>
  
 
     </div>
 
     </div>
 
     <div id="item2" class="item two">
 
     <div id="item2" class="item two">
         <h2 style="text-align: center">Description</h2>
+
         <h2 style="text-align: center">Motivation</h2>
        <img src="">
+
         <p>The numerous parts provided by iGEM Parts Registry are precious to the biologists, but unfortunately displayed in a terrible way. For synthetic biologists with little or no knowledge about programming, the only approach to access the parts is by submitting the search box on the official pages, which is however too crude to use. The default matching algorithm defies multi-dimensional searching, and the default ordering is just wasting users' time. It's hopeless to get anything useful via this tool. Thus, a software to mine high-quality parts accurately is urgently needed. </p>
         <p>We prepared the Project Page for users to view their projects clearly and manage their projects properly. The Project Page serves as a demonstration of users’ projects and others’ comments. </p>
+
         <p>With the data dumped from iGEM Parts Registry, which contains information like sample status or used times, the parts can be roughly ranked. But further ranking can only be accomplished after experiments are done, which requires the assistance from the whole community. Such feedback mechanism does exist in iGEM Parts Registry, which is called Experiences, but is seldom used probably because of its hard-to-use interface. We think a user-friendly forum centred on Biobricks is necessary, where users can grade the parts they've used, or share experiences with other scholars. The forum on the one hand complements the data used for more accurate ranking, and on the other hand provides a platform for idea exchanging.</p>
         <p>On the page, you can see detailed information of the projects, such as name, author, state, thumbnail, update time, etc. </p>
+
        <p>The parts data can be used for various purposes, but apparently we are not able to achieve all of them. In consideration of this, we decide to make our software extensible. Developers with ideas to better make use of the data may develop their own plugins, and embed them into the software. With the help of forum, such plugins will be acquainted quickly, and accelerate the development of synthetic biology.</p>
 
     </div>
 
     </div>
 
     <div id="item3" class="item three">
 
     <div id="item3" class="item three">
         <h2 style="text-align: center">Design</h2>
+
         <h2 style="text-align: center">BioSearch</h2>
         <img src="">
+
         <p>BioSearch is a powerful search engine against Biobricks, with high performance and great accuracy. It's one of the core part of Biohub 2.0. You can access it via the search box on th top:</p>
         <p>In a word, users can manage their works in the Project System, communicate with others in the Communication System, create or edit biological maps or networks in the Pano Unit, do functional works in the Plugin Unit. All these are based on our users-friendly UI Framework. </p>
+
        <p><img src="https://static.igem.org/mediawiki/2017/7/74/Biosearch-header.png" alt=""></p>
         <p>Generally, our front-end is based on Google Chrome Explorer, using Material Design Standard as the framework of display, and, jQuery and D3 as the framework of visualization. Our basis and frameworks provide a clear view, and if more, rich environment for responsiveness. These features provide a great experience for users and meet the demand of functional usages properly. </p>
+
         <p>Just type anything you want to learn about a part and press Enter, in less than one second you will get the results:</p>
 +
        <p><img src="https://static.igem.org/mediawiki/2017/5/5c/Biosearch-result.png" alt=""></p>
 +
        <p>The bricks are ordered by their qualities and creation date, which means you are always able to get the best and latest one to meet your need. The quality of bricks are ranked by several factors, including frequency of use, sample status, and assessments from users in forum, and so on. Each brick is displayed with a progress bar at the right bottom corner, which represents the relative ranking.</p>
 +
        <p>BioSearch supports multi-dimensional filtering. You can use `t:&lt;type&gt;` to limit the type of bricks:</p>
 +
        <p><img src="https://static.igem.org/mediawiki/2017/f/f6/Biosearch-type-limit.png" alt=""></p>
 +
        <p>or use `n:&lt;part name&gt;` to precisely locate a brick using its name:</p>
 +
        <p><img src="https://static.igem.org/mediawiki/2017/c/c9/Biosearch-limit-name.png" alt=""></p>
 +
        <p>or add an `h:` filter to mark out the matched words:</p>
 +
        <p><img src="https://static.igem.org/mediawiki/2017/f/f8/Biosearch-hl.png" alt=""></p>
 +
        <p>Multiple filters can also be combined to make complex query:</p>
 +
        <p><img src="https://static.igem.org/mediawiki/2017/f/fe/Biosearch-combine.png" alt=""></p>
 +
        <p>For each brick, Biohub will automatically fetch its relevant data from iGEM's offical website, and keep them updated. Biohub owns the same data as iGEM Parts Registry, but organizes and displays them in a much neater way. You may learn more details of a specific brick by clicking its part name:</p>
 +
        <p><img src="https://static.igem.org/mediawiki/2017/2/24/Biosearch-detail.png" alt=""></p>
 +
         <p>The meta table contains basic information of a brick. Initially it is folded, but you can expand it by clicking its header:</p>
 +
        <p><img src="https://static.igem.org/mediawiki/2017/5/5e/Biosearch-meta-combine.png" alt=""></p>
 +
        <p>By clicking "Documantation", you can view the full description of a brick:</p>
 +
        <p><img src="https://static.igem.org/mediawiki/2017/8/8b/Biosearch-doc.png" alt=""></p>
 +
        <p>At the top right corner of the page, you will find a circular graph, which illustrates the structure of the brick. Each arc represents a special sequence part, arranged based on its position relative to the brick. You can learn more information by moving your mouse onto them:</p>
 +
        <p><img src="https://static.igem.org/mediawiki/2017/1/13/Biosearch-seq.png" alt=""></p>
 +
        <p>For those sequences that are also bricks (called subparts), clicking on them will direct you their detail pages.</p>
 +
        <p>If a brick contains subparts, they will be displayed at the bottom of the page as well:</p>
 +
        <p><img src="https://static.igem.org/mediawiki/2017/4/4f/Biosearch-subparts.png" alt=""></p>
 
     </div>
 
     </div>
 
     <div id="item4" class="item four">
 
     <div id="item4" class="item four">
         <h2 style="text-align: center">Experiments</h2>
+
         <h2 style="text-align: center">Forum</h2>
         <img src="">
+
         <p>Forum is another essential constituent part of Biohub 2.0. It establishes a platform where users can share and discuss their experience. "Experience" is the core concept of Forum. An experience is an article belongs to a specific brick, stating experiment phenomenon and/or providing improvement advices. To post an experience, just click the button on the detail page:</p>
         <p>Our development is based on Git version control with multiple branches. All pushed commits will be automatically tested on our test server at once so that we can see the result soon. Besides unit tests, our test server will also process code analyzing to prevent fault codes and ensure that all classes and functions are well documented. When all is done, the new docker image will be generated automatically on DockerHub so that anyone can install and run our program with only one command. </p>
+
        <p><img src="https://static.igem.org/mediawiki/2017/5/59/Forum-post.png" alt=""></p>
         <p>Continuous integration and deployment ensure that we can fix bugs at the first time it appears. Unit tests ensure that our software performs all its intended function. </p>
+
         <p>Experiences use Markdown for typography, so you can use few easy-to-remember tags to format your article:</p>
 +
        <p><img src="https://static.igem.org/mediawiki/2017/b/bd/Forum-write.png" alt=""></p>
 +
        <p>After submitting, your experience will then be displayed on the brick's detail page.</p>
 +
        <p>You may vote for an experience if you find it great enough:</p>
 +
        <p><img src="https://static.igem.org/mediawiki/2017/e/e6/Forum-vote.png" alt=""></p>
 +
        <p>Or if you disagree with the author, you may leave a comment:</p>
 +
        <p><img src="https://static.igem.org/mediawiki/2017/e/e1/Forum-comment.png" alt=""></p>
 +
        <p>The idea of sharing experiences are actually inspired by iGEM's offical website, which also has a similar submodule. Few articles have already existed on the website, which we think is a kind of valuable resources. Thus Forum will grab down and display those experiences while fetching data from iGEM, and make a refresh per 10 days to keep them up-to-date.</p>
 +
        <p>Apart from experience sharing, Forum also allows you to interact with the bricks:</p>
 +
        <p><img src="https://static.igem.org/mediawiki/2017/5/5c/Forum-actions.png" alt=""></p>
 +
        <p>There are three kinds of actions related to bricks:</p>
 +
        <ul>
 +
            <li><hard>Rate</hard> You can grade a brick (0 ~ 5 points) according to your own using experience.</li>
 +
            <li><hard>Watch</hard> If you watch a brick, you will receive notifications when other users post experiences. Events related to the brick will also appear on your timeline.</li>
 +
            <li><hard>Star</hard> Star is in a sense a kind of mark. If you meet an interesting brick but have no time to skim through its document, you can just star it for later viewing.</li>
 +
        </ul>
 +
        <p>Forum calculates the popularity of bricks in real time. The most popular ones will be displayed on the home page:</p>
 +
        <p><img src="https://static.igem.org/mediawiki/2017/a/a6/Forum-pop.png" alt=""></p>
 +
         <p>Plenty of data will be generated in Forum every day, and Biohub will use them to correct the deviation of bricks ranking. For every 30 minutes, the system will recalculate quality of the bricks with the help of data such as star numbers or popularity.</p>
 
     </div>
 
     </div>
 
     <div id="item5" class="item five">
 
     <div id="item5" class="item five">
         <h2 style="text-align: center">Outlook</h2>
+
         <h2 style="text-align: center">Plugin System</h2>
         <img src="">
+
         <p>From the very beginning, Biohub 2.0 is designed as a plugin system. Such idea is originated from the project of USTC-Software 2016, which had a defective plugin system. Compared with theirs, the plugin system of Biohub 2.0 has these new features:</p>
         <p>Since our project is a software designed for synthetic biologists to simplify their work as well as give them effective auxiliary, there are undoubtedly dozens of chances of this software to be improved, just like the previous work 'Biopano'. In the future, we will upgrade our program in order to implement more functions as well as enhance the current ones. For example, we may enable the 'Pathway finder' module to find the strength of the connection between genes, which our software cannot do this at present. Meanwhile, we will introduce our software and its background to our juniors to attract them to join us and to participate in the following iGEM competitions. </p>
+
        <ul>
 +
            <li><strong>Hot Reloadable</strong> All components of Biohub 2.0 are designed to be self-reloadable, which means servers need not to be restarted while installing or uninstalling plugins.</li>
 +
            <li><strong>More Utilities</strong> Biohub 2.0 encapsulates varieties of modules to simplify plugin development, including URL routing, background tasks, websocket dispatching, file handling, and so on.</li>
 +
            <li><strong>Full Access to the System</strong> Biohub 2.0 doesn't have sand-box mechanism, which means plugins can take all advantages of th operating system. But uploaded plugins should be checked manually by us as a consideration of security.</li>
 +
        </ul>
 +
        <p>By default, Biohub 2.0 carries 3 plugins, you can find them in the "Plugins" page.</p>
 +
        <h3>BioMap</h3>
 +
        <p>As a demonstration of how to use bricks data in plugins, we build BioMap. BioMap is a gadget to analyze the relationship between different bricks. Simply type the brick name you want to analyze and click the corresponding button, a graph will be shown to visualize the relationship:</p>
 +
        <p><img src="https://static.igem.org/mediawiki/2017/5/5e/Biomap-1.png" alt=""></p>
 +
         <p>Since the result set may be very large in reversed relationship querying, we will compress them by only displaying a portion of them as you can see.</p>
 +
        <p>You can select the nodes inside to perform further analysis:</p>
 +
        <p><img src="https://static.igem.org/mediawiki/2017/5/5d/Biomap-2.png" alt=""></p>
 +
        <p>BioMap have preprocessed and cached the relationship network while deploying, so it will not consume much time to accomplish the analysis.</p>
 +
        <h3>ABACUS</h3>
 +
        <p>ABACUS is a tool to design amino acid sequence from a given protein. Proteins are specified in Protein Data Bank format. The uploaded <code>.pdb</code> will be evaludated by simulated annealing algorithm, and another <code>.pdb</code> file representing the result will be returned. To upload a sample, simply click the "Upload and Compute" button and choose the file:</p>
 +
        <p><img src="https://static.igem.org/mediawiki/2017/e/e5/Plugin-abacus-upload.png" alt=""></p>
 +
        <p>The computation will take several minutes to accomplish. You may browse other pages during this time, and an notification will be sent after the task done. ABACUS will visualize the structure of the result:</p>
 +
        <p><img src="https://static.igem.org/mediawiki/2017/e/e0/Plugin-abacus-result.png" alt=""></p>
 +
        <p>Such design process is a computation intensive work, so ABACUS may not be able to handle certain samples due to memory limitation. By then a notification will be sent to inform you of the failure.</p>
 +
        <h3>BioCircuit</h3>
 +
        <p>The design of robust and sensitive biological circuit are always bothering. To rationally design synthetic gene circuits with specific functions, we write BioCircuit. The plugin is an adpatation of the project BioBLESS developed by USTC-Software 2015, with the ability to design digital circuit, biological circuit as well as analyze the performance of them.</p>
 +
    </div>
 +
    <div id="item6" class="item six">
 +
        <h2 style="text-align: center">To Be Improved</h2>
 +
        <p>As an upgrade version of Biohub 1.0, we've achieved quite a lot, but there's still something imperfect, due to technical or time limitation. One is that users cannot upload their own plugins freely as a consideration of security. We will try to add sand-box mechanism in the future, whilst still providing enough freedom for plugins. Another is that the project lacks a scaffold for plugin developers, which may confuse them while setting up developing environment. Also, the plugin system lacks a detailed documantation for developers. We will keep updating the repository and gradually fill these blanks in the future.</p>
 
     </div>
 
     </div>
 
</div>
 
</div>
Line 138: Line 193:
  
 
</style>
 
</style>
 +
 
</body>
 
</body>
 
</html>
 
</html>

Revision as of 06:10, 25 October 2017

Team

What is Biohub 2.0?

Biohub 2.0 is a synthetic biology community, focusing on more efficient Biobricks information retrieval and more convenient biological ideas sharing. It is constructed on the basis of iGEM's official database. The parts inside are filtered and ordered intelligently, and presented to users in a friendly way. Users can grade the parts they've used, or post critical articles under them and exchange ideas with other users. All the data collected in the community will be used for more accurate ordering.

More than a community, Biohub 2.0 is also a flexible plugin system, which allows users to develop new functions and integrated them into the platform. Plugins will have full access to the community's data, so plugin developers can make further analysis of the parts. It's also welcome to deploy plugins that implement useful synthetic biological algorithms. With this mechanism, new tools and algorithms can be acquainted by other scientists more quickly.

Motivation

The numerous parts provided by iGEM Parts Registry are precious to the biologists, but unfortunately displayed in a terrible way. For synthetic biologists with little or no knowledge about programming, the only approach to access the parts is by submitting the search box on the official pages, which is however too crude to use. The default matching algorithm defies multi-dimensional searching, and the default ordering is just wasting users' time. It's hopeless to get anything useful via this tool. Thus, a software to mine high-quality parts accurately is urgently needed.

With the data dumped from iGEM Parts Registry, which contains information like sample status or used times, the parts can be roughly ranked. But further ranking can only be accomplished after experiments are done, which requires the assistance from the whole community. Such feedback mechanism does exist in iGEM Parts Registry, which is called Experiences, but is seldom used probably because of its hard-to-use interface. We think a user-friendly forum centred on Biobricks is necessary, where users can grade the parts they've used, or share experiences with other scholars. The forum on the one hand complements the data used for more accurate ranking, and on the other hand provides a platform for idea exchanging.

The parts data can be used for various purposes, but apparently we are not able to achieve all of them. In consideration of this, we decide to make our software extensible. Developers with ideas to better make use of the data may develop their own plugins, and embed them into the software. With the help of forum, such plugins will be acquainted quickly, and accelerate the development of synthetic biology.

BioSearch

BioSearch is a powerful search engine against Biobricks, with high performance and great accuracy. It's one of the core part of Biohub 2.0. You can access it via the search box on th top:

Just type anything you want to learn about a part and press Enter, in less than one second you will get the results:

The bricks are ordered by their qualities and creation date, which means you are always able to get the best and latest one to meet your need. The quality of bricks are ranked by several factors, including frequency of use, sample status, and assessments from users in forum, and so on. Each brick is displayed with a progress bar at the right bottom corner, which represents the relative ranking.

BioSearch supports multi-dimensional filtering. You can use `t:<type>` to limit the type of bricks:

or use `n:<part name>` to precisely locate a brick using its name:

or add an `h:` filter to mark out the matched words:

Multiple filters can also be combined to make complex query:

For each brick, Biohub will automatically fetch its relevant data from iGEM's offical website, and keep them updated. Biohub owns the same data as iGEM Parts Registry, but organizes and displays them in a much neater way. You may learn more details of a specific brick by clicking its part name:

The meta table contains basic information of a brick. Initially it is folded, but you can expand it by clicking its header:

By clicking "Documantation", you can view the full description of a brick:

At the top right corner of the page, you will find a circular graph, which illustrates the structure of the brick. Each arc represents a special sequence part, arranged based on its position relative to the brick. You can learn more information by moving your mouse onto them:

For those sequences that are also bricks (called subparts), clicking on them will direct you their detail pages.

If a brick contains subparts, they will be displayed at the bottom of the page as well:

Forum

Forum is another essential constituent part of Biohub 2.0. It establishes a platform where users can share and discuss their experience. "Experience" is the core concept of Forum. An experience is an article belongs to a specific brick, stating experiment phenomenon and/or providing improvement advices. To post an experience, just click the button on the detail page:

Experiences use Markdown for typography, so you can use few easy-to-remember tags to format your article:

After submitting, your experience will then be displayed on the brick's detail page.

You may vote for an experience if you find it great enough:

Or if you disagree with the author, you may leave a comment:

The idea of sharing experiences are actually inspired by iGEM's offical website, which also has a similar submodule. Few articles have already existed on the website, which we think is a kind of valuable resources. Thus Forum will grab down and display those experiences while fetching data from iGEM, and make a refresh per 10 days to keep them up-to-date.

Apart from experience sharing, Forum also allows you to interact with the bricks:

There are three kinds of actions related to bricks:

  • Rate You can grade a brick (0 ~ 5 points) according to your own using experience.
  • Watch If you watch a brick, you will receive notifications when other users post experiences. Events related to the brick will also appear on your timeline.
  • Star Star is in a sense a kind of mark. If you meet an interesting brick but have no time to skim through its document, you can just star it for later viewing.

Forum calculates the popularity of bricks in real time. The most popular ones will be displayed on the home page:

Plenty of data will be generated in Forum every day, and Biohub will use them to correct the deviation of bricks ranking. For every 30 minutes, the system will recalculate quality of the bricks with the help of data such as star numbers or popularity.

Plugin System

From the very beginning, Biohub 2.0 is designed as a plugin system. Such idea is originated from the project of USTC-Software 2016, which had a defective plugin system. Compared with theirs, the plugin system of Biohub 2.0 has these new features:

  • Hot Reloadable All components of Biohub 2.0 are designed to be self-reloadable, which means servers need not to be restarted while installing or uninstalling plugins.
  • More Utilities Biohub 2.0 encapsulates varieties of modules to simplify plugin development, including URL routing, background tasks, websocket dispatching, file handling, and so on.
  • Full Access to the System Biohub 2.0 doesn't have sand-box mechanism, which means plugins can take all advantages of th operating system. But uploaded plugins should be checked manually by us as a consideration of security.

By default, Biohub 2.0 carries 3 plugins, you can find them in the "Plugins" page.

BioMap

As a demonstration of how to use bricks data in plugins, we build BioMap. BioMap is a gadget to analyze the relationship between different bricks. Simply type the brick name you want to analyze and click the corresponding button, a graph will be shown to visualize the relationship:

Since the result set may be very large in reversed relationship querying, we will compress them by only displaying a portion of them as you can see.

You can select the nodes inside to perform further analysis:

BioMap have preprocessed and cached the relationship network while deploying, so it will not consume much time to accomplish the analysis.

ABACUS

ABACUS is a tool to design amino acid sequence from a given protein. Proteins are specified in Protein Data Bank format. The uploaded .pdb will be evaludated by simulated annealing algorithm, and another .pdb file representing the result will be returned. To upload a sample, simply click the "Upload and Compute" button and choose the file:

The computation will take several minutes to accomplish. You may browse other pages during this time, and an notification will be sent after the task done. ABACUS will visualize the structure of the result:

Such design process is a computation intensive work, so ABACUS may not be able to handle certain samples due to memory limitation. By then a notification will be sent to inform you of the failure.

BioCircuit

The design of robust and sensitive biological circuit are always bothering. To rationally design synthetic gene circuits with specific functions, we write BioCircuit. The plugin is an adpatation of the project BioBLESS developed by USTC-Software 2015, with the ability to design digital circuit, biological circuit as well as analyze the performance of them.

To Be Improved

As an upgrade version of Biohub 1.0, we've achieved quite a lot, but there's still something imperfect, due to technical or time limitation. One is that users cannot upload their own plugins freely as a consideration of security. We will try to add sand-box mechanism in the future, whilst still providing enough freedom for plugins. Another is that the project lacks a scaffold for plugin developers, which may confuse them while setting up developing environment. Also, the plugin system lacks a detailed documantation for developers. We will keep updating the repository and gradually fill these blanks in the future.