Team:Berkeley Software/Kepler

From 2009.igem.org

(Difference between revisions)
m
Line 20: Line 20:
==Important to Know==
==Important to Know==
-
Our big picture has been implemented for [https://2008.igem.org/Team:UC_Berkeley/LayeredAssembly 2ab assembly protocol] that is used in [http://bioeng.berkeley.edu/cv/canderson.php J.Christopher Anderson]'s lab. Besides that we have been working on the alternative assembly protocols and parts packaging collaborating with [http://www.jbei.org/ Joint BioEnergy Institute]. The latest project has been started in August and is still under implementation.<br>
+
Our big picture has been implemented for [https://2008.igem.org/Team:UC_Berkeley/LayeredAssembly 2ab assembly protocol] that is used in [http://bioeng.berkeley.edu/cv/canderson.php J.Christopher Anderson]'s lab. Besides that we have been working on the alternative assembly protocols (e.g. Golden Gate), parallel sequencing and parts packaging collaborating with [http://www.jbei.org/ Joint BioEnergy Institute]. The latest projects had been started in August and are still under implementation.<br>
At first, automation assembly assignment workflow had been constructed as a plug-in in Clotho Classic, but its conversion to Kepler's workflow allowed for more user-choices and pre-set settings explained precisely here [https://2009.igem.org/Team:Berkeley_Software/KeplerTutorial#User_Options Workflow user options].
At first, automation assembly assignment workflow had been constructed as a plug-in in Clotho Classic, but its conversion to Kepler's workflow allowed for more user-choices and pre-set settings explained precisely here [https://2009.igem.org/Team:Berkeley_Software/KeplerTutorial#User_Options Workflow user options].
Line 65: Line 65:
[[Image:Berkeley_Software2009_sortedAssemblyGraph.png|Processed Assembly Info.]]
[[Image:Berkeley_Software2009_sortedAssemblyGraph.png|Processed Assembly Info.]]
<br clear="all">
<br clear="all">
-
From this part, the modified assembly information is sent to [https://2009.igem.org/wiki/index.php?title=Team:Berkeley_Software/Kepler&action=submit#8._Process_Info_according_to_user.27s_Choice <b>8</b>] and basic parts (part in the 1st row without a stage number) are sent to [https://2009.igem.org/Team:Berkeley_Software/Kepler#7._Choose_to_supply_additional_Info_location <b>7</b>].
+
From this part, the modified assembly information is sent to [https://2009.igem.org/wiki/index.php?title=Team:Berkeley_Software/Kepler&action=submit#8._Process_Info_according_to_user.27s_Choice <b>8</b>] and basic parts (parts in the 1st row without a stage number) are sent to [https://2009.igem.org/Team:Berkeley_Software/Kepler#7._Choose_to_supply_additional_Info_location <b>7</b>].
===7. Choose to supply additional <u>Info</u> location===
===7. Choose to supply additional <u>Info</u> location===
 +
In this step, basic parts (parts in the 1st row without a stage number) are displayed with their assigned vectors, and the user is asked to choose an option that works the best for him/her. Since the algorithm that generates the assembly graph initially assumes parts sharing, only 6 possible combination-choices for vector option in which to put basic parts are available.
 +
A person can choose:
 +
<!--the layout that computer provides, or select the choice for which he has the most parts available in the database, or just simply pick the one he likes the best.
 +
-->
 +
*the flow that was assigned by algorithm and follow further with parts (do pre-selected [https://2009.igem.org/Team:Berkeley_Software/KeplerTutorial#User_Options Kepler option] choice which avoids display of this dialog);
 +
*their own vector selection out of 6 available choices which were constructed by computer and proceed with their flow;
 +
*to supply a file with the available parts(which are not yet in database) and let the program make a choice for him;
 +
*the option which requires minimum amount of transfers of basic part from one vector into another based on what is available in the database. <br>
 +
This part is still under implementation.
===8. Process <u>Info</u> according to user's <u>Choice</u>===
===8. Process <u>Info</u> according to user's <u>Choice</u>===
-
 
+
In this step, the assembly information that was modified in [https://2009.igem.org./wiki/index.php?title=Team:Berkeley_Software/Kepler&action=submit#6._Process_Info_according_to_stage_number <b>6</b>], is modified according to user choice in [https://2009.igem.org/Team:Berkeley_Software/Kepler#7._Choose_to_supply_additional_Info_location <b>7</b>] updating vectors in which parts will reside through out the device construction project.  
-
In this step, the assembly information that was modified in [https://2009.igem.org./wiki/index.php?title=Team:Berkeley_Software/Kepler&action=submit#6._Process_Info_according_to_stage_number <b>6</b>], is modified according to user choice in [https://2009.igem.org/Team:Berkeley_Software/Kepler#7._Choose_to_supply_additional_Info_location <b>7</b>].  
+
===9. Select stage number===
===9. Select stage number===
This part allows the user to select a stage number from available stages. If the user selects a stage number out of range, the program will not proceed keep asking the user for stage number input. <br>
This part allows the user to select a stage number from available stages. If the user selects a stage number out of range, the program will not proceed keep asking the user for stage number input. <br>
-
In the plug-in to Clotho, stage selection is a user's dialog, in Kepler this is a number shown in the workflow. Further explanation about [https://2009.igem.org/Team:Berkeley_Software/KeplerTutorial#User_Options Kepler user options]
+
In the plug-in to Clotho, stage selection is a user's dialog, in Kepler this is a number shown in the workflow. Further explanation about [https://2009.igem.org/Team:Berkeley_Software/KeplerTutorial#User_Options Kepler user options].
===10. Single <u>Stage</u> processing===
===10. Single <u>Stage</u> processing===

Revision as of 00:37, 20 October 2009


Automation Assembly and Kepler Integration

Contents

Introduction

Two of the key requirements for introducing automation into the biological design process are reproducibility of specific protocols and formally capturing these protocols. Often these are very complicated, take considerable time to develop and “debug”, and are lab/equipment specific. A highly modular, expressive, and extensible framework to capture and design these workflows would be useful. Our project integrated the Kepler workflow design environment with the existing Clotho platform, in order to formally capture a number of specific design protocols related to composite part assembly.
Kepler is a multi-university design effort focusing on scientific workflows, and is used by a wide variety of projects in different fields. This work is done in conjunction with the Center for Hybrid & Embedded Software Systems (CHESS). We are improving protocol automation and also create material for a larger audience as well.



Big Picture

A workflow between Clotho and Kepler

Important to Know

Our big picture has been implemented for 2ab assembly protocol that is used in J.Christopher Anderson's lab. Besides that we have been working on the alternative assembly protocols (e.g. Golden Gate), parallel sequencing and parts packaging collaborating with Joint BioEnergy Institute. The latest projects had been started in August and are still under implementation.
At first, automation assembly assignment workflow had been constructed as a plug-in in Clotho Classic, but its conversion to Kepler's workflow allowed for more user-choices and pre-set settings explained precisely here Workflow user options.

Physical Assembly Running Example

As we are going through steps in the workflow, we will show the construction of a family of reporters which consists of four devices:

  1. Reporter #1 - BBa_I13521
  2. Reporter #2 - BBa_I763007
  3. Reporter #3 - BBa_J5526
  4. Reporter #4 - BBa_J3901

Zooming In

1. Start Clotho

Starting Clotho

2. Start Kepler

Starting Kepler

3. Specify devices to assemble

This action is done in Clotho's Algorithm Manager - a tool constructed by Berkeley_Software iGEM team 2008.

Clotho Algorithm Manager with running example.
Reporter #1. View in Spectacles.
Reporter #2. View in Spectacles.
Reporter #3. View in Spectacles.
Reporter #4.View in Spectacles.

Devices are specified in a string format where basic parts are separated by dots to represent the overall goal part. Each goal part is entered on a separate line. This can be done either manually, or imported from a file, or imported from Spectacles.
In our example we can assume that parts were designed in Spectacles and imported into Clotho's Algorithm Manager.
In the Clotho's Algorithm Manager, input parts are converted into the efficient assembly graph which is exported into the Kepler's workflow as Assembly Info. For our example assembly graph can be represented visually as:
Assembly graph for reporter family construction.

4. Launch tool to connect Clotho & Kepler

RMI Tool

This tool provides the mean to import assembly graph as assembly information (Assembly Info) object into the Kepler environment. Further explanation about the Clotho-Kepler connection can be found on the tutorial page : Clotho-Kepler Connection.

5. Launch Kepler assembly automation assignment workflow

Load the automation workflow file into Kepler, choose the stage number then click the Run icon. Automation Workflow
Further technical explanation about the workflow can be found on the tutorial page: Assembly workflow.

6. Process Info according to stage number

In this part we process assembly information(Assembly Info) according to stage number, reading Assembly Graph in arrays of parts united with the same index. That results in sorted assembly graph:
Processed Assembly Info.
From this part, the modified assembly information is sent to 8 and basic parts (parts in the 1st row without a stage number) are sent to 7.

7. Choose to supply additional Info location

In this step, basic parts (parts in the 1st row without a stage number) are displayed with their assigned vectors, and the user is asked to choose an option that works the best for him/her. Since the algorithm that generates the assembly graph initially assumes parts sharing, only 6 possible combination-choices for vector option in which to put basic parts are available. A person can choose:

  • the flow that was assigned by algorithm and follow further with parts (do pre-selected Kepler option choice which avoids display of this dialog);
  • their own vector selection out of 6 available choices which were constructed by computer and proceed with their flow;
  • to supply a file with the available parts(which are not yet in database) and let the program make a choice for him;
  • the option which requires minimum amount of transfers of basic part from one vector into another based on what is available in the database.

This part is still under implementation.

8. Process Info according to user's Choice

In this step, the assembly information that was modified in 6, is modified according to user choice in 7 updating vectors in which parts will reside through out the device construction project.

9. Select stage number

This part allows the user to select a stage number from available stages. If the user selects a stage number out of range, the program will not proceed keep asking the user for stage number input.
In the plug-in to Clotho, stage selection is a user's dialog, in Kepler this is a number shown in the workflow. Further explanation about Kepler user options.

10. Single Stage processing

Selection of stage in 9 leads to picking parts from arrays (which were constructed during 6 and modified during 8) that are required for construction of composite parts in this stage as well as composite parts themselves. It is illustrated in a less confusing way in the following picture: Basic parts and composite parts, constructed out of basic parts, in stage one of our running example.


Wink--about principles
Description
In KeplerIn Kepler.

11. Robot

Once the workflow is completed, the user can organize produced .csv Files to input to the robot, as well as open the human instruction file for a certain stage and prepare the plates and their layout according to instructions.

More on automation assembly assignment workflow

The file with constants.

Assigning plates by rows or by columns can be changed right now by physically going inside of the plugin and setting fillThePlateByRow parameter when the plate is initialized. The size of the plates are adjustible and can be anything specified as maxR (maximum number of rows) and maxC (maximum number of collumns) when the plate is initialized. In the workflow currently 8X12 and 2X12 plates are used.
Allow to sort by lefty/righty final parts
Antibiotic selection/plating step-file creation


Tutorial

Kepler Tutorial