You can download the source code of our model implementation as we used it for the presented results here .
If you are interested in further developments after the Wiki-freeze, you can vistit the project on GitHub here.
Hoerldavid (Talk | contribs) |
Hoerldavid (Talk | contribs) |
||
Line 81: | Line 81: | ||
</html> | </html> | ||
- | You can download the source code of our model implementation as we used it for the presented results here. | + | You can download the source code of our model implementation as we used it for the presented results <html><a href="https://static.igem.org/mediawiki/2014/a/ad/LMU14-chemotaxis-model.zip"> here </a></html>. |
If you are interested in further developments after the Wiki-freeze, you can vistit the project on GitHub here. | If you are interested in further developments after the Wiki-freeze, you can vistit the project on GitHub here. |
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
To stay true to its title 'pathogen-hunting microbe', BaKillus should ideally be able to swim towards its prey via chemotaxis. However, the ability to react to an AIP- or CSP-gradient requires the introduction of a chimeric receptor into Bacillus subtilis. Chemotaxis receptors are quite complex and can, for example, take different methylation states to allow for attenuation of the chemotactic response. This complexity puts the construction of a custom receptor beyond the scope of an iGEM project.
To evaluate how a hypothetical chemotactic BaKillus would act in an experimental setting, we developed a model to simulate the movement of chemotactic hunters in response to an attractant gradient produced by a growing colony of prey bacteria.
Our multi-scale hybrid model essentially consists of 3 components: growth of prey bacteria (algebraic model), diffusion of attractant molecules (spatial partial differential equation) and chemotactic behavior of the hunter bacteria (stochastic spatial agent model coupled to differential equations for internal state with a stochastic driving force). All these processes take place in a defined geometric space (representing, for example, a microfluidic device). The experimental scenario we wish to capture in our model is the following: a colony of prey bacteria is spotted onto the arena, growing in place and producing attractant molecules. A fixed population of hunter bacteria is placed into the arena as well. Their reaction (biased movement) to the building attractant gradient is what we seek to observe.
The prey bacteria will grow on a population level, according to a logistic growth curve with explicit solutions (ref!):
\[ y = ln \frac{N}{N_0} = \frac{A}{1 + e^{\frac{4\mu_m}{A} (\lambda - t) + 2}}\]
Here, \(N_0\) is the population size at \(t = 0\), \(A = ln \frac{N_\infty}{N_0}\) is the asymptote, \(\mu_m\) is the growth rate and \(\lambda\) the duration of the lag-phase.
The concentration of attractant molecules (\(c\)) in space changes according to a partial differential equation comprising diffusion, degradation and production by the prey bacteria.
\[ \frac{\partial c}{\partial t} = D\Delta c + p c_{prey} - a c\]
\(D\) is the diffusion coefficient, \(a\) is the degradation rate, \(p\) the rate of production and \(c_{prey}\) the concentration of prey/producer bacteria.
The chemotaxis of the hunter bacteria (BaKillus) is represented by an agent-based model adapted from [Matthäus ref]. Each bacterium has its own methylation and phosphorylation states of the chemotactic pathway which change according to a system of ordinary differential equations in response to attractant concentrations. In a classical 2-state model of bacterial chemotaxis, each bacterium will be in either running or tumbling state at each time point. In a running step, bacteria will swim forward in a straight line whereas in a tumbling step, they will change their direction by a random angle picked from a gamma distribution.
It should be noted that the model used here actually describes chemotaxis of E. coli. While the wiring of the chemotaxis pathway differs slightly, the same behavior is expected for B. subtilis. Therefore, we opted for the use of the better studied E. coli-model.
You can download the source code of our model implementation as we used it for the presented results here .
If you are interested in further developments after the Wiki-freeze, you can vistit the project on GitHub here.
We implemented the model in C++, making extensive use of the Boost libraries for numerical integration, among other things. In addition,
we wrote gateway routines to allow handling of the model from a MATLAB script. This way, parameters can easily be changed and results can be visualized
using the plotting functionality of MATLAB.
Initially, the arena in which chemotaxis should take place is defined as a polygon. An equally spaced 2-dimensional grid covering the polygon is created
to store concentrations of prey bacteria and attractant molecules (fig. x). The area in which prey bacteria grow (a 'colony') is defined as a rectangle and their initial concentration
is set.
A desired number of virtual hunter bacteria are created at set spacial coordinates. Initially, these bacteria have a random orientation and their chemotactic
pathway is inactive (methylation and phosphorylation levels are zero).
The model is then updated by defined time steps until a desired end time is reached.
In each time step, the bacteria will update their chemotactic pathway (according to the system of differential equations)
in response to the attractant concentration at their location (the mean of the nonnegative concentrations at the neighboring 4 grid nodes).
Each bacterium will then swim forward (run) or change its orientation (tumble) dependent on the phosphorylation level of CheY.
At each time step, the number of prey bacteria in the colony is updated according to their logistic growth curve. The concentration of attractant molecules changes
according to the diffusion equation (see above). The Laplacian is discretized on the grid using a standard 5-point stencil (pseudocode??).
Results & Discussion
For safety issues we want BaKillus to autoinduce cell lysis after successful completion of his task. This can be achieved by shutting down the production of resistance proteins. (see: Suicide-Switch)
Still, BaKillus must produce sufficient amounts of toxins before inducing cell lysis. Therefore, the negative feedback, which eventually stops production of the immunity protein must be delayed to provide a sufficiently long time frame for toxin production. However, as simple as this idea might sound in theory, robust practical implementation of such a module requires precise fine tuning of the kinetics of the respective signalling cascade. In this model we tried to assess whether the inclusion of an alternative sigma factor could theoretically delay the killing mechanism.
In the following we will compare two different models, one including only one sigma factor and one including two sigma factors. The models will be compared based on a fitness function which describes the difference between the toxin and immunity production over time. This should provide a measure of the effective number of produced toxin molecules.
The basic model only contains one sigma factor. The system of differential equations was derived following the standard paradigm of gene expression including mRNA as well as protein dynamics. Inhibitory and promoting activity were modeled via hill kinetics.
In a first evaluation, the variation of following parameters were figured out to cause only insignificant variation of the model's fitness. Therefore they were kept at these specified values for all subsequent simulations:
For analysis of the impact of each of the parameters, we used a function to determine the fitness W of the model. The fitness describes the integral of the surplus of toxic cannibalism proteins over the proprietary antidote. Therefore, a successful suicide equals a high fitness of the model. As we do not know the parameters for our model we sampled the whole parameter space using a uniform sampler. Successively we used a Nadaraya-Watson kernel density estimator to approximate the expected value of W given a single parameter value. This allows us to asses the expected change in W when changing a single parameter, whithout knowledge of all other parameters.
As we can see, C0,psdpI has no effect on the dynamics of the model. While high basic concentrations of Pqs, FsrA and the sigma factor have reciprocal impact on the fitness of the model, the transcription and translation rates of FsrA and the sigma factor affect the model's fitness positively. This model now considers a delayed SdpI inhibition which is realised by integrating a second sigma factor.
The mathematical model for this system contains two additional equations for the new gene:
As above, the graphs show the statistical fitness W of the model plotted against each considered parameter. The black line resembles the average.
As we can see, the results qualitatively reflect the insights from the basic model:
To compare both models, we plotted the mean fittness of the model with one sigma factor (black) as well as the mean fittness of the model with two sigma factors (red).
One sees a flat increase across all parameters across all values by over an order of magnitude. This suggests that the inclusion of an additional sigma factor should drastically increase the killing effectivity of our suicide-switch.
Welcome to our Wiki! I'm BaKillus, the pathogen-hunting microbe, and I'll guide you on this tour through our project. If you want to learn more about a specific step, you can simply close the tour and come back to it anytime you like. So let's start!
First of all, what am I doing here? The problem is, pathogenic bacteria all around the world are becoming more and more resistant against antimicrobial drugs. One major reason for the trend is the inappropriate use of drugs. With my BaKillus super powers, I want to reduce this misuse and thus do my part to save global health.
To combat the pathogenic bacteria, I simply eavesdrop on their communication. Bacteria talk with each other via quorum sensing systems, which I use to detect them and trigger my responses.
The more specific and effective I can use my powers, the lower the danger is of provoking new resistance development. So I catch pathogens whenever I get hold of them and stick to them until my work is done.
Talking about my work - killing pathogens is finally what I am made for. In response to quorum sensing molecules of the pathogens, I export a range of antimicrobial substances leading to dissipation of biofilms and the killing of the targeted bacteria.
When the job is done and all the bad guys are finished, you don't need a super hero anymore. So after fulfilling my work I say goodbye to the world by activating my suicide switch.
Of course I'm not only a fictional hero, but a very real one. In two different prototypes, I could be used for diagnosis or treatment of pathogen-caused diseases. However, there is still a whole lot of regulational and economical questions that have to be answered before.
So now you know my short story - and it is time for me to return to my fight for a safer world. Feel free to take a closer look on my super powers, the process of my development or the plans for a medical application.
Variables
msdpABC: Quantity of SdpABC mRNA
psdpABC: Quantity of SdpABC proteins
msdpI: Quantity of SdpI mRNA
psdpI: Quantity of SdpI proteins
mSiAlt1: Quantity of sigma factor mRNA
pSiAlt1: Quantity of sigma factor proteins
mfsrA: Quantity of FsrA mRNA
pfsrA: Quantity of FsrA proteins
Pqs: Quantity of QS proteins
Inquired Parameters
C0,Pqs: Basic concentration of QS proteins
C0,psdpI: Basic concentration of SdpI proteins
C0,fsrA: Basic concentration of FsrA proteins
k0,SiAlt1: Transcription Rate of sigma factor
k1,SiAlt1: Translation Rate of sigma factor
C0,SiAlt1: Basic concentration of sigma factor proteins
k0,fsrA: Transcription Rate of FsrA
k1,fsrA: Translation Rate of FsrA
Fixed Parameters
Degradation rate (g1) of mRNA: 12 molecules per hour
Degradation rate (g2) of proteins: 1 molecule per hour
Transcription rate (k0) of Sdp: 7.2 per hour
Translation rate (k1) of SdpI & SdpABC: 10 per hour
% par0 = lhsdesign(10000,12);
par0 = rand(100000,12);
par = 10.^(4*par0 - 2); % Coveres range from 0.01 to 100
par(:,3) =12; % g1
par(:,5) =1; % g2
par(:,2) =0.12*60; % k0_sdp
par(:,4) =10; % k1_sdp
tout = linspace(0,10,100);
tic
for j = 1:size(par,1)
[~,~,x,y] = simulate_RRE_cannibalism(tout,par(j,:));
%figure
%plot(tout,y)
%legend('p_{p_sdpABC}','p_{p_sdpI}')
W(j) = sum(y(:,1)-y(:,2));
end
toc
parname={'C0_Pqs','k0_sdp','g1','k1_sdp','g2','C0_p_sdpI', ...
'C0_fsrA','k0_SiAlt1','k1_SiAlt1','C0_SiAlt1','k0_fsrA','k1_fsrA'};
for k = [1,6,7,8,9,10,11,12]
figure
scatter(par(:,k),W',10,'filled')
hold on
[xx,ind]=sort(par(:,k));
r = ksr(log10(xx),W(ind));
plot(10.^r.x,smooth(r.f,10),'k-','LineWidth',5)
set(gca,'Yscale','lin')
set(gca,'Xscale','log')
xlabel(parname{k})
ylabel('W')
saveas(gcf,['parameter_' parname{k}]);
print('-depsc2','-r300',['parameter_' parname{k}])
end
Fitness W
Therefore, the best results could be achieved with low basic concentrations and high translation and transcription rates.
Delayed Model
% par0 = lhsdesign(10000,12);
par0 = rand(100000,15);
par = 10.^(4*par0 - 2); % Coveres range from 0.01 to 100
par(:,3) =12; % g1
par(:,5) =1; % g2
par(:,2) =0.12*60; % k0_sdp
par(:,4) =10; % k1_sdp
tout = linspace(0,10,1000);
tic
for j = 1:size(par,1)
[~,~,x,y] = simulate_RRE_cannibalism_twosigma(tout,par(j,:));
% figure
% plot(tout,y)
% legend('p_{p_sdpABC}','p_{p_sdpI}')
%
W(j) = sum(y(:,1)-y(:,2));
end
toc
parname={'C0_Pqs','k0_sdp','g1','k1_sdp','g2','C0_p_sdpI','C0_fsrA', 'k0_SiAlt1', ...
'k1_SiAlt1','k0_SiAlt2','k1_SiAlt2','C0_SiAlt2','C0_SiAlt1','k0_fsrA','k1_fsrA'};
for k = [1,6,7,8,9,10,11,12,13,14,15]
figure
scatter(par(:,k),W',10,'filled')
hold on
[xx,ind]=sort(par(:,k));
r = ksr(log10(xx),W(ind));
plot(10.^r.x,smooth(r.f,10),'k-','LineWidth',5)
set(gca,'Yscale','lin')
set(gca,'Xscale','log')
xlabel(parname{k})
ylabel('W')
saveas(gcf,['red_parameter_' parname{k}]);
print('-depsc2','-r300',['red_parameter_' parname{k}])
end
C0,psdpI still has no significant effect on the dynamics of the model at all.
And as already discovered before, the best results can be achieved with low basic concentrations and high translation and transcription rates. Just quantitatively this model shows slightly higher fitness due to the additional delay as expected.
Conclusion
Hi there!
What's the problem?
Sensing of pathogens
Adhesion
Killing
Suicide switch
Application
See you!