Эпигенез. Представление о зародышевом развитии организмов как процессе, осуществляющемся путем последовательной дифференциации изначально недифференцированного целого[104].
В книге Льюиса Уолперта и его коллег «Принципы развития» эпигенез описывается как идея поступательного развития новых структур. В этом смысле реальность эпигенеза очевидна, но, как обычно, дьявол прячется в деталях. Как именно идет прогрессивное развитие организма? Откуда «изначально недифференцированному целому» известно, как развиться в сложный организм, как не из чертежа? Очень важное отличие, которое я бы хотел подчеркнуть, представляет собой, по сути, основное отличие эпигенеза от преформизма. Это разница между строительством по плану и самосборкой. Мы все знаем, как строят дома, как изготавливают вещи, окружающие нас, и поэтому отлично понимаем, что такое строительство происходит согласно плану. Самосборка менее известна, поэтому ей придется уделить больше внимания. Можно сказать, что в эмбриогенезе самосборке принадлежит роль, которую в эволюционном процессе играет естественный отбор (хотя это, безусловно, разные явления). Оба за счет автоматических, непреднамеренных, никем не запланированных процессов приводят к результатам, которые на первый взгляд кажутся тщательнейшим образом спланированными.
Холдейн, отвечая на вопрос, конечно, сказал чистую правду. Однако он не стал бы отрицать, что в развитии человеческого тела всего из одной клетки есть тайна, близкая к чуду (хоть и не переходящая грань). То, что развитие происходит по инструкциям, содержащимся в ДНК, приоткрывает завесу таинственности, но не полностью. Причина таинственности проста: нам сложно представить, даже в теории, возможность создания инструкций для строительства тела способом, которым оно строится на самом деле: самосборкой. Программисты называют такие алгоритмы восходящим проектированием — в противоположность нисходящему.
Архитектор готовит чертеж величественного собора. Затем операции передаются отдельным бригадам, затем звеньям, группам, пока, наконец, инструкции не доходят до конкретных каменщиков, столяров и витражных мастеров. Те принимаются за работу и трудятся до тех пор, пока собор не будет построен. Причем выглядит он в итоге вполне похожим на чертеж архитектора. Это нисходящее проектирование.
Восходящее проектирование принципиально иное. Я не могу в это поверить, но существует миф о том, что некоторые из лучших средневековых соборов Европы были построены без архитектора и общего чертежа. Никто их не планировал и не чертил. Каждый каменщик или плотник занимался, в меру своих способностей, частью общей работы, практически не обращая внимания на то, что делается вокруг, и вовсе не думая о плане. И, о чудо, каким-то образом из этой анархии рождался собор. Будь оно так, это был восходящий алгоритм. Миф этот, правда, не соответствует действительности: соборы так не строили. Однако это происходит, например, при строительстве муравейника или термитника, а также в ходе развития зародыша. Это и отличает эмбриологию от всего, к чему мы, люди, привыкли в вопросах строительства и конструирования. На этом принципе основаны некоторые компьютерные программы, типы поведения животных, а также компьютерные программы, моделирующие поведение животных. Предположим, что мы хотим смоделировать стайное поведение скворцов. На цветной вклейке 16 приведены кадры из нескольких прекрасных роликов с видеохостинга «Ю-Тьюб»[105]. Этот «балет» над Отмуром, неподалеку от Оксфорда, запечатлел Дилан Уинтер. В стайном поведении скворцов поразительнее всего то, что у них нет хореографа и, насколько нам известно, вожака также. Каждая птица всего лишь следует локальным правилам.
Число птиц в подобных стаях может измеряться тысячами, однако столкновений практически не бывает. Еще бы, ведь на таких скоростях любое столкновение почти неизбежно приведет к ранениям. Часто можно наблюдать, что стая ведет себя как единое целое, согласованно поворачиваясь или кружась. Или что несколько стай пролетают друг сквозь друга, причем каждая сохраняет целостность. Это кажется волшебством. На самом деле стаи находятся на разном удалении, а не пролетают друг сквозь друга. Дополнительное эстетическое удовольствие дает четкий абрис стаи: ее плотность не снижается от центра к периферии. Ну не удивительно ли?
Эти «танцы», вероятно, самый элегантный скринсейвер. В видеосъемке «балета» необходимости в данном случае нет, поскольку она запечатлела повторяющиеся раз за разом хореографические движения, и, следовательно, не все пиксели будут в равной степени заняты. Лучше сделать компьютерную модель поведения скворцов. Любой программист объяснит вам, что есть два способа написания алгоритма: правильный и неправильный. Не пытайтесь выступать в роли хореографа балета в целом. Для подобной задачи этот подход крайне неудачен. Я расскажу о верном способе составления алгоритма, потому что сами птицы (их мозги) почти наверняка запрограммированы так же. А главное, это прекрасная аналогия эмбрионального развития.
Вот как надо программировать стайное поведение скворцов. Нужно сосредоточиться на программировании поведения отдельной птицы. Встроим в компьютерного скворца правила поведения в полете и реагирования на присутствие вблизи других скворцов. Определим, в какой степени птица при изменении направления полета будет отдавать приоритет поведению окружающих особей и в какой — собственной инициативе. Все эти правила можно установить экспериментальным путем, наблюдая за птицами в природе. Дадим киберптице возможность менять правила поведения случайным образом, но в определенных рамках. Теперь, когда мы создали сложную программу, в деталях описывающую поведение скворца, наступает самый важный момент. Не следует пытаться программировать поведение стаи, как, возможно, поступил бы программист прошлого. Вместо этого мы клонируем компьютерного скворца, создадим тысячу его копий, идентичных или с небольшими случайными вариациями правил поведения. И «выпустим» их в компьютерную среду обитания, предоставив самим себе, позволив взаимодействовать на основании общих правил.
Если правила поведения одиночной птицы заданы удачно, то тысячи компьютерных скворцов, каждый в виде точки на экране, поведут себя как реальная стая. Поведение не совпадает с реальным? Не беда, можно отойти на шаг назад и изменить правила для одиночного скворца, например по результатам новейших исследований поведения реальных птиц. Теперь остается снова размножить компьютерных птиц. Так, повторяя последовательные стадии перепрограммирования и клонирования компьютерных скворцов, можно добиться поведения, близкого к реальному. Крейг Рейнольдс написал похожую программу (не занимаясь специально скворцами) в 1986 году и назвал ее Boids[106].
Главное вот что: здесь нет ни хореографа, ни дирижера, ни вожака. Порядок, организация, структура возникают как побочный продукт системы правил, исполняемых локально, а не глобально. Именно так устроена эмбриология: она целиком построена на соблюдении локальных правил на разных уровнях, но главным образом на уровне клетки. Никакого хореографа. Никакого дирижера. Никакого централизованного планирования. Никакого архитектора. В эмбриологии и на производстве процессы, аналогичные работе подобной программы, называются самосборкой.
Тела человека, орла, крота, дельфина, гепарда, леопардовой лягушки и ласточки — все они столь восхитительно и точно собраны, что кажется невозможным то, что гены, их программирующие, не являются ни чертежом, ни генпланом. Тем не менее это так. Как и в случае компьютерных скворцов, все создано отдельными клетками, следующими локальным правилам. Прекрасно спроектированное тело возникает благодаря исполнению локальных правил отдельными клетками, без какого бы то ни было всеобщего плана. Клетки эмбриона «танцуют» друг с другом как скворцы в гигантской стае. Есть, однако, важные различия. В отличие от скворцов, клетки склеены вместе, образуют слои и блоки: их «стаи» называются тканями. «Танцуя» и крутясь, они образуют трехмерные формы, вызывая инвагинацию (впячивание) тканей в ответ на движение клеток, разрастание или сжатие тканей в ответ на изменение местных схем клеточного роста и смерти. Мне нравится аналогия, предложенная известным эмбриологом Льюисом Уолпертом в книге «Триумф зародыша»: оригами — японское искусство складывания фигурок из бумаги. Однако прежде чем перейти к этой аналогии, я хотел бы отмести несколько альтернативных аналогий, которые могут прийти в голову при размышлении об эмбриональном развитии, а именно — сравнений с процессами конструирования и производства.
Удивительно трудно подыскать приемлемую аналогию процесса развития живой ткани, однако можно найти частичное сходство с отдельными сторонами этого процесса. Например, понятие «рецепт» гораздо лучше отражает суть, чем «чертеж», и я иногда пользуюсь первым для того, чтобы объяснить, почему последнее неверно. В отличие от чертежа, рецепт необратим. Следуя тексту рецепта пирога, в итоге вы получите пирог. Но по готовому пирогу вы не восстановите рецепт, в то время как, видя здание, вполне можно воспроизвести чертеж. Дело в том, что части здания и элементы чертежа соответствуют друг другу. Не считая очевидных исключений вроде вишенки в центре, однозначного соответствия между кусочками пирога и строчками рецепта нет.