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 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 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.
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.
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");
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.
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.
Left Side - Information
|Name||An editable field for the name of the Part|
|Type||The type of the Part, eg. Promoter, RBS, etc. (as determined by the Part icon)|
|Orientation||The orientation of the Part, e.g. Forward, Reverse (also determined by the Part icon)|
|Database ID||The 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)|
|Sequence||The sequence of the Part|
Right Side - Database Look-up
|Part object keyword||Choose the Clotho keyword used for the database object that represents Parts|
|Secondary object keyword||If applicable, choose the Clotho keyword for the object connected the Part object that contains the Type information, or choose "none"|
|Type field keyword||Choose the Clotho keyword for the field that contains the Type of Parts|
|Term to match||Enter 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 keyword||Choose the Clotho keyword for the field of the Part object by which you would like to display the Parts|
|Get Implementations||Clicking this button will search the database for parts that match the above specifications|
|Implementation||Choose the implementation you would like to use|
|Get Sequence||Clicking 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.
Spectacles also has a Preferences Dialog under the Settings menu, which allows you to customize some aspects of Spectacles.
Here are descriptions about each of the options:
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. Allows the user to specify the location of alternate images to use for Parts.
5) Path to Eugene header files. Allows the user to specify the location of alternate Eugene header files.
When importing from or exporting to Eugene, Spectacles will automatically check any Eugene rules present and display a warning when Eugene rule notes are violated.
Besides exporting to Eugene, there are several other ways Spectacles can send out information. All of these are accessed through the File menu.
- Send to Picture will output a PNG file of the Device currently visible in the device workspace.
- Send to Sequence View will send sequence information about the Device to Clotho's Sequence View tool.
- Send to Algorithm Manager will send information about which Parts make up each Device to Clotho's Algorithm Manager.
Spectacles communicates with other Clotho tools using Clotho's tool API.