Team:USTC Software/hoWIO
From 2009.igem.org
(→SBML) |
|||
(11 intermediate revisions not shown) | |||
Line 19: | Line 19: | ||
SBML is neutral with respect to programming languages and software encoding; however, it's oriented towards allowing models to be encoded using XML. By supporting SBML as a format for reading and writing models, different software tools (including programs for building and editing models, simulation programs, databases, and other systems) can directly communicate and store the same computable representation of those models. This removes an impediment to sharing results and permits other researchers to start with an unambiguous representation of the model, examine it carefully, propose precise corrections and extensions, and apply new techniques and approaches—in short, to do better science. | SBML is neutral with respect to programming languages and software encoding; however, it's oriented towards allowing models to be encoded using XML. By supporting SBML as a format for reading and writing models, different software tools (including programs for building and editing models, simulation programs, databases, and other systems) can directly communicate and store the same computable representation of those models. This removes an impediment to sharing results and permits other researchers to start with an unambiguous representation of the model, examine it carefully, propose precise corrections and extensions, and apply new techniques and approaches—in short, to do better science. | ||
+ | |||
+ | '''Software support''' | ||
As the matter of fact, there has been lots of softwares known to us to provide some degree of support for reading, writing, or otherwise working with SBML. Thus, we make SBML to access our software, which makes it more compatible to other biological softwares. Users can output SBML file from our software, which means you can get a standard expression of biological system. It is facilitate for you to analyse the model in other SBML-related softwares. | As the matter of fact, there has been lots of softwares known to us to provide some degree of support for reading, writing, or otherwise working with SBML. Thus, we make SBML to access our software, which makes it more compatible to other biological softwares. Users can output SBML file from our software, which means you can get a standard expression of biological system. It is facilitate for you to analyse the model in other SBML-related softwares. | ||
- | To access the requirement, there must be a tool helps us to fetch the list of data from a SBML file. Fortunately, [http://sbml.org/Software/libSBML LibSBML] assists us for all the SBML related staff. LibSBML is an open-source programming library to help you read, write, manipulate, translate, and validate SBML files and data streams. The Latest stable release of LibSBML is 4.0.0. you can visit the SBML web site for more details. In terms of our software, the following | + | To access the requirement, there must be a tool helps us to fetch the list of data from a SBML file. Fortunately, [http://sbml.org/Software/libSBML LibSBML] assists us for all the SBML related staff. LibSBML is an open-source programming library to help you read, write, manipulate, translate, and validate SBML files and data streams. The Latest stable release of LibSBML is 4.0.0. you can visit the SBML web site for more details. In terms of our software, the following three major functions has been accomplished based on LibSBML. |
'''1.ReadSBMLFile'''[[Image:sbml.png|450px|right|thumb|Schematic view of reading SBML]] | '''1.ReadSBMLFile'''[[Image:sbml.png|450px|right|thumb|Schematic view of reading SBML]] | ||
- | The class ReadSBMLFile is used to extract all useful data from a SBML file and send them to the class “val_func”. Since each class represents one term of the the expression. all the terms will be push into a vector. In another word, another container has been created used to place a list of "val_func", of course you can realize that Nth list of "val_func" accommodates all the informations related to Nth species in this Biological system. Finally, all the containers will be | + | The class ReadSBMLFile is used to extract all useful data from a SBML file and send them to the class “val_func”. Since each class represents one term of the the expression. all the terms will be push into a vector. In another word, another container has been created used to place a list of "val_func", of course you can realize that Nth list of "val_func" accommodates all the informations related to Nth species in this Biological system. Finally, all the containers will be packaged orderly and send to the Particle Swarm Optimization Algorithm (PSO) part or the Global Sensitivity Analysis (GSA) part for the next step. Here are the components of class “val_func”. |
<pre> | <pre> | ||
class val_func | class val_func | ||
Line 60: | Line 62: | ||
Although we have listed all the types of bio-chemical reactions, it is also needed to make the mathematical expression fit each certain reaction. Since the SBML uses ASTNode(binary tree) to store the formulas, we choose to traverse binary tree and replace the name of each node the certain species and parameters. Thus, the kineticlaw is been made uniquely for each bio-chemical system. | Although we have listed all the types of bio-chemical reactions, it is also needed to make the mathematical expression fit each certain reaction. Since the SBML uses ASTNode(binary tree) to store the formulas, we choose to traverse binary tree and replace the name of each node the certain species and parameters. Thus, the kineticlaw is been made uniquely for each bio-chemical system. | ||
- | Here is | + | Here are the steps of converting “subs.dat” and ”dbt.dat” to SBML file: |
+ | |||
+ | 1. Create new SBMLDocument and model | ||
+ | |||
+ | 2. Scrape the species names from "subs.dat", and create new species in model | ||
+ | |||
+ | 3. Get reactions related information from"dbt.dat". As the graph, put them into the model by categories | ||
+ | |||
+ | 4. Rename the node to species name corresponding | ||
+ | |||
+ | 5. Validate the model | ||
+ | |||
+ | 6. Output SBML file | ||
+ | |||
+ | '''3.Verifying and other functions''' | ||
+ | |||
+ | One of the most important features of libSBML is its ability to perform SBML validation to ensure that a model adheres to the SBML specification for whatever Level+Version combination the model uses. Since it is difficult to ensure that everything in a model is constructed properly. The ability to perform automatic checks then becomes very useful. | ||
+ | |||
+ | LibSBML implements verification of SBML in two steps, represented by the two methods SBMLDocument::checkInternalConsistency() and SBMLDocument::checkConsistency(). The former verifies the basic internal consistency and syntax of an SBML document, and the latter implements more elaborate validation rules (both those defined by the SBML specifications, as well as additional rules offered by libSBML). When an application builds up a model programmatically and is finally ready to say "yes, this model is finished", it should call both of these methods to help ensure the correctness and consistency of the finished result. Conversely, if it is reading a model from a file or data stream, the function will automatically verify the syntax and schema consistency of the document. The application only needs to check the results by interrogating the error log on the SBMLDocument object, then call SBMLDocument::checkConsistency() for checking the model against the SBML validation rules. | ||
- | + | As mentioned above, SBML uses ASTNode(binary tree) to store the formulas, we still need to find a solution for connecting between the binary tree and calculation, considering of the rename part of WriteSBMLFile. in-order traversing binary tree seems the best way to measure this problem. The function "getformula"; "judge_opreator" and "output" are used to accomplish the traversal work. The output of the function "getformula" is the value of the formula based on the initial amounts of all the variables. | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
==Assitant Input Plug-ins== | ==Assitant Input Plug-ins== |
Latest revision as of 03:17, 22 October 2009
About | Team and People | Project | Standard | Notebook | Demo | Safety | External Links |
---|
|
|