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

(Prototype team page)
 
Line 1: Line 1:
{{USTC-Software}}
+
{{USTC-Software/html/header}}
 +
 
 
<html>
 
<html>
  
<div class="column full_size">
+
  <link href="https://2019.igem.org/Template:USTC-Software/css/default?action=raw&ctype=text/css" rel="stylesheet"
<h1>Design</h1>
+
    type="text/css" />
<p>
+
  <link href="https://2019.igem.org/Template:USTC-Software/css/bootstrap?action=raw&ctype=text/css" rel="stylesheet"
Design is the first step in the design-build-test cycle in engineering and synthetic biology. Use this page to describe the process that you used in the design of your parts. You should clearly explain the engineering principles used to design your project.
+
    type="text/css" />
</p>
+
  <script src="https://2019.igem.org/Template:USTC-Software/js/jquery?action=raw&ctype=text/javascript"
 +
    type="text/javascript"></script>
 +
  <script src="https://2019.igem.org/Template:USTC-Software/js/popper?action=raw&ctype=text/javascript"
 +
    type="text/javascript"></script>
 +
  <script src="https://2019.igem.org/Template:USTC-Software/js/bootstrap?action=raw&ctype=text/javascript"
 +
    type="text/javascript"></script>
  
 +
  <div id="autoMenu2" class="autoMenu2"></div>
 +
  <div class="container">
 +
    <div class="row">
 +
      <!--    <div class="col-lg-2 col-md-0">-->
 +
      <!--      <div class="autoMenu d-none d-lg-block" data-autoMenu id="autoMenu"></div>-->
 +
      <!--    </div>-->
 +
      <div class="col-lg-12 col-md-12">
 +
        <div class="card page-content">
 +
          <div class="card-body">
 +
            <h1 class="text-center">Design</h1>
 +
            <h3>Overview of ForeSyn</h3>
 +
            <div class="text-center psgImg">
 +
              <img src="https://static.igem.org/mediawiki/2019/4/44/T--USTC-Software--design_APlatform.png" alt="">
 +
              <p>Figure: USTC-ForeSyn</p>
 +
            </div>
 +
            <h3>Principles</h3>
 +
            <h4>Balance</h4>
 +
            <div class="passage">
 +
              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.
 +
            </div>
 +
            <h4>User-friendly</h4>
 +
            <div class="passage">
 +
              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.
 +
            </div>
 +
            <div class="text-center psgImg">
 +
              <img src="https://static.igem.org/mediawiki/2019/0/0d/T--USTC-Software--design_noCommandLine.png" alt="">
 +
              <p>Figure: No command line</p>
 +
            </div>
 +
            <h4>Concise and Clear</h4>
 +
            <div class="text-center psgImg">
 +
              <img src="https://static.igem.org/mediawiki/2019/f/f7/T--USTC-Software--design_whatYouSee.png" alt="">
 +
              <p>Figure: What you see is what you get:</p>
 +
            </div>
 +
            <div class="passage">
 +
              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.
 +
            </div>
 +
            <div class="text-center psgImg">
 +
              <img src="https://static.igem.org/mediawiki/2019/a/af/T--USTC-Software--des_feature_lesson.svg" alt="">
 +
              <p>Figure:Lessen needless works</p>
 +
            </div>
 +
            <h4>Being A Platform</h4>
 +
            <div class="passage">
 +
              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.
 +
            </div>
 +
            <div class="text-center psgImg">
 +
              <img src="https://static.igem.org/mediawiki/2019/c/c6/T--USTC-Software--design_beingAPlatform.png" alt="">
 +
              <p>Figure: Being a platform</p>
 +
            </div>
 +
            <h4>Lasting Support</h4>
 +
            <div class="passage">
 +
              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.
 +
            </div>
 +
            <h4>Split Computing Process</h4>
 +
            <div class="passage">
 +
              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.
 +
            </div>
 +
            <div class="text-center psgImg">
 +
              <img src="https://static.igem.org/mediawiki/2019/e/e6/T--USTC-Software--design_usingMessageQueue.png" alt="">
 +
              <p>Figure: Using Message Queue to split computing process</p>
 +
            </div>
 +
            <div class="passage">
 +
              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.
 +
            </div>
 +
            <h3>Iterations</h3>
 +
            <div class="passage">
 +
              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:
 +
            </div>
 +
            <h4>Preliminary product design</h4>
 +
            <div class="passage">
 +
              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.
 +
              <br><br>
 +
              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.
 +
              <br><br>
 +
              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.
 +
            </div>
 +
            <div class="text-center psgImg">
 +
              <img src="https://static.igem.org/mediawiki/2019/f/f3/T--USTC-Software--design_preliminary.png" alt="">
 +
              <p>Figure: Preliminary product design</p>
 +
            </div>
 +
            <h4>Mid-term: A Change of Emphasis</h4>
 +
            <div class="passage">
 +
              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.
 +
              <br><br>
 +
              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.
 +
            </div>
 +
            <div class="text-center psgImg">
 +
              <img src="https://static.igem.org/mediawiki/2019/b/b3/T--USTC-Software--design_change.png" alt="">
 +
              <p>Figure: Change of emphasis</p>
 +
            </div>
 +
            <h4>CCiC: A giant improvement</h4>
 +
            <div class="text-center psgImg">
 +
              <img src="https://static.igem.org/mediawiki/2019/d/dc/T--USTC-Software--design_conference.jpg" alt="">
 +
              <p>Figure: 6th Conference of China iGEMer Community</p>
 +
            </div>
 +
            <div class="passage">
 +
              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.
 +
            </div>
 +
            <div class="text-center psgImg">
 +
              <img src="https://static.igem.org/mediawiki/2019/4/44/T--USTC-Software--design_APlatform.png" alt="">
 +
              <p>Figure: A platform with our useful tools</p>
 +
            </div>
 +
            <h3>Service</h3>
 +
            <h4>Cloud Server</h4>
 +
            <div class="passage">
 +
              We had the computing server rent from DigitalOcean, with great computing power to support our service.
 +
            </div>
 +
            <div class="text-center psgImg">
 +
              <img src="https://static.igem.org/mediawiki/2019/5/55/T--USTC-Software--design_digitalOcean.png" alt="">
 +
              <p>Figure:DigitalOcean</p>
 +
            </div>
 +
            <h4>Search</h4>
 +
            <div class="passage">
 +
              With the aimed & customized databases, we offer a great global search tools in our product.
 +
              <br><br>
 +
              User can use it to search for Models, Genes, Metabolites, and Reactions.
 +
            </div>
 +
            <div class="text-center psgImg">
 +
              <img src="https://static.igem.org/mediawiki/2019/c/cc/T--USTC-Software--design_searching.png" alt="">
 +
              <p>Figure: searching with keyword ‘ecoli’</p>
 +
            </div>
 +
            <h3>Technology</h3>
 +
            <h4>Cobrapy - Constraint-Based Reconstruction and Analysis in Python</h4>
 +
            <div class="passage">
 +
              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.
 +
            </div>
 +
            <h4>Elastic Search</h4>
 +
            <div class="passage">
 +
              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.
 +
            </div>
 +
            <div class="text-center psgImg">
 +
              <img src="https://static.igem.org/mediawiki/2019/f/ff/T--USTC-Software--design_elasticsearch.png" alt="">
 +
              <p>Figure: Elasticsearch</p>
 +
            </div>
 +
            <h2 class="ref">References</h2>
 +
            <div class="ref-list">
 +
              <ul>
 +
                <li>1. https://www.digitalocean.com</li>
 +
                <li>2. https://github.com/opencobra/cobrapy</li>
 +
                <li>3. https://www.elastic.co/</li>
 +
                <li>4. https://www.redhat.com/en/technologies/linux-platforms/openstack-platform</li>
 +
              </ul>
 +
            </div>
 +
          </div>
 +
        </div>
 +
      </div>
 +
    </div>
  
</div>
 
  
 +
  </div>
 +
  <!--autoMenu css and js files, generate Menu of each article-->
 +
  <!--<link href="https://2019.igem.org/Template:USTC-Software/css/autoMenu?action=raw&ctype=text/css" rel="stylesheet">-->
 +
  <!--<script src="https://2019.igem.org/Template:USTC-Software/js/autoMenu?action=raw&ctype=text/javascript"></script>-->
  
 +
  <!--autoMenu css and js files, generate Menu of each article-->
 +
  <link href="https://2019.igem.org/Template:USTC-Software/css/autoMenu2?action=raw&ctype=text/css" rel="stylesheet">
 +
  <script src="https://2019.igem.org/Template:USTC-Software/js/autoMenu2?action=raw&ctype=text/javascript"></script>
  
<div class="column two_thirds_size">
+
  <!--scrollBar js. when scroll down, a cat will be there-->
<h3>What should this page contain?</h3>
+
  <script src="https://2019.igem.org/Template:USTC-Software/js/addScrollBar?action=raw&ctype=text/javascript"></script>
<ul>
+
<li>Explanation of the engineering principles your team used in your design</li>
+
<li>Discussion of the design iterations your team went through</li>
+
<li>Experimental plan to test your designs</li>
+
</ul>
+
  
</div>
+
  <!-- make content Menu fixed-->
 +
  <script src="https://2019.igem.org/Template:USTC-Software/js/makeIndexFixed?action=raw&ctype=text/javascript"></script>
  
<div class="column third_size">
+
  <!--add background-->
<div class="highlight decoration_A_full">
+
  <script src="https://2019.igem.org/Template:USTC-Software/js/addBackground?action=raw&ctype=text/javascript"></script>
<h3>Inspiration</h3>
+
<ul>
+
<li><a href="https://2016.igem.org/Team:MIT/Experiments/Promoters">2016 MIT</a></li>
+
<li><a href="https://2016.igem.org/Team:BostonU/Proof">2016 BostonU</a></li>
+
<li><a href="https://2016.igem.org/Team:NCTU_Formosa/Design">2016 NCTU Formosa</a></li>
+
</ul>
+
</div>
+
</div>
+
  
 +
  <link href="https://2019.igem.org/Template:USTC-Software/css/pageContent?action=raw&ctype=text/css" rel="stylesheet">
  
 +
  <!-- some updated css style -->
 +
  <!--<style>-->
 +
  <!--div.card p {margin: 20px;}-->
 +
  <!--div.card h2,h3,h4 {margin: 25px;}-->
 +
  <!--div.card h1 {margin-top: 30px;}-->
 +
  <!--div.card img {margin-left: 30px; margin-right:30px;}-->
 +
  <!--</style>-->
  
 
</html>
 
</html>
 +
 +
{{USTC-Software/html/footer}}

Revision as of 14:24, 20 October 2019

Design

Overview of ForeSyn

Figure: 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.

Figure: No command line

Concise and Clear

Figure: What you see is what you get:

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.

Figure:Lessen needless works

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.

Figure: Being a platform

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.

Figure: 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.

Figure: 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.

Figure: Change of emphasis

CCiC: A giant improvement

Figure: 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.

Figure: 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.

Figure:DigitalOcean

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.

Figure: 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.

Figure: Elasticsearch

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