Monday, October 13, 2008

Structure and Framework



TinkerCell is built using the wonderful Qt Toolkit

TinkerCell's core library  (Tinkercell.dll, Tinkercell.so, or Tinkercell.dylib)  is a very general framework that provides a structure and various services. It is not necessarily a program for biological networks, but initial set of plug-ins that come with TinkerCell are specifically designed with synthetic biology in mind. In this blog (and the rest), I will use the term "tool" to refer to plug-ins. 

TinkerCell has 5 different types of graphics items: texts (TextGraphicsItem.h), parts  (PartGraphicsItem.h), connections (ConnectionGraphicsItem.h), control points (PartGraphicsItem.h) , and graphic tools (Tool.h). Everything that is drawn on the screen is one of these. Parts themselves are composed of smaller shapes, but those cannot be selected separately, except in the PartGraphics program.



In TinkerCell, almost all graphical item belongs with a Handle, (ItemHandle.h). A handle brings together the graphics item(s), the tools associated with the graphics item(s), the data associated with the graphics item(s), and the family of the item(s). Each handle represents a single entity in the model. The graphics items inside that handle are the visual representations of that entity. A single entity can be represented using multiple graphics items -- for example, aliases are perfect examples of a single handle having two graphical items. Labels and other texts are also usually part of the same handle. Graphical items without handles include arrow-heads, graphic tools, and control points. Free floating text may not have handles either.


The "data" block is a key feature in TinkerCell. It allows a great amount of flexibility in what can be represented. 

Each handle contains a data item (ItemHandle.h). Each data item is a hash table, where the tools can store custom data tables (DataTable.h). The attributes and stoichiometry information are not part of the TinkerCell core. They are added by tools (plug-ins). Thus, new tools can add new information to the items in TinkerCell. 


The family information (ItemFamily.h) is used to classify and annotate each handle. Item families contain a name, initial set of attributes for handles in that family, and the default graphics item(s) for handles in that family. Families also have parents; they can have multiple parents. 


Downloads


Executables

Available from SourceForge

Installation

Windows : run MSI file
Mac : just copy the bundle
Linux : get the source code as instructed below and use CMake to generate the Makefile

Source code

svn co https://tinkercell.svn.sourceforge.net/svnroot/tinkercell tinkercell

For building the project from the source code, you will need to install:
1. Qt 4.5.0 or higher (there may be compile issues with older versions of Qt)
2. CMake (cross-platform make)

Run the CMake-gui that is located inside the CMake directory. Specify the Tinkercell/trunk folder as the source folder and Tinkercell/trunk/BUILD (create it) folder as the Build folder. Run "Configure" and then "Generate" to create the makefile or project file. Then just run make or open the project file.
  • Current release: Beta?
  • Want to join? E-mail me.

Video Tutorials

The video tutorials have been placed on the main site:

http://www.tinkercell.com/tutorials-1/tutorials

Screenshots

Sunday, October 12, 2008

Welcome

Welcome to the TinkerCell Blog.

TinkerCell is a free and open-source project for Synthetic Biology. The intent behind TinkerCell is to make it into a community-driven project. Adding new functionalities to TinkerCell is kept very simple for this reason. 

TinkerCell is designed to serve as a visual interface that brings together information from databases and analyses programs written in C (or C based languages like Python, Ruby, R, etc.). This is how it is achieved:
  1. All items in TinkerCell have "data" associated with them. For example, a binding reaction will have the dissociation constant, or a ribosome binding site will have some sort of "efficiency" value. The list of attributes for each item is customizable. If a database contains information such as these, then TinkerCell models can be linked with the database(s) in order to fill all the details of the model.
  2. TinkerCell provides a list of functions that allow C programs to directly interact with TinkerCell, thus allowing existing powerful packages such numerical analyses or linear algebra libraries to be directly incorporated into TinkerCell. This also benefits from the speed of C programs. Since languages such as Python can be embedded in C, such C-based programs can also be used to add functions to TinkerCell
  3. Users can construct networks and use the C programs to analyze their network through the visual interface.