Team:Amsterdam/Software

iGEM Amsterdam 2015

Algorithms

Trying to find a match

Overview

Background

In our project we focussed on the stability in different ways. One way is genetic stability, which we needed to engineer a stable producing strain. Another was the stability of our consortium itself. We needed an auxotrophic organism in order to be able to create a strong interdependent consortium.

Aim

We need to find out what genes we could knock out to create a stable carbon producer. We also need to know what genes we should knock out in order to make an auxotrophic organism.

Approach

Here we present to you two novel algorithms which work with genome-scale FBA models. They can be used for any organism for which a genome-scale FBA model is available. One algorithm, the Stable Compound Generator, searches for ways to make a strain genetically stable produce carbon compounds. The second algorithm searches for ways to create an auxotrophic strain. Therefore we called it the Auxotrophy Sniper.

Results

  • We have created the Stable Compound Generator which find ways to stably produce a carbon compound in any organism.
  • We have created the Auxotrophy Sniper, which is able to find ways to crate an auxotrophic organism.
  • With the first algorithm we found a list products which could be stably produced by Synechocystis. We chose acetate from the list.
  • With the second algorithm we found out that it is possible to make a Synechocystis strain dependent on argenine, thus creating an auxotroph.

Connections

Sometimes modellers tend to be the lone wolfs in a project. We didn't want this to happen, so there are some clear connections between the tools we created with modelling and the wet lab. Initially the need to search for compounds which could be produced genetically stable, came from the wet lab, where we saw that most producing strains are unstable. Before we even started engineering Synechocystis, we wanted to find out whether we could produce a compound genetically stable. This is where the Stable Compound Generater comes in. We also needed to engineer an auxotroph in order to to use serial propagations of consortia in emulsions to find a more robust consortium. Both algorithms provided information which was really used in the lab.

Aim

Stable production is key for sustainability

There is a major problem in biotechnology and it is called genetic instability. In most bioreactors there is a constant selection pressure on growth rate. This means that when a mutant has a slightly higher growth rate it will soon take over the culture. In biotechnology and especially in synthetic biology, we tend to engineer micro-organisms in such a way that they produce a product and excrete it out of the cell. We then envision large scale applications and a more sustainable world for everybody. In reality, however, a lot of these applications don't work and this has a lot to do with genetic instability. Usually the production and excretion of a compound will lead to a lower growth rate. If an organism can easily lose the production (and sometimes this is as easy as the occurrence of a single mutation in the promoter region) the mutant will very fast take over an entire culture. Not only does this decrease economic yields, but it will also have a negative effect on the sustainability of the bioreactor, since a lot of resources will be used when a bioreactor has to be emptied and re-inoculated. A stable production of compound will lead not only to a more stable consortium, it will also lead to more sustainability. We want to tackle the problem of sustainability, therefore we wrote an algorithm, which searches for ways to create a stable carbon compound producer.

Reliance on each other

Auxotrophs are organisms which need a certain compound which they can take up from their environment to be able to grow. They can be very useful in synthetic biology, as an auxotrophy can regulate the growth of a certain organism. It is also useful synthetic consortium, as it can create a dependency of one species on another. In our project we wanted to make the chemoheterotroph dependent on the cyanobacterium by the carbon compound the cyanobacteria produces, because this will be part of the flux of CO2 into product. However, we also wanted to create dependency of the cyanobacterium on the chemoheterotroph, because it can stabilize a consortium if, for example, the chemoheterotoph has a lower growth rate than the photoautotroph on the carbon compound. Other important reasons are that this dependency will decrease the risk of the cyanobacterium surviving on its own in the environment in case of an outbreak. Some chemoheterotrophs are very efficient in the production of a certain compound. If the photoautotroph does not have to synthesize the compound itself, it may increase the growth rate of the photoautotroph. This increases the rate at which carbon is fixated and carbon compound is produced, which in its turn benefits the chemoheterotroph. It is also suggested that this interdependency may create a more robust system. So the second question that we had in the lab is how can we create an auxotroph? To answer this question we also created an algorithm, the Auxotrophy Sniper.

Approach

For some questions we had (see Aim) we decided to look for an answer based on algorithms for genome scale flux balance analysis (FBA) models. We have used genome scale FBA that already existed of Synechocystis and PySCeS CBMpy, a tool for Constraint Based Modeling using Python Simulator for Cellular Systems (Olivier, 2014-2015). In flux balance analysis (FBA) you assume that all reactions in a cell are in steady state and then you can then represent them in a set of linear equations. The objective function then optimizes something given a set of boundary conditions about the flux through each reaction. The objective function is often the formation of biomass. If a cell is producing biomass, means it grows.

Stable Compound Generator

In previous section we emphasized we wanted to create stable carbon compound producing cyanobacterial strain. But how do we do this? We created an algorithm which finds ways to make a stable producer. It is based on two ideas:

  1. It takes a lot more evolutionary time to re-create a whole new gene than to accumulate a loss-of-function mutation.
  2. If the gene responsible for the production of the compound is expressed only when the organism grows (growth coupled production), the organism cannot simply stop expressing the pathway.
Below follows a general outline of the algorithm.
The algorithm makes a list of carbon compounds associated with the production of biomass in the cell.
For each of these compounds, the algorithm does the following:
  • Find sources reactions of the compound in the extracellular space and set the boundaries of these reactions to zero.
  • Find all reactions associated with the compound, as the model only contains reactions with gene associations and no genes which directly influence flux. We will call these reactions primary reactions
  • Find the genes associated to the reactions.
  • For each of these genes, find all reactions which have the gene of interest in their gene association. We will call these reactions secondary reactions
  • Make a list of combinations of the genes associated to the production of a compound.
  • For each of the genes involved each combination, set flux boundaries of these reactions to zero. In that way we simulate the knock-out of the gene.
  • Since accumulation of compound is not possible in FBA, while in reality most cells are leaking, we create sinks for compounds which would otherwise possibly accumulate. These sinks prevent the model from going to a non-growing steady state, because the compound would otherwise accumulate.
  • Do a flux balance analysis on the model en check if biomass is formed.
  • Check the value of the sink of the compound of interest.
If there is still formation of biomass (growth) and the sink of the compound of interest is used to export the compound out of the cell, the knock-out of the combination of genes is a good candidate for making a stable producer.

Auxotrpophy Sniper

We wanted to create an auxotrophic Synechocystis strain as part of our consortium. But how can we make an auxotroph out of Synechocystis? To get the answer to this question we decided to create an algorithm that works on genome scale FBA models. The general idea is that an auxotroph can be created by knocking out a combination of genes involved in the production of the compound we want to make a dependency on. The organism should not be able to grow if there if these genes are knocked out and there is no source for the compound in the extracellular space. When this is the case we create a source in the extracellular space (add compound to the medium) and after that the organism should be able to grow again. Here follows an overview of how the Auxotrophy Sniper works:
The algorithm takes a list of compounds of which you want to make a synthesis deficiency in the organism of choice. This list can contain for example vitamins, or amino acids. For each metabolite on the list it does the following:

  • Set flux boundaries of source reaction in the extracellular space (if there is already one present) to zero.
  • Find all primary reactions associated to the compound we want to make the organism dependent on.
  • For each primary reaction, find genes which are associated to the primary reactions.
  • For each gene find all reactions which have the gene in their gene association (secondary reactions).
  • Make a list of possible combinations of genes which can be knocked out.
  • Go over the combinations one by one, for each gene in a combination turn off primary and secondary reactions.
  • Per combination, do a flux balance analysis and check for biomass formation (growth).
  • If it does not form any biomass, a source reaction of the compound is added to the model
  • Another flux balance analysis of the model is done and if there is biomass formation now, the combination of genes are good candidates. If this combination of genes is knocked out the organism will probably become an auxotroph.

results

Here we developed two algorithms which further increase the arsenal of constraint-based modeling techniques. Their output was validated experimental and they were both implemented in an open-source modeling software platform (link to PysCes). Further, the source code is being made available in the following public repository {link}.

Outlook

The modeling tools developed here, albeit “developed for” and “validated with” Synechocystis, are fully generic and may be applied to any other organism for which a GSM has been developed. We foresee that this tool will be very useful in many model guided synthetic biology projects and ultimately in the development of (sustainable) biotechnological processes.