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

Line 15: Line 15:
  
 
   <div id="autoMenu2" class="autoMenu2"></div>
 
   <div id="autoMenu2" class="autoMenu2"></div>
  <div class="container">
+
<div class="container">
 
     <div class="row">
 
     <div class="row">
 
       <!--    <div class="col-lg-2 col-md-0">-->
 
       <!--    <div class="col-lg-2 col-md-0">-->
Line 82: Line 82:
 
             <div class="text-center psgImg">
 
             <div class="text-center psgImg">
 
               <img src="https://static.igem.org/mediawiki/2019/e/e6/T--USTC-Software--design_usingMessageQueue.png" alt="">
 
               <img src="https://static.igem.org/mediawiki/2019/e/e6/T--USTC-Software--design_usingMessageQueue.png" alt="">
               <p>Using Message Queue to split computing process</p>
+
               <p style="color:#B6B4B4">Using Message Queue to split computing process</p>
 
             </div>
 
             </div>
 
             <div class="passage">
 
             <div class="passage">
Line 114: Line 114:
 
             </div>
 
             </div>
 
             <div class="text-center psgImg">
 
             <div class="text-center psgImg">
               <img src="https://static.igem.org/mediawiki/2019/b/bc/T--USTC-Software--design-1m.png" alt="">
+
               <img src="https://static.igem.org/mediawiki/2019/b/bc/T--USTC-Software--design-1m.png" alt="" style="max-height:500px;width:auto">
               <p>Preliminary product design</p>
+
               <p style="color:#B6B4B4">Preliminary product design</p>
 
             </div>
 
             </div>
 
             <h4>Mid-term: A Change of Emphasis</h4>
 
             <h4>Mid-term: A Change of Emphasis</h4>
Line 134: Line 134:
 
             </div>
 
             </div>
 
             <div class="text-center psgImg">
 
             <div class="text-center psgImg">
               <img src="https://static.igem.org/mediawiki/2019/5/54/T--USTC-Software--design-2m.png" alt="">
+
               <img src="https://static.igem.org/mediawiki/2019/5/54/T--USTC-Software--design-2m.png" style="max-height:500px;width:auto">
               <p>Change of emphasis</p>
+
               <p style="color:#B6B4B4">After a change of emphasis</p>
 
             </div>
 
             </div>
 
             <h4>CCiC: A giant improvement</h4>
 
             <h4>CCiC: A giant improvement</h4>
 
             <div class="text-center psgImg">
 
             <div class="text-center psgImg">
 
               <img src="https://static.igem.org/mediawiki/2019/d/dc/T--USTC-Software--design_conference.jpg" alt="">
 
               <img src="https://static.igem.org/mediawiki/2019/d/dc/T--USTC-Software--design_conference.jpg" alt="">
               <p>6th Conference of China iGEMer Community</p>
+
               <p style="color:#B6B4B4">6th Conference of China iGEMer Community</p>
 
             </div>
 
             </div>
 
             <div class="passage">
 
             <div class="passage">
Line 150: Line 150:
 
             </div>
 
             </div>
 
             <div class="text-center psgImg">
 
             <div class="text-center psgImg">
               <img src="https://static.igem.org/mediawiki/2019/5/5c/T--USTC-Software--design-3m.png" alt="">
+
               <img src="https://static.igem.org/mediawiki/2019/5/5c/T--USTC-Software--design-3m.png" style="max-height:500px;width:auto">
               <p>A platform with our useful tools</p>
+
               <p style="color:#B6B4B4">A platform with our useful tools</p>
 
             </div>
 
             </div>
 
             <h3>Service</h3>
 
             <h3>Service</h3>
Line 170: Line 170:
 
             <div class="text-center psgImg">
 
             <div class="text-center psgImg">
 
               <img src="https://static.igem.org/mediawiki/2019/c/cc/T--USTC-Software--design_searching.png" alt="">
 
               <img src="https://static.igem.org/mediawiki/2019/c/cc/T--USTC-Software--design_searching.png" alt="">
               <p>searching with keyword ‘ecoli’</p>
+
               <p style="color:#B6B4B4">Searching with keyword ‘ecoli’</p>
 
             </div>
 
             </div>
 
             <h3>Technology</h3>
 
             <h3>Technology</h3>

Revision as of 22:37, 21 October 2019

Design

Overview of ForeSyn

USTC-ForeSyn

Principles

Balance

When we are developing Foresyn, we discovered that there is a contradiction between speed and accuracy. So our strategy is to use slow but accurate algorithm when searching small datasets, and use fast but less accurate algorithm when searching large ones.

User-friendly

To be easily used by users who do not know command line thingy, we designed a high-level framework to lessen the needless works while building models. Also, our databases have been customized with biological logic.

Concise and Clear


The user can easily see the model built, edit owned model with a concise interface, and get a clear overview of the analysis output with the graph generated by our software.

Being A Platform

After building customized model and getting the output of analysis, user can easily share it to others with the unique codes generated to represent the very model. In the page of one model, others can comment, rank, and also add it to his favorites.

Lasting Support

Other than the teams who close their service after the competition, we had decided to offer a lasting support with the cloud server rented for a long time.

Split Computing Process

Our website requires computing large models, and it is quite embarrassing to see users waiting for browsers for so long, so we use message queues to maintain computing tasks.

Using Message Queue to split computing process

We split our programs computing models from our website and use message queues to send and receive information about our computation. A queue is a data structure that stores things waiting to be handled, and it obeys the "First Come, First Serve" principle. So, we can store our computing tasks in the queue, and response to users instantly about the progress of his tasks.

Iterations

The iterations of our project were linked closely with our Human Practice works. As we showed clearly in the page of our HP work, our project has been modified and improved again and again. The whole process is as follows:

Preliminary product design

After the visit to Huaheng Biotech and acknowledging the problems faced in the real world, we went to have a meeting with our PI, professor Jiong Hong, who informed us about the existence of FBA. Then we had some investigation about FBA, only to find that all existing tools at that time lack the ease of use despite the beauty of its method. It first came into our mind to build a great FBA tool that meets the requirements of real production environments.

We proposed a revolutionary work flow that would greatly improve efficiency and decrease the complexity of using. In other words, we designed a high-level framework to automatically solve many inner logics and thus simplify the process of analysis.

We first considered to support a wild and customized searching function based on the optimization of databases. After a job done by UESTC-Software in 2018, we wanted to do some upgrade of the scale and the usability of databases, so we did some investigations and documented the defects found in the existing tools.

Preliminary product design

Mid-term: A Change of Emphasis

However, our idea hadn’t been fully approved by the SYSU team and their professor. In the meetup with SYSU team in Guangzhou, China, we introduced our projects to each other. At that time, we devoted ourselves to optimize our database which was at a great scale and then linking the output to FBA’s input. They put forward that out idea about optimizing massive databases was not targeted for Synthetic Biology. In other words, there was a bias in our aim, for the work done to optimize the databases will distract us to design FBA workflow and its efficiency.

Also, Yonghao Liang, a senior iGEMer of USTC, raised a question that whether we can provide a recommendation of Biobricks when the user end up building his models. For example, if modifications and analysis had been done to the user's model based on E. coli, the researcher can immediately be acknowledged by our system which Biobricks he or she can use. After more discussion, we found it would be a useful function, so we decided to append our system with a micro recommendation system for proper Biobricks.

After a change of emphasis

CCiC: A giant improvement

6th Conference of China iGEMer Community

CCic, which stands for the Conference of China iGEMer Community, is the biggest synthetic biology conference in China. This year we had a wonderful time there in Shenzhen. We did presentations and our idea was evaluated by many experts and lovers in the field of synthetic biology. There we were encouraged to expand our project to a platform, using which users can share their models, see the history of modifying, and comment on the model pages. It enriched our project, made it closer to a mature one.

A platform with our useful tools

Service

Cloud Server

We had the computing server rent from DigitalOcean, with great computing power to support our service.

Search

With the aimed & customized databases, we offer a great global search tools in our product.

User can use it to search for Models, Genes, Metabolites, and Reactions.

Searching with keyword ‘ecoli’

Technology

Cobrapy - Constraint-Based Reconstruction and Analysis in Python

COBRA methods are widely used for genome-scale modeling of metabolic networks in both prokaryotes and eukaryotes. cobrapy is a constraint-based modeling package that is designed to accommodate the biological complexity of the next generation of COBRA models and provides access to commonly used COBRA methods, such as flux balance analysis, flux variability analysis, and gene deletion analyses.

Elastic Search

Elasticsearch is a search engine based on the Lucene library. It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents.

References

  • 1. https://www.digitalocean.com
  • 2. https://github.com/opencobra/cobrapy
  • 3. https://www.elastic.co/
  • 4. https://www.redhat.com/en/technologies/linux-platforms/openstack-platform