Thursday, December 8, 2011

Running TinkerCell from USB

To store all the settings in a USB drive, do this:
  1. Use Settings -> "Export current settings" to export "settings.ini"
  2. Copy the "settings.ini" file to the same location as TinkerCell (on the Mac, this will be
  3. Now the TinkerCell application folder is self-contained. Copy it on a USB drive. That's all.
What exactly is this doing?
The "settings.ini" stores settings such as window position and sizes, catalog items to display, plot line colors, and so on. Usually, these settings are stored on the computer where TinkerCell runs, but the export option described above can be used to save and load the settings from a file. TinkerCell will first check if there is a "settings.ini" file; if not, then it will load settings from the local machine. So, if you distribute TinkerCell on a USB with the "settings.ini" file, then everyone who copied TinkerCell from that USB drive will have the same settings.

Careful when using dual-monitor: The settings file also includes window positions, so if you use a dual-monitor setup, be sure that the TinkerCell window is on the first monitor. Otherwise, it will load outside the screen when you load it in another computer without a second monitor. 

Friday, November 25, 2011

Simple animation based on simulated result

The tc_setAlpha function allows C, Python, Octave plugins to change the transparency of items on the screen. This "Shade after Simulation" python plugin uses this function to perform a simple animation based on simulated data (or any other data that has been plotted). See the end of the plugins documentation for the code.

Thursday, November 10, 2011

Tuesday, September 13, 2011

SBML and Antimony as modules

The modular framework in TinkerCell is designed to support practically any format that can be loaded into TinkerCell. As a consequence, Antimony and SBML files can be used as modules. In the schreenshot below, a TinkerCell oscillator module is modeled using an Antimony script. The modular framework maps variables in the Antimony script to variables in the conceptual model.

Friday, September 2, 2011

Same network, different behaviors

Since TinkerCell decouples the notion of a "biological network", or system, from the actual mathematical model, it is possible to generate multiple models of the same system. The screenshot below is of an enzyme with two states, enz1 and enz2. Both states are auto-catalytic. Because of this dual positive feedback, one would guess that the system would become bistable. However, this system is bistable only for certain model implementations. If steady state assumptions are used in the model, then the system is bistable. If mass-action kinetics is used, we see that the intermediate states of the enzyme catalysis process are not really in steady state, and in such models, the bistability also disappears. 

New video of ring oscillator model

Coupled oscillator modules

TinkerCell's modular framework allows users to perform experiments such as the one shown below. Here, two oscillators are connected to each other. Each oscillator *can* take multiple models. This is the benefit of using modular design -- the internal details can be swapped without affecting the conceptual overall design, i.e. two coupled oscillators. One of the TinkerCell Python plugins allows users to test all possible oscillator combinations. Currently, only two oscillator designs are available (you can add more and submit to the repository if you want!). So, the total number of combinations are 4, which are the 4 graphs shown below. Notice that in one of the designs (top left), one oscillator somewhat controls the frequency of the other. By tuning parameters further, this design can actually be used to create an oscillator where the frequency is also oscillating.

Thursday, July 21, 2011

More visual cues for showing contents of equations

When hovering over components with a function, TinkerCell used to show a function tool-tip indicating how the function is defined for that component. Now, TinkerCell also highlights all the other components that are involved in that function. For example, if the activity of a gene is describes as plasmid.copy * operator1 * operator2, then TinkerCell will circle the plasmid and both operators when the mouse hovers over the gene component. See screenshots below.

Thursday, July 7, 2011

Sequence annotation widget

It was always possible to add any type of annotation to any component, including sequence annotations, in TinkerCell, but this had to be done programmatically, i.e a couple of lines of python or octave code. For sequence annotation, now the sequence-viewer plug-in also provides a simple widget for adding position and description to the selected part. The table will be saved as "sequence annotation", i.e it can be accessed via a python or octave program using:
p = tc_find("cod2");   #get the part
sa = tc_getTextDataTable(x, "sequence annotation"); #get sequence annotation
tc_getTableValue( sa, 0, 0)