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.
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.
Wednesday, August 25, 2010
Defining and creating new modules
The video shows how new modules can be defined and added. A "module" is an encapsulated biological process. So, in TinkerCell, this is treated like a "connection". The graphical representation will be modified to show something more than just a connection (not in this video).
Thursday, August 19, 2010
How the autocompletion of reaction works
Each reaction is now defined by:
1. the family
2. the types, i.e. families, of nodes involved in the connection
3. the "role" of each node involved in the connection
ConnectionFamily::nodeFamilies and ConnectionFamily::nodeFunctions store this information (number 2 and 3 above)
For example, the family named "Enzyme Catalysis" would have:
participant families = Molecule, Molecule, Enzyme
participant roles = Reactant, Product, Catalyst
The roles MUST be unique. If there are multiple Reactants, the roles should define Reactant1, Reactant2, and so on.
The roles are used for:
1. Generating the stoichiometry (Stoichiometry and Rates plugin)
2. Identifying where to place the arrow-heads (Connection Insertion plugin)
3. Identifying how to merge components in a sub-model with the parent-model
The Connection Insertion inserts an arrow for any participant that has the role "Product" or "Target" (or contains those strings).
The Stoichiometry plugins assumes that any participant labeled "Reactant" will be consumed in the reaction and any participant labeled "Product" will be produced.
1. the family
2. the types, i.e. families, of nodes involved in the connection
3. the "role" of each node involved in the connection
ConnectionFamily::nodeFamilies and ConnectionFamily::nodeFunctions store this information (number 2 and 3 above)
For example, the family named "Enzyme Catalysis" would have:
participant families = Molecule, Molecule, Enzyme
participant roles = Reactant, Product, Catalyst
The roles MUST be unique. If there are multiple Reactants, the roles should define Reactant1, Reactant2, and so on.
The roles are used for:
1. Generating the stoichiometry (Stoichiometry and Rates plugin)
2. Identifying where to place the arrow-heads (Connection Insertion plugin)
3. Identifying how to merge components in a sub-model with the parent-model
The Connection Insertion inserts an arrow for any participant that has the role "Product" or "Target" (or contains those strings).
The Stoichiometry plugins assumes that any participant labeled "Reactant" will be consumed in the reaction and any participant labeled "Product" will be produced.
Subscribe to:
Posts (Atom)