Team:Calgary Software/Project

From 2008.igem.org

Revision as of 23:33, 29 October 2008 by Boris (Talk | contribs)
Calgary banner01.png
Home The Team The Project Modeling Notebook
Evolutionary Algorithm Data Retrieval Modeling Graphical User Interface



Contents

Introduction

We created EvoGEM, a software program that uses the registry of genetic parts provided by the iGEM competition. In this design, we used evolutionary and genetic strategies, which are useful modeling methods, especially when coupled with agent-based designs.

Paradigm of Evolution

EvoGEM uses the paradigm of evolution to select efficient designs and produce a product or output that is generated independently by the system. EvoGEM uses the strategies of genetics and evolution to simulate an environment inside of a prokaryotic cell. This entails various events and structures that are present inside the organism, such as:

  • RNA polymerase
  • messenger RNA
  • ribosomes
  • transcription and translation.
The program assembles generations from a selection of parts - retrieved from the iGEM registry - and creates genetic circuits. The circuits proliferate in each generation, and the program selects the best possible combination of parts. Eventually, it obtains the optimal circuit and returns a desired functionality. The powerful agent-based logic allows for minimal assumptions about the behavior of the system. When coupled with the empirically proven evolutionary design, it creates a superb system that is able to both simulate and develop iGEM circuits.

Goals and Achievements

The last team from University of Calgary presented EvoGEM during the 2007 iGEM Jamboree, where it sparked a lot of interest. This summer, our team has expanded EvoGEM by:

  • improving EvoGEM's fitness function.
  • introducing more complex pattern recognition.
  • testing the system under a much larger search space.

Our goal was to create a system sophisticated enough to rebuild working designs from previous years' teams' projects, as well as intelligent enough to simulate successes and failures of functional and dysfunctional systems, respectively. We achieved our goals by:

  • building Perl scripts that support EvoGEM's need for a flat file registry.
  • creating a graphical user interface (GUI) to make the software-user interaction easier.
  • creating a simulation of the processes in the cell such as transcription and translation.

Essentially, this software will allow users to determine whether a specific circuit is feasible before they experimentally test it. This will reduce financial and time constraints associated with traditional lab work. The user will only need to invest time and money into those circuits that our program selects as functional.

Evolutionary Algorithm

EvolutionaryCycle.jpg

Evolution involves the changes of inherited traits in a population for successive generations. Each generation carries genetic information, expressing certain characteristics. Mutation enables manipulation of these traits as well as genetic recombination. Evolution is a result of heritable traits becoming more prevalent or rare.
Agent-based modeling is a computational method that replicates the behavior and interaction of individual components of a network such that their overall effect on the system can be observed. This involves many different aspects, including:

  • game theory
  • evolutionary programming
  • complex systems
  • emergence
Multiple agents are simulated in an environment to simulate and hypothesize the actions of complex phenomena.


Data Retrieval and Storage

Perl logo.PNG
For EvoGEM to improve as a model, it needed to examine organic compounds and biochemical reactions. Using a set of Perl scripts, we retrieved key pieces of data from the source information of the registry. For every part, we needed to find:
  • its type.
  • its function.
  • whether it codes for a protein.
  • how well the part works.

If the part coded for a protein, we retrieved its DNA sequence. We, then, found its amino acid sequence (using the BLAST algorithm) from UniProt, which is a large database of proteins. If the protein catalyzed an associated prosthetic or biochemical reaction, we retrieved additional information from ChemSpider - a chemical database - to find the data characterizing any compounds that the particular enzymatic protein catalyzes. Finally, we stored the data in a database during run-time of EvoGEM.


Modeling

EvoGEM in its initial stages
Initially, EvoGEM used an RNA polymerase class as the single device that functioned as an RNA polymerase, mRNA, and ribosome. Objects of this class were able to transcribe and translate the DNA BioBricks directly into protein molecules. This had provided the necessary level of functionality earlier, but in order to more correctly simulate the processes in a cell, we needed to implement new mRNA and ribosome classes. In addition, we implemented another class, known as mRBS, to allow for simultaneous transcription and translation.


Graphical User Interface

Programs are only useful if the user is able to understand and use it. Working through a terminal or command prompt may be easy and simple for some, but for the majority of people, this is not something people can easily use. As a result, a Graphical User Interface (GUI) was created to allow anyone to use EvoGEM. Since the intent of EvoGEM was to help anyone dealing with synthetic biology, this GUI is essential.


Initial GUI screen to specify desired products for the system

When first faced with the GUI, the user is asked to enter his or her desired products and their relative quantities. That is, in essence the only input the system needs. Everything else is pre-configured for the system and the user can run the software to produce the circuits that fulfill his or her needs.


More advanced users can re-configure the initial settings
More advanced users can re-configure the initial settings

Users that are more familiar with the system or with the principles of Evolutionary Strategies can edit the initial settings according to the specific needs of the problem. This gives much more flexibility in terms of search methods and allows more advanced users to take advantage of their knowledge for this specific problem.


Users can aid the system's search algorithm by giving it some previous knowledge they hold

The interface goes even further in allowing users to harness previous knowledge for any specific bio-circuit they wish to design. Users may specify an "embryo" circuit for the system to start its optimization from. This circuit will be used as the base template for the evolution an could save some time and effort for the system, and also for the user.

The parts are chosen from a graphical list that represents the registry
Each part's characteristics can be viewed on demand

Users can choose the parts they wish to include in the "embryo" circuit from a list that reflects the results obtained from the registry query by Perl. For every part, there is also the option to inspect its characteristics such as: sequence, different base constituency , melting temperature and more.

Navigation

Evolutionary Algorithm Data Retrieval Modeling Graphical User Interface
Home The Team The Project Modeling Notebook