|
|
(14 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
| {{USTC-Software/html/header}} | | {{USTC-Software/html/header}} |
| + | |
| <html> | | <html> |
− | <!--对应链接<li><a href="https://2019.igem.org/Team:USTC-Software/Collaborations">Collaborations</a></li>-->
| |
| <link href="https://2019.igem.org/Template:USTC-Software/css/default?action=raw&ctype=text/css" rel="stylesheet" | | <link href="https://2019.igem.org/Template:USTC-Software/css/default?action=raw&ctype=text/css" rel="stylesheet" |
| type="text/css"/> | | type="text/css"/> |
Line 28: |
Line 28: |
| <div class="passage">Flux Balance Analysis (FBA) is a mathematical method for simulating metabolism in | | <div class="passage">Flux Balance Analysis (FBA) is a mathematical method for simulating metabolism in |
| metabolic networks. It is based on linear programming to calculate fluxes when the model is stable. | | metabolic networks. It is based on linear programming to calculate fluxes when the model is stable. |
− | <br> | + | <br><br> |
| Assuming S is a matrix, which contains all reactions in a model. In this matrix, metabolites consumed take | | Assuming S is a matrix, which contains all reactions in a model. In this matrix, metabolites consumed take |
| negative coefficients, and metabolites produced then take positive ones. Furthermore, v is a vector that | | negative coefficients, and metabolites produced then take positive ones. Furthermore, v is a vector that |
Line 35: |
Line 35: |
| \textbf{S}\textbf{v}=0 | | \textbf{S}\textbf{v}=0 |
| $$ | | $$ |
− | And then, FBA tries to maximize or minimize the objective function $\textbf{c}^\textrm{T} \textbf{v}$, which | + | And then, FBA tries to maximize or minimize the objective function \(\textbf{c}^\textrm{T} \textbf{v}\), which |
| c contains the weight of all reactions contributing to the function. Now it is clear that FBA is a linear | | c contains the weight of all reactions contributing to the function. Now it is clear that FBA is a linear |
| programming problem, and it just works. | | programming problem, and it just works. |
| + | <div class="psgImg"> |
| + | <img src="https://static.igem.org/mediawiki/2019/e/e4/T--USTC-Software--model_fba_banlanced.png" alt=""> |
| + | <p>The conceptual basis of constraint- based modeling. With no constraints, the fIux |
| + | distribution of a biological network may lie at any point in a solution space. When mass balance |
| + | constraints imposed by the stoichiometric matrix S (labeled 1) and capacity constraints imposed |
| + | by the lower and upper bounds (a;and b;) (labeled 2) are applied to a network, it defines an |
| + | allowable solution space. The network may acquire any flux distribution within this space, but |
| + | points outside this space are denied by the constraints. Through optimization of an objective |
| + | function, FBA can identify a single optimal fIux distribution that lies on the edge of the |
| + | allowable solution space.</p> |
| + | </div> |
| </div> | | </div> |
| <h4>Flux Variability Analysis</h4> | | <h4>Flux Variability Analysis</h4> |
Line 44: |
Line 55: |
| reaction flux while they satisfy constraints and have the same optimal objective by solving a double linear | | reaction flux while they satisfy constraints and have the same optimal objective by solving a double linear |
| programming problem. | | programming problem. |
− | <br> | + | <br><br> |
| However, when the metabolic network contains internal loops, the result can be too high in absolute to be | | However, when the metabolic network contains internal loops, the result can be too high in absolute to be |
| realistic. Users can select the "loopless" option to avoid such internal loops, and get a more consistent | | realistic. Users can select the "loopless" option to avoid such internal loops, and get a more consistent |
| result. | | result. |
| + | <div class="psgImg"> |
| + | <img src="https://static.igem.org/mediawiki/2019/f/f3/T--USTC-Software--model_analysis.png" alt="" style="max-height: 800px"> |
| + | <p>Whole process of analysis</p> |
| + | </div> |
| + | </div> |
| + | <h4>Regulatory Flux Balance Analysis</h4> |
| + | <div class="passage"> |
| + | Regulatory Flux Balance Analysis is a brilliant combination of FBA and transcriptional regulation. It integrates regulatory network and adds constraints based on the FBA. Therefore the solution space can be compressed, and our results can be more credible and authentic. |
| + | <br><br> |
| + | The combined metabolic/regulatory model can predict the ability of mutant E.coli strains to grow on defined media as well as time courses of cell growth, substrate uptake, metabolic by-product secretion, and qualitative gene expression in various conditions. |
| + | <br><br> |
| + | By applying this method in our software, we can make it more precisely. |
| + | <div class="psgImg"> |
| + | <img src="https://static.igem.org/mediawiki/2019/5/54/T--USTC-Software--model_rFBA.png" alt="" style="max-height: 800px"> |
| + | <p>rFBA</p> |
| + | </div> |
| </div> | | </div> |
| <h3>Computer Models</h3> | | <h3>Computer Models</h3> |
Line 56: |
Line 83: |
| SQL Injection. | | SQL Injection. |
| <br> | | <br> |
| + | <div class="psgImg"> |
| + | <img src="https://static.igem.org/mediawiki/2019/c/cb/T--USTC-Software--model_mapping.png" alt=""> |
| + | <p>Object-Relational Mapping</p> |
| + | </div> |
| We use ORM to organize our metabolic networks, biobricks data, and user's computational models. It brings us | | We use ORM to organize our metabolic networks, biobricks data, and user's computational models. It brings us |
| the convenience of creating, querying, listing, and connecting models, with acceptable performance. | | the convenience of creating, querying, listing, and connecting models, with acceptable performance. |
| <br> | | <br> |
| + | <div class="psgImg"> |
| + | <img src="https://static.igem.org/mediawiki/2019/f/f0/T--USTC-Software--model_DB.png" alt="" style="width: 600px"> |
| + | <p>Relationship between two types of database</p> |
| + | </div> |
| In practice, we use Django ORM with MySQL backend to provide fast, flexible, and reliable service. | | In practice, we use Django ORM with MySQL backend to provide fast, flexible, and reliable service. |
| + | <br> |
| + | <div class="psgImg"> |
| + | <img src="https://static.igem.org/mediawiki/2019/1/19/T--USTC-Software--model_django.png" alt="" style="width: 600px"> |
| + | <p>Django ORM</p> |
| + | </div> |
| </div> | | </div> |
| <h4>Message Queues</h4> | | <h4>Message Queues</h4> |
Line 65: |
Line 105: |
| Our website requires computing large models, and it is quite embarrassing to see users waiting for browsers | | 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. | | for so long. So we use message queues to maintain computing tasks. |
− | <br> | + | <br><br> |
| We split our programs computing models from our website, and use message queues to send and receive | | 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 | | information about our computation. A queue is a data structure that stores things waiting to be handled, and |
Line 71: |
Line 111: |
| response to users instantly about the progress of his tasks. | | response to users instantly about the progress of his tasks. |
| <br> | | <br> |
| + | <div class="psgImg"> |
| + | <img src="https://static.igem.org/mediawiki/2019/3/3f/T--USTC-Software--model_msg.png" alt="" style="max-height: 480px; object-fit: cover;"> |
| + | <p>Message Queues</p> |
| + | </div> |
| In Foresyn, we use RabbitMQ and Celery to build our message queues. Here, Celery uses its protocol to | | In Foresyn, we use RabbitMQ and Celery to build our message queues. Here, Celery uses its protocol to |
| communicate with web programs and computation programs. And RabbitMQ acts as a broker who accepts and | | communicate with web programs and computation programs. And RabbitMQ acts as a broker who accepts and |
| forwards messages of Celery. | | forwards messages of Celery. |
| + | <br> |
| + | <div class="psgImg"> |
| + | <img src="https://static.igem.org/mediawiki/2019/f/f3/T--USTC-Software--model_rabit.png" alt=""> |
| + | <p>RabbitMQ</p> |
| + | </div> |
| </div> | | </div> |
| <h4>Different Searching Engines</h4> | | <h4>Different Searching Engines</h4> |
Line 80: |
Line 129: |
| our strategy is to use slow but accurate algorithm when searching small datasets, and use fast but less | | our strategy is to use slow but accurate algorithm when searching small datasets, and use fast but less |
| accurate algorithm when searching large ones. | | accurate algorithm when searching large ones. |
− | <br> | + | <br><br> |
| Here, there are only some models like E. coli, but a lot of genes, reactions and metabolites in our | | Here, there are only some models like E. coli, but a lot of genes, reactions and metabolites in our |
| database. We choose to calculate Levenshtein distances for model searching. Levenshtein distance defines as | | database. We choose to calculate Levenshtein distances for model searching. Levenshtein distance defines as |
Line 93: |
Line 142: |
| \end{cases} | | \end{cases} |
| $$ | | $$ |
− | which has a time complexity of $O(nm)$ where n and m are the length of the two strings. | + | which has a time complexity of \(O(nm)\) where n and m are the length of the two strings. |
− | <br> | + | <br><br> |
| When we are handling genes, reactions and metabolites, we use another algorithm. | | When we are handling genes, reactions and metabolites, we use another algorithm. |
| </div> | | </div> |
| <h4>Biobricks Recommendation</h4> | | <h4>Biobricks Recommendation</h4> |
| <div class="passage"> | | <div class="passage"> |
− | TBD | + | It is troublesome for Synthesis biologists to decide which kind of biobricks should be used in their |
| + | computing models. To deal with the issue, we designed a biobricks recommending system based on key-words |
| + | extraction and behavior analysis. With our special designed algorithm, our system can give a precise |
| + | prediction of biobricks that users demand. |
| + | <br> |
| + | <div class="psgImg"> |
| + | <img alt="" src="https://static.igem.org/mediawiki/2019/1/1b/T--USTC-Software--model_biobricks.png"> |
| + | <p>Recommendation</p> |
| + | </div> |
| </div> | | </div> |
| <h2 class="ref">References</h2> | | <h2 class="ref">References</h2> |
Line 115: |
Line 172: |
| </li> | | </li> |
| <li>4. Abdelmoneim Amer Desouki, Florian Jarre, Gabriel Gelius-Dietrich, Martin J. Lercher, CycleFreeFlux: | | <li>4. Abdelmoneim Amer Desouki, Florian Jarre, Gabriel Gelius-Dietrich, Martin J. Lercher, CycleFreeFlux: |
− | efficient removal of thermodynamically infeasible loops from flux distributions, *Bioinformatics*, | + | efficient removal of thermodynamically infeasible loops from flux distributions, Bioinformatics, |
| Volume 31, Issue 13, 1 July 2015, Pages 2159–2165, https://doi.org/10.1093/bioinformatics/btv096 | | Volume 31, Issue 13, 1 July 2015, Pages 2159–2165, https://doi.org/10.1093/bioinformatics/btv096 |
| </li> | | </li> |
Line 122: |
Line 179: |
| </li> | | </li> |
| <li>6. Vinoski, Steve. "Advanced message queuing protocol." IEEE Internet Computing 6 (2006): 87-89.</li> | | <li>6. Vinoski, Steve. "Advanced message queuing protocol." IEEE Internet Computing 6 (2006): 87-89.</li> |
| + | <li>7. https://medium.com/@jairvercosa/manger-vs-query-sets-in-django-e9af7ed744e0</li> |
| + | <li>8. https://www.nature.com/articles/nbt.1614</li> |
| + | <li>9. https://www.cloudamqp.com/blog/2014-12-03-what-is-message-queuing.html</li> |
| + | <li>10. https://www.rabbitmq.com/</li> |
| </ul> | | </ul> |
| </div> | | </div> |
Line 148: |
Line 209: |
| | | |
| <link href="https://2019.igem.org/Template:USTC-Software/css/pageContent?action=raw&ctype=text/css" rel="stylesheet"> | | <link href="https://2019.igem.org/Template:USTC-Software/css/pageContent?action=raw&ctype=text/css" rel="stylesheet"> |
| + | |
| + | <!--add figure <index>--> |
| + | <script src="https://2019.igem.org/Template:USTC-Software/js/insertNumForPics?action=raw&ctype=text/javascript"></script> |
| + | |
| + | <!-- 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}} | | {{USTC-Software/html/footer}} |