# О программировании и Гмо

Николай Дмитриевич Бурланков

В чем сходство и в чем разница между ДНК-кодированием и программированием, и какие реальные опасности таятся в ГМО

О программировании и ГМО

Покупатель:

-Это у вас генно-модифицированная морковь?

Продавец:

- Нет, а почему вы спрашиваете?

Морковь:

- Да, почему вы спрашиваете?

(из анекдотов)


У программирования с генетикой вообще довольно много общего. И там, и там есть некоторый "исходный код", который считывается какими-то другими механизмами (которые, к слову, должны были как-то возникнуть ДО появления самого носителя кода. И потом сами как-то попасть в этот код, чтобы сохраняться и передаваться по наследству), есть классы, наследование, а последние исследования говорят даже, что и "копипаст" тоже есть в биологии (параллельный перенос генов, когда участок хромосомы - с помощью вирусов, бактерий - из одного организма попадает в геном другого организма, причем, организмы могут быть вообще не родственны, а относиться даже к разным "царствам" - таксонам, т.е., скажем, от растений к животным или от грибов к животным).

Последний момент, кстати, особенно интересен - получается, мы (как и любой из существующих видов) появились не в результате "долгого накопления мутаций" - а могли скомбинироваться из генов других видов за более короткое время. И, возможно, считающиеся сейчас длительности появления новых видов - миллион лет, два миллиона лет - следует сильно сократить в силу такого механизма.

Ну, и именно на этом механизме основана и современная технология ГМО (генно-модифицированных организмов). Когда гены одного вида внедряют в геном другого с целью получения каких-то признаков.

Однако тут и обнаруживается разница между программированием и генетикой. Как работают "механизмы реализации программы" - с помощью чего они выполняются и что при этом происходит - мы в общем знаем, поскольку каждый шаг создан людьми. А вот как работает "механизм экспрессии гена" (т.е., как информация, записанная в гене, проявляется в итоге в фенотипе - во внешности, в поведении, в функционировании органов и т.д., в общем, "в реальности") - известны только самые простые случаи.

Самый простой вариант известен со времен Менделя: один ген отвечает за появление признака, он может быть рецессивным и доминантным (т.е., проявляться или не проявляться, и проявляется только если оба гена в паре рецессивны). Но за признак могут отвечать сразу несколько генов. Ведь по сути, ген - это участок ДНК, ответственный за выработку одного белка. Этот белок может быть "исходным материалом". Может быть ферментом, воздействующим на исходный материал. Может быть катализатором, усиливающим реакцию. Может быть ингибитором, подавляющим реакцию. Может быть разрушителем, уничтожающим результат другой реакции. Т.е., достаточно часто встречаются случаи, когда один ген вырабатывает фермент, запускающий реакцию выработки какого-либо вещества (меланина, например), а другой - реакцию, его уничтожающую, в итоге на выходе ничего не происходит.

Могут быть и "транспортные белки", ответственные за то, чтобы выработанные вещества передавались в нужное место (и если это сломать, то вещество будет вырабатываться, а передаваться не будет). И кроме всего прочего, каждый белок в разных реакциях (по отношению к разным веществам) может выступать в разных ипостасях. А учитывая, что генов в ДНК (и не только человека) десятки тысяч, изменение одного может привести к абсолютно непредсказуемым последствиям в совершенно неизвестном месте.

В программировании есть даже один из постулатов "single responsibility" - "единичной ответственности". Т.е., когда каждый класс, каждая функция в программе должна отвечать только за одну функциональность, и только одна функция или класс должны отвечать за какую-то функциональность - функциональность программы не должна быть размазана по всему коду и не должно быть дублирования. Это принцип, но, разумеется, добиться этого очень сложно и сразу не получится (необходимо постоянное изменение и улучшение кода - рефакторинг - чтобы приблизить к этому идеалу).

В природе реализуется совсем другой принцип, позволяющий экономить на генном материале и механизмах - но при этом затрудняющий эти самые "параллельные переносы". Как правило, один ген отвечает за несколько признаков, и один признак кодируется несколькими генами (см. выше). Так называемая "голографичность генома". То есть, если вы поменяете один ген - вы вряд ли получите только одно изменение во внешнем проявлении, а скорее всего, еще ряд сопутствующих. И изменение одного гена вам вряд ли даст нужное вам изменение. Сломать признак одним геном можно, а вот создать новый - вряд ли.

Не всегда так (иногда можно выделить "изолированную группу генов", отвечающую за конечное количество внешних признаков), но главное - мы не создавали сами генетические механизмы. Их не получится "отрефакторить" без полного понимания, как что работает и почему, а даже чтобы выделить одну простую схему работы какого-то одного функционального признака - нужны огромные усилия. Механизмы были созданы до нас, и мы только изучаем их. Например, да, информация записана в генах - но во всех клетках содержится ВСЯ информация. А вот какая из них будет задействована в конкретный момент, чтобы организм получился не аморфным, а с конкретными формами и органами - это определяют ДРУГИЕ, управляющие гены (как предполагается). А вот как, когда и почему они включаются - еще неизвестно. Т.е., это в каком-то смысле "код, имеющий возможность самостоятельно решать, какие куски кода ему в какой момент выполнять" (ну, или "хорошо отрефакторенный код". Т.е., на самом деле, тут аналогия с кодом в одну сторону тоже возможна - когда у вас есть одна функция очень общего назначения, которую вызывает десяток разных других и при изменении которой поменяются они все, или наоборот, чтобы одна функциональность создавалась десятком разных мест в коде - тоже возможно, но не оба варианта сразу)

То есть, мы не только не провели "ревью кода", хранящегося в генах - мы в принципе даже не представляем, что он делает и как работает. Чтобы все было без сбоев, там немыслимое количество проверочных систем, резервных систем - и все они когда-то включаются, как-то управляются. Это один из сложнейших механизмов, работающий, несмотря на сложность, почти без сбоев - ликвидация последствий сбоев производится с помощью других систем, тоже управляемых этим кодом. И мы разобрались в малой его части. Нет ,мы, конечно, можем полностью его "прочитать" в том смысле что установить последовательность нуклеотидов. Но как оно все связано и работает, что чем управляет, в какой момент включается и т.д. - мы подсмотрели небольшой уголок, а уже бросаемся это менять и внедрять в промышленное производство.

Поэтому, когда "ученые мужи" начинают смеяться над "обывателями, рассказывающими ужасы о ГМО, не понимающими, что они сами являются продуктами генной модификации" - они показывают скорее собственную бестолковость. Это примерно то же самое, что сказать: Смотрите, сколько людей водят машины - как можно их бояться, садись за руль, сейчас доедем, куда надо!

Но чтобы водить машину, нужно хотя бы пару месяцев учиться, а даже опытные водители попадают в аварию. Если человек, умеющий только заводить машину, сядет за руль - хорошо, если он доедет до ближайшего столба и пострадает только машина, а не окружающие. И говорить, что "машины безопасны, давайте все поедем на машине" - было бы явно введением в заблуждение.

А тут ситуация принципиально другая. Информация на много порядков больше и сложнее - весь геном толком до сих пор не расшифрован даже у простейших организмов, до сих пор многое считается "генетическим мусором". Проявления тоже могут быть самыми разными. "Правил генетической модификации" пока толком никто не знает. Что отвечает за "запуск генов", толком тоже (не скопируем ли мы что-то, что поломает всю последовательность запуска?).

И уж если можно получить, гонясь за "ценным мехом", злобного карбыша, или в погоне за питательностью и стойкостью - ядовитый борщевик - то что еще может вылезти при применении механизмов, далеко не до конца изученных - это большой вопрос.

Да, мы тоже ГМО - но все последствия модификации нас и других видов давно проявились, изучены, отброшены "нежизнеспособные" и как с этим жить, мы знаем. А вот что еще можно натворить в лаборатории - неизвестно. Сами же исследователи признают, что "в результате параллельного переноса и адаптации птичий грипп стал опасен для человека" (раньше он был опасен только для птиц) - то есть, вполне могут вылезти и другие "побочные эффекты"

И конечно, страх перед ГМО не означает, что надо бросить и не изучать. Напротив, любую угрожающую вещь следует изучать как можно пристальнее.

Но вот бросаться сразу ее использовать и уж тем более внедрять в обычную жизнь, пуская в массовые продажи - следует поостеречься, ибо примеров такого "бездумного внедрения" (типа присадки свинца для улучшения теплоотдачи топлива) достаточно много в истории человечества.

Любопытно, что нынешнее внедрение ИИ, где человек тоже не полностью контролирует результат работы программы, написанной ИИ, и даже созданный код - вполне может привести к тем же последствиям. Причем, там мы тоже практически сами сознательно отказываемся контролировать результат, почему-то считая, что ИИ это сделает лучше. Но это хотя и не совсем, но другая история. Правда, тоже говорящая о том, что на свой разум человек уже перестал рассчитывать в понимании окружающего мира...