• Remix
  • Share
  • New Entry

  • ME

  • /
  • E. coli chemotaxis signalling pathway (biological explanation in code)

on 15 Nov 2023
  • 5
  • 18
  • 0
  • 0
  • 1265
drawframe(1);
h =
Surface with properties: EdgeColor: [0 0 0] LineStyle: '-' FaceColor: 'flat' FaceLighting: 'flat' FaceAlpha: 1 XData: [41×10 double] YData: [41×10 double] ZData: [41×10 double] CData: [41×10 double] Use GET to show all properties
Write your drawframe function below
function drawframe(f)
% Solution of an ODE model describing the chemotaxis signalling pathway
% functioning inside an E. coli cell.
% E. coli cells detect external chemical signals and translate that signal
% into an intracellular response. Chemical concentration is detected at
% cell poles. Simulated here is a drop in the concentration of attractant
% chemicals. This causes the cell to increase activity to find an area with
% greater attractant chemical concentrations. This activity at the cell
% pole causes a protein A to become phosphorylated (i.e. A becomes Ap). The
% phosphoryl groups (p) created are then passed to either B (becoming Bp)
% or Y (becoming Yp). B is localised at the cell pole and in its
% phosphorylated form (Bp) creates a feedback loop to reduce activity at
% the cell pole (via the process of cell receptor demethylation) - thus
% terminating the signal and allowing subsequent changes in external
% attractant concentration to be detected. Yp freely diffuses through the
% cell where it interacts with the motors that drive cellular movement
% (chemotaxis). In this simulation the increased Yp concentrations would
% cause the cell to change direction in the hope of finding a new region
% with a higher concentration of beneficial chemicals.
% The animation shows the initial increase in activity where an increasing
% Yp concentration diffuses through the cell cytoplasm. Then subsequently
% shows the clower process of the cell relaxing back toward its pre-stimulus
% state.
% Set numerical parameters
mult = 400; dt = 0.0005; dx = 0.05;
% Set model parameters
k1 = 4.8571;
k2 = 1385.714;
k3 = 6;
k4 = 8.686;
k6 = .121;
a1 = .814;
a2 = 28.214;
gr = 8.57e-3;
gb = .352;
L = 0.1;
N=18;
Kon = .5;
Koff = .02;
% Initialise arrays to store results
ap = zeros(1,f*mult);
bp = ap;
m = ap;
yp = zeros(21,f*mult);
% Set initial conditions to approximate equilibrium (of the cell pole)
ap(1) = 0.001526;
bp(1) = 0.2053;
yp(:,1) = 0.1635;
m(1) = 5.16;
% Loop through finite difference calculations for the required number of
% generatrions
for i=2:f*400
if(i>1250)
L = 0.05;
end
F = N*( 1 - (m(i-1)/2) + log((1+(L/Koff))/(1+(L/Kon))) );
Phi = 1 / (1 + exp(F));
m(i) = m(i-1) + dt*( (gr*(1-Phi)) - (gb*bp(i-1)*bp(i-1)*Phi) );
ap(i) = ap(i-1) + dt*( (Phi*k1*(1-ap(i-1))) - (k2*ap(i-1)*(1-yp(1,i-1))) - (k3*ap(i-1)*(1-bp(i-1))) );
bp(i) = bp(i-1) + dt*( (a2*k3*ap(i-1)*(1-bp(i-1))) - (bp(i-1)) );
yp(1,i) = yp(1,i-1) + dt*( (a1*k2*ap(i-1)*(1-yp(1,i-1))) - ((k4+k6)*yp(1,i-1)) );
% Loop through finite difference calculations for the spatial points
% (note this is only necessary for Yp since it is the only protein that
% diffuses within the cell)
for j=2:20
yp(j,i) = yp(j,i-1) + (dt/(dx^2))*(yp(j-1,i-1)+yp(j+1,i-1)-(2*yp(j,i-1))) - dt*(k6*yp(j,i-1));
end
yp(21,i) = yp(21,i-1) + (dt/(dx^2))*(yp(20,i-1)+yp(20,i-1)-(2*yp(21,i-1))) - dt*(k6*yp(21,i-1));
end
% Create grid for plotting results
ygrid = repmat(linspace(0,1,10),41,1);
curv = 4*(linspace(0,1,10)-0.5).^2;
for i=1:10
xgrid(:,i) = linspace(-abs(curv(i)-1),2+abs(curv(i)-1),41);
end
% Format simulation results to fit grid
Yp = zeros(41,10);
for i=1:10
Yp(1:21,i) = yp(:,end);
end
Yp(22:end,:) = flipud(Yp(1:20,:));
% Plot results
colormap(jet)
h = pcolor(xgrid,ygrid,Yp)
set(h,'EdgeColor','none')
axis([-1 3 -.5 1.5])
caxis([0.15 0.5])
set(gca,'Color','k','XTick',[],'YTick',[])
camva(6)
end
Animation
Remix Tree