Team:HFUT CHINA/Examples.html
From 2014.igem.org
Line 1: | Line 1: | ||
- | |||
<html> | <html> | ||
<head> | <head> | ||
Line 15: | Line 14: | ||
<!-- | <!-- | ||
.STYLE1 {font-size: 120%} | .STYLE1 {font-size: 120%} | ||
+ | .STYLE2 {font-size: 24px} | ||
+ | .STYLE5 { | ||
+ | font-size: 24px; | ||
+ | color: #0000CC; | ||
+ | font-family: Verdana, Arial, Helvetica, sans-serif; | ||
+ | } | ||
+ | .STYLE6 {font-size: 200%} | ||
+ | .STYLE9 { | ||
+ | font-size: 150%; | ||
+ | font-weight: bold; | ||
+ | } | ||
+ | .STYLE12 {font-size: 120%} | ||
--> | --> | ||
</style> | </style> | ||
Line 96: | Line 107: | ||
</div> | </div> | ||
</div> | </div> | ||
+ | |||
+ | |||
+ | <span class="STYLE12">The algorithms used in Biodesigner could be grouped into two categories: preprocessing part and executing part.</span></p> | ||
+ | <p align="center"><br> | ||
+ | <span class="STYLE9">Preprocessing Part</span></p> | ||
+ | <p align="justify"><br> | ||
+ | <span class="STYLE12">The preprocessing part includes three algorithms. Here we assume there are n devices and each device contains at most m biobrickes.</span></p> | ||
+ | <p align="justify" class="STYLE12"><br> | ||
+ | The first one is to count the probabilities of two successive biobrickes, three successive biobrickes, four successive biobrickes and five successive biobrickes. Here successive biobrickes means the biobrickes are neighbors. Thus the number of two successive biobrickes, three successive biobrickes, four successive biobrickes and five successive biobrickes are<strong> n(m-1), n(m-2), n(m-3), n(m-4)</strong>, respectively. Hash tables are used to store these successive biobrickes. Therefore, the probabilities could be obtained by scanning the device chains four times. Thus, the time complexity of this algorithm is <strong>O(2n(m-1)+3n(m-2)+4n(m-3)+5n(m-3))=O(nm). </strong> </p> | ||
+ | <p align="justify" class="STYLE12"><br> | ||
+ | The second one is to count the probabilities of the first biobrick of each device chain. This work could be done by scanning the first biobrick of each chain. Thus, the complexity of this algorithm is <strong>O(n)</strong>.</p> | ||
+ | <p align="justify" class="STYLE12"><br> | ||
+ | The third one is to calculate the hamming distances of each paired biobrickes. Since there are n device chains and each device contains at most m biobrickes. Therefore, there are at most nm biobrickes, which means there are at most <strong>nm*nm</strong> paired biobrickes. The calculation of hamming distances between two sequences with length l could be done in <strong>O(l)</strong> time. Thus, the complexity of this algorithm is<strong> O(l*nm*nm)=O(ln2m2).</strong></p> | ||
+ | <p align="justify" class="STYLE12"><br> | ||
+ | Hence, the time complexity of preprocessing part is <strong>O(nm)+O(n)+O(ln2m2) =O(ln2m2)</strong>.</p> | ||
+ | <p align="center"><br> | ||
+ | <span class="STYLE9">Executing Part</span></p> | ||
+ | <p align="justify"><br> | ||
+ | <span class="STYLE12">The executing part contains two algorithms. Here we assume the given device chain contains at most m biobrickes.</span></p> | ||
+ | <p align="justify" class="STYLE12"><br> | ||
+ | The first one is to inquire the probabilities of two successive biobrickes, three successive biobrickes, four successive biobrickes and five successive biobrickes of a given device chain. Since all the data is stored in a hash table and the access of hash table needs O(1) time. Thus, the time complexity of this algorithm is O(m).</p> | ||
+ | <p align="justify" class="STYLE12"><br> | ||
+ | The second one is to store the given device chain. This work is done by store the two successive biobrickes, three successive biobrickes, four successive biobrickes and five successive biobrickes of the given device chain into the hash table. Thus, the time complexity of this algorithm is O(m).</p> | ||
+ | <p align="justify" class="STYLE12"><br> | ||
+ | Hence, the time complexity of executing part is O(m).</p> | ||
+ | <p align="justify" class="STYLE12"><br> | ||
+ | Note, we only need to execute the preprocessing part once. After the execution of preprocessing part, all the data is store in database. When using our software, users do not need to waste their time for the preprocessing part as it has been executed.</p> | ||
+ | |||
+ | <div align="justify" class="STYLE2"><br> | ||
+ | </div> | ||
+ | </div> | ||
+ | </div> | ||
+ | <div class="STYLE2"></div> | ||
+ | </div> | ||
+ | </div> | ||
+ | </div> | ||
+ | </div> | ||
+ | |||
+ | |||
+ | |||
+ | |||
<p align="justify" class="STYLE1">In order to test the performance of our software, we collected about 3600 device chains from Registry of Standard Parts, and extracted the associate relationships among these chains. All these information are stored in our database.</p> | <p align="justify" class="STYLE1">In order to test the performance of our software, we collected about 3600 device chains from Registry of Standard Parts, and extracted the associate relationships among these chains. All these information are stored in our database.</p> | ||
<p align="justify" class="STYLE1"><br> | <p align="justify" class="STYLE1"><br> |
Revision as of 14:54, 17 October 2014
Preprocessing Part
The preprocessing part includes three algorithms. Here we assume there are n devices and each device contains at most m biobrickes.
The first one is to count the probabilities of two successive biobrickes, three successive biobrickes, four successive biobrickes and five successive biobrickes. Here successive biobrickes means the biobrickes are neighbors. Thus the number of two successive biobrickes, three successive biobrickes, four successive biobrickes and five successive biobrickes are n(m-1), n(m-2), n(m-3), n(m-4), respectively. Hash tables are used to store these successive biobrickes. Therefore, the probabilities could be obtained by scanning the device chains four times. Thus, the time complexity of this algorithm is O(2n(m-1)+3n(m-2)+4n(m-3)+5n(m-3))=O(nm).
The second one is to count the probabilities of the first biobrick of each device chain. This work could be done by scanning the first biobrick of each chain. Thus, the complexity of this algorithm is O(n).
The third one is to calculate the hamming distances of each paired biobrickes. Since there are n device chains and each device contains at most m biobrickes. Therefore, there are at most nm biobrickes, which means there are at most nm*nm paired biobrickes. The calculation of hamming distances between two sequences with length l could be done in O(l) time. Thus, the complexity of this algorithm is O(l*nm*nm)=O(ln2m2).
Hence, the time complexity of preprocessing part is O(nm)+O(n)+O(ln2m2) =O(ln2m2).
Executing Part
The executing part contains two algorithms. Here we assume the given device chain contains at most m biobrickes.
The first one is to inquire the probabilities of two successive biobrickes, three successive biobrickes, four successive biobrickes and five successive biobrickes of a given device chain. Since all the data is stored in a hash table and the access of hash table needs O(1) time. Thus, the time complexity of this algorithm is O(m).
The second one is to store the given device chain. This work is done by store the two successive biobrickes, three successive biobrickes, four successive biobrickes and five successive biobrickes of the given device chain into the hash table. Thus, the time complexity of this algorithm is O(m).
Hence, the time complexity of executing part is O(m).
Note, we only need to execute the preprocessing part once. After the execution of preprocessing part, all the data is store in database. When using our software, users do not need to waste their time for the preprocessing part as it has been executed.