Team:Berkeley Software/Spectacles

From 2009.igem.org

(Difference between revisions)
Line 66: Line 66:
===Everything Else===
===Everything Else===
[[Image:Spectacles_rules.png|center|thumb|841px|Example of note violations.]]
[[Image:Spectacles_rules.png|center|thumb|841px|Example of note violations.]]
 +
[[Image:Spectacles_preferences.png|center|thumb|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).]]
}}
}}

Revision as of 23:54, 21 October 2009


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 instance 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.

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).