
TinkerCell is a Computer-Aided Design software tool for Synthetic Biology that promotes collaboration through its plugin interface. This blog is used to keep notes on updates to the project.
Friday, November 12, 2010
TinkerCell "lite"
MainWindow now has a new static field called PROGRAM_MODE. This is an optional field used to indicate the "mode" of the program. Different plug-ins can choose to behave differently based on the program mode. For example, setting the mode to "lite" makes the CatalogTool load minimal tabs at the top and prevents some other tools from showing themselves.


Friday, October 29, 2010
"groupID" for graphics items and file formats
A new variable called groupID has been added to all the graphic item classes (i.e. NodeGraphicsItem, ConnectionGraphicsItem, and TextGraphicsItem).
The purpose of this new variable is to group graphics items together. Specifically, it is used to identify all the items that belong in the same scene. Since a single handle can contain multiple graphics items in different scenes, there was no other way to determine which item belongs in which scene. Further, ConnectionGraphicsReader was using position to identify nodes connected to a connection, which is faulty if two or more scenes have items of the same handle at the same position. The new variable is used by ConnectionGraphicsReader to identify the proper nodes. It is also used by ModuleTool to identify which items to load into a new scene.
By default, groupID is empty. This variable will not be made accessible through the C API since it is purely for graphics.
The purpose of this new variable is to group graphics items together. Specifically, it is used to identify all the items that belong in the same scene. Since a single handle can contain multiple graphics items in different scenes, there was no other way to determine which item belongs in which scene. Further, ConnectionGraphicsReader was using position to identify nodes connected to a connection, which is faulty if two or more scenes have items of the same handle at the same position. The new variable is used by ConnectionGraphicsReader to identify the proper nodes. It is also used by ModuleTool to identify which items to load into a new scene.
By default, groupID is empty. This variable will not be made accessible through the C API since it is purely for graphics.
Auto-updates
The following site is home to TinkerCell's plugins.
http://tinkercellextra.svn.sourceforge.net/
If a machine as SVN installed, then TinkerCell automatically sets up an SVN repository in the TinkerCell home folder (i.e. usually Documents/TinkerCell). The files in the above repository are automatically updated each time TinkerCell starts. This is very simple. In the DynamicCodeMain.cpp.in file, a system call is made to svn -- simple.
Additionally, there is a file called updates.txt in this repository that is automatically updated by CMake. In the DynamicCodeTools/CMakeLists.txt file, the last line runs a perl script that updates the updates.txt file so that updates.txt has the current SVN revision number in it. When TinkerCell starts, it checks to see that the version number matches the number listed in this file. If not, a message is displayed notifying the user of a newer version.
http://tinkercellextra.svn.sourceforge.net/
If a machine as SVN installed, then TinkerCell automatically sets up an SVN repository in the TinkerCell home folder (i.e. usually Documents/TinkerCell). The files in the above repository are automatically updated each time TinkerCell starts. This is very simple. In the DynamicCodeMain.cpp.in file, a system call is made to svn -- simple.
Additionally, there is a file called updates.txt in this repository that is automatically updated by CMake. In the DynamicCodeTools/CMakeLists.txt file, the last line runs a perl script that updates the updates.txt file so that updates.txt has the current SVN revision number in it. When TinkerCell starts, it checks to see that the version number matches the number listed in this file. If not, a message is displayed notifying the user of a newer version.
Monday, October 11, 2010
Octave/Matlab export
OctaveExportTool adds a menu item in the File menu for exporting Matlab or Octave ODE functions along with a few other functions, such as setParameters for any sort of optimization routines.
Saturday, October 9, 2010
Thursday, September 23, 2010
Themes
TinkerCell now uses "Themes" to categorize graphics object. Each Theme is defined by a set of Nodes, Arrows, and Decorators. Each theme rests in a folder. There are three themes as of today:
Fancy1, Bio1, Blocks1
These themes are located inside the Graphics folder. In TinkerCell Options->"Select Theme" is used to switch between themes. TinkerCell searches the home folder (i.e. Documents/TinkerCell) first, which means that users can make new Themes and place them in the home folder.
Here is how to make a new Theme:
1. Create a folder in the Documents/TinkerCell folder called "Graphics"
2. Inside Graphics, create a folder with any name. The folder name is the name of your theme
3. Make three folders inside your theme folder: Nodes, Arrows, Decorators (case sensitive, I think)
4. Use the NodeGraphics program to make nodes, arrows, and decorators xml and PNG files, and put those files in the appropriate folders. Note that the NodeGraphics program creates an xml file (the vector graphics) and a PNG file (used to draw buttons).
5. Make sure that the names are correct. Eg. the .xml and .PNG file for drawing "Protein" types should be names Protein.xml, and the arrow for EnzymeCatalysis reactions should be names EnzymeCatalysis.xml. The Decorators should also use process family names, e.g. EnzymeCatalysis. You may want to look at the existing TinkerCell/Graphics folder.
6. Once you are done with your Theme, create a drawing in TinkerCell using your theme. Take a screenshot and save the "screenshot.png" file in your Theme folder. The Options->"Select Theme" dialog will display this file.
Tuesday, September 21, 2010
Thursday, September 16, 2010
Wednesday, September 8, 2010
New C/Python/Octave functions
tc_simulateODE
tc_simulateSSA
tc_scanSteadyState
tc_exportSBML
tc_screenshot
tc_screenWidth
tc_screenHeight
tc_savePlot
Name change in the C/Python/Octave API
Classes for embedding Python and Octave are now included inside the TinkerCellCore library.
Names of the base classes have changed to avoid confusion with the existing Octave classes. All data structures now have a tc_ prefix to avoid collisions. Here is the detailed documentation:
Names of the base classes have changed to avoid confusion with the existing Octave classes. All data structures now have a tc_ prefix to avoid collisions. Here is the detailed documentation:
All the function names available in the link above can be called from C, Python, or Octave.
Subscribe to:
Posts (Atom)