Team:Berkeley Software/Spectacles

From 2009.igem.org

Revision as of 01:53, 22 October 2009 by Jchen (Talk | contribs)


Spectacles

Contents

Introduction

Spectacles - snazzy techno-shades for synthetic biology. (Illustrations courtesy of [http://slifertheskydragon.deviantart.com/ Christine Tsin])

The increased partification in synthetic biology calls for a method to visualize and manipulate standard biological parts in an iconified workspace. While Eugene defines a textual language, it lacks a visual component, and that is where Spectacles comes into the picture. Spectacles leverages [http://openwetware.org/wiki/Endy:Notebook/BioBrick_Open_Graphical_Language SBOL Visual's] parts images to provide the user with a rich visual palette that wraps up all of a part's properties into widgets in the workspace. Devices are presented as tabbed spaces to which parts can be dragged and dropped. Parts in the workspace can be rearranged simply by dragging and snapping a part into its new position in the sequence. Spectacles features tight integration with Eugene, complete with a built in text editor and rules enforcement. As a Clotho tool, Spectacles can also map part images to parts in the database and send part data to other Clotho tools. To sum things up, Spectacles is the one-stop shop for most, if not all, of your synthetic biological design needs.




Spectacles in action- see the demo.

Spectacles consists of three main parts: the parts palette, the device workspace, and the Eugene editor. The parts palette provides a source of part widgets, the device workspace stores and organizes the widgets, and the Eugene editor provides a convenient place to directly interact with parts and devices.

Spectacles eugene.png

Eugene Editor

At its core, the Eugene editor is a basic text editor that interacts with Eugene files. This is where you can utilize advanced features in Eugene, like rules and automated device generation. Eugene code can be quickly swapped between the Spectacles workspace and the Eugene editor via import and export buttons in the main window. This makes it easy to check for rule violations, as the checks happen when importing and exporting Eugene code. Spectacles will load a file with note violations, but not one with assertion violations, as per Eugene's rules specification.

Part image filenames take the form 'SBOLV.[type][orientation(+,-,)][_subtype].png'

Parts Palette

Aside from directly importing Eugene files, the parts palette is the place to go when designing a device in Spectacles. You can use the drop-down menu, or drag and drop parts onto the canvas; the parts will automatically snap into position. All drag operations can be canceled by right-clicking while holding the left mouse button down. Every part generated from the parts palette is a unique instance; right-click on a part widget and select 'Copy' to copy the part to the clipboard, and 'Paste' to drop a new copy of the part on the canvas. Spectacles also supports user-created part images. Just point Spectacles to the folder with the images and Spectacles will immediately load the new palette. The image associated with a specific part instance can also be changed by editing the part's properties in Eugene:

--------------------------------------------------------------------------
2.5. Image bindings
--------------------------------------------------------------------------
An image binding associates an image with a particular part. An image 
binding for a part must be made before any instances of the part are 
declared. An image binding for an instance of a part or device can be made 
after that instance is declared with the same syntax, but replacing part 
name with the instance name.

Grammar:
	Image(<part name>, <image path>);
		<part name>: name of a predefined part
		<image path>: absolute path of the image enclosed in double quotes

Example:
	Image(Promoter, "C:\My Images\promoter.jpg");
	Image(RBS, "C:\My Images\rbs.jpg");
Spectacles workspace.png

Device Workspace

The device workspace is where the magic happens in Spectacles. There are two components: the parts canvas, and the properties panel.

The canvas contains the device's part and sub-device widgets. Widgets are easily re-ordered by dragging them around the canvas with the mouse. Devices can be renamed by right-clicking on the device's tab, and new devices can be created by double-clicking on the tab bar. Middle-clicking on a device tab hides the tab; it can be made visible again via the 'Devices' menu. The entire workspace can be wiped clean with 'File->Clear Workspace'.

The properties panel provides a convenient way to quickly view a part's properties or a device's parts list. To edit a part's properties, simply right-click on the widget or click on the Edit menu and select 'Properties'. In the Properties Dialog, you can rename the part, or edit the part's sequence data. You can also look up a part's sequence through Clotho.


Parts without a sequence defined are highlighted in yellow. Spectacles will have additional highlighting options in the future. The Properties Dialog can be accessed from the menu that appears upon right-clicking a Part.

Properties Dialog

Here is a more in-depth description of the Properties Dialog. The left side of the dialog shows basic information about the Part. The right side of the dialog allows for sequence look-ups from a database through the Clotho database connection.

Properties Dialog

Left Side - Information

LabelDescription
NameAn editable field for the name of the Part
TypeThe type of the Part, eg. Promoter, RBS, etc. (as determined by the Part icon)
OrientationThe orientation of the Part, e.g. Forward, Reverse (also determined by the Part icon)
Database IDThe database's unique ID for any Parts that are associated with a part in the database (filled in by the database look-up on right side of this dialog)
SequenceThe sequence of the Part

Right Side - Database Look-up

LabelDescription
Part object keywordChoose the Clotho keyword used for the database object that represents Parts
Secondary object keywordIf applicable, choose the Clotho keyword for the object connected the Part object that contains the Type information, or choose "none"
Type field keywordChoose the Clotho keyword for the field that contains the Type of Parts
Term to matchEnter the term you would like to match in the Type field (the query will only return Parts that have this exact term in its Type field)
Display by keywordChoose the Clotho keyword for the field of the Part object by which you would like to display the Parts
Get ImplementationsClicking this button will search the database for parts that match the above specifications
ImplementationChoose the implementation you would like to use
Get SequenceClicking this button will get the sequence of the chosen part and populate the Sequence field on the left side of the dialog

Technical note: In this example, both the drop-down selections for "Type field keyword" and "Display by keyword" are "name". However, the first one (under "Type field keyword") corresponds to the "name" field of the "family" object, which is connected to the "biobrick" object, because a Secondary keyword object has been specified. This is where the Type of the Parts are stored. The second "name" (under "Display by keyword") corresponds to the "name" field of the "biobrick" object.

Demo

Everything Else

Example of note violations.
The preferences dialog: 1) Toggles the borders for the output image when exporting the sequence symbols to a picture. 2) Automatically displays the properties dialog every time a new part is dropped on the canvas. 3) Disables rule checking when exporting (for fixing those pesky rule assertions). 4) Path to part images. 5) Path to Eugene header files.
Spectacles can communicate with other Clotho tools, like the Sequence View.