Удивительная вещь: универсальность генетического кода (записки дилетанта-айтишнека)

Dec 27, 2023 09:48


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

Интригующий факт - универсальность генетического кода.

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

По этому поводу я нашел весьма подробную обзорную статью от 2008 года за авторством Кунина и Новожилова: "Origin and evolution of the genetic code: The universal enigma" https://arxiv.org/pdf/0807.4749.pdf, с массой ссылок и перечнем альтернативных теорий.

Проводя некоторые (возможно, поверхностные) аналогии, это примерно то же самое, как если бы:

1) Все люди пользовались одним алфавитом. Хотя даже соображения политической целесообразности (зачастую перевешивающие утилитарное целеполагание) не обеспечили доминирования латиницы, так как есть небольшие языковые группы, использующие свои самобытные письменности и не собирающиеся от них отказываться, типа Армении или Грузии.

2) Все процессоры использовали бы одну систему машинных команд. На практике даже откровенное легаси x86 не доминировало никогда, хотя экономически это было весьма целесообразно. Олды айти могут еще вспомнить, что даже в Союзе с его тенденцией к всеобъемлющей унификации и стандартизации, иногда в ущерб инновативности, было как минимум 2 аппаратные линии: IBM/360 в виде ЕС ЭВМ, и PDP11 в виде всевозможных ДВК/Электроника-60/СМ и т.д. В конце концов, при появлении новой экологической ниши, а именно сотовых телефонов, семейство ARM сразу заняло её, не дав x86 шанса на монополию.

С точки зрения здравого смысла по поводу универсальности генетического кода возникают такие вопросы:

1) Возможны альтернативные варианты таблицы кодирования, и Кунин в статье об этом говорит. Даже обладающие большей устойчивостью к ошибкам трансляции. Почему в итоге осталась только одна на всех? Во многих других случаях эволюция допускает определенную вариативность, например по числу конечностей. Я разве что не могу вспомнить ни одно живое существо с тремя ногами, а так весь натуральный ряд присутствует, начиная с одной конечности у всяких брюхоногих, до многоножек.

2) Допустим, 20 аминокислот это оптимум с точки зрения затрат и выгод, и эволюция остановилась именно на этом варианте. Но раз был отбор по числу аминокислот, то значит были попытки с другими вариантами и по числу, и по номенклатуре. Но никаких следов этой эволюции, как  я понимаю, не сохранилось, и нам доступен только конечный вариант. Значит, эта оптимизация шла первые миллионы лет биогенеза, а потом мало того, что остановилась (хотя есть какие-то робкие попытки ввести в систему пару новых аминокислот, плюс небольшие вариации в интерпретации кодонов), так и один из вариантов полностью вытеснил все остальные. Хотя другие оптимизационные задачи живой эволюции решались в иной парадигме, сохраняя альтернативы - так появились разные царства живых организмов, а некоторые варианты конструкций при всей своей пещерной тупиковости всё еще с нами - см. гребневики.

3) Совместимость генетического кода создает предпосылки для некоторых необычных явлений. Я вижу тут два примера: горизонтальный перенос генов и функционирование вирусов. В программистских аналогиях это звучит, как если бы все компьютерные системы вокруг мало того, что использовали бы один язык программирования, так еще и сопутствующая инфраструктура была совместима - стандартные библиотеки, среда исполнения, форматы исполнимых файлов и т.д. Типа как если бы .NET победил всех и везде, включая Java. Заметьте, что даже для такие конструкты, как .NET или Java, изначально проектировавшиеся монолитными и максимально переносимыми, со временем разделились на внутренние варианты, у которых общее только некое подмножество ЯП.

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

Интересная тема :)

PS: насчет трех конечностей - случайно встретил в Дзене рассказ про "рыбу-треногу": https://dzen.ru/a/YioFsSHtdTRLSB0l, так что и эту опцию эволюция использовала :)

оффтопик

Previous post Next post
Up