Team:USTC Software/Notebook
From 2009.igem.org
(→GUI (Xiaomo Yao)) |
(→Sep. 2, 2009) |
||
(40 intermediate revisions not shown) | |||
Line 18: | Line 18: | ||
==Calendar and Events== | ==Calendar and Events== | ||
+ | ===Group Meetings: Slides and Records=== | ||
+ | {|- | ||
+ | |align = "left"| | ||
+ | |||
+ | ::Feb. 11, 2009 | ||
+ | :::[http://home.ustc.edu.cn/~heyu3/090211.txt (abstract)] | ||
+ | |||
+ | ::Feb. 12, 2009 | ||
+ | |||
+ | :::[http://home.ustc.edu.cn/~heyu3/090212.txt (abstract)] | ||
+ | |||
+ | ::Feb. 21, 2009 | ||
+ | :::[http://home.ustc.edu.cn/~heyu3/090221.txt (abstract)] | ||
+ | :::[http://home.ustc.edu.cn/~heyu3/BioCADthought.ppt (slides)] | ||
+ | |||
+ | ::Feb. 28, 2009 | ||
+ | :::[http://home.ustc.edu.cn/~heyu3/Virtual_E._coli.ppt (slides)] | ||
+ | |||
+ | ::Mar. 7, 2009 | ||
+ | :::[http://home.ustc.edu.cn/~heyu3/WholecellSimulation.pdf (slides)] | ||
+ | |||
+ | ::Mar. 15, 2009 | ||
+ | :::[http://home.ustc.edu.cn/~heyu3/Dry_Week_4.txt (abstract)] | ||
+ | :::[http://home.ustc.edu.cn/~heyu3/Week4.pptx (slides)] | ||
+ | |||
+ | |||
+ | ::Mar. 29, 2009 | ||
+ | :::[http://home.ustc.edu.cn/~heyu3/Onaviewpointofstochasticprocess.pdf (slides)] | ||
+ | :::[http://home.ustc.edu.cn/~heyu3/info-week6.pdf (slides)] | ||
+ | |||
+ | ::Apr. 8, 2009 | ||
+ | :::[http://home.ustc.edu.cn/~heyu3/090408.txt (abstract)] | ||
+ | |||
+ | ::Apr. 18, 2009 | ||
+ | :::[http://home.ustc.edu.cn/~heyu3/Software.ppt (slides)] | ||
+ | |||
+ | ::Apr. 21, 2009 | ||
+ | :::[http://home.ustc.edu.cn/~heyu3/Simuweek7.pptx (slides)] | ||
+ | |||
+ | ::Apr. 24, 2009 | ||
+ | :::[http://home.ustc.edu.cn/~heyu3/FlowChart.pptx (slides)] | ||
+ | |||
+ | ::May 16, 2009 | ||
+ | :::[http://home.ustc.edu.cn/~heyu3/090516.pptx (slides)] | ||
+ | |||
+ | ::May 22, 2009 | ||
+ | :::[http://home.ustc.edu.cn/~heyu3/SBML_zqliu.ppt (slides)] | ||
+ | |} | ||
==Work Distribution== | ==Work Distribution== | ||
Line 67: | Line 115: | ||
Wikiwikiwiki~ Fast learning needed to digest so much info... | Wikiwikiwiki~ Fast learning needed to digest so much info... | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
|- | |- | ||
Line 80: | Line 121: | ||
====Jun. 15, 2009==== | ====Jun. 15, 2009==== | ||
+ | {|- | ||
+ | | | ||
Start GUI design | Start GUI design | ||
[[Image:yxm1.png|left|200px|thumb]] | [[Image:yxm1.png|left|200px|thumb]] | ||
- | + | |- | |
+ | | | ||
====Jul. 26, 2009==== | ====Jul. 26, 2009==== | ||
Start GUI project | Start GUI project | ||
Vedio Commu. | Vedio Commu. | ||
- | + | |- | |
+ | | | ||
====Jul. 27, 2009==== | ====Jul. 27, 2009==== | ||
Form created, with MDI & dock windows | Form created, with MDI & dock windows | ||
GUI version 090727 released | GUI version 090727 released | ||
[[Image:yxm2.png|left|200px|thumb]] | [[Image:yxm2.png|left|200px|thumb]] | ||
- | + | |- | |
+ | | | ||
====Aug. 4, 2009==== | ====Aug. 4, 2009==== | ||
XML editor finished | XML editor finished | ||
- | + | |- | |
+ | | | ||
====Aug. 13, 2009==== | ====Aug. 13, 2009==== | ||
Start developing layout drawing canvas | Start developing layout drawing canvas | ||
[[Image:yxm3.png|left|200px|thumb]] | [[Image:yxm3.png|left|200px|thumb]] | ||
- | + | |- | |
+ | | | ||
====Aug. 22, 2009==== | ====Aug. 22, 2009==== | ||
Layout drawing canvas developed; Reactions and modifiers enabled | Layout drawing canvas developed; Reactions and modifiers enabled | ||
[[Image:yxm4.png|left|200px|thumb]] | [[Image:yxm4.png|left|200px|thumb]] | ||
- | + | |- | |
+ | | | ||
====Aug. 26, 2009==== | ====Aug. 26, 2009==== | ||
Layout drawing canvas completed | Layout drawing canvas completed | ||
- | [[Image:yxm5.png|left| | + | [[Image:yxm5.png|left|150px|thumb]][[Image:yxm6.png|left|150px|thumb]][[Image:yxm7.png|left|150px|thumb]] |
- | + | |- | |
- | + | | | |
====Aug. 27, 2009==== | ====Aug. 27, 2009==== | ||
GUI version 090827 released | GUI version 090827 released | ||
- | [[Image: | + | [[Image:yxm11.png|left|200px|thumb]] |
- | + | |- | |
+ | | | ||
====Aug. 31, 2009==== | ====Aug. 31, 2009==== | ||
Start programming interface with identification/analysis algorithms | Start programming interface with identification/analysis algorithms | ||
- | + | |- | |
+ | | | ||
====Oct. 5, 2009==== | ====Oct. 5, 2009==== | ||
Interface developed | Interface developed | ||
- | + | |- | |
+ | | | ||
====Oct. 16, 2009==== | ====Oct. 16, 2009==== | ||
Interface completed | Interface completed | ||
GUI version 091017 released | GUI version 091017 released | ||
- | [[Image: | + | [[Image:yxm8.png|left|150px|thumb]][[Image:yxm9.png|left|150px|thumb]][[Image:yxm10.png|left|150px|thumb]] |
- | + | |} | |
Line 134: | Line 186: | ||
====Feb. 12, 2009==== | ====Feb. 12, 2009==== | ||
+ | No matter what kind of software we will make, it is sure that one of the most important work is to find out the structure and functions of existing software. Preparing start from Athena and Tinkercell, two multi-function synthetic biological software. | ||
+ | OMG!! these software are great! They can do not only some simulating works, but also other create job! Their GUI also performs well. It seems hard to beyond or even achieve them in simulating functions. We have to find other highlights. | ||
+ | |- | ||
+ | | | ||
+ | ====Mar. 14, 2009==== | ||
+ | Be aware of SBML, a standard structured file contains a certain chemical/biological system. The support of SBML related functions in Athena; Tinkercell and other software convince me the necessity of providing these functions in our software. It means our output can supply a standard interface to others. | ||
+ | ====May. 2, 2009==== | ||
+ | Start learning SBML and LibSBML. Well~~ download, unzip, install, OMG!! Quite a lot of codes, my teammates advise me to read the tutorial first. Yes, after reading, I realize the structure of SBML file and working process of LibSBML approximately. In terms of our software, some basic information of the SBML file is needed, such as amount of spceies and parameters, their names, information of each reaction, including the mathematical expressions of each kineticlaw. All these data need to extract from given SBML file. So it looks learning to use LibSBML is inevitable. | ||
+ | |||
+ | ====Jun. 6, 2009==== | ||
+ | Go on working with LibSBML, Successfully output the species names, parameters and other informations. | ||
+ | |||
+ | Need to face some problems when deal with the mathematical expressions, SBML uses ASTNode to store the formula, although it is not difficult to manage the "tree" data structure, I still need to make clear the functions in "class ASTNode". | ||
+ | My teammates need me to supply the information orderly, which means : | ||
+ | |||
+ | 1. The information of one reaction should be stored by categories. | ||
+ | |||
+ | 2. The terms(the formula related to one certain species) should be put together. | ||
+ | |||
+ | 3. The whole information need to be packaged for next step. | ||
+ | |||
+ | ====Aug. 15, 2009==== | ||
+ | The readSBMLFile part finished, in this part, I pick each species list in the file orderly, and search all reactions, if the species appeared in "ListOfReactants"; "ListOfProducts" or "ListOfModifiers", i'll push the informations of the reaction into the vertor<term>, the data structure of vector<term> has been decided as "class val_func". After the traversing, i'll package these vectors<term>, and sent to the next step. | ||
+ | |||
+ | ====Aug. 31, 2009==== | ||
+ | The writeSBMLFile part finished, the experience of making read part facilitates me to assemble this part. Besides some normal steps, I use "traversing binary tree" to make the mathematical expression fit each certain reaction. But there also some problems with open files from database part, I still need to work on this~~ | ||
+ | |||
+ | ====Sep. 2, 2009==== | ||
+ | Solving the problems in writing part, the varifying part works successfully. | ||
+ | [[Image:Readsbml.png|center|600px]] | ||
+ | [[Image:Model.png|center|600px]] | ||
+ | |||
+ | ====Sep. 15, 2009==== | ||
+ | Providing two functions adopt to calculate the value of an ASTNode tree, the initial value of all variables can be given from a vector<data_list> orderly. Still using "traversing binary tree" method. The only problem is when deal with the operator "power", despite SBML has define the "power" as "^", Some former version SBML still using the name "power" instead of using "^", I have to treat treat this kind of node as an operator. Some codes need to be rewrited... | ||
+ | |||
+ | ====Oct. 2, 2009==== | ||
+ | connecting to other parts of the ABCD... | ||
+ | |||
+ | ===PSO, I/O Database and Miscellaneous(Yuwei Cui, Yu He)=== | ||
+ | |||
+ | ====Apr. 3, 2009==== | ||
+ | {|- | ||
+ | | | ||
+ | Release of '''''bmptodat''''' plug-in, in order to realize 'desire in, solution out'<br /> | ||
+ | '''Source Code File:'''FuncExtractor.cpp<br /> | ||
+ | '''Function:''' Extract function info from a .bmp file<br /> | ||
+ | '''Input:''' .bmp file path and name (less than 200 bytes) | .dat file path and name (less than 200 bytes)<br /> | ||
+ | '''Output:''' .dat file with range x[0,1], y[0,1], and step length of 0.01 (alterable).<br /> | ||
+ | '''Demo:'''<br /> | ||
|- | |- | ||
| | | | ||
- | + | 1.Draw the picture D:\Activities\iGEM\Codes\weigh.bmp like this: | |
+ | [[Image:wigh.jpg|left|150px|thumb]]<br /> | ||
+ | |- | ||
+ | | | ||
+ | 2.Input like this:<br /> | ||
+ | 3.Get a .dat file at under folder D:\Activities\iGEM\Codes, named weigh.dat like this: | ||
+ | |- | ||
+ | | | ||
+ | [[Image:console.png|left|250px|thumb]][[Image:funcextractordat.png|left|250px|thumb]]<br /> | ||
+ | |- | ||
+ | | | ||
+ | 4.Testify the output weigh.dat file by Origin8.0: | ||
+ | [[Image:testorigin.png|left|300px|thumb]]<br /> | ||
+ | |- | ||
+ | | | ||
+ | '''To be improved:''' <br /> | ||
+ | 1.Rescale-able range of x-axis and y-axis<br /> | ||
+ | 2.User designated step length<br /> | ||
+ | 3.Function of ‘smoothing’<br /> | ||
+ | |} | ||
+ | ====Apr. 15, 2009==== | ||
+ | Release of '''''matrixtoode''''' plug-in<br /> | ||
+ | '''Source Code File:'''Matrix_ODEArray_conv_1.0.cpp<br /> | ||
+ | '''Function:'''Convert a interaction-style matrix into text-ified ODE Array<br /> | ||
+ | '''Input:''' a coefficient matrix through console window<br /> | ||
+ | '''Output:''' .txt file describing the ODE Array in matlab readable text.<br /> | ||
+ | '''Demo:'''<br /> | ||
+ | {|- | ||
+ | | | ||
+ | 1.Input the coefficient matrix like this:<br /> | ||
+ | [[Image:MatrixtoODE.png|left|300px|thumb]] <br /> | ||
+ | |- | ||
+ | | | ||
+ | 2.Output completed like this:<br /> | ||
+ | |||
+ | [[Image:console2.png|left|300px|thumb]] <br /> | ||
+ | |- | ||
+ | | | ||
+ | '''Note:''' Depreciated later on.<br /> | ||
+ | |} | ||
- | ==== | + | ====May 15, 2009==== |
+ | Today the core algorithm of reverse engineering is proposed. We discussed possible approaches to realize these system identification requirements. | ||
+ | |||
+ | The very first thing emerge in my mind is Metropolis method and Monte Carol sampling. If we define an error function which serves as 'judging criteria', and a random number generator used for 'correction' or 'exploration', then we can basically get it running from pure theoretical view. | ||
+ | |||
+ | ====May 20, 2009==== | ||
+ | Fourth order multi-dimensional Runge Kutta Method is realized. Tested also on Mathematica7.0 to precision of 6th. digits. | ||
+ | |||
+ | |||
+ | ===='''Jul. 15, 2009'''==== | ||
+ | Hooray!!! Raw program of system identification on an colony-evolution system, whose behavior is damped oscillation realized.(3 functions, 6 parameters) | ||
+ | [[Image: heyu01.png|center|400px|thumb|Fast convergent to the targeted result]] | ||
+ | |||
+ | |||
+ | ===='''Aug. 5, 2009'''==== | ||
+ | Raw simulation of an oscillation example on substential level. (6 functions, 5 parameters, nonlinear model). | ||
+ | [[Image: heyu02.png|center|400px|thumb|Just 1000 steps will do the trick!]] | ||
+ | |||
+ | ===='''Sept. 1, 2009'''==== | ||
+ | Realizes multiple (13 functions, 11 parameters) targets identification with basic metropilis method and gradient decrease method. Yet, it is still a linear func array. I think it is a tradeoff between nonlinear complexity from equation term and increased number of linear functions. | ||
+ | [[Image: heyu03.png|center|400px|thumb|step by step, all 14 functions converges.]] | ||
+ | |||
+ | ====Sept. 3, 2009==== | ||
+ | Database in development. It's really a challenge to adopt SQLite now. I don't have that much confidence, since there's little time left. | ||
+ | |||
+ | ====Sept. 6, 2009==== | ||
+ | Today I finally make up my mind to realize the database from 'ab-initio' on. Since the schedule is so tight, I still feel safer to work with familiar C language. | ||
+ | |||
+ | ====Sept. 20, 2009==== | ||
+ | Okay, the very basic, essential, elementary database in .dat form is finished... | ||
+ | |||
+ | |||
+ | ====Sept. 28, 2009==== | ||
+ | Inter-database search and sort function completed. | ||
+ | |||
+ | ====Oct. 8, 2009==== | ||
+ | Thanks to Grapeot's timely suggestion and help. The new version of '''''bmptodat''''' plug-in is successfully upgraded by taking color-depth into consideration. This eliminates the x-axis 'triple folding' bug due to differnt color-depth of 8 bits and 24 bits. | ||
|} | |} |
Latest revision as of 04:00, 22 October 2009
About | Team and People | Project | Standard | Notebook | Demo | Safety | External Links |
---|
|
Opening RemarkIt's time to move from paper to website. We might recall the ever first plan and ambition when we first set feet on the software designing track. The following documentations record word by word the way how we are here. Calendar and EventsGroup Meetings: Slides and Records
Work Distribution
Future PlanOur detailed future plan about ABCD Suite is discussed in form of FAQ HERE. Closure - End or And?We hold in hands the same motivation to adventure, unfold and appreciate the secret of life via the way of virtual evolution and simulation. The seven of us major from automation to engineering, mathematics to physics, grading from freshman to PhD candidates. Though there had been hard times, we have a faith. More hopefully, we’d express our gratitude to the kind support from the School of Life Science of USTC, which makes all impossible possible. From the one-month brainstorm we collected our first proposal – construct virtual bacteria. Yet, for some practical reasons we then shifted to a second proposal, which narrowed to molecular level simulation and later on turned out to be the prototype of our present project. From the one-month brainstorm we collected our first proposal – construct virtual bacteria. Yet, for some practical reasons we then shifted to a second proposal, which narrowed to molecular level simulation and later on turned out to be the prototype of our present project. What do we desire to realize? In short, just tell us what you want your bio-device to behave, and we will return you with a list of eligible formation strategies for your design, of course, with bio-bricks. Turgidly as the idea might appear to be, this is basically an adoption of the gist of reverse engineering and evolution. By intake the custom-designated behaviors, we search, sometimes traverse, the solution space formed by nearly-inexhaustible combination of Biobricks. In order to make the simulative process applicable and practical, we employed a couple of algorithms widely used in computational sciences like Metropolis method and Dijkstra Algorithm to cut down the time cost and optimize the final result. Analysis on sensitivity and robustness has also been carried out to escort a reliable output of the final list of Biobrick combinations. Now we have an ABCD for reconstruction of bio-network, or rather, all ODE systems theoretically. But there still exist many more defects and more inspirations on a higher level. Therefore, instead of fixing 'The End' to the last line of our notebook, we'd rather define another 'and...' clause, claiming another start for greater good. See ya iGEM2010! |
|