The flowchart shows how the populations of each of the 5 types of cells affect each other (6 types if one includes G, the bone marrow). In order to maintain a constant system size, the bone marrow produces an equal number of cells as those that go to Cell Death.

The Equations:

So how does this flowchart become a system of equations? The chart shows us a path of population changes or the net change in population.

Example: The change in the initial anti-self B-cell population (iBs) is equal to the number of new Initial cells from the bone marrow [ = +  k1 * G * SI], minus cells converting from iBs to eBs at a rate k2 [ =  - iBs * k2 ],  minus iBs to aBs at a rate k3 [ = - iBs * k3], minus the number of initial B cells that die [ = - iBs * k5 ].

In equation form, this statement looks like this:

iBs' = (k1*G* SI) - (iBs*k2) - (iBs*k3) - (iBs*k5);

Now we have a system of equations to calculate the cell population in each group. It is convenient to think of X' as the (current time step) variables that we calculate knowing X data (time step -1). The program executes the equations in the execution order (ExecOrder) as numbered in the table.  However, the most meaningful equations are those where the bulk of the cell are converted; namely, those listed as ExecOrder #3, which are listed first.  ExecOrder #4, is where antibodies are produced and removed through decay.  Note that these are not cells, and no cells die as a result of antibody production.  Likewise no cells die when antibodies decay.  Antibody in this model are only in the presence of self (absence of non-self).  Finally, in ExecOrder #5 and #6 the program conveniently calculates the number of self and nonself effector B cells and the levels of antibodies per determinant for quick analysis.
 
ExecOrder
Variable   Equation
3)
iBs' iBs + ((N)*SI) - (iBs*k2) - (iBs*k3) - (iBs*k5) + ((M)*SI);
3)
aBs' = aBs + (iBs*k3) - (aBs*k6);
3)
eBs' = eBs + (iBs*k2) - (eBs*k4);
3)
iBns' = iBns + ((N)*(1-SI)) - (iBns*k2) - (iBns*k5) + (M*(1-SI)*(1-L));
3)
eBns' = eBns + (iBns*k2) - (eBns*k4);
4)
ABs' = ABs + (eBs*k7) - (ABs*k8);
4)
ABns' = ABns + (eBns*k7) - (ABns*k8);
where: (M is an internal variable)
1)
M = Cells Added to the system to initially grow it. Equals 0 once the system reaches Total size (T).
1)
T' = (T + M) = (iBs' + aBs' + eBs' + iBns' + eBns')
2)
N = (As*k6) + (Is*k5) + (Inse*k5) + (eBs*k4) + (ebns*k4);
= cells that die 
= cells that are re-born 
= k1*G
Effector / determinant calculations:
5)
eBs'/d = eBs'/(R*SI);
5)
eBns'/d = eBnse'/(R*(1-SI));
Antibody / determinant calculations:
6)
ABs'/d = ABs'/(R*SI);
6)
ABns'/d = ABns'/(R*(1-SI));

Further model notes:

Steady State:
Steady state values can be observed by allowing the system to continue until the numbers within each cell groups converge on a number and stays there regardless of additional time steps.  It is important to note that the system is generally allowed sufficient time after the initial system growth stage to become steady state.  At time = 0, it is hard-wired for the bone marrow to output the total number of cells into the system.  These cells then die, transform and/or produce antibodies as mathematically described above (see image at top of page).  Generally it has been observed that 300 time steps are sufficient for steady state to occur.  As a precaution, it is adjustable by the user, whom may elect to perform more (or less) time steps.

Antibody production:
 

The Application

This is how the simulator works.
  1. Get the k and system values from the user.
  2. Starts with all cell and antibody populations = 0.
  3. Instantly grow the system via an internal variable M = input Total = Total size of the system.
  4. Iterate through the equations for the number of steps specified..
  5. The simulator runs to completion, hopefully sufficient for steady state results. The resulting data can be visualized through the online graphing, or using the raw data output.

Last Modified: November 18, 2003