Принципиально здесь то, что модель Рейнолдса действовала не на уровне стаи. Все программирование велось на уровне отдельно взятой птицы. Поведение стаи возникало как следствие. Такое же «восходящее программирование» мы наблюдаем и в эмбриологии, где роль отдельных птичьих особей играют отдельные клетки зародыша. Процесс эмбрионального развития включает множество разнообразных клеточных движений, когда мембраны и целые тканевые пласты сворачиваются и изгибаются, непрестанно меняя форму. Так что и тут, аналогично примеру с летающими скворцами, опять нет хореографа, равно как и архитектора.
Эмбриологи все еще выясняют, каким образом ДНК создает младенца. Многое уже известно, но я не собираюсь углубляться в детали. Это заняло бы целую книгу, а наша книга не о том. Здесь нам с вами достаточно будет просто понимать, что развитие зародыша — процесс восходящий. Такой же, как строительство термитников или взаимодействие скворцов внутри стаи. Идет он не по чертежам. Вместо этого все клетки развивающегося эмбриона следуют своим собственным локальным правилам, подобно отдельным термитам, возводящим собор из глины, или отдельным скворцам в кружащейся стае.
Остановлюсь на самых ранних этапах жизни зародыша чуточку подробнее, чтобы показать, как работают такие восходящие правила. Вы, конечно, знаете, что оплодотворенная яйцеклетка представляет собой одну-единственную клетку, хоть и большую. Она делится на две. Затем каждая из этих двух клеток тоже делится — и их становится четыре. Из четырех получается восемь и так далее. После каждого деления общий объем остается прежним — равным объему исходной оплодотворенной яйцеклетки. Тот же самый материал перераспределяется между двумя, четырьмя, восемью, шестнадцатью и более клетками, формируя в итоге плотный шар. Когда число клеток приближается к сотне, они (подчиняясь локальным восходящим правилам) образуют нечто вроде полого мячика, называемого бластулой. Размер бластулы опять-таки примерно тот же, что был у оплодотворенной яйцеклетки, а сами клетки теперь очень мелкие. Получившийся мячик образован стеной из клеток.
По мере того как клетки продолжают делиться, их число все возрастает. Но мячик не становится больше. Вместо этого — снова благодаря тому, что каждая клетка действует согласно локальным правилам, — участок стенки прогибается по направлению к центру шара. В конце концов вмятина становится столь глубокой, что стенка мячика оказывается состоящей не из одного клеточного слоя, а из двух. Такой двухслойный шар называется гаструлой, а процесс его формирования — гаструляцией.
Устроена гаструла, надо признать, не слишком сложно и совсем непохожа на младенца. Но, думаю, вам ясно, что она могла появиться вследствие выполнения восходящих правил, которым следовала каждая клетка, увеличивая площадь стенки бластулы и создавая таким образом углубление, необходимое для образования двухслойного зародыша — гаструлы. Именно подобные восходящие правила, продолжая действовать в каждой точке эмбриона, меняют его форму, постепенно делая его все более похожим на младенца.
После гаструляции происходит еще один, в чем-то подобный ей процесс «впячивания». Он называется нейруляцией и завершается тем, что края углубления смыкаются, «отстегивая» полую трубку, назначение которой — превратиться в главный нервный тяж организма (тот самый, что пролегает вдоль всей нашей спины внутри позвоночника). И снова углубление возникает здесь в результате деятельности отдельных клеток, соблюдающих восходящие правила местного значения. Вот рисунок, показывающий, как возникает нервная трубка — сначала она «впячивается», а затем «отстегивает» вогнутый участок.
Имеются различия в деталях, но сам принцип восходящего локального регулирования тот же, что и при гаструляции.
Как вы помните, Крейг Рейнолдс создавал своих «Птоидов» — компьютерную модель стаи птиц, — программируя поведение только одного «птоида». Затем он сделал множество его копий и наблюдал за их совместным поведением. Они сформировали летающую, кружащуюся стаю — прямо как настоящие птицы. Программированием поведения стаи Рейнолдс совершенно не занимался. Оно возникло само, по восходящему принципу, вследствие выполнения локальных правил индивидуальными птоидами. Ну вот, а матбиолог Джордж Остер сделал то же самое, только не для птоидов, а для клеток зародыша. Он написал компьютерную программу, моделирующую поведение одной-единственной клетки. Ему пришлось принять во внимание множество тех мелких фактов, которые уже известны биологам о клетках. Подробности довольно трудны для понимания, так как клетка — сложно устроенная штука. Но важно здесь вот что. Аналогично примеру с птоидами, Остер моделировал не эмбрион, а только отдельную клетку. В том числе и ее стремление размножаться, поскольку это одна из важнейших клеточных особенностей. Но клетки занимаются и многими другими вещами, которые Остер также учел при программировании своей виртуальной клетки. Затем он дал ей возможность делиться на экране компьютера и наблюдал, что же получится.
Всякий раз, по мере того как клетка делилась, каждая из двух получавшихся новых клеток наследовала все ее свойства и поведение. Подобным же образом работала и модель Крейга Рейнолдса, клонировавшего множество копий своего единственного птоида, чтобы посмотреть на их поведение в стае. И если птоиды Рейнолдса группировались, как скворцы, то клетки Остера…
Впрочем, просто взгляните на приведенную ниже схему, и вы увидите, что они делали. А затем сравните ее с предыдущим изображением настоящей нейруляции. Разумеется, две эти картинки не вполне одинаковы. Точно так же, как и роящиеся птоиды Рейнолдса не были абсолютно идентичны сбивающимся в стаи скворцам. Этими двумя примерами я всего лишь хочу продемонстрировать могущество восходящего «проектирования», когда нет ни архитектора, ни балетмейстера, а только локальные правила, выполняющиеся на нижнем уровне организации.
Более поздние эмбриологические этапы слишком сложны, чтобы обсуждать их здесь. Все разнообразные ткани — мышц, костей, нервной системы, кожи, печени, почек — вырастают путем деления клеток. Клетки различных тканей внешне очень непохожи друг на друга, но все они содержат одинаковую ДНК. Причина их непохожести заключается в деятельности разных отрезков ДНК — разных генов. В каждой конкретной ткани активировано только незначительное меньшинство из десятков тысяч имеющихся генов. Отсюда следует, что в каждой ткани синтезируются лишь немногие из тех белков — тех жизненно необходимых «лаборантов»-ферментов, — что могли бы производиться и что действительно производятся в других тканях. А это приводит к тому, что клетки различных тканей формируются разными. Каждая ткань нарастает благодаря делению клеток, подчиняющихся локальным восходящим правилам. И каждая перестает расти по достижении нужного размера — опять-таки следуя восходящим правилам, действующим «на местах». Порой дела идут не так, как надо, и ткань не может прекратить свой рост: клетки отказываются повиноваться восходящим локальным правилам, приказывающим им остановить деление. В таких случаях возникает опухоль — например, раковая. Но как правило, этого не происходит.