Математическая модель движения популяции клеток
Исследование механизмов активации нейтрофилов и условности их деления на медленные, средние и быстрые. Экспериментальные измерения скоростей нейтрофилов в популяции. Создание математической модели движения популяции клеток в виде компьютерной программы.
Рубрика | Биология и естествознание |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 09.06.2011 |
Размер файла | 1,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Применение веществ, которые привлекают клетку к себе (хемоаттрактанты) увеличивают интервал времени, в течении которого клетка движется целенаправленно. Само по себе это не удивительно. Однако в литературе широко принято связывать это явление с клеточной памятью. Наша модель была в принципе марковской. В ней небыло памяти в строгом смысле слова. В не строго смысле некий элемент, который можно трактовать как память был. Нулевой угол поворота был более предпочтителен, а при применении хемоаттрактанта вероятность нулевого угла увеличивалась. Тем не менее модель воспроизводила экспериментальные данные с поразительной точностью. Воспроизводилось даже время с целенаправленным движением. Таким образом попытки интерпретации этого времени как клеточной памяти вызывают серьезные сомнения. Очень важными оказались результаты моделирования среднеквадратичного отклонения на больших временах. График зависимости среднеквадратичного отклонения от времени начинает отклоняться от теоретического в случайном направлении, в плоть до того, что среднеквадратичное отклонение начинает уменьшаться. Эта особенность, полученная в эксперименте, "вызвало панику" у экспериментаторов. Уменьшение среднеквадратичного отклонения можно было интерпретировать только как целенаправленное возвращение клетки обратно. Физически это можно представить себе как возвращение клетки вдоль некоторого дефекта подложки, невидимого в микроскоп. Разумеется, это ставит под сомнение качество всего эксперимента. На модели показано, что это явление связано всего лишь с недостатком статистики для последнего участка кривой.
Выводы
Создана популяционная математическая модель случайного блуждания нейтрофилов, которая описывает основные характеристики движения;
Широко принятое в литературе деление нейтрофилов на медленные, средние и быстрые следует считать условным. Экспериментальные измерения скоростей нейтрофилов в популяции распределены непрерывно;
Модель подвергает сомнению широко принятое мнение о существовании памяти нейтрофилов. Экспериментальные данные хорошо описываются в рамках марковской модели;
Наблюдаемое в эксперименте закономерное возвращение некоторых нейтрофилов к начальной точке связано только с недостатком статистики для измерения среднеквадратичного отклонения на больших временах.
Список литературы
Boyden S. The chemotactic effect of mixtures of antibody and antigen on polymorphonuclear leukocytes. J. Exp.Med., 1962, v.115, 453-465.
Coates T.D. et al. Relationship of F-actin distribution to development of polar shape in human polymorphonuclear neutrophils. J.Cell Biol. 1992, v.117, N4, 765-774.
Crawford N., Chahal H., Jackson P. The isolation and characterisation of guineapig polymorphonuclear leucocyte actin and myosin. Biochim. et diophis acta, 1980, v.626, N1, 218-233.
Harris H. Chemotaxis of granulocytes. J. Pathol. Bacteriol., 1953, v.66, 135-140.
Hartman R.S., Lau K. The fundamental motor of the human neutrophil is not random: Evidence for local non-Markov movement in neutrophils. Biophys. J., 1994, v.67, 2535-2545.
King C.A. et al. Cell-substrate interactions during amoeboid locomotion of neutrophyl leukocytes., Exp. Cell Res., 1980, v.126, 453-458.
Nelson R.D., Quie P.G. Chemotaxis under agarose: a new and simple method for measuring chemotaxis and spontaneous migration of human polymorphonuclear leukocytes and monocytes. J. Immunol., 1975, v.115, 1650-1656.
Omann G.M. et al. Signal transduction and cytoskeletal activation in the neutrophil. Physiol. Rev, 1987, v.67, N1, 285-319.
Quie P. G., Mills E. L., McPhail L. C., Johnston R. B. Phagocytic Defects Springer Semin. Immunopathol 1978, v. 1, 323-337.
Repo H. Defects in fagocytic functions. Annals of Clinical
Research. 1987, v.19, 263-279.
Senda N., Tamura H., Shibata N. The mechanism of the movement of leucocytes. Exp. Cell Res., 1975, v.91, N2, 393-407.
Snyderman R., Goetzl E. J. Molecular and cellular mechnisms of leukocyte chemotaxis. Scince 1981, v.213, 830-837.
Springer T. A. Adhesion receptors of the immune system. Nature, 1990, v 346, 425-434.
Stossel T.P. On the crawling of animal cells. Science 1993, v.260, 1086-1094.
Адо А.Д. Патофизиология фагоцитов. 1961.
Васильев Ю.М., Гельфанд И.М. Движение и морфогенетические реакции тканевых клеток в культуре. В сб. Движ.нем.кл.1977г.
Галкин А.А. и соавт. 1994
Красовская И.Е. Сократительные белки немышечных клеток . I. Актино- и миозиноподобные белки. в сб. Движение немышечных клеток и их компонентов. 1977г.
Маянский А.Н., Маянский Д.Н. 1989г.
Нерсесова Л.С. Движение немышечных клеток и их компонентов., Ленинград, "Наука" 1977г.
Туманов Е.А. и соавт. Бюлл. Эксп. Биол. Мед. 1990, N6, 594-597.
Приложение
Текст программы математического моделирования случайного блуждания популяции нейтровилов
program neutro;
uses dos, crt, graph;
const
uparrow = #72;
leftarrow = #75;
rightarrow = #77;
downarrow = #80;
type
gr_descriptor = record
x_0,y_0 : word;
X_len,y_len : word;
X_scale, Y_scale : real;
end;
prob_mov = record
max_step : real;
cell_name : string;
step, manual : array[0..10] of real;
cent, cummulate : array[0..10] of word;
end;
scr_mod = (name_edit, arg_edit, fun_edit, diag_edit);
cell_typ = (slow, mean, fast);
par_typ = (g_shift, l_shift, angle);
scr_adr=record
x : integer;
y : integer;
end;
cell_descriptor = record
speed : cell_typ;
x, y, angle : array[1..100] of real;
end;
var
cell : array[1..30] of cell_descriptor;
step_distri : array[g_shift..angle] of prob_mov;
max_shift : array[1..30] of real;
start_x, start_y, counter : integer;
graph_scale : gr_descriptor;
key : char;
N_line, N_pix_inline : integer;
graph_X, graph_Y : array[slow..fast] of integer;
marker_place : array[arg_edit..diag_edit, 1..11] of scr_adr;
name_place, cell_place : scr_adr;
step_len, step_ang, current_x, current_y, current_a : real;
choose_cell : cell_typ;
sign : integer;
procedure draw_axis;
var
i, j : word;
bintext : string;
begin
with graph_scale do
begin
x_0:=round(N_pix_inline/40);
y_0:=round(N_line/40);
X_len:=round(N_pix_InLine-2*x_0);
Y_len:=round(N_line-2*y_0);
setlinestyle(0,0,1);
rectangle(x_0,Y_0,x_0+X_len,Y_0+Y_len);
end;
end;
procedure opengraph;
var
grdriver, grmode : integer;
begin
detectgraph(grdriver,grmode);
initgraph(grdriver,grmode,'');
N_line:=getmaxY;
N_pix_inline:=getmaxX;
start_x:=n_pix_inline div 2;
start_y:=n_line div 2;
SetBkColor(Black);
SetColor(LightRed);
cleardevice;
draw_axis;
end;
procedure readscreen(fname : string; Tcl,Tbg : word);
var
x, y, j, txt_b, txt_c : word;
i : array [arg_edit..diag_edit] of word;
a : char;
d : text;
begin
assign(d,fname);
reset(d);
txt_b:=Black;
TextBackground(txt_b);
clrscr;
y:=0;
i[arg_edit]:=0; i[fun_edit]:=0; i[diag_edit]:=0;
repeat
y:=y+1; x:=0;
repeat
x:=x+1;
read(d,a);
case a of
'.' : begin
if txt_b=Black then txt_b:=Tbg else txt_b:=Black;
txt_c:=Tcl;
textbackground(txt_b);
textcolor(txt_c);
WRITE(' ');
end;
'*' : begin
name_place.x:=x;
name_place.y:=y;
write(' ');
end;
'$' : begin
cell_place.x:=x;
cell_place.y:=y;
write(' ');
end;
'#' : begin
write(' ');
i[arg_edit]:=i[arg_edit]+1;
marker_place[arg_edit,i[arg_edit]].x:=x;
marker_place[arg_edit,i[arg_edit]].y:=y;
end;
'~' : begin
write(' ');
i[fun_edit]:=i[fun_edit]+1;
marker_place[fun_edit,i[fun_edit]].x:=x;
marker_place[fun_edit,i[fun_edit]].y:=y;
end;
'!' : begin
write(' ');
i[diag_edit]:=i[diag_edit]+1;
marker_place[diag_edit,i[diag_edit]].x:=x;
marker_place[diag_edit,i[diag_edit]].y:=y;
end;
else
write(a);
end;
until eoln(d);
readln(d); writeln;
until eof(d);
close(d);
end;
procedure readreal(var value : real; a : char; len : word; ad : scr_adr);
var LI : array[1..10] of char;
x,y,old : integer;
st : string;
begin
write(' ':len);
gotoXY(ad.x,ad.y);
LI[1]:=a; write(a); y:=2;
if a<>#13 then
repeat
a:=readkey;
if a=',' then a:='.';
if ((a='O') or (a='o')) then a:='0';
if ((a>='0') and (a<='9')) or (a='.')
then begin LI[y]:=a; write(a); y:=y+1 end;
if a=#8 then
begin y:=y-1;
gotoXY(ad.x+y-1,ad.y);
write(' ');
gotoXY(ad.x+y-1,ad.y);
end;
until a=#13;
st:=LI[1];
for x:=2 to y-1 do st:=concat(st,LI[x]);
val(st,value,old);
end;
procedure setmarker(m : scr_mod; i : integer);
begin
gotoxy(marker_place[m,i].x,marker_place[m,i].y);
end;
procedure wri_val(x : real; i : integer; old : boolean);
begin
if old
then begin textbackground(Black);
textcolor(LightGray)
end
else begin textbackground(LightGray);
textcolor(Black)
end;
setmarker(fun_edit,i+1);
write(' ':4);
setmarker(fun_edit,i+1);
write(x:4:1);
setmarker(fun_edit,i+1);
end;
procedure edit_prob(index : par_typ);
var
st : real;
j : integer;
a : char;
begin
with step_distri[index] do
begin
readscreen('distrib.scr',LightGray,Red);
gotoXY(name_place.x,name_place.y);
case index of
g_shift : write('Глобальный шаг');
l_shift : write('Локальный шаг');
angle : write('Угол');
end;
st:=max_step/10;
for j:=0 to 10 do
begin
step[j]:=j*st;
gotoXY(marker_place[arg_edit,j+1].x,marker_place[arg_edit,j+1].y);
write(step[j]:4:1);
gotoXY(marker_place[fun_edit,j+1].x,marker_place[fun_edit,j+1].y);
write(manual[j]:4:1);
end;
j:=0;
repeat
setmarker(fun_edit,j+1);
wri_val(manual[j],j,false);
setmarker(fun_edit,j+1);
a:=readkey;
if a=#0 then
begin
a:=readkey;
wri_val(manual[j],j,true);
case a of
rightarrow, downarrow : j:=j+1;
leftarrow, uparrow : j:=j-1;
end;
if j>10 then j:=10;
if j<0 then j:=0;
end;
if ((a>='0') and (a<='9')) or (a='-')
then
begin
readreal(st,a,4,marker_place[fun_edit,j+1]);
manual[j]:=st;
end;
until ((a=chr(27)) or (a=' '));
end;
end;
procedure normalize;
var
j : word;
s : par_typ;
x : real;
begin
for s:=g_shift to angle do
begin
x:=0;
for j:=0 to 10 do x:=x+step_distri[s].manual[j];
for j:=0 to 10 do
begin
step_distri[s].cent[j]:=round(100*step_distri[s].manual[j]/x);
end;
step_distri[s].cummulate[0]:=step_distri[s].cent[0];
for j:=1 to 10 do
begin step_distri[s].cummulate[j]:=
step_distri[s].cummulate[j-1]+
step_distri[s].cent[j];
end;
end;
end;
procedure make_population;
var
i, j, x : word;
begin
clrscr;
for i:=1 to 30 do
begin
x:=random(100);
j:=0;
while x>step_distri[g_shift].cummulate[j] do j:=j+1;
step_len:=step_distri[g_shift].step[j];
max_shift[i]:=step_len;
cell[i].x[1]:=500+random(1000);
cell[i].y[1]:=500+random(1000);
cell[i].angle[1]:=random(180);
if random(100)<50 then cell[i].angle[1]:=-cell[i].angle[1];
if max_shift[i]>=15 then cell[i].speed:=fast;
if (max_shift[i]>=7) and (max_shift[i]<15) then cell[i].speed:=mean;
if max_shift[i]<=7 then cell[i].speed:=slow;
end;
end;
procedure init;
var
j : word;
s : par_typ;
x : real;
c : cell_typ;
begin
step_distri[g_shift].max_step:=30;
step_distri[g_shift].cell_name:='Глобальный';
step_distri[l_shift].max_step:=30;
step_distri[l_shift].cell_name:='Локальный';
step_distri[angle].max_step:=180;
step_distri[angle].cell_name:='Углы';
s:=g_shift;
for j:=0 to 10 do step_distri[s].manual[j]:=100*sin(pi*j/10)*sin(pi*j/10);
s:=l_shift;
for j:=0 to 10 do step_distri[s].manual[j]:=100*sin(pi*j/10)*sin(pi*j/10);
s:=angle;
for j:=0 to 10 do step_distri[s].manual[j]:=100*exp(-j/2);
edit_prob(g_shift);
edit_prob(l_shift);
edit_prob(angle);
clrscr;
normalize;
make_population;
end;
procedure calc_step(i : word);
var
x, j : word;
begin
x:=random(100);
j:=0;
while x>step_distri[l_shift].cummulate[j] do j:=j+1;
step_len:=step_distri[l_shift].step[j]*max_shift[i]/30;
x:=random(100);
j:=0;
while x>step_distri[angle].cummulate[j] do j:=j+1;
step_ang:=step_distri[angle].step[j];
x:=random(100);
if x>50 then sign:=-1 else sign:=1;
end;
procedure make_all_steps;
var i, j : word;
begin
for i:=1 to 30 do
with cell[i] do
for j:=2 to 100 do
begin
calc_step(i);
angle[j]:=angle[j-1]+step_ang*sign;
x[j]:=x[j-1]+step_len*cos(angle[j]*pi/180);
y[j]:=y[j-1]+step_len*sin(angle[j]*pi/180);
end;
end;
procedure print_coord;
var i, j, k : word;
f : text;
begin
for i:=1 to 30 do
with cell[i] do
for j:=1 to 100 do
begin
writeln(i:5,x[j]:9:2,y[j]:9:2);
if j mod 20 = 0 then readln(k);
end;
end;
procedure speed_meas;
var
i,j : word;
z : real;
shift : array[1..30] of real;
begin
clrscr;
for i:=1 to 30 do shift[i]:=0;
for i:=1 to 30 do
with cell[i] do
for j:=2 to 100 do
begin
z:=sqrt((x[j]-x[j-1])*(x[j]-x[j-1])+(y[j]-y[j-1])*(y[j]-y[j-1]));
shift[i]:=shift[i]+z;
end;
for i:=1 to 30 do
begin shift[i]:=shift[i]/100;
end;
end;
procedure write_shift;
var i, j, k : word;
z : real;
shift : array[1..30] of real;
f : text;
begin
assign(f,'treck.txt');
rewrite(f);
for j:=1 to 30 do shift[j]:=0;
j:=2;
repeat
j:=j+1;
write(f,j:3);
for i:=1 to 30 do
with cell[i] do
begin
z:=sqrt((x[j]-x[j-1])*(x[j]-x[j-1])+(y[j]-y[j-1])*(y[j]-y[j-1]));
shift[i]:=shift[i]+z;
write(f,shift[i]:9:2);
end;
writeln(f);
until j=100;
close(f);
end;
procedure write_angle;
var i, j, k : word;
z : real;
shift : array[1..30] of real;
f : text;
begin
assign(f,'angle.txt');
rewrite(f);
with step_distri[angle] do
for j:=0 to 10 do writeln(f,step[j]:10:2,cent[j]:10,cummulate[j]:10);
close(f);
end;
procedure write_disp;
var i, j, k : word;
z : real;
shift, loc_calc : array[1..30] of real;
f : text;
begin
assign(f,'disper.txt');
rewrite(f);
for j:=1 to 30 do begin loc_calc[j]:=0; shift[j]:=0; end;
j:=1;
repeat
j:=j+1;
write(f,ln(j):10:2);
for i:=1 to 30 do
with cell[i] do
begin
loc_calc[i]:=0;
for k:=j+1 to 100 do
begin
z:=(x[k]-x[k-j])*(x[k]-x[k-j])+(y[k]-y[k-j])*(y[k]-y[k-j]);
loc_calc[i]:=loc_calc[i]+z;
end;
shift[i]:=loc_calc[i]/(100-j);
write(f,0.5*ln(shift[i]):10:2);
end;
writeln(f);
until j=98;
close(f);
end;
procedure write_distr;
var i, j, k : word;
z : word;
shift : array[0..35] of word;
f : text;
begin
assign(f,'dist_sp.txt');
rewrite(f);
for j:=0 to 35 do shift[j]:=0;
for i:=1 to 30 do
with cell[i] do
begin
for j:=2 to 100 do
begin
z:=round(sqrt((x[j]-x[j-1])*(x[j]-x[j-1])+(y[j]-y[j-1])*(y[j]-y[j-1])));
shift[z]:=shift[z]+1;
end;
end;
for j:=0 to 30 do writeln(f,j:3,shift[j]:10);
close(f);
end;
procedure draw_cell(c : cell_typ; x, y : real);
var
color, graph_x, graph_y : integer;
begin
case c of
slow : color:=lightcyan;
mean : color:=yellow;
fast : color:=white;
end;
graph_x:=round(x*n_pix_inline/2000);
graph_y:=round(y*n_line/2000);
putpixel(graph_x,graph_y,color);
end;
procedure draw_picture;
var
i,j : word;
begin
for i:=1 to 30 do
with cell[i] do
for j:=1 to 100 do
begin
draw_cell(speed,x[j],y[j]);
end;
end;
begin
randomize;
init;
make_all_steps;
speed_meas;
write_shift;
write_distr;
write_disp;
write_angle;
opengraph;
draw_picture;
key:=readkey;
closegraph;
end.
Размещено на Allbest.ru
Подобные документы
Динамические характеристики популяции: рождаемость, смертность, выживаемость. Пространственное распределение особей, составляющих популяции. Рассмотрение колебания численности популяции как авторегулируемого процесса. Число доступных для жизни мест.
презентация [867,8 K], добавлен 25.03.2015Структура популяции прыткой ящерицы на территории г. Мозырь и окрестностей. Пространственная структура популяции вида Lacerta agilis. Половая структура поселений. Характеристика пространственной структуры, плотности поселений. Возрастной состав популяции.
научная работа [9,1 M], добавлен 18.01.2011Понятие и принцип работы генетического алгоритма. Вычисление функций приспособленности для особей популяции. Модель "эволюционного процесса". Основные операции генетических алгоритмов. Восстановление генов, выпавших из популяции в ходе операции выбора.
презентация [8,4 M], добавлен 25.06.2013Рассмотрение популяции как элементарной единицы эволюционного процесса, изучение ее демографической структуры. Особенности возрастной, половой и пространственной популяции. Исследование роли социальных контактов в индивидуализированных сообществах.
реферат [23,0 K], добавлен 05.09.2014Исследование эволюции экологической системы при различных условиях. Прогнозирование развития популяции. Определение стационарных значений численности популяций хищников и жертв. Определение начальных условий, при которых возможно вымирание популяции.
лабораторная работа [329,9 K], добавлен 22.03.2015Популяция как надорганизменная биологическая макросистема. Пространственная, половая, генетическая, возрастная и этологическая структуры популяции. Механизмы гомеостаза и саморегуляции. Статистические и динамические показатели. Типы кривых выживания.
курсовая работа [64,6 K], добавлен 25.01.2010Учение В.И. Вернадского о биосфере. Ноосфера как новая стадия эволюции биосферы. Статические и динамические показатели популяции. Продолжительность жизни, рост численности популяции. Изучение процесса урбанизации. Экологические обязанности граждан.
контрольная работа [43,7 K], добавлен 24.02.2010Японский журавль как вид, находящийся под угрозой уничтожения, его внешнее описание, распространение, питание, размножение, охрана популяции. Деградация и сельскохозяйственное освоение земель как основные лимитирующие факторы популяции редких животных.
реферат [30,9 K], добавлен 30.10.2009Определение удельной скорости роста популяции бактерий. Решение дифференциального уравнения первого порядка. Нахождение общего и частного решения, постоянной С. Подставка известных чисел в уравнение. Расчет численности популяции бактерий через 4 часа.
презентация [4,7 M], добавлен 23.03.2014Понятие и сущность популяции; функция системы. Ареал, численность, плотность, рождаемость и смертность как основные популяционные характеристики. Возрастная и половая структура внутри вида. Изучение периодических колебаний популяции зайца-беляка и рыси.
презентация [1008,2 K], добавлен 14.06.2014