Team:USTC-Software/Project/Method
From 2013.igem.org
Line 29: | Line 29: | ||
<body> | <body> | ||
- | < | + | <div id="direction"> |
<ul> | <ul> | ||
- | <li><a href="# | + | <li><a href="#Fetch_Database" class="button">Database</a></li> |
- | <li><a href="# | + | |
- | + | <li><a href="#Alignment_Analyze" class="button">Operon Theory and Regulatory Model</a></br> | |
- | <li><a href="# | + | <a href="#dbabstract" class="button" id="subbutton">Abstract</a></br> |
- | + | <a href="#fetch" class="button" id="subbutton">Fetch Regulation</a></br> | |
- | <li><a href="# | + | <a href="#fgi" class="button" id="subbutton">Fetch Gene Info</a></br> |
- | <li><a href="# | + | <a href="#fpi" class="button" id="subbutton">Fetch Promoter Info</a></br> |
+ | <a href="#Integration" class="button" id="subbutton">Integration</a> | ||
+ | </li> | ||
+ | |||
+ | <li><a href="#fa" class="button">Forward Analysis</a></br> | ||
+ | <a href="#cng" class="button" id="subbutton">Construct New GRN</a></br> | ||
+ | <a href="#nm" class="button" id="subbutton">Network Model</a></br> | ||
+ | <a href="#en" class="button" id="subbutton">Evaluate Network</a> | ||
+ | |||
+ | </li> | ||
+ | |||
+ | <li><a href="#ra" class="button">Reverse Analysis</a></br> | ||
+ | <a href="#vg" class="button" id="subbutton">Virtual Gene</a></br> | ||
+ | <a href="#er" class="button" id="subbutton">Expression Range</a> | ||
+ | <a href="#pso" class="button" id="subbutton">Particle Swarm Optimaztion</a> | ||
+ | <a href="#lot" class="button" id="subbutton">Locate Optimal Target</a> | ||
+ | |||
+ | </li> | ||
+ | |||
+ | <li><a href="#main" class="button">Top</a></li> | ||
+ | |||
</ul> | </ul> | ||
</div> | </div> | ||
Line 45: | Line 65: | ||
var href = $(this).attr("href"); | var href = $(this).attr("href"); | ||
var pos = $(href).offset().top - 100; | var pos = $(href).offset().top - 100; | ||
- | $("html,body").animate({scrollTop: pos}, 1500); | + | $("html,body").animate({scrollTop: pos}, 1500);//the smaller the quicker |
return false; | return false; | ||
}); | }); | ||
}); | }); | ||
- | </script | + | </script> |
Line 73: | Line 93: | ||
<h2>Database</h2> | <h2>Database</h2> | ||
<div id="jobs_container"> | <div id="jobs_container"> | ||
- | <div class="jobs_trigger"><strong>Abstract</strong></div> | + | <div class="jobs_trigger" id="dbabstract"><strong>Abstract</strong></div> |
<div class="jobs_item" style="display: none;"><p class="bodytext"></p><p align="justify">To simulate and analyze a genetic regulatory network (GRN), we need to build an objects' array to store the complete information of each gene. It contains regulation relationships between genes, sequences of genes, sequences of promoters and so on. However, it's hard to find an appropriate database online containing all information we need in a simple file. RegulonDB has downloadable files about the regulation between transcription factors (TF) and genes. Files about genetic information, transcription unit information and promoter information can also be downloaded from the RegulonDB. All those files have been put into file “source data” in the root directory of our software. They contain all information the simulation needs and we use fetching module to achieve data extraction and integration. There are four steps: fetch regulation relationships, fetch gene information, fetch promoter information and integrate information above. | <div class="jobs_item" style="display: none;"><p class="bodytext"></p><p align="justify">To simulate and analyze a genetic regulatory network (GRN), we need to build an objects' array to store the complete information of each gene. It contains regulation relationships between genes, sequences of genes, sequences of promoters and so on. However, it's hard to find an appropriate database online containing all information we need in a simple file. RegulonDB has downloadable files about the regulation between transcription factors (TF) and genes. Files about genetic information, transcription unit information and promoter information can also be downloaded from the RegulonDB. All those files have been put into file “source data” in the root directory of our software. They contain all information the simulation needs and we use fetching module to achieve data extraction and integration. There are four steps: fetch regulation relationships, fetch gene information, fetch promoter information and integrate information above. | ||
</p> | </p> | ||
Line 79: | Line 99: | ||
<div id="jobs_container"> | <div id="jobs_container"> | ||
- | <div class="jobs_trigger"><strong>Fetch Regulation</strong></div> | + | <div class="jobs_trigger" id="fetch"><strong>Fetch Regulation</strong></div> |
<div class="jobs_item" style="display: none;"><p class="bodytext"></p><p align="justify">In GRN, there are two kinds of files: <a class="content" href="http://regulondb.ccg.unam.mx/menu/download/datasets/files/network_tf_tf.txt"> TF to TF</a> and <a class="content" href="http://regulondb.ccg.unam.mx/menu/download/datasets/files/network_tf_gene.txt">TF to Gene</a>. Since the database about the regulation between TFs and Genes contains only one-way interaction, the matrix of GRN is a rectangle.</br></br> | <div class="jobs_item" style="display: none;"><p class="bodytext"></p><p align="justify">In GRN, there are two kinds of files: <a class="content" href="http://regulondb.ccg.unam.mx/menu/download/datasets/files/network_tf_tf.txt"> TF to TF</a> and <a class="content" href="http://regulondb.ccg.unam.mx/menu/download/datasets/files/network_tf_gene.txt">TF to Gene</a>. Since the database about the regulation between TFs and Genes contains only one-way interaction, the matrix of GRN is a rectangle.</br></br> | ||
First of all, read the regulation relationship of TFs. Our software filters the documentation of RegulonDB on the head of all files and then reads the name of regulate and regulated TF, which is also the name of its genes, one by one. In the same time, our software numerates the genes and stores their names into an objects' array of genetic data. </br></br> | First of all, read the regulation relationship of TFs. Our software filters the documentation of RegulonDB on the head of all files and then reads the name of regulate and regulated TF, which is also the name of its genes, one by one. In the same time, our software numerates the genes and stores their names into an objects' array of genetic data. </br></br> | ||
Line 97: | Line 117: | ||
</div> | </div> | ||
- | <div class="jobs_trigger"><strong> Fetch Gene Info</strong></div> | + | <div class="jobs_trigger" id="fgi"><strong> Fetch Gene Info</strong></div> |
<div class="jobs_item" style="display: none;"><p align="justify"> | <div class="jobs_item" style="display: none;"><p align="justify"> | ||
All gene information has been deposited into a file named gene_info which could be downloaded <a class="content" href="http://regulondb.ccg.unam.mx/menu/download/datasets/files/Gene_sequence.txt">here</a>. In order of picking out the genes in GRN as fast as possible, all genetic information are stored in a “map”. “Map” is just like a dictionary yet its words are names of genes and its descriptions of words are replaced by genetic information. By using binary tree method, it is very fast to search the “word” wanted in the “dictionary”. As tested, the speed of binary tree method built-in “map” function is 720 times faster than traversal method.</br></br> | All gene information has been deposited into a file named gene_info which could be downloaded <a class="content" href="http://regulondb.ccg.unam.mx/menu/download/datasets/files/Gene_sequence.txt">here</a>. In order of picking out the genes in GRN as fast as possible, all genetic information are stored in a “map”. “Map” is just like a dictionary yet its words are names of genes and its descriptions of words are replaced by genetic information. By using binary tree method, it is very fast to search the “word” wanted in the “dictionary”. As tested, the speed of binary tree method built-in “map” function is 720 times faster than traversal method.</br></br> | ||
Line 110: | Line 130: | ||
- | <div class="jobs_trigger"> <strong>Fetch Promoter Info</strong></div> | + | <div class="jobs_trigger" id="fpi"> <strong>Fetch Promoter Info</strong></div> |
<div class="jobs_item" style="display: none;"><p align="justify">All promoter information has been deposited into a file named promoter_info which could be downloaded <a class="content" href="http://regulondb.ccg.unam.mx/menu/download/datasets/files/PromoterSet.txt">here</a>. But we also need transcription unit information because the information files about promoter do not contain all genes' names backward. “TU Info” file, which can be downloaded <a class="content" href="http://regulondb.ccg.unam.mx/menu/download/datasets/files/TUSet.txt">here</a>, contains the starting position of each TU and its promoter name. Our software picks out the starting position into a integer array. Using the left position picked out in gene info, our software would find out which unit the gene belongs to through dichotomy method and then stores the name of promoter into corresponding object.</br></br> | <div class="jobs_item" style="display: none;"><p align="justify">All promoter information has been deposited into a file named promoter_info which could be downloaded <a class="content" href="http://regulondb.ccg.unam.mx/menu/download/datasets/files/PromoterSet.txt">here</a>. But we also need transcription unit information because the information files about promoter do not contain all genes' names backward. “TU Info” file, which can be downloaded <a class="content" href="http://regulondb.ccg.unam.mx/menu/download/datasets/files/TUSet.txt">here</a>, contains the starting position of each TU and its promoter name. Our software picks out the starting position into a integer array. Using the left position picked out in gene info, our software would find out which unit the gene belongs to through dichotomy method and then stores the name of promoter into corresponding object.</br></br> | ||
The format of TU info database:</br> | The format of TU info database:</br> | ||
Line 124: | Line 144: | ||
- | <div class="jobs_trigger"> <strong>Integration</strong></div> | + | <div class="jobs_trigger" id="Integration"> <strong>Integration</strong></div> |
<div class="jobs_item" style="display: block;"><p align="justify"> | <div class="jobs_item" style="display: block;"><p align="justify"> | ||
Our software integrates all information we picked out about genes and generates a file named “all_info” —— all information about genes —— for the output graphical interface's reading. In the meanwhile, the array of objects containing all information has been stored in computer memory which greatly improve the computing speed of our software.</br></br> | Our software integrates all information we picked out about genes and generates a file named “all_info” —— all information about genes —— for the output graphical interface's reading. In the meanwhile, the array of objects containing all information has been stored in computer memory which greatly improve the computing speed of our software.</br></br> | ||
Line 233: | Line 253: | ||
- | <h2>Forward Analysis</h2> | + | <h2 id="fa">Forward Analysis</h2> |
- | <div class="jobs_trigger"><strong>Construct New GRN</strong></div> | + | <div class="jobs_trigger" id="cng"><strong>Construct New GRN</strong></div> |
<div class="jobs_item" style="display: none;"> | <div class="jobs_item" style="display: none;"> | ||
<h3>1 User Input</h3> | <h3>1 User Input</h3> | ||
Line 374: | Line 394: | ||
</p> | </p> | ||
</div> | </div> | ||
- | <div class="jobs_trigger"><strong>Network Model</strong></div> | + | <div class="jobs_trigger" id="nm"><strong>Network Model</strong></div> |
<div class="jobs_item" style="display: none;"> | <div class="jobs_item" style="display: none;"> | ||
<p align="justify">Network analysis includes finding stable condition of network, adding new gene, finding new stable condition and changes from original condition to new condition. We use densities of materials to describe network condition. If all material densities are time-invariant, we can say the network condition is stable.</p> | <p align="justify">Network analysis includes finding stable condition of network, adding new gene, finding new stable condition and changes from original condition to new condition. We use densities of materials to describe network condition. If all material densities are time-invariant, we can say the network condition is stable.</p> | ||
Line 401: | Line 421: | ||
</div> | </div> | ||
- | <div class="jobs_trigger"><strong>Evaluate Network</strong></div> | + | <div class="jobs_trigger" id="en"><strong>Evaluate Network</strong></div> |
<div class="jobs_item" style="display: none;"> | <div class="jobs_item" style="display: none;"> | ||
<p align="justify">Record the original stable condition, set new material density to 0 and this is the new initial density vector. Solve new equations and record density vectors before the new condition is stable and store these data in a text file.</br></br> | <p align="justify">Record the original stable condition, set new material density to 0 and this is the new initial density vector. Solve new equations and record density vectors before the new condition is stable and store these data in a text file.</br></br> | ||
Line 417: | Line 437: | ||
- | <h2>Reverse Analysis</h2> | + | <h2 id="ra">Reverse Analysis</h2> |
- | <div class="jobs_trigger"><strong>Virtual Gene</strong></div> | + | <div class="jobs_trigger" id="vg"><strong>Virtual Gene</strong></div> |
<div class="jobs_item" style="display: none;"> | <div class="jobs_item" style="display: none;"> | ||
<p align="justify">Before reverse analysis, we use the same idea about constructing a new GRN. So we create a virtual gene which replace the gene what users want to get. In calculation, it means that we add a row and a column to the matrix of GRN.</p> | <p align="justify">Before reverse analysis, we use the same idea about constructing a new GRN. So we create a virtual gene which replace the gene what users want to get. In calculation, it means that we add a row and a column to the matrix of GRN.</p> | ||
Line 425: | Line 445: | ||
- | <div class="jobs_trigger"><strong>Expression Range</strong></div> | + | <div class="jobs_trigger" id="er"><strong>Expression Range</strong></div> |
<div class="jobs_item" style="display: none;"> | <div class="jobs_item" style="display: none;"> | ||
<p align="justify">Before prediction, the expression of specific genes which the experimenter needs should be input into our software as well as the improvement or depression. The number of target gene is SIX at most.</br></br> | <p align="justify">Before prediction, the expression of specific genes which the experimenter needs should be input into our software as well as the improvement or depression. The number of target gene is SIX at most.</br></br> | ||
Line 433: | Line 453: | ||
- | <div class="jobs_trigger"><strong>Particle Swarm Optimaztion</strong></div> | + | <div class="jobs_trigger" id="pso"><strong>Particle Swarm Optimaztion</strong></div> |
<div class="jobs_item" style="display: none;"> | <div class="jobs_item" style="display: none;"> | ||
<p align="justify"> | <p align="justify"> | ||
Line 443: | Line 463: | ||
- | <div class="jobs_trigger"><strong>Locate Optimal Target</strong></div> | + | <div class="jobs_trigger" id="lot"><strong>Locate Optimal Target</strong></div> |
<div class="jobs_item" style="display: none;"> | <div class="jobs_item" style="display: none;"> | ||
<p align="justify">To improve the efficiency of choosing a suitable gene after getting a series of regulatory value, our software picks out some obvious regulation. The value of regulation is between -1 to 1 in which -1 means negative effect and 1 means positive effect. As a result, what our software has done is filtering out the absolute value which is lower than 0.9. Because the difference of regulatory intensity lower than 0.1 has very little effect to the stable expression, the final result of regulation is indicated by Boolean value.</br></br> | <p align="justify">To improve the efficiency of choosing a suitable gene after getting a series of regulatory value, our software picks out some obvious regulation. The value of regulation is between -1 to 1 in which -1 means negative effect and 1 means positive effect. As a result, what our software has done is filtering out the absolute value which is lower than 0.9. Because the difference of regulatory intensity lower than 0.1 has very little effect to the stable expression, the final result of regulation is indicated by Boolean value.</br></br> |
Revision as of 00:32, 28 October 2013
Methodologies
In order to simulate the GRN's working and analyze the changing after exogenous gene imported, some advanced algorithms and classical methods are employed in the software. These algorithms and methods include Binary Tree method, Needle-Wunsch Algorithm, Decision Tree method, Hill Equation and PSO Algorithm.
There are four parts of methodologies: Database, Operon Theory and Regulatory Model, Forward Analysis and Reverse Analysis.
Database
Our software integrates all information we picked out about genes and generates a file named “all_info” —— all information about genes —— for the output graphical interface's reading. In the meanwhile, the array of objects containing all information has been stored in computer memory which greatly improve the computing speed of our software. The format of all_info database: No. promoter_sequence gene_sequence gene_name ID left_position right_position promoter_name description The fetching module generates three files: old_GRN, all_info and uncertain_database.