Team:BU Wellesley Software/Puppetshow

From 2011.igem.org

(Difference between revisions)
Line 72: Line 72:
<a href="#bu-wellesley_wiki_content">Top</a><br>
<a href="#bu-wellesley_wiki_content">Top</a><br>
<a href="#overview">Tool Overview</a><br>
<a href="#overview">Tool Overview</a><br>
 +
<a href="#pandd">Purpose and Design</a><br>
 +
<a href="#flow">Puppeteer Assembly Flow</a><br>
 +
<a href="#dand">Demo and Downloads</a><br>
<a href="#results">Results</a><br>
<a href="#results">Results</a><br>
<a href="#futurework">Future Work</a>
<a href="#futurework">Future Work</a>
Line 80: Line 83:
<h1>Tool Overview</h1>
<h1>Tool Overview</h1>
<p>
<p>
-
Lab protocols often require careful and precise execution of many individual steps to achieve the desired result. Slight inaccuracies and miscalculations can lead to invalid conclusions. We understand this crucial need to develop a less error prone workflow that will allow us to execute complicated and repetitive lab protocols in a more systematic and infallible matter. Our solution to this problem is Puppeteer, a high-level protocol specifying language that will allow users to construct protocols using our library of Common Human Robot Instruction Set (CHRIS). Using this language, users will be able to create protocols and save them into a Protocol Repository that we have created. This will allow synthetic biologists to share their work among themselves, therefore promoting collaboration within the synthetic biology community.  
+
Constructing a combinatorial library of devices is tedious using manual laboratory techniques and would require hundreds of hours of careful work. To remedy this, we are implementing the Puppeteer Biological Protocol Automation Suite. This suite includes a high level programming language for specifying biological protocols commonly used in the laboratory, which are then executed by a liquid-handling robot with minimal user intervention.
<p>
<p>
-
To aid the creation of new protocols using Puppeteer, we have also created a GUI front-end for our language called PuppetShow. Within PuppetShow, users can create protocols in the editor panel and execute the protocol they just wrote with the click of a button. Given that the user’s computer is hooked up to a compatible robot, resource allocation of liquids and plates will happen automatically and a report will be generated containing a resource report, an output report, instructions for the deck setup, and a pipette verification report. For now, we have the software bridge written for the Evoware 150 API and support all major robot commands through this bridge. So far, we have created Restriction Digest and Ligation protocol using PuppetShow and successfully verified their execution on our robot.  
+
</div>
 +
 
 +
<div id="pandd">
 +
<p>
 +
<h1>Purpose and Design</h1>
 +
<p>
 +
Laboratory protocols often require careful and precise execution of numerous procedures to achieve desired results. However, slight inaccuracies and miscalculations attributable to human-error continually arise and often lead to invalid conclusions. For this reason, we have developed an accurate workflow that executes biological protocols in a more systematic manner. The solution we propose is the Puppeteer Biological Protocol Automation Suite.  Our suite centers on the execution of Puppeteer, a high-level protocol specification language used to programmatically describe biological protocols. Puppeteer allows users to create protocols locally, but will eventually incorporate a “Protocol Repository” that will retain version-controlled instances of uploaded protocols. This feature will promote all forms of collaboration within the synthetic biology community, with a predominant focus on inter-laboratory protocol sharing.
 +
<p>
 +
</div>
 +
 
 +
<div id="flow">
<p>
<p>
-
Using this tool we have created, we aim to improve accuracy and save time. A protocol only needs to be written once and can be run repeatedly with the click of a button. Using PuppetShow, synthetic biologists can create and run protocols without worrying about any low level details or error.
+
<h1>Puppeteer Assembly Flow</h1>
<p>
<p>
<img style="float:right; width:380px; height:450px" src="http://wiki.bu.edu/wiki/ece-cidar/images/f/fd/Puphal.jpg"/>
<img style="float:right; width:380px; height:450px" src="http://wiki.bu.edu/wiki/ece-cidar/images/f/fd/Puphal.jpg"/>
<p>
<p>
-
<b>Architecture:</b> Our solution comprises a five-layer stack as illustrated in the figure. Using the Clotho
+
Our assembly flow incorporates a five-layer stack as illustrated in the adjacent figure. The Assembly Planner produces an assembly plan for synthetic biological devices, with each assembly step annotated with the name of a biological protocol. Each protocol may be fully specified using PuppetShow.
-
platform, we developed two applications for specifying and executing
+
-
biological protocols. The Assembly Planner is the end-point of an
+
-
end-to-end design workflow  that produces an assembly plan for synthetic
+
-
biological devices, with each assembly step annotated with the name of a biological protocol. Each
+
-
such protocol itself may be fully specified using another Clotho application called PuppetShow, which
+
-
provides an environment for writing, testing, debugging, and executing biological protocols.  
+
<p>
<p>
-
The protocols are written in a new high-level language called Puppeteer. The Language layer
+
The protocols are written in the high-level language called Puppeteer. The Language layer includes a Puppeteer interpreter and linker. A protocol specified in Puppeteer may contain Puppeteer instructions as well as references to previously created Puppeteer programs available in the protocol repository. The Language layer expands and translates Puppeteer protocols to a sequence of low-level commands expressed in a Common Human Robot Instruction Set (CHRIS).  Any high-level language may produce CHRIS programs and any robot vendor may support a superset of CHRIS. The Hardware Layer---the external control and I/O interface of a robot---is wrapped under a Hardware Abstraction Layer (HAL). Vendor-provided software for programming the robot may be proprietary and is used to control the robot. An interface to it is provided by a software bridge, which maps protocols expressed in CHRIS to sequences of native robot instructions.
-
comprises the Puppeteer interpreter and linker. A protocol specified in Puppeteer may contain
+
-
Puppeteer instructions as well as references to previously created Puppeteer programs available in a
+
-
library. The Language layer expands and translates a Puppeteer protocol to a sequence of low-level
+
-
commands expressed in a Common Human Robot Instruction Set (CHRIS). CHRIS provides a standardized
+
-
instruction set that high level biological protocol languages like Puppeteer may assume to be
+
-
supported by any robot.  Any high-level language may produce CHRIS programs and any robot vendor may
+
-
support a superset of CHRIS: this decouples robot hardware details from biological protocol and
+
-
specification details and supports our goal of portability and protocol library reuse. The Hardware
+
-
Layer---the external control and I/O interface of a robot---is wrapped under a Hardware Abstraction
+
-
Layer (HAL). Vendor-provided software for programming the robot may be proprietary and is used to
+
-
control the robot. An interface to it is provided by a software bridge, which maps protocols
+
-
expressed in CHRIS to sequences of native robot instructions.
+
<p>
<p>
-
The Resource Management layer maintains resource state information and provides a standardizable
+
The Resource Management layer maintains resource state information and provides a standardizable high-level interface for initializing, requesting, naming, aggregating, and accessing resources to the Language layer, analogous to a ``system call'' suite. This interface supports our goal of removing the minutiae of resource management from the protocol specification language.
-
high-level interface for initializing, requesting, naming, aggregating, and accessing resources to
+
-
the Language layer, analogous to a ``system call'' suite. This interface supports our goal of
+
-
removing the minutiae of resource management from the protocol specification language.
+
<p>
<p>
 +
</div>
-
<b>Downloads: </b>Constructing a combinatorial library of devices is tedious using manual laboratory techniques and would require hundreds of hours of careful work. To remedy this, we are implementing the Puppeteer Biological Protocol Automation Suite. This suite includes a high level programming language for specifying biological protocols commonly used in the laboratory, which are then executed by a liquid-handling robot with minimal user intervention.
+
<div id="dandd">
 +
<p>
 +
<h1>Demo and Download</h1>
<p>
<p>
 +
<b>Downloads: </b>
<a href="#"><img id="download_button" src="http://cs.wellesley.edu/~hcilab/iGEM_wiki/images/temp_download_button.jpg" width="100px"/></a>
<a href="#"><img id="download_button" src="http://cs.wellesley.edu/~hcilab/iGEM_wiki/images/temp_download_button.jpg" width="100px"/></a>
<p>
<p>
-
<h5>Demo Video</h5>
+
<h5>Demo Video</h5><iframe width="560" height="345" src="http://www.youtube.com/embed/-hyD_S77rh4" frameborder="0" allowfullscreen></iframe>
-
<iframe width="560" height="345" src="http://www.youtube.com/embed/-hyD_S77rh4" frameborder="0" allowfullscreen></iframe>
+
</div>
</div>
-
 
-
 
<div id="results">
<div id="results">
Line 141: Line 134:
<p>
<p>
<img height="200px" src="http://wiki.bu.edu/wiki/ece-cidar/images/6/6c/Gel-cropped.png"/>  
<img height="200px" src="http://wiki.bu.edu/wiki/ece-cidar/images/6/6c/Gel-cropped.png"/>  
-
 
-
 
<img height="200px" src="http://wiki.bu.edu/wiki/ece-cidar/images/2/2a/Ligation-success.png"/>
<img height="200px" src="http://wiki.bu.edu/wiki/ece-cidar/images/2/2a/Ligation-success.png"/>
<p>
<p>
Line 149: Line 140:
<b>Safety practices:</b> Aliquam in felis sit amet eros pharetra volutpat.
<b>Safety practices:</b> Aliquam in felis sit amet eros pharetra volutpat.
</div>
</div>
-
 
<div id="futurework">
<div id="futurework">
Line 157: Line 147:
<li>Integration between Puppeteer/Puppetshow and the <a href="https://2011.igem.org/Team:BU_Wellesley_Software/eLabNotebook"> eLabNotebook </a> is planned for implementation.
<li>Integration between Puppeteer/Puppetshow and the <a href="https://2011.igem.org/Team:BU_Wellesley_Software/eLabNotebook"> eLabNotebook </a> is planned for implementation.
</ul>
</ul>
-
 
<p>
<p>
</div>
</div>

Revision as of 18:56, 16 September 2011

BU-Wellesley iGEM Team: Puppetshow


PuppetShow

Tool Overview

Constructing a combinatorial library of devices is tedious using manual laboratory techniques and would require hundreds of hours of careful work. To remedy this, we are implementing the Puppeteer Biological Protocol Automation Suite. This suite includes a high level programming language for specifying biological protocols commonly used in the laboratory, which are then executed by a liquid-handling robot with minimal user intervention.

Purpose and Design

Laboratory protocols often require careful and precise execution of numerous procedures to achieve desired results. However, slight inaccuracies and miscalculations attributable to human-error continually arise and often lead to invalid conclusions. For this reason, we have developed an accurate workflow that executes biological protocols in a more systematic manner. The solution we propose is the Puppeteer Biological Protocol Automation Suite. Our suite centers on the execution of Puppeteer, a high-level protocol specification language used to programmatically describe biological protocols. Puppeteer allows users to create protocols locally, but will eventually incorporate a “Protocol Repository” that will retain version-controlled instances of uploaded protocols. This feature will promote all forms of collaboration within the synthetic biology community, with a predominant focus on inter-laboratory protocol sharing.

Puppeteer Assembly Flow

Our assembly flow incorporates a five-layer stack as illustrated in the adjacent figure. The Assembly Planner produces an assembly plan for synthetic biological devices, with each assembly step annotated with the name of a biological protocol. Each protocol may be fully specified using PuppetShow.

The protocols are written in the high-level language called Puppeteer. The Language layer includes a Puppeteer interpreter and linker. A protocol specified in Puppeteer may contain Puppeteer instructions as well as references to previously created Puppeteer programs available in the protocol repository. The Language layer expands and translates Puppeteer protocols to a sequence of low-level commands expressed in a Common Human Robot Instruction Set (CHRIS). Any high-level language may produce CHRIS programs and any robot vendor may support a superset of CHRIS. The Hardware Layer---the external control and I/O interface of a robot---is wrapped under a Hardware Abstraction Layer (HAL). Vendor-provided software for programming the robot may be proprietary and is used to control the robot. An interface to it is provided by a software bridge, which maps protocols expressed in CHRIS to sequences of native robot instructions.

The Resource Management layer maintains resource state information and provides a standardizable high-level interface for initializing, requesting, naming, aggregating, and accessing resources to the Language layer, analogous to a ``system call'' suite. This interface supports our goal of removing the minutiae of resource management from the protocol specification language.

Demo and Download

Downloads:

Demo Video

Results

In the wet lab, we have finished implementation of an initial version of the Puppeteer stack; it is fully integrated with the Clotho platform. We have implemented basic BioBricks assembly protocols and validated them in the wet lab by assembling basic devices. We implemented two protocols central to BioBricks assembly---Restriction Digestion and Ligation---in Puppeteer. We validated the Puppeteer implementation by executing multiple trials of both protocols and verifying the result by running a gel.

Collaboration with other iGEM teams: In order to ensure reproducibility and promote collaboration, we visited the Weiss lab at MIT to set up the Puppeteer stack on their robot. We met a few of MIT’s iGem team members and coordinated with them to test the Puppeteer flow on the MIT robot. During this process, we noticed some differences between our robot deck setups and the way this setup was handled in the Puppeteer flow. We separated such settings into an easily edited settings file to ensure that Puppeteer was easily configured for different deck setups. We successfully tested the Puppeteer flow on the MIT deck and everything ran as expected. This collaborative effort with MIT’s iGem team is definitely fruitful because it made Puppeteer more robust and ensured functionality across multiple robots.

Restriction Digest: For restriction digest we digested the plasmid containing the BioBrick BBa_J52028 in order to isolate the GFP. After cutting the plasmid with EcoRI and SpeI we ran it on a one percent gel along with a ladder in order to determine the amount of base pairs for each dna part. As GFP is about 1221 bp the location in which it is located on the gel is correct. Also the backbone was about 3189 bp which is also located in the correct location on the gel.

Ligation:

The images show the verification results.

Safety practices: Aliquam in felis sit amet eros pharetra volutpat.

Future Work

  • Integration between Puppeteer/Puppetshow and the eLabNotebook is planned for implementation.