|
|
(15 intermediate revisions by the same user not shown) |
Line 23: |
Line 23: |
| | | |
| </script> | | </script> |
| + | |
| <link rel="stylesheet" href="/wiki/index.php?title=Template:SYSU-Software/lib/semantic.min.css&action=raw&ctype=text/css"> | | <link rel="stylesheet" href="/wiki/index.php?title=Template:SYSU-Software/lib/semantic.min.css&action=raw&ctype=text/css"> |
| <link href="/wiki/index.php?title=Template:SYSU-Software/css/common.css&action=raw&ctype=text/css" rel="stylesheet" rel="stylesheet"> | | <link href="/wiki/index.php?title=Template:SYSU-Software/css/common.css&action=raw&ctype=text/css" rel="stylesheet" rel="stylesheet"> |
| + | <link |
| <link rel="stylesheet" href="https://2017.igem.org/wiki/index.php?title=Template:SYSU-Software/css/modeling.css&action=raw&ctype=text/css"> | | <link rel="stylesheet" href="https://2017.igem.org/wiki/index.php?title=Template:SYSU-Software/css/modeling.css&action=raw&ctype=text/css"> |
| </head> | | </head> |
Line 31: |
Line 33: |
| <div id="truePage" class="realPage"> | | <div id="truePage" class="realPage"> |
| <div id="firstnav" class="ui fixed collapsed borderless ten menu"> | | <div id="firstnav" class="ui fixed collapsed borderless ten menu"> |
− | <a id="sdin-link" href="#"> | + | <a id="sdin-link" href="http://sdin.sysusoftware.info" target="_blank"> |
| <img id="sdin-icon" src="https://static.igem.org/mediawiki/2017/1/17/T--SYSU-Software--project_sdin-small.png" alt="logo"> | | <img id="sdin-icon" src="https://static.igem.org/mediawiki/2017/1/17/T--SYSU-Software--project_sdin-small.png" alt="logo"> |
| </a> | | </a> |
− |
| |
| <div class="ui simple dropdown item page-nav"> | | <div class="ui simple dropdown item page-nav"> |
| <a href="https://2017.igem.org/Team:SYSU-Software/Project" class="page-link">Project</a> | | <a href="https://2017.igem.org/Team:SYSU-Software/Project" class="page-link">Project</a> |
Line 40: |
Line 41: |
| <a href="https://2017.igem.org/Team:SYSU-Software/Project#description" class="item">Description</a> | | <a href="https://2017.igem.org/Team:SYSU-Software/Project#description" class="item">Description</a> |
| <a href="https://2017.igem.org/Team:SYSU-Software/Project#applied-design" class="item">Applied Design</a> | | <a href="https://2017.igem.org/Team:SYSU-Software/Project#applied-design" class="item">Applied Design</a> |
− | <a href="https://2017.igem.org/Team:SYSU-Software/Project#feature" class="item">Features</a>
| |
| <a href="https://2017.igem.org/Team:SYSU-Software/Project#wet-lab" class="item">Wet-Lab Validation</a> | | <a href="https://2017.igem.org/Team:SYSU-Software/Project#wet-lab" class="item">Wet-Lab Validation</a> |
| <a href="https://2017.igem.org/Team:SYSU-Software/Project#demonstrate" class="item">Demonstrate</a> | | <a href="https://2017.igem.org/Team:SYSU-Software/Project#demonstrate" class="item">Demonstrate</a> |
Line 51: |
Line 51: |
| <a href="https://2017.igem.org/Team:SYSU-Software/Model#recommendation-system" class="item">Recommendation System</a> | | <a href="https://2017.igem.org/Team:SYSU-Software/Model#recommendation-system" class="item">Recommendation System</a> |
| <a href="https://2017.igem.org/Team:SYSU-Software/Model#simulation" class="item">Simulation for General Genetic Circuits</a> | | <a href="https://2017.igem.org/Team:SYSU-Software/Model#simulation" class="item">Simulation for General Genetic Circuits</a> |
| + | <a href="https://2017.igem.org/Team:SYSU-Software/Model#references" class="item">References</a> |
| </div> | | </div> |
| </div> | | </div> |
| + | |
| <div class="ui simple dropdown item page-nav"> | | <div class="ui simple dropdown item page-nav"> |
− | <a href="https://2017.igem.org/Team:SYSU-Software/Medal" class="page-link">Medals</a>
| + | <a href="https://2017.igem.org/wiki/index.php?title=Team:SYSU-Software/HP" class="page-link">Human Practices</a> |
− | <div class="menu page-category">
| + | |
− | <a href="https://2017.igem.org/Team:SYSU-Software/Medal#overview" class="item">Overview</a>
| + | |
− | <a href="https://2017.igem.org/Team:SYSU-Software/Medal#bronze" class="item">Bronze</a>
| + | |
− | <a href="https://2017.igem.org/Team:SYSU-Software/Medal#silver" class="item">Silver</a>
| + | |
− | <a href="https://2017.igem.org/Team:SYSU-Software/Medal#gold" class="item">Gold</a>
| + | |
− | </div>
| + | |
− | </div>
| + | |
− | <div class="ui simple dropdown item page-nav">
| + | |
− | <a href="https://2017.igem.org/wiki/index.php?title=Team:SYSU-Software/HP" class="page-link">Human Practice</a> | + | |
| <div class="menu page-category"> | | <div class="menu page-category"> |
| <a href="https://2017.igem.org/wiki/index.php?title=Team:SYSU-Software/HP#overview_id" class="item">Overview</a> | | <a href="https://2017.igem.org/wiki/index.php?title=Team:SYSU-Software/HP#overview_id" class="item">Overview</a> |
Line 73: |
Line 66: |
| </div> | | </div> |
| <div class="ui simple dropdown item page-nav"> | | <div class="ui simple dropdown item page-nav"> |
− | <a href="https://2017.igem.org/Team:SYSU-Software/Collaborations" class="page-link">Collaboration</a> | + | <a href="https://2017.igem.org/Team:SYSU-Software/Collaborations" class="page-link">Collaborations</a> |
| <div class="menu page-category"> | | <div class="menu page-category"> |
| <a href="https://2017.igem.org/Team:SYSU-Software/Collaborations#overview" class="item">Overview</a> | | <a href="https://2017.igem.org/Team:SYSU-Software/Collaborations#overview" class="item">Overview</a> |
| <a href="https://2017.igem.org/Team:SYSU-Software/Collaborations#scut-china-a" class="item">SCUT-CHINA-A</a> | | <a href="https://2017.igem.org/Team:SYSU-Software/Collaborations#scut-china-a" class="item">SCUT-CHINA-A</a> |
| <a href="https://2017.igem.org/Team:SYSU-Software/Collaborations#nju-china" class="item">NJU-China</a> | | <a href="https://2017.igem.org/Team:SYSU-Software/Collaborations#nju-china" class="item">NJU-China</a> |
− | <a href="https://2017.igem.org/Team:SYSU-Software/Collaborations#hkust" class="item">HUKST</a> | + | <a href="https://2017.igem.org/Team:SYSU-Software/Collaborations#hkust" class="item">Hong_Kong_HKUST</a> |
| <a href="https://2017.igem.org/Team:SYSU-Software/Collaborations#sysu-china" class="item">SYSU-CHINA</a> | | <a href="https://2017.igem.org/Team:SYSU-Software/Collaborations#sysu-china" class="item">SYSU-CHINA</a> |
| <a href="https://2017.igem.org/Team:SYSU-Software/Collaborations#scau-china" class="item">SCAU-CHINA</a> | | <a href="https://2017.igem.org/Team:SYSU-Software/Collaborations#scau-china" class="item">SCAU-CHINA</a> |
Line 118: |
Line 111: |
| <a href="https://2017.igem.org/Team:SYSU-Software/Team#advisors" class="item">Advisors</a> | | <a href="https://2017.igem.org/Team:SYSU-Software/Team#advisors" class="item">Advisors</a> |
| <a href="https://2017.igem.org/Team:SYSU-Software/Team#instructors" class="item">Instructors</a> | | <a href="https://2017.igem.org/Team:SYSU-Software/Team#instructors" class="item">Instructors</a> |
− | <a href="https://2017.igem.org/Team:SYSU-Software/Team#calendar" class="item">Calendar</a> | + | <a href="https://2017.igem.org/Team:SYSU-Software/Team#notebook" class="item">Notebook</a> |
| + | </div> |
| + | </div> |
| + | <div class="ui simple dropdown item page-nav"> |
| + | <a href="https://2017.igem.org/Team:SYSU-Software/Medal" class="page-link">Medal</a> |
| + | <div class="menu page-category"> |
| + | <a href="https://2017.igem.org/Team:SYSU-Software/Medal#overview" class="item">Overview</a> |
| + | <a href="https://2017.igem.org/Team:SYSU-Software/Medal#bronze" class="item">Bronze</a> |
| + | <a href="https://2017.igem.org/Team:SYSU-Software/Medal#silver" class="item">Silver</a> |
| + | <a href="https://2017.igem.org/Team:SYSU-Software/Medal#gold" class="item">Gold</a> |
| </div> | | </div> |
| </div> | | </div> |
Line 141: |
Line 143: |
| <h2 id="overview">Overview</h2> | | <h2 id="overview">Overview</h2> |
| <div class="overview"> | | <div class="overview"> |
− | <p>What make S-Din work are the algorithms behind it. | + | <p>What makes S-Din work are the clever algorithms behind it. Our modelling team uses many techniques e.g. Machine Learning, ODE to develop the Recommendation System and the Simulation System which help S-Din achieve state of the art performance. </p> |
− | Our model group worked very hard to develop the recommend and simulation algorithms to make S-Din possible in functioning as expect.
| + | |
− | We combined the search and recommend algorithm together so the software can work faster.
| + | |
− | Simulation algorithm are developed to cover situations which is any circuits designed by users.</p>
| + | |
| </div> | | </div> |
| </div> | | </div> |
Line 161: |
Line 160: |
| <h3>Models used in the system</h3> | | <h3>Models used in the system</h3> |
| <h4>Word2Vec Algorithm</h4> | | <h4>Word2Vec Algorithm</h4> |
| + | <img src="https://static.igem.org/mediawiki/2017/5/52/T--SYSU-Software--model_Wordv.png" class="ui image middle centered"> |
| <div class="paragraph"> | | <div class="paragraph"> |
− | <p>Word2vec is an algorithm that produces word embedding , i.e. it converts a corpus of text into a high dimensional real vector space(in our case , the dimension is 400) and each word in the corpus is assigned to a vector in the vector space. If two words are similar semantically , then their will be close under cosine distance measure.</p> | + | <p>Word2vec is an algorithm that produces word embedding , i.e. it converts a corpus of text into a high dimensional real vector space(in our case , the dimension is 400) and each word in the corpus is assigned to a vector in the vector space. If two words are similar semantically , then they will be close under cosine distance measure.</p> |
| <p>In our Recommendation System, we use gensim, an open source Python module focused on Natural Language Processing , to train our word2vec model and the corpus we use to feed the model is wikimedia, which can be downloaded from:<a href="https://dumps.wikimedia.org/" target="_blank">https://dumps.wikimedia.org/</a></p> | | <p>In our Recommendation System, we use gensim, an open source Python module focused on Natural Language Processing , to train our word2vec model and the corpus we use to feed the model is wikimedia, which can be downloaded from:<a href="https://dumps.wikimedia.org/" target="_blank">https://dumps.wikimedia.org/</a></p> |
| <p>The reason why we use Word2vec is that it can distinguish the semantic meanings of words accurately by Deep Learning technique, which outperforms the traditional semantic analysis methods greatly.</p> | | <p>The reason why we use Word2vec is that it can distinguish the semantic meanings of words accurately by Deep Learning technique, which outperforms the traditional semantic analysis methods greatly.</p> |
| </div> | | </div> |
− | <h4>KD Tree Algorithm</h4> | + | <h4>KD Tree Algorithm</h4></br> |
| + | <img class="ui image medium centered" src="https://static.igem.org/mediawiki/2017/1/17/T--SYSU-Software--model_kd.png"></br> |
| <div class="paragraph"> | | <div class="paragraph"> |
| <p>The KD Tree algorithm is rather efficient when searching for the most similar items with averaged time complexity<code>O(log(n))</code>,thus the users can get recommendation instantly after they enter their interested new word to our system.</p> | | <p>The KD Tree algorithm is rather efficient when searching for the most similar items with averaged time complexity<code>O(log(n))</code>,thus the users can get recommendation instantly after they enter their interested new word to our system.</p> |
Line 174: |
Line 175: |
| <li>When the user enter a new word , we search the similar key words along the KD Tree that we constructed in step 1) . (Online)</li> | | <li>When the user enter a new word , we search the similar key words along the KD Tree that we constructed in step 1) . (Online)</li> |
| </ol> | | </ol> |
− | <p>Note that KD Tree Algorithm is based on Euclidean distance measure , while in our case , we need to calculate the cosine distance of the word vectors. To solve this problem ,we normalize all the word vectors of key words before constructing KD Tree and normalize the word vector of new words offered by users before letting it travel along the constructed KD Tree. The reason behind the method is that by Law of Cosines:</p> | + | <p>Note that KD Tree Algorithm is based on Euclidean distance measure , while in our case , we need to calculate the cosine distance of the word vectors. To solve this problem ,we normalize all the word vectors of key words before constructing KD Tree and normalize the word vector of new words offered by users before letting it travel along the constructed KD Tree. The reason behind the method is that by Law of Cosines: |
− | <img src="https://static.igem.org/mediawiki/2017/0/06/T--SYSU-Software--modeling_law-of-cos.png" alt="law of cosine" class="centered formula" id="law-of-cos-img"> | + | $$|x_1-x_2|=\sqrt{x_1^2+x_2^2-2|x_1||x_2|\cos(x_1,x_2)}\,,\,\,x_1,x_2\in R^n$$ |
− | <p>while since <code>x<sup>1</sup>,x<sup>2</sup></code> are normalized, we have :</p> | + | </p> |
− | <img src="https://static.igem.org/mediawiki/2017/a/a8/T--SYSU-Software--modeling_law-of-cos2.png" alt="law of cosine" class="centered formula" id="law-of-cos2-img"> | + | |
| + | <p>while since <code>x<sup>1</sup>,x<sup>2</sup></code> are normalized, we have : |
| + | $$|x_1-x_2| = \sqrt{1+1-2\cos(x_1,x_2)}\,,\,\,x_1,x_2\in R^n, |x_1|=|x_2|=1$$ |
| + | </p> |
| + | |
| <p>Now we see that the calculation of cosine distance between normalized vectors can be replaced by the calculation of Euclidean distance since they can determine each other in this normalization context.</p> | | <p>Now we see that the calculation of cosine distance between normalized vectors can be replaced by the calculation of Euclidean distance since they can determine each other in this normalization context.</p> |
| <p>In our Recommendation System , we use the KD Tree implementation in scikit-learn , a simple and efficient open source machine learning module in Python. For more details of KD Tree algorithm, see: <a href=" https://en.wikipedia.org/wiki/K-d_tree" target="_blank">wiki page of K-D Tree</a></p> | | <p>In our Recommendation System , we use the KD Tree implementation in scikit-learn , a simple and efficient open source machine learning module in Python. For more details of KD Tree algorithm, see: <a href=" https://en.wikipedia.org/wiki/K-d_tree" target="_blank">wiki page of K-D Tree</a></p> |
| </div> | | </div> |
| <h4>Random Walk with Restart Algorithm</h4> | | <h4>Random Walk with Restart Algorithm</h4> |
− | <img src="https://static.igem.org/mediawiki/2017/c/c0/T--SYSU-Software--modeling_part-keyword.png" class="centered" alt="" id="keyword-part-img"> | + | <img src="https://static.igem.org/mediawiki/2017/8/89/T--SYSU-Software--model_keywordandpart.png" class="centered" alt="" id="keyword-part-img"> |
| <p>Random Walk with Restart(RWR) is an algorithm adapted from the PageRank algorithm and it focuses on characterizing the affiliation between each item. We treat the relation between key words and genetic parts as an undirected graph where nodes represent key words or parts and edges represent connection between words and parts. Imagine there is a walker travelling on the graph mentioned above and each time he faces two choices: 1) Randomly travelling along an edge connected to the current node. 2) Teleport to node K. After a long time of random travelling , the frequency the walker reaches each node represents the affiliation between each node and node K , which we use to characterize the relation between key words and parts. For more detailed mathematical formulation of PageRank, see: <a href="https://en.wikipedia.org/wiki/PageRank" target="_blank">wiki page of page rank</a></p> | | <p>Random Walk with Restart(RWR) is an algorithm adapted from the PageRank algorithm and it focuses on characterizing the affiliation between each item. We treat the relation between key words and genetic parts as an undirected graph where nodes represent key words or parts and edges represent connection between words and parts. Imagine there is a walker travelling on the graph mentioned above and each time he faces two choices: 1) Randomly travelling along an edge connected to the current node. 2) Teleport to node K. After a long time of random travelling , the frequency the walker reaches each node represents the affiliation between each node and node K , which we use to characterize the relation between key words and parts. For more detailed mathematical formulation of PageRank, see: <a href="https://en.wikipedia.org/wiki/PageRank" target="_blank">wiki page of page rank</a></p> |
| | | |
− | <h3>Algorithm to construct the Recommendation System</h3> | + | <h3>Algorithms used in the Recommendation System</h3> |
| <h4>Calculating affiliation between key words and parts</h4> | | <h4>Calculating affiliation between key words and parts</h4> |
| <div class="paragraph"> | | <div class="paragraph"> |
Line 204: |
Line 209: |
| <p><code>for</code> keyword <code>i</code> in <code>1 to N</code></p> | | <p><code>for</code> keyword <code>i</code> in <code>1 to N</code></p> |
| <h6>Define and initialize <code>v</code></h6> | | <h6>Define and initialize <code>v</code></h6> |
− | <p>Let <code>e<sub>i</sub></code> be the column vector that has 1 in the row for node <code>i</code> and 0’s elsewhere, i.e.</p> | + | <p>Let <code>e<sub>i</sub></code> be the column vector that has 1 in the row for node <code>i</code> and 0’s elsewhere, i.e. |
− | <img src="https://static.igem.org/mediawiki/2017/5/58/T--SYSU-Software--modeling_eij.png" alt="eij" id="eij-img" class="centered formula"> | + | $$e_{ij}=\delta_{ij}= |
| + | \begin{cases} |
| + | 1, & \text{if $i=j$} \\ |
| + | 0, & \text{if $i\neq j$} |
| + | \end{cases}$$ |
| + | </p> |
| + | |
| <p>And <code>e<sub>i</sub></code> is the column vector such that each item reflects the probability the walker stays at each node of the graph and the initial <code>v</code> is set to be <code>e<sub>i</sub></code>.</p> | | <p>And <code>e<sub>i</sub></code> is the column vector such that each item reflects the probability the walker stays at each node of the graph and the initial <code>v</code> is set to be <code>e<sub>i</sub></code>.</p> |
| <h6>Update <code>v</code> by</h6> | | <h6>Update <code>v</code> by</h6> |
− | <img src="https://static.igem.org/mediawiki/2017/2/2e/T--SYSU-Software--modeling_bmv.png" alt="bmv+(1-b)ei" id="bmv-img" class="centered formula"> | + | <p>$$v'=\beta M v+(1-\beta)e_N$$</p> |
− | <p>update code{v} until the terminal condition is satisfied, i.e.</p> | + | <p>update code{v} until the terminal condition is satisfied, i.e. |
− | <img src="https://static.igem.org/mediawiki/2017/e/e6/T--SYSU-Software--modeling_term-cond.png" alt="terminal condition" id="time-cond-img" class="centered formula"> | + | $$|v^{(t)}-v^{(t-1)}|<\epsilon,\,\,\text{for sometime $t$}$$ |
| + | </p> |
| + | |
| <h6>Modify <code>v</code></h6> | | <h6>Modify <code>v</code></h6> |
| <p>Since the first n components of <code>v</code> are the affiliation between key word <code>i</code> and the other key words which we are not interested , therefore we only keep the last m components of <code>v</code>, which reflects the affiliation between key word <code>i</code> and all the parts.</p> | | <p>Since the first n components of <code>v</code> are the affiliation between key word <code>i</code> and the other key words which we are not interested , therefore we only keep the last m components of <code>v</code>, which reflects the affiliation between key word <code>i</code> and all the parts.</p> |
| </div> | | </div> |
| | | |
− | <h3>Build KD Tree of Keywords</h3> | + | <h4>Build KD Tree of Keywords</h4> |
| <div class="paragraph"> | | <div class="paragraph"> |
| <p>Once the user enter a new word to our system, we need to search for similar key words efficiently , thus we build a KD Tree of key words to implement this function.</p> | | <p>Once the user enter a new word to our system, we need to search for similar key words efficiently , thus we build a KD Tree of key words to implement this function.</p> |
| <p>Here is our Algorithm</p> | | <p>Here is our Algorithm</p> |
| </div> | | </div> |
− | <h4>Train word vector model</h4> | + | <h5>Train word vector model</h5> |
| <div class="paragraph"> | | <div class="paragraph"> |
− | <p>We feed our word vector model with Wikimedia corpus . After the training process is done, we have a model that can convert words into numerical vectors, i.e.</p> | + | <p>We feed our word vector model with Wikimedia corpus . After the training process is done, we have a model that can convert words into numerical vectors, i.e. |
− | <img src="https://static.igem.org/mediawiki/2017/c/c0/T--SYSU-Software--modeling_f-gamma-r.png" id="f-gamma-r-img" alt="" class="centered formula"> | + | $$f:\Gamma\rightarrow R^n$$ |
| + | </p> |
| <p>where Γ denoted the corpus space</p> | | <p>where Γ denoted the corpus space</p> |
| </div> | | </div> |
− | <h4>Convert keywords into normalized vectors</h4> | + | <h5>Convert keywords into normalized vectors</h5> |
| <div class="paragraph"> | | <div class="paragraph"> |
| <p>let <code>T</code> denotes the set of word vectors</p> | | <p>let <code>T</code> denotes the set of word vectors</p> |
| <p><code>for</code> keyword <code>i</code> in <code>1 to N</code>:</p> | | <p><code>for</code> keyword <code>i</code> in <code>1 to N</code>:</p> |
− | <p><code>T</code>.append(<img id="normalize-i" class="inlined-formula" src="https://static.igem.org/mediawiki/2017/6/64/T--SYSU-Software--modeling_normalize-i.png" alt="f(i)/|f(i)|">)</p> | + | <p><code>T</code>.append \( \frac{f(i)}{|f(i)|_2} \)</p> |
| </div> | | </div> |
− | <h4>Build KD Tree</h4> | + | <h5>Build KD Tree</h5> |
| <p>We use the standard construction procedure to build KD Tree of set <code>T</code>. Details will be ignored here. For the people who are interested , we offered a link to wikipedia in section2.</p> | | <p>We use the standard construction procedure to build KD Tree of set <code>T</code>. Details will be ignored here. For the people who are interested , we offered a link to wikipedia in section2.</p> |
| | | |
− | <h3>Collaborative Filtering</h3> | + | <h4>Collaborative Filtering</h4> |
| + | <img src="https://static.igem.org/mediawiki/2017/6/66/T--SYSU-Software--model_workflow.jpg" alt="" id="workflow-img" class="ui image middle"> |
| <div class="paragraph"> | | <div class="paragraph"> |
| <p>This is the final step to construct our Recommendation System , overall we use collaborative filtering strategy to make prediction.</p> | | <p>This is the final step to construct our Recommendation System , overall we use collaborative filtering strategy to make prediction.</p> |
| <p>Here is the algorithm</p> | | <p>Here is the algorithm</p> |
| </div> | | </div> |
− | <h4>Transform users input</h4> | + | <h5>Transform users input</h5> |
− | <p>We get users input word <code>k</code>, we then convert it into normalized word vector <code>v</code>, i.e.</p> | + | <p>We get users input word <code>k</code>, we then convert it into normalized word vector <code>v</code>, i.e. $$v=\frac{f(k)}{|f(k)|}$$</p> |
− | <img src="https://static.igem.org/mediawiki/2017/0/00/T--SYSU-Software--modeling_normalize-k.png" alt="" id="normalize-k-img" class="centered formula"> | + | |
− | <h4>Search K most similar keywords(KNN)</h4> | + | <h5>Search K most similar keywords(KNN)</h5> |
| <p>Let <code>v</code> travel along the KD Tree in a way like binary search , we can end up with <code>K</code>(in our case , <code>K</code> is set to be 5) most similar key words(KNN) to the current word <code>k</code>.</p> | | <p>Let <code>v</code> travel along the KD Tree in a way like binary search , we can end up with <code>K</code>(in our case , <code>K</code> is set to be 5) most similar key words(KNN) to the current word <code>k</code>.</p> |
− | <h4>Make Recommendation</h4> | + | <h5>Make Recommendation</h5> |
| <div class="paragraph"> | | <div class="paragraph"> |
− | <p>We have calculated the affiliation between key words and parts which shall be used to guide our final recommendation. Let <code>p<sub>i</sub></code> denotes the connection between the <code>i</code>th part and the current word <code>k</code> , we calculate <code>p<sub>i</sub></code> by formula</p> | + | <p>We have calculated the affiliation between key words and parts which shall be used to guide our final recommendation. Let <code>p<sub>i</sub></code> denotes the connection between the <code>i</code>the part and the current word <code>k</code> , we calculate <code>p<sub>i</sub></code> by formula $$p_i=\sum^K_{n=1}\frac{\text{Affiliation}(w_n,p_i)}{\text{distance}(w_n,k)+\text{bias}}$$ |
− | <img src="https://static.igem.org/mediawiki/2017/0/00/T--SYSU-Software--modeling_affiliation.png" alt="" id="affi-img" class="centered formula"> | + | </p> |
− | <p>where <img src="https://static.igem.org/mediawiki/2017/f/f1/T--SYSU-Software--modeling_wn.png" alt="" class="inlined-formula"> denotes the <code>k</code> most similar key words</p> | + | |
| + | <p>where \( \{w_n|n=1,2,...,K\}\) denotes the <code>k</code> most similar key words</p> |
| <p><code>Affiliation(w<sub>n</sub>, p<sub>i</sub>)</code>denotes the connection between <code>w<sub>i</sub></code> and the <code>i</code>th part and <code>distance(w<sub>i</sub>, k)</code> denotes the the Euclidean distance between the normalized word vectors of <code>w<sub>n</sub></code> and word <code>k</code>.</p> | | <p><code>Affiliation(w<sub>n</sub>, p<sub>i</sub>)</code>denotes the connection between <code>w<sub>i</sub></code> and the <code>i</code>th part and <code>distance(w<sub>i</sub>, k)</code> denotes the the Euclidean distance between the normalized word vectors of <code>w<sub>n</sub></code> and word <code>k</code>.</p> |
− | <p>After the computation of <img src="https://static.igem.org/mediawiki/2017/0/00/T--SYSU-Software--modeling_pi.png" alt="" class="inlined-formula">, we use heap sort algorithm to get <code>R</code> highest <code>p<sub>i</sub></code> and recommend to the users the corresponding parts.</p> | + | <p>After the computation of \(\{p_i|i=1,2,...,m\}\), we use heap sort algorithm to get <code>R</code> highest <code>p<sub>i</sub></code> and recommend to the users the corresponding parts.Besides, we use exactly the same strategy to make recommendation of related projects to the users. For simplicity, we ignore the details here.</p> |
| </div> | | </div> |
| </section> | | </section> |
Line 261: |
Line 277: |
| <h3>Model</h3> | | <h3>Model</h3> |
| <div class="paragraph"> | | <div class="paragraph"> |
− | <p>The interaction among the substances in genetic circuits can be characterized by a <code>n * n</code> relation matrix <code>R</code>, where <code>n</code> is number of substances. The entry in row <code>i</code> and column <code>j</code> has 3 possible values for 3 possible relations, i.e. </p> | + | <p>The interaction among the substances in genetic circuits can be characterized by a <code>n * n</code> relation matrix <code>R</code>, where <code>n</code> is number of substances. The entry in row <code>i</code> and column <code>j</code> has 3 possible values for 3 possible relations, i.e. $$ |
− | <img src="https://static.igem.org/mediawiki/2017/c/c2/T--SYSU-Software--modeling_rij.png" id="rij-img" alt="" class="centered formula"> | + | R_{i,j}= |
| + | \begin{cases} |
| + | 1 & \text{if $i$ promotes $j$} \\ |
| + | -1 & \text{if $i$ inhibits $j$} \\ |
| + | 0 & \text{No effect} |
| + | \end{cases} |
| + | $$</p> |
| + | |
| <p>Therefore , the <code>j</code>th column records all the impacts the system exerts to the <code>j</code>th substances.</p> | | <p>Therefore , the <code>j</code>th column records all the impacts the system exerts to the <code>j</code>th substances.</p> |
− | <p>Let <code>x<sub>j</sub>(t)</code> denotes the concentration of substance <code>j</code> at time <code>t</code> , then we use the following ODE to characterize <code>x<sub>j</sub>(t)</code> for <img src="https://static.igem.org/mediawiki/2017/5/51/T--SYSU-Software--modeling_j-1-to-n.png" alt="" class="inlined-formula"></p> | + | <p>Let <code>x<sub>j</sub>(t)</code> denotes the concentration of substance <code>j</code> at time <code>t</code> , then we use the following ODE to characterize <code>x<sub>j</sub>(t)</code> for \(j\in\{1,2,...n\}\) |
− | <img src="https://static.igem.org/mediawiki/2017/d/d2/T--SYSU-Software--modeling_longest.png" id="longest-img" alt="" class="centered formula"> | + | $$ \frac{\mathbb{d}x_j(t)}{\mathbb{d}t} = \prod_{i=1}^n\{ \frac{R_{ij}(R_{ij}+1)}{2}f(x_i(t))+\frac{(R_{ij}+1)(R_{ij}-1)}{-1}+\frac{R_{ij}(R_{ij}-1)}{2}g(x_i(t))\}- \beta \times x_j(t) |
− | <p>where β represents the degradation rate and:</p> | + | $$ |
− | <img src="https://static.igem.org/mediawiki/2017/8/86/T--SYSU-Software--modeling_fx-gx.png" id="fx-gx-img" alt="" class="centered formula"> | + | </p> |
− | <p></p> | + | |
| + | <p>where β represents the degradation rate and: |
| + | $$ f(x)=1+\frac{1}{1+\mathbb{e}^{-x}}; f(x)=1-\frac{1}{1+\mathbb{e}^{-x}} $$ |
| + | </p> |
| + | |
| <h3>Imlementation</h3> | | <h3>Imlementation</h3> |
− | <p>We use Scipy, an efficient open source numerical module in Python, to give the numerical solutions to the ODE system. Specifically, we use the odeint function in Scipy. For more information about odeint function, see <a href=" https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.odeint.html" target="_blank">documentation of scipy</a></p> | + | <p>We use Scipy, an efficient open source numerical module in Python, to give the numerical solutions to the ODE system. Specifically, we use the odeint function in Scipy. For more information about odeint function, see <a href=" https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.odeint.html" target="_blank">documentation of scipy</a>.</p> |
| </div> | | </div> |
| + | </section> |
| + | |
| + | <section class="plain" id="references"> |
| + | <h2>References</h2> |
| + | <ul> |
| + | <li> Jure Leskovec, Anand Rajaraman, Jeffrey David Ullman. Mining of Massive Datasets. Second Edition, Cambridge, Nov 2014, 9781107077232.</li> |
| + | <li>Bor-Sen Chen, Yu-Chao Wang. Synthetic Gene Network: Modeling, Analysis and Robust Design Methods. First Edition, CRC press, May 2, 2014, 9781466592698.</li> |
| + | </ul> |
| </section> | | </section> |
| </div> | | </div> |
Line 299: |
Line 334: |
| <script src="https://2017.igem.org/wiki/index.php?title=Template:SYSU-Software/lib/T--SYSU-Software--jquery.min.js&action=raw&ctype=text/javascript"></script> | | <script src="https://2017.igem.org/wiki/index.php?title=Template:SYSU-Software/lib/T--SYSU-Software--jquery.min.js&action=raw&ctype=text/javascript"></script> |
| <script src="https://2017.igem.org/wiki/index.php?title=Template:SYSU-Software/lib/semantic.min.js&action=raw&ctype=text/javascript"></script> | | <script src="https://2017.igem.org/wiki/index.php?title=Template:SYSU-Software/lib/semantic.min.js&action=raw&ctype=text/javascript"></script> |
| + | <script src="https://2017.igem.org/common/MathJax-2.5-latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> |
| + | |
| </body> | | </body> |
| | | |
| </html> | | </html> |