Team:Berkeley Software/Spectacles
From 2009.igem.org
(25 intermediate revisions not shown) | |||
Line 2: | Line 2: | ||
{{Template:BerkeleySoftwareProject | {{Template:BerkeleySoftwareProject | ||
|video= | |video= | ||
- | < | + | <center><html><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/NYAH7Xdh3Kg&hl=en&fs=1&rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/NYAH7Xdh3Kg&hl=en&fs=1&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></html></center> |
- | + | ||
- | + | ||
- | < | + | |
|title= | |title= | ||
Spectacles | Spectacles | ||
- | |intro=<!--Richard loves easter eggs... take a look at the About Dialog in standalone mode ;D--> | + | |intro=<!--Richard loves easter eggs... take a look at the About Dialog in standalone mode ;D (tool mode works too, but it's not as cool :P)--> |
- | + | [[Image:Spectacles.png|100px|right|thumb|<span style="font-family: Georgia, serif;">Spectacles - snazzy techno-shades for synthetic biology. (Illustrations courtesy of [http://christinetsin.designbinder.com/ Christine Tsin])</span>]] | |
+ | <font size="4">T</font>he 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. | ||
|content=<!--Spectacles1.png--> | |content=<!--Spectacles1.png--> | ||
- | [[Image:Spectacles_example.png|center]] | + | <br /> |
+ | [[Image:Spectacles_example.png|center|thumb|960px|<span style="font-family: Georgia, serif;">Spectacles in action- see the [https://2009.igem.org/Team:Berkeley_Software/Spectacles#Demo demo].</span>]] | ||
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 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. | ||
Line 20: | Line 19: | ||
[[Image:Spectacles_eugene.png|right]] | [[Image:Spectacles_eugene.png|right]] | ||
===Eugene Editor=== | ===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. | + | 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 [[Team:Berkeley_Software/Eugene|Eugene's]] rules specification. |
- | [[Image:Spectacles_palette.png|left]] | + | [[Image:Spectacles_palette.png|left|thumb|<span style="font-family: Georgia, serif;">Part image filenames take the form 'SBOLV.[type][orientation(+,-,)][_subtype].png'</span>]] |
===Parts Palette=== | ===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. Every part generated from the parts palette is a unique instance; right-click on a part widget and select 'Copy' to | + | 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:<!--; [[SpectaclesCustomImagePaths|here]] is an excerpt from the Eugene documentation.--> |
+ | -------------------------------------------------------------------------- | ||
+ | 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: | ||
+ | <span style="color:#008000">Image</span>(<part name>, <span style="color:#FF8000"><image path></span>); | ||
+ | <part name>: name of a predefined part | ||
+ | <span style="color:#FF8000"><image path></span>: absolute path of the image enclosed in double quotes | ||
+ | |||
+ | Example: | ||
+ | <span style="color:#008000">Image</span>(Promoter, <span style="color:#FF8000">"C:\My Images\promoter.jpg"</span>); | ||
+ | <span style="color:#008000">Image</span>(RBS, <span style="color:#FF8000">"C:\My Images\rbs.jpg"</span>); | ||
[[Image:Spectacles_workspace.png|right]] | [[Image:Spectacles_workspace.png|right]] | ||
Line 30: | Line 46: | ||
The device workspace is where the magic happens in Spectacles. There are two components: the parts canvas, and the properties panel. | 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. | + | 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. | ||
+ | |||
+ | <br clear="all" /> | ||
+ | [[Image:BerkeleySoftware_SpectaclesColor.png|center|thumb|512px|<span style="font-family: Georgia, serif;">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.</span>]] | ||
+ | |||
+ | ===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. | ||
+ | [[Image:BerkeleySoftware_SpectaclesPropertiesDialog.png|center|thumb|571px|<span style="font-family: Georgia, serif;">The Properties Dialog</span>]] | ||
+ | |||
+ | '''Left Side - Information''' | ||
+ | <table border="1"> | ||
+ | <tr><th>Label</th><th>Description</th></tr> | ||
+ | <tr><td>Name</td><td>An editable field for the name of the Part</td></tr> | ||
+ | <tr><td>Type</td><td>The type of the Part, eg. Promoter, RBS, etc. (as determined by the Part icon)</td></tr> | ||
+ | <tr><td>Orientation</td><td>The orientation of the Part, e.g. Forward, Reverse (also determined by the Part icon)</td></tr> | ||
+ | <tr><td>Database ID</td><td>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)</td></tr> | ||
+ | <tr><td>Sequence</td><td>The sequence of the Part</td></tr> | ||
+ | </table> | ||
+ | <br /> | ||
+ | |||
+ | '''Right Side - Database Look-up''' | ||
+ | <table border="1"> | ||
+ | <tr><th>Label</th><th>Description</th></tr> | ||
+ | <tr><td>Part object keyword</td><td>Choose the Clotho keyword used for the database object that represents Parts</td></tr> | ||
+ | <tr><td>Secondary object keyword</td><td>If applicable, choose the Clotho keyword for the object connected the Part object that contains the Type information, or choose "none"</td></tr> | ||
+ | <tr><td>Type field keyword</td><td>Choose the Clotho keyword for the field that contains the Type of Parts</td></tr> | ||
+ | <tr><td>Term to match</td><td>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)</td></tr> | ||
+ | <tr><td>Display by keyword</td><td>Choose the Clotho keyword for the field of the Part object by which you would like to display the Parts</td></tr> | ||
+ | <tr><td>Get Implementations</td><td>Clicking this button will search the database for parts that match the above specifications</td></tr> | ||
+ | <tr><td>Implementation</td><td>Choose the implementation you would like to use</td></tr> | ||
+ | <tr><td>Get Sequence</td><td>Clicking this button will get the sequence of the chosen part and populate the Sequence field on the left side of the dialog</td></tr> | ||
+ | </table> | ||
+ | |||
+ | 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. | ||
+ | |||
+ | ===Preferences Dialog=== | ||
+ | Spectacles also has a Preferences Dialog under the Settings menu, which allows you to customize some aspects of Spectacles. | ||
+ | [[Image:Spectacles_preferences.png|left|thumb|292px|<span style="font-family: Georgia, serif;">The Preferences Dialog</span>]] | ||
+ | |||
+ | 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. | ||
+ | |||
+ | <br clear="all" /> | ||
+ | |||
+ | ===Other Features=== | ||
+ | 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. | ||
+ | [[Image:Spectacles_rules.png|center|thumb|841px|<span style="font-family: Georgia, serif;">Example of note violations.</span>]] | ||
+ | |||
+ | 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. | ||
+ | [[Image:Spectacles_sequenceview.png|center|thumb|850px|<span style="font-family: Georgia, serif;">Spectacles can communicate with other Clotho tools, like the Sequence View.</span>]] | ||
- | + | ===Demo=== | |
+ | <html><center> | ||
+ | <caption>This flash demo demonstrates many of the tasks you can do in Spectacles.</caption> | ||
+ | <EMBED | ||
+ | SRC="/wiki/images/9/96/SpectaclesWink.swf" | ||
+ | WIDTH=798 | ||
+ | HEIGHT=620 | ||
+ | quality=low | ||
+ | loop=false | ||
+ | TYPE="application/x-shockwave-flash" | ||
+ | PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" | ||
+ | /> | ||
+ | </center></html> | ||
}} | }} | ||
+ | __NOTOC__ |
Latest revision as of 07:17, 26 April 2010
- Eugene
- Spectacles
- Kepler
- Data Model
Spectacles
Introduction
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 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.
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.
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");
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.
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.
Left Side - Information
Label | Description |
---|---|
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
Label | Description |
---|---|
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.
Preferences Dialog
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.
Other Features
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.