анализа изображения позволяют изучать не только миграцию клеток, но и
изменение их формы, связанное с вытягиванием псевдоподии. В настоящее время
накоплен очень большой материал по формальному описанию движения клеток,
развита теория описания движения, основанная на анализе случайных
процессов. Однако многие вопросы остаются до сих пор непонятными. Отчасти
это связанно с недостатком знаний и не возможностью провести прямые
измерения параметров ряда процессов, определяющих движение клетки.
Например, из экспериментальных данных ясно, что движение клеток связано с
их прилипанием к стеклу, по которому они движутся. Если клетка не прилипает
к стеклу вообще, то она не движется. Если же она прилипает очень сильно, то
она опять не в состоянии двигаться. До сих пор не существует методов
измерения степени прилипания клетки к стеклу. Разумеется в распоряжении
исследователя даже нет средств для измерения многих физических
характеристик движения, но он имеет множество возможностей изменять эти
характеристики. В этих условиях, важным шагом, который может обеспечить
дальнейшие исследования, является математическое моделирование.
Математическое моделирование позволяет исследователю упорядочить и
систематизировать имеющиеся знания. Проверить непротиворечивость выдвинутых
гипотез и выделить существенные и не существенные факторы высказываемых в
них.
Модель движения популяции нейтрофилов не учитывала изменение формы
отдельных клеток, а ограничивалась результирующими параметрами каждой
клетки. Клетка могла переместиться в случайном направлении (распределение
углов поворотов задавалось на случайное расстояние), на случайное
расстояние (распределение также задавалось). Популяция была разбита на 3
группы: медленные, средние и быстрые. Это распределение было взято из
экспериментальной практики, при этом модель учитывала даже процентное
соотношение в популяции. В результате моделирования установлено, что первая
из зависимостей (зависимость пройденного пути от времени) совершенно не
соответствует экспериментальной. Положение не спасало и изменение
процентного состава клеток в популяции. Единственный выход, подсказанный
моделью, это отказ от деления популяции на группы и введение непрерывно
распределенных скоростей.
Моделирование выбора интервала времени для измерений последовательных
положений клеток, для измерения скоростей, показало, что не только значения
мгновенных скоростей зависит от интервала, что само по себе очевидно. Выбор
слишком большого интервала «размазывает» популяционные характеристики
движения, приближая модельную картину к экспериментальной. Это очень
опасный артифакт. Как и обсуждается в главе результаты исследований,
временной интервал для измерения мгновенных скоростей должен быть порядка
времени перемещения клетки на расстояние сравнимое с её размером. При этом
показано, что даже при «правильном измерении» построение гистограмм
элементарных перемещений практически не несет никакой информации ни о
характере движения клеток, ни о популяционном составе. Изучение
классического параметра случайного движения – среднеквадратического
отклонения показало, что на малых временах клетки ведут себя как объекты,
движущиеся целенаправленно. На больших временах клетки ведут себя как
броуновские частицы.
Применение веществ, которые привлекают клетку к себе (хемоаттрактанты)
увеличивают интервал времени, в течении которого клетка движется
целенаправленно. Само по себе это не удивительно. Однако в литературе
широко принято связывать это явление с клеточной памятью. Наша модель была
в принципе марковской. В ней небыло памяти в строгом смысле слова. В не
строго смысле некий элемент, который можно трактовать как память был.
Нулевой угол поворота был более предпочтителен, а при применении
хемоаттрактанта вероятность нулевого угла увеличивалась. Тем не менее
модель воспроизводила экспериментальные данные с поразительной точностью.
Воспроизводилось даже время с целенаправленным движением. Таким образом
попытки интерпретации этого времени как клеточной памяти вызывают серьезные
сомнения. Очень важными оказались результаты моделирования
среднеквадратичного отклонения на больших временах. График зависимости
среднеквадратичного отклонения от времени начинает отклоняться от
теоретического в случайном направлении, в плоть до того, что
среднеквадратичное отклонение начинает уменьшаться. Эта особенность,
полученная в эксперименте, «вызвало панику» у экспериментаторов. Уменьшение
среднеквадратичного отклонения можно было интерпретировать только как
целенаправленное возвращение клетки обратно. Физически это можно
представить себе как возвращение клетки вдоль некоторого дефекта подложки,
невидимого в микроскоп. Разумеется, это ставит под сомнение качество всего
эксперимента. На модели показано, что это явление связано всего лишь с
недостатком статистики для последнего участка кривой.
Выводы
1. Создана популяционная математическая модель случайного блуждания
нейтрофилов, которая описывает основные характеристики движения;
2. Широко принятое в литературе деление нейтрофилов на медленные, средние и
быстрые следует считать условным. Экспериментальные измерения скоростей
нейтрофилов в популяции распределены непрерывно;
3. Модель подвергает сомнению широко принятое мнение о существовании памяти
нейтрофилов. Экспериментальные данные хорошо описываются в рамках
марковской модели;
4. Наблюдаемое в эксперименте закономерное возвращение некоторых
нейтрофилов к начальной точке связано только с недостатком статистики для
измерения среднеквадратичного отклонения на больших временах.
Список литературы
1. Boyden S. The chemotactic effect of mixtures of antibody and antigen on
polymorphonuclear leukocytes. J. Exp.Med., 1962, v.115, 453-465.
2. 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.
3. 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.
4. Harris H. Chemotaxis of granulocytes. J. Pathol. Bacteriol., 1953, v.66,
135-140.
5. 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.
6. King C.A. et al. Cell-substrate interactions during amoeboid locomotion
of neutrophyl leukocytes., Exp. Cell Res., 1980, v.126, 453-458.
7. 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.
8. Omann G.M. et al. Signal transduction and cytoskeletal activation in the
neutrophil. Physiol. Rev, 1987, v.67, N1, 285-319.
9. Quie P. G., Mills E. L., McPhail L. C., Johnston R. B. Phagocytic
Defects Springer Semin. Immunopathol 1978, v. 1, 323-337.
10. Repo H. Defects in fagocytic functions. Annals of Clinical
11. Research. 1987, v.19, 263-279.
12. Senda N., Tamura H., Shibata N. The mechanism of the movement of
leucocytes. Exp. Cell Res., 1975, v.91, N2, 393-407.
13. Snyderman R., Goetzl E. J. Molecular and cellular mechnisms of
leukocyte chemotaxis. Scince 1981, v.213, 830-837.
14. Springer T. A. Adhesion receptors of the immune system. Nature, 1990, v
346, 425-434.
15. Stossel T.P. On the crawling of animal cells. Science 1993, v.260, 1086-
1094.
16. Адо А.Д. Патофизиология фагоцитов. 1961.
17. Васильев Ю.М., Гельфанд И.М. Движение и морфогенетические реакции
тканевых клеток в культуре. В сб. Движ.нем.кл.1977г.
18. Галкин А.А. и соавт. 1994
19. Красовская И.Е. Сократительные белки немышечных клеток . I. Актино- и
миозиноподобные белки. в сб. Движение немышечных клеток и их компонентов.
1977г.
20. Маянский А.Н., Маянский Д.Н. 1989г.
21. Нерсесова Л.С. Движение немышечных клеток и их компонентов., Ленинград,
«Наука» 1977г.
22. Туманов Е.А. и соавт. Бюлл. Эксп. Биол. Мед. 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 (a10 then j:=10;
if j='0') and (astep_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)=15 then cell[i].speed:=fast;
if (max_shift[i]>=7) and (max_shift[i]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.
Страницы: 1, 2, 3, 4, 5
|