## Diffusion limited rate of actin polymerization

What is diffusion limited rate of actin polymerization at 3mM concentration?

The diffusion limited rate is

$$ \kappa = 4\pi D r \approx 4\pi 20\mu m^2/s \times 0.003\mu m = 0.8\mu m^3/s \approx 3\times 10^{8} M^{-1}s^{-1}$$

With a concentration of \(3\times 10^{-4}M\), we find a rate of

$$ k = 9\times 10^{4}/s $$

This is a pretty high rate, certainly a lot higher than what is typically observed. However, the orientational correction factor will reduce this rate by at least a factor of 10.

## Drag force on a listerium

A sphere with diameter of one \(\mu m\) at a velocity of 200nm/s will experience a drag of

$$F = 6\pi r \eta v $$

where the viscosity of water is \(\eta=10^{-3}pNs/\mu m^2\). Hence

$$ F \approx 20\times 0.5\mu m\times 0.2\mu m/s \times 10^{-3} pNs/\mu m^2 = 2\times 10^{-3} pN$$

hence the actual drag force on the bacterium is pretty small. (And we must have made a mistake during the excercise session.)

## Plot the solution by Moligner and Oster.

```
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import quad
plt.ion()
def o_integral(v):
'''
This function returns the integral omega(v) for a particular
value for v. omega(v) is evaluated by numeric integration.
'''
def f(y, v):
return np.exp((1-np.exp(v*y))/v)
# the integration boundaries are 0 and minimum of 100 and 10/v
# for small v, the integrand is ~exp(-x), hence a range 100 is generous
# for large v, the integrand is neglibile if x>>log(v)/v
return quad(f, 0.0, np.minimum(100, 10./v), args=(v,))[0]
def omega(v):
'''
this function checks whether the input v is a scalar (i.e. just one number)
or a list/array. In the the latter case, the integral is
evaluated for every point and the result returned as an array
'''
if np.isscalar(v):
return o_integral(v)
else:
return np.array([o_integral(x) for x in v])
def RHS(v, eps1, eps2, eps3, eps4):
'''the right hand side (RHS) of the Moligner/Oster result'''
return eps2*np.exp(-eps1*v*omega(v)**2-eps4) - eps3
## Make a figure plotting the graphical solution of the
# Moligner/Oster result
plt.figure()
v = np.linspace(1e-2,55,1001)
# use the values from the paper
rhs = RHS(v, 5.4, 105, 0.5, 0)
#plot left and right hand side of the equation
plt.plot(v, rhs)
plt.plot(v, v)
plt.xlabel('v')
###
# plotting the approximate and numerical solutions of omega(w)
###
plt.figure()
# numeric solution
plt.plot(v, omega(v), label='numerical solution')
plt.plot(v[v>1], np.log(v[v>1])/v[v>1], label='large v approximation')
plt.plot(v[v<1], 1-v[v<1], label='small v approximation')
plt.ylabel('omega(v)')
plt.xlabel('v')
```