Message Boards Message Boards

A case of competition between molecular species in biology

Attachments:
POSTED BY: Ali Hashmi
3 Replies

There maybe many subtleties left unaddressed however, some points I know that I have not addressed in the simulation include the following:

  1. poisson process for death of a particle
  2. the probability for the first order reactions i.e. disassociation of receptor/ligand should be 1 - Exp(-k [Delta]t);
  3. check for whether the particle actually crossed and re-crossed a boundary during a small time-step, especially if the transmission is irreversible.

(Andrew's work describes the above points in detail)

  1. does the order of zeroth, first and second order matter in code execution?
POSTED BY: Ali Hashmi

P.S: a lot of these improvements were made possible from the work of Steven Andrews (author of Smoldyn - which is a sophisticated and mature tool to model molecular interactions)

I have made slight improvements to the code. To be more realistic, the simulation box should be considered with periodic boundary condition to ensure that the particles are diffusing in an infinitely large medium. The module that provides the ability is as follows:

periodicBoundary[finalpt_] := Module[{x, y},
  {x, y} = finalpt;
  Which[x >= 1, x = x - 2, x <= -1, x = 2 + x, True, x];
  Which[y >= 1, y = y - 2, y <= -1, y = 2 + y, True, y];
  {x, y}
  ] (* Simulation box dimension is 2 *)

The particles are usually reflected off the surface of a cell. In order to ensure the case, a new module ballisticReflect was added. The region that is fed to this module is a surface.

ballisticReflect[inside_] := Module[{near},
  near = RegionNearest[Subscript[\[ScriptCapitalR], 2 b], inside];
  inside + 2*(near - inside)
  ] (* region specification should be a boundary *)

Moreover, when a ligand separates from a receptor, the separation or unbinding distance can be non-zero. Previously, in the code the dissociation left the ligand at the same place as the receptor. I introduced a random offset for the dissociation event (an angular offset for a fixed radius). The unbinding radius is computed from Steven Andrew's Smoldyn package.

unbindingDist[centre_, radius_, cellrad_] := Module[{pt = {0, 0}},
  While[Norm[pt] <= cellrad,
    pt = RandomPoint[Circle[centre, radius]]
   ]; pt]

The interAct module has been altered as well so as to ensure that the interacting particles react whenever close-by rather than probabilistically react (adapted from the approach used in Smoldyn).

Owing to these adjustments, I am attaching a second notebook where all the necessary changes have been incorporated.

Attachments:
POSTED BY: Ali Hashmi

enter image description here - you have earned "Featured Contributor" badge, congratulations !

This is a great post and it has been selected for the curated Staff Picks group. Your profile is now distinguished by a "Featured Contributor" badge and displayed on the "Featured Contributor" board.

POSTED BY: Moderation Team
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract