Team:USTC Software/projectResources
From 2010.igem.org
Contents |
Overview
We use [http://en.wikipedia.org/wiki/C%2B%2B C++] as our programming language, [http://www.cmake.org/ cmake] to manage our project, [http://git-scm.com/ git] to [http://en.wikipedia.org/wiki/Revision_control reversion control], [http://dinosaur.compilertools.net/ yacc and lex] to build our model file input assistant tool, [http://qt.nokia.com/ Qt4] to build the GUI, [http://sourceforge.net/projects/dbxml-core/ Oracle dbxml] as our Database manager system. Other wise, several 3-rd party open source software or tools are used in our iGame source code. [http://sbml.org/Software/libSBML Libsbml] is used to deal with sbml file operations. Qwt and Qwtplot3D are used for simulation data visual system. At the early stage of our project [http://www.tbi.univie.ac.at/~raim/odeSolver/ SBML Ode Solver] and Sundials were our main ode solver to produce the simulation data from our sbml model file, because the latest [http://www.tbi.univie.ac.at/~raim/odeSolver/ SBML Ode Solver] is 1.6.0, developed in 2005, which is out date and fail to support the newest sbml Level 2 Version 4 standard. We succeed in updating the SBML Ode Solver 1.6.0 to support SBML L2V4, but some unfixed bugs was found, so we turn to a better ode solver [http://www.copasi.org/tiki-view_articles.php copasi], which moreover can flexibly display the ode solver output data and modify parameter to adjust the simulation output data curve. Obviously, those open source library and tools convenient to our design and implementation and help us to focus on our core working.
Prerequisits
To sum up, our igame complied and run in computers with following tools and libraries:
- C++ development environment. In Linux should be GNU C++ Tool Chain And in windows MingW Tool Chain.
- Qt4 develop and run-time environment. Qt4.7 is requirement. Editor or IDE like QtCreator or Vim is also needed.
- CMake, to configure the project and generate the Makefile. CMake 2.8 or later version is a requirement
- dbxml, The Berkeley xml native database, is available at [http://sourceforge.net/projects/dbxml-core/ http://sourceforge.net/projects/dbxml-core/]
- copasi, copasi 4.6 is a requirement. the source code and executable binary file can be downloaded at [http://www.copasi.org/tiki-index.php?page=download http://www.copasi.org/tiki-index.php?page=download], and one can follow [http://www.copasi.org/tiki-index.php?page_ref_id=115 those instruction] to build it from source code. What should be noticed is that copasi also has prerequisites, including LAPACK/CLAPACK for Maths, Qwt and Qwtplot3D for plotting, expat to parser xml, raptor The latest version of this RDF parsing library, and libsbml for deal with SBML operations.
- libsbml, Version 3.4.1 is a requirement. Not only it is the dependence of copasi, but also the dependence of igame core code.
Our source code can be downloaded in [git@github.com:jkdirac/igame.git github], git is helpful to download.
- git, to download our source code by command
- git clone git@github.com:jkdirac/igame.git
When create a new model file, a simple tool named [http://github.com/jkdirac/igame/tree/master/src/tools/dbparser/ dbparser] may be helpful, It's simple and easy to use, and hope you have fun! More information can be got from it's README.txt file.
Libraries
copasi
libsbml
dbxml
Qt
Qwt
Qwtplot3D
Tools
dbparser
Any question please mail jiangkun1@gmail.com
- Configure
The dbparser need libsbml to transfer math expressions to MathML string. So libsbml-3.4.1 or libsbml 4.0.1 is needed. And modfy those two flags in the Makefile to configure libsbml's header and libraries path. CCFLAGS = -g -I../../ExternalCode/sbml -I../../ExternalCode LIBS = libsbml.a libxerces-c.a libxml2.a -lz
- BUILD
After configuring, BUILD is very simple. There is only one Makefile in this fold. You can just type the command make to build the dbparser.
- How to use, example
dbparser is kind of a XML editor, to read a data input configure file to generate the needed XML formated file. The input file should follow a synatx. Take the [http://github.com/jkdirac/igame/blob/master/src/tools/dbparser/test1.in test1.in] as example. Run ./dbparser < test1.in, We can get a XML version file test.xml. Description:
- file = [test.xml]
This is to specify the output file name; - module: [helloworld] id = [abcvd];
Define a XML node named module, and value is "helloworld", and with attribute id="abcvd" - module id=[a] , name=[b], class=[c], time=[10] { SUBMODULE_STATEMENT };
Define a XML node with a XML node as its value, that is to say, define a composite XML node; - math: [a+b];
Define a math expression a+b, and it will be transferred to MathML Node.
The synatx is simple, have fun!
git
yacc&lex
cmake
Cmake is a cross platform tool, which can control the compile process, configure file and generate native Makefile. CMake have a GUI version, it is easy to use, so we prefer CMake to [http://www.gnu.org/software/automake/ AutoMake]. More information about CMake is available at [http://www.cmake.org/ http://www.cmake.org/]