Aquarium / Protocol developer / Tools

Developer Tools

Aquarium has a Developer tab that supports creating and editing new protocols, though it is also possible to work on protocols outside of Aquarium.

Developers actually create an operation type, which includes the protocol as code along with several other components that are described below.

Table of Contents

Working in Aquarium

The Developer tab is the interface for working with operation types in Aquarium. Clicking on the Developer tab in Aquarium brings you to a view similar to this one. On the left is the list of operation types and libraries organized by category, and the right pane is the operation type definition view. When you open the tab, the definition for the first operation type in the first category is displayed; in this case, the Make PCR Fragment operation type from the Cloning category.

developer tab

Under each category, the libraries and operation types defined in that category are listed. Clicking on the name of the library or operation type will open the definition in the view on the right.

category list

Clicking on New creates a new operation type (New Lib creates a new library), and opens the definition view.

This allows you to set the operation type and category type names.

[details]

definition tab

Clicking on the Protocol tab opens the protocol editor. For a new operation type a default protocol is added to the editor when you first open it. Keyboard shortcuts are available.

protocol tab

Be sure to click Save at the bottom of the page before switching from the Developer tab.

Clicking on the Pre tab shows the precondition for the operation type in a new editor. A default precondition that always returns true is created for new operation types.

precondition tab

The Cost tab shows the cost model for the operation type, which is function on an Operation. This function returns a map object with costs for labor and materials keys. The default function added for new operation types returns zero for both.

cost tab

The Docs tab shows another editor, but this time for Markdown documentation for the operation type.

docs tab

The Timing tab indicates when the operation type should be run in the lab.

timing tab

The Test tab provides a way to run a quick test with the protocol. To run a test, specify the Batch Size, the number of operations to batch, click Generate Operations and then Test. This will generate random inputs for the operations and run the protocol.

test tab

Note that running tests this way doesn’t allow testing assertions. Also, don’t use the test tab on a production server.

Working with External Tools

Because Aquarium protocols are written in a Ruby DSL, you can edit protocols outside of Aquarium and copy them in. This allows you to use an editor that you are comfortable with, and also use tools such as Rubocop to check for issues in your protocol code. Many developers simply cut and paste the whole protocol or library code between the Aquarium and external editors.

The Parrotfish tools currently being developed make this a little easier, allowing protocols to be pushed and pulled from an Aquarium instance using the command line.