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