Преуведомление

Мой первый пост на Хабре (демо-версия авторского хабротекста из разряда «а может, взлетит»?) был посвящен сходству ДНК и программного кода. Такая тема казалась мне максимально «канонической» и «соответствующей тематике Хабра», но при этом непритязательной. Кроме того, я тогда действительно зачитался книгой Сергея Ястребова «От атомов к древу», а начинать со статьи о серповидноклеточной анемии и муковисцидозе, которые во времена повальной малярии и туберкулеза были скорее фичами, чем багами (немножечко увеличивая выживаемость и репродуктивные шансы больного на фоне популяции) — не решился. Тем не менее, до самого последнего времени я ощущал, что тема кода и ДНК требует гораздо более серьезного и профессионального поста, чем мог бы написать я сам. Поэтому я обратился за помощью к уважаемой Анастасии Новосадской @anastasiamrr , давно желавшей попробовать свои силы на Хабре, и с удовольствием и благодарностью размещаю в блоге её интереснейшую статью о вредоносном генетическом коде и методах его маскировки. Добро пожаловать под кат.

Привет, Хабр!

В этой статье речь пойдет о коде, причем не программном, а генетическом. Выражение «генетический код» стало настолько расхожим, что многие и не задумываются о том, насколько на самом деле похожи биологический код и программный, и какие схожие уязвимости для них характерны. Код — это система знаков, расположенная в определённой последовательности для хранения и передачи какой-либо информации. Он может быть штриховым, радиогенетическим, программным, цифровым. И если генетический код — это основа биологической жизни, то программный в XXI веке проник во все ниши общества на волне цифровизации. Софт буквально повсюду: смартфоны, фитнес-трекеры, рекламные LED-экраны, принтеры, автоматизированные производства. Можно сказать, что программный код в каком-то смысле начал управлять нашей жизнью. А вместе с ним в нашу жизнь вошли киберпреступники — люди, желающие взломать чужой код, скопировать и похитить, т.п. Дело в том, что аналогично им существуют различные организмы, которые способны совершить то же самое с генетическим кодом других клеток и многоклеточных организмов. Таким образом вирус, бактерия, а порой и клетка своего организма (речь сейчас как раз о раковых клетках) может заставить других работать на себя или скопировать особенности чужого кода. Об особенностях программирования и реализации кода клеток как раз и написано в данной статье.

Прежде, чем начать, стоит провести короткий ликбез для всех малознакомых с наукой о жизни нашей:

Вирус — неживая частица с генетической информацией, которая может заражать живые клетки и менять их ДНК-код.

Патоген — бактерия, вирус или что угодно другое, что вызывает болезнь.

Клетка — мельчайшая, но самостоятельная живая единица организма. Имеет свои аналоги с ПК такие, как ввод/вывод информации, хранение, передача. 

Опухолевая клетка — дефектная клетка организма, такой своеобразный «бунтарь» и «борец с системой». У них есть способность к бесконтрольному делению , также они становятся атипичными для своего организма.

В программировании для борьбы с такими «злоумышленниками» используют обфускацию — намеренное запутывание кода, при котором он сложен для понимания человеком, но при этом функционально ничуть не меняется.

Hidden text

Удивительно, что код программный был написан гораздо раньше, чем люди узнали о том, что все живые организмы также основаны на коде генетическом: Ада Лавлейс, которую считают первым профессиональным программистом, написала код для вычислительной машины уже в 1843 году, а идея о существовании генетического кода была сформулирована и высказана в 1950-х Даунсом и Гамовым, т.е. спустя 110 лет.

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

Однако биологические зловреды тоже не так просты, и могут пользоваться не только созданным самостоятельно инструментарием для «взлома» клетки, но и использовать то, что атакуемая клетка когда-то создала для себя. Например, вирусы способны пользоваться ферментами инфицированной клетки для сборки новых вирусных частиц, могут встраивать свои генетические программы прямо в геном клетки и размножаться вместе с ней практически бесплатно, находясь в таком спящем состоянии до определённого момента. Такие биологические стилеры находятся в каждом из нас, и мы начинаем замечать их только тогда, когда наша иммунная система слегка ослабляет хватку, например, когда мы проходимся по холодной улице без шапки.

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

Принцип работы генетического кода

Для того, чтобы понимать, какие варианты обфускации применяются в клетках и как их обходят, нужно разобраться с тем, что же за генетический код такой и чем он схож с программным, а может, и отличается от него. 

Разберем ситуацию на классическом примере двоичной системы счисления. У машины есть электрические сигналы: 0 — сигнала нет, 1 — сигнал есть.  Представим, что у нас есть машина, в которой сигналы записываются на магнитную ленту в двоичной системе. У живых же организмов информация хранится в виде биохимических молекул (ДНК, например, обладает отрицательным зарядом. Это важно для того, чтобы к ней присоединялись специфичные белки и регулировали экспрессию (реализацию) генетического кода), и если у машин это 2 позиции, то у нас — 4. В молекуле ДНК это четыре нуклеотида (азотистых основания): аденин (А), тимин (Т), гуанин (Г), цитозин (Ц).

Hidden text

Есть ещё такие основания, как урацил (У), инозин (И) и др., которые возникают при копировании/переписывании информации с ДНК на ДНК/РНК, что необходимо, чтобы повысить стабильность самой ДНК. Ферментные системы контроля распознают такие основания и удаляют в случае копирования информации с ДНК на ДНК, т.к. это считается ошибкой (необходимо для деления клетки). Если же происходит переписывание с ДНК на РНК, то разные азотистые основания не являются ошибкой, а не позволяют произвести гибридизацию РНК с ДНК, что аналогично запрету на редактирование и разрешению на чтение соответственно. Этим же запретом на редактирование организм препятствует попаданию вирусов в свой геном. 

Вернемся к нуклеотидам. Они идут в определённом порядке, образуя ДНК. По сути, саму спираль ДНК можно сравнить с магнитной лентой, но с той особенностью, что если на магнитной ленте записан код в двоичной системе счисления, то в ДНК — четверичной. На первый взгляд, разница колоссальная, а на второй и третий математический — нет. :)

Компьютер в своей логике оперирует минимальными кодирующими единицами – битами, которые объединяются в кодирующие группы – байты. За счёт такого разделения удается закодировать необходимую информацию и удобно работать с ней.

Удивительно, но аналогичная логика работает и в нашем организме. У организма биты заменяют нуклеотиды, а байты — кодоны. То, что система счисления в нашем организме четверичная, позволяет сделать генетический код более ёмким при меньшем объёме, что играет большую роль при копировании информации, поскольку это сугубо биохимический процесс. И если у машины 1 байт равняется 8 битам, то у организма 1 кодону соответствуют 3 нуклеотида. Одна тройка нуклеотидов кодирует одну аминокислоту, включаемую в белок, а также обозначает начало и конец трансляции (синтеза белка). 

Важно отметить одно из свойств генетического кода (специфичность): один кодон соответствует только одной аминокислоте, а одна аминокислота может кодироваться несколькими кодонами. Аминокислоты объединяются в белок, который имеет свои функции в зависимости от последовательности кодонов и их типов. Также белок может постфактум редактироваться, чтобы принять необходимую конформацию (форму) и/или приобрести дополнительные функции. Эти процессы называются «фолдинг» (приобретение формы) и «посттрансляционные модификации». Их можно сравнить с использованием декораторов в Python. Если представить получившийся белок как функцию, то способ, позволяющий изменить её поведение, не меняя её код — это применение декораторов, которые будто обёртывают исходную функцию. Благодаря такому врапперу белок-функция приобретает новые свойства, которые нередко являются ключевыми для организма.

Схема реализации генетического кода
Схема реализации генетического кода

Ближайший аналог белка при сравнении его с исходным кодом — это программа для вывода файла на печать либо для конвертации файлов из одного формата в другой. Логика такова: из кода была извлечена информация, преобразованная вывелась в человеко-читаемый или, в нашем случае, «организмо-читаемый» формат. 

Вкратце о переменных в коде. В исходном коде есть разные типы переменных: для обозначения массивов, чисел с плавающей запятой и прочих структур данных. Переменные могут занимать довольно большое количество байтов, чтобы вместить достаточное количество информации для реализации команды. И снова в ДНК то же самое! Переменная — это ген. Целая компьютерная программа кодируется огромнейшим количеством байтов и логических конструкций, и в клетке роль такой программы выполняет геном.

Ещё одно свойство генетического кода, для более подобного описания которого был написан этот пост на Хабре, — универсальность. Генетический код един для всех организмов. Абсолютно. Вообразите, будто все программисты внезапно начали писать код на одном языке. И есть логичное объяснение, почему практически все организмы имеют одинаковый генетический код (и нет, горе креационистам, это не из-за божественного вмешательства). Для этого нужно вернуться на 3,5 миллиарда лет назад, когда древние организмы только начинали обзаводиться тем разнообразием биологических инструментов, которое мы имеем сейчас. Как известно, эволюция движется за счёт двух основных факторов: мутаций (случайных изменений в генетическом коде) и естественного отбора. В случае, если какой-то организм получал мутацию, которая меняла логику кодирования генетической информации, данный организм терял возможность пользоваться всем тем многообразием инструментов, которые он уже развил. Это приводило к тому, что он быстро погибал и не мог передать свою мутацию потомкам. Такой эволюционный механизм можно сравнить с процедурным программированием, где всё громоздится в один большой кусок и, если впоследствии появляется необходимость в изменениях, то их внесение становится проблемой. Причём сложность приобретения значимых преобразований растёт экспоненциально с размером кода.

Поэтому кодирование информации в организме — это своеобразный костыль, поставленный несколько миллиардов лет назад, но, как ни парадоксально, всё ещё работающий. Более того, некоторые организмы в процессе эволюции могли делиться между собой генетической информацией, а за счёт того, что код одинаков, он «вставал» без особых проблем. Улавливается сходство с github-репозиторием?

Принципиальное сходство программного и генетического кода
Принципиальное сходство программного и генетического кода

Таким образом, мы разобрали, в чём наиболее схожи генетический и программный код. Можно заметить, что сходств уже достаточно много, но при более детальном разборе их окажется в несколько раз больше. Учёные даже смогли в бактериальной клетке закодировать ту самую фразу «Hello world». Бактерия использовалась как носитель информации, та же флешка, только живая. Вот тут можно об этом почитать.

Теперь, разобравшись во всём контексте, переходим к основной теме статьи.

Обфускация патогенов и "бунтующих" клеток

Начнём, пожалуй, с самого пугающего и ещё довольно неизвестного — опухолевых клеток

Что же с ними не так, и почему до сих пор нет эффективного метода лечения рака? Может, всё потому, что ранее предки этих клеток работали на организм и знают, какая обфускация есть у нас? Или тут есть что-то другое, более зловещее?

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

Здесь можно почитать про влияние транспозонов на канцерогенез.

Также инициирующим фактором рака могут быть бактерии. Например, аденокарцинома желудка развивается из-за известной многим Helicobacter pylori.

Процесс бесконтрольного перерождения раковой клетки
Процесс бесконтрольного перерождения раковой клетки

После того, как клетка переродилась в опухолевую, она перепрограммирована на уровне обмена веществ, процессы в ней проходят не как прежде и обычно гораздо быстрее. Такая клетка становится «хозяйкой своей судьбы», постоянно продлевая себе жизнь. Как будто пропадает вручную прописанное ограничение по ресурсам, выдаваемое на функции, обусловленное необходимостью стабильного выполнения других важных клеточных процессов. Клетка может начать неограниченно делиться, поскольку «забудет», что в её программе есть ограничение на рост, который помешал бы соседним клеткам. В итоге она начинает отжирать ресурсы организма, мешая всем вокруг. В норме такого «бунтаря» быстро опознают иммунные клетки по белкам на его поверхности. Но здесь вспомним про обфускацию.

Обманка для иммунной системы

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

Первое и самое простое, что может сделать опухоль, — просто синтезировать меньше поверхностных антигенов, тем самым «закамуфлироваться». Поверхностные антигены — это маркеры, по которым иммунные клетки определяют своих и чужих. Как это происходит? Опять к нам приходят всеми любимые мутации. Всего пара-тройка штук и — вуаля! Произошла обфускация, и иммунные клетки запутались. Они, конечно, потом расшифруют состав антигенов, но на это уйдёт много времени. Другое дело, что это происходит не по инициативе клетки, а по случайности, так как мутации — это случайный процесс. Но стоит также отметить, что инсургенты проворачивают такие фокусы только на начальных этапах развития опухоли, когда в организме имеются только единичные опухолевые клетки, и эта стадия не выявляется при помощи лабораторной диагностики. Но что делать клеткам, у которых такое редактирование кода не произошло? Сделать себе вставку кода (как будто из библиотеки притянули) для подавления ответных сигналов от иммунных клеток.

Второе: десентизация (снижение чувствительности) клеток. Меняется характер и частота поступающих сигналов. Помните, мы говорили, что клетка подобна ПК с вводом и выводом информации? Всё происходит за счёт шеддинга: компоненты рецепторов попросту сбрасывается во внешнюю среду, тем самым делая инсургента невосприимчивым к сигналам, идущим от иммунных клеток (в качестве носителей сигнала выступают цитокины, небольшие пептидные молекулы. Это можно сравнить с тем, что компьютер заразился вирусом, и, чтобы на него не установили антивирус, он программно отключил себе DVD-привод, USB-порты и всё остальное, через что антивирусная программа может попасть на ПК и зачистить код, или в крайнем случае, нарушить дееспособность системы, чтобы вирус не успел напакостить. Такие иммунные сигналы должны заставить клетку совершить самоубийство, по-биологически — апоптоз, или же в сравнении с компьютерным кодом выдать «синий экран смерти». Более того, отдельные части рецепторов, сброшенные во внешнюю среду, связываются с клетками иммунитета и блокируют их работу. Как если бы диск с «Касперским» вставили бы в DVD, а он закрылся и не открывался, не отдавая диск назад. Или же это похоже на своеобразный биологический эксплойт, который пользуется доступностью рецепторов клеток иммунной системы в случае подходящей структуры самого эксплойта и за счёт когнантных (клетка к клетке) взаимодействий делает их нерабочими.

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

Следующим методом обфускации может быть экранирование: антигенные детерминанты (антигены) попросту связываются с другими молекулами и становятся недоступны для рецепторов иммунных клеток. На машинном уровне это похоже на то, что устройства ввода/вывода чем-то будут заняты. То же самое может делать и клетка, если уберет антигены (маркеры), по которым иммунные клетки могут её опознать.  Что же за молекулы? Это могут быть, например, белки теплового шока, ведь к ним не вырабатываются антитела, и они подавляют действие фактора некроза опухолей (ФНО), а значит скрыться удастся если и не на 100 %, то на 99 %.

Очень изящным будет такой вариант обфускации: прокачать себе синтез каталазы. Вставить себе в код эту функцию и начать продуцировать фермент, расщепляющий перекись водорода, которую применяют при борьбе с опухолью наши «защитники» — отличная идея. Добавить к такому нейтрализующему фактору простагландин Е2 (функция его синтеза также включается в код опухоли) — и вот подавляется иммунный ответ, можно жить, размножаться и метастазировать дальше.

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

Надеюсь, что теперь пазлы сложились и стало понятнее, что же происходит, когда собственные клетки поднимают «бунт». Теперь перейдем к тем, кто является «недоброжелателем» постоянно и чей смысл жизни состоит в том, чтобы жить за счёт нас. Речь именно про бактерии и вирусы (кстати, не все бактерии и вирусы вредны для нас, и без многих мы бы не могли существовать и даже думать; но в данной статье затрагиваются только “злюки", патогены). Что же делают они?

Как бактерии многоклеточных перехитрили

Если представлять весь генетический код в виде абстракции программного кода, то внезапно окажется, что большой процент (можно сказать бОльшая часть) кода не исполняется. Напоминает мёртвый код, на первый взгляд. Например, у человека только 1.5 процента ДНК кодирует структурные белки. Вся остальная часть раньше считалась мусором, накопившимся в процессе эволюции. Однако со временем стало понятно, что это далеко не так. Оставшийся гигантский пласт генетического кода ответственен за сложнейшие механизмы регуляции экспрессии (синтеза белков), благодаря которым нога вырастает ногой, а рука рукой, за счёт чего обеспечивается не только сохранение морфологии организма, но и грамотная регуляция всех клеточных процессов. Данные системы регуляции экспрессии позволяют очень точно исполнять отдельные участки генетического кода; неспроста говорят, что жизненная форма организма определяется не генетическим кодом, а его экспрессией. 

Бактерии, в свою очередь, имеют значительно более компактный геном, и не могут позволить себе развить сложные системы экспрессии. Однако на уровне нуклеотидов очень распространены естественные перестройки, вставки генома, в том числе из одних организмов в другие. Это называется горизонтальный перенос генов.

С помощью такого переноса могут появляться новые виды живых существ, а «готовые» организмы могут развивать новые свойства, передавая их потомкам. Например, непатогенные бактерии в нашем кишечнике могут «пообщаться» с патогенными (в случае, если человек перенес бактериальную инфекцию), и наша собственная кишечная микрофлора станет злой и патогенной для нас. Аналогичным образом бактерии могут поступать и с эукариотическими организмами. В данном случае бактерии «решили пойти иным путем»: почему бы не выполнять встраивание генетических программ в геном чужого организма, чтобы его защитные системы перепрограммировались и не «трогали» бактерии? Именно такой механизм был обнаружен у бактерий рода Agrobacterium, которые выполняют генетическую трансформацию хозяина. Такая модификация позволяет перестроить метаболизм растения на производство субстратов, доступных только самим Агробактериям, что обеспечивает им конкурентное преимущество перед другими бактериями. Сейчас появляются описания подобного процесса не только для растительных, но и для человеческих клеток.

Использование генетической трансформации при выведении ГМО-растений
Использование генетической трансформации при выведении ГМО-растений

Но, естественно, существуют и иные механизмы, которые позволяют бактериальным клеткам скрываться в организме-носителе. Например, бактерии рода Neisseria продуцируют протеазы для расщепления антител организма, что практически аналогично блокированию сканирующих и детектирующих программ на ПК. Причём такой шаг происходит в результате генетической перестройки, за счёт чего «молчащие» гены экспрессируются.

Особенности вирусных механизмов

Особенно интересны механизмы, которые применяются вирусами для инфицирования тех или иных организмов. Вирусы не способны к полноценному автономному существованию, что роднит их с объектами неживой природы. Фактически они представляют собой цепочки нуклеотидов, покрывающие себя различными оболочками и способные размножаться только в организме хозяина. Иными словами, всё их существование основано на облигатном паразитизме. Глубже изучая вирусы, рано или поздно сам приходишь к мысли, что мы с вами, как и все существующее живое вокруг, — это лишь оболочки для существования и размножения генов, которые есть в каждой нашей клетке.

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

Генетический код вирусов можно сравнить с ассемблерным: кому-то такой код может показаться переусложненным и неэффективным, однако, работая с теми или иными механизмами напрямую, можно добиться более впечатляющих результатов, чем используя высокоуровневые языки, библиотеки и так далее. При этом сами вирусы можно сравнить с USB-накопителем.

Сама по себе флешка не совершает никакой работы, находясь у вас на столе. Однако всё меняется, когда флешка с вирусом подключается к компьютеру. Она, как и биологический вирус, исполняет заложенный в ней вредоносный код, меняя протекающие в компьютере процессы, и заставляет его делать то, что нужно для последующего распространения вируса.

Различные виды вирусов могут содержать в себе все варианты для хранения генетической информации, такие как одноцепочечные РНК положительной и отрицательной полярности, двуцепочечные РНК, одно-двуцепочечные ДНК. Однако большая часть из развитых организмов хранит свою информацию в виде двуцепочечной ДНК — как вирусы решают эту проблему? Во-первых, вирусы с положительной РНК-цепью, такие как коронавирус, например, обладают одним интересным свойством: попадая в клетку, такая РНК способна сразу транслироваться (синтезировать на основе информации РНК белок), а результатом такой трансляции является полный набор вирусных белков: от структурных до регуляторных. Вирусы, которые хранят информацию в ДНК, способны копировать её как своими ферментами, так и ферментами клетки хозяина, а также транскрибировать (конвертировать информацию из ДНК в РНК) её похожим образом. Неплохое разнообразие для самых низкоразвитых представителей живой (неживой?) природы?

Особенно на этом фоне выделяются ретровирусы (примером является ВИЧ), которые способны встраиваться в геном клетки и копироваться вместе с клеткой хозяина. При этом сам механизм тоже заслуживает отдельного внимания: геном вируса — одноцепочечная РНК, которая при помощи принесённого вирусом в клетку фермента, называемого «обратная транскриптаза», производит перевод РНК в ДНК. Получившаяся цепочка ДНК за счёт рекомбинации (обмена участками ДНК за счёт схожести их состава) встраивается в геном клетки. При этом клетка хозяина не может сразу обнаружить, что в её геном был встроен посторонний элемент, а замечает она это слишком поздно. Данный встроенный кусок реплицируется и транскрибируется так же, как и родные гены клетки, позволяя собирать новые вирусные частицы, которые продолжат распространение вируса.

Жизненный цикл ретровируса
Жизненный цикл ретровируса

Встраивание тех или иных генетических элементов не происходит случайно, а привязано к определённым сайтам (местам в геноме, с которыми происходит специфическое взаимодействие). За счёт закономерностей в этом процессе не только обеспечивается существование жизни в целом, но и появляется некая прикладная исследовательская польза: такие отношения нуклеотидов хорошо формализуются с точки зрения моделирования и позволяют предсказать поведение того или иного участка генетического кода, что в свою очередь позволит защитить его при помощи генетической инженерии. Например, мы можем изменить сайт связывания какого-либо смертельного вируса, за счёт чего он не сможет развиваться в данной клетке, и мы таким образом сломаем его жизненный цикл. Похожим образом это происходит и в дикой природе: появление мутаций может нарушать сайты связывания тех или иных регуляторных факторов или сайты рекомбинации для чужеродной генетической информации, что приводит к изменению экспрессии данного генетического участка. Если такая мутация закрепляется, то организм получает иммунитет. Однако то же самое происходит и у вирусных частиц, они «разрабатывают» новые сайты связывания, причём также при помощи случайных мутаций, но за счёт того, что у вирусных частиц мутации происходят чаще. Поскольку вариантов вирусной стратегии встраивания тоже появляется больше, данную битву между добром и злом, или высокоуровневым и низкоуровневым кодом, вирусы выигрывают. Именно поэтому трудно изобрести идеальную вакцину от вирусов, поскольку потенциально несколько удачных мутаций в геноме вируса делает уже изобретённое нами средство бесполезным. Поэтому нет универсальной вакцины от гриппа, которая могла бы защитить раз и навсегда.

Как оказалось, вирусы являются одними из главных обфускаторов на Земле и говорить о них можно ещё долго и очень много за счёт того огромного количества их особенностей (отмечу, что в данной статье упомянута только мизерная часть). Думаю, это тема для отдельной статьи.

Комментарии (34)


  1. MadridianFox
    08.08.2022 10:30
    +5

    Слишком много аналогий с программированием. Аналогии, так же как и модели, всегда неверны, а точнее лишь частично отражают суть явления. При этом модель специально конструируется, а вот аналогия подбирается. Мало того, что можно подобрать неудачную аналогию, так ещё и функция у аналогии опасная - объяснить явление через уже знакомый пример. Неправильная аналогия формирует неправильное понимание у читателя. Приводя много аналогий с программированием вы, во-первых, рискуете увлечься и придумать лишние, хуже отражающие суть аналогии, а во-вторых, создаёте ещё одну, более абстрактную аналогию, связывающую биологию и программирование.

    А в целом материал хороший, мне понравилось.


    1. Alex_Mtrskn
      08.08.2022 14:40
      +3

      А в-третьих, автор своими аналогиями вместо истинной сути биологических процессов все свёл к абсолютной абстракции. Бесполезной и возможно вредной абстракции. Начинается условный Вася и потом с пеной у рта будет доказывать, что он все понимает. Он же программист и разбирается в программах, а ДНК это всего лишь программа. Он об этом читал. Встречал я таких


  1. krote
    08.08.2022 13:46

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


    1. Alex_Mtrskn
      08.08.2022 14:36
      +1

      стабилизации кодовой базы ДНК

      Что это за зверь такой? Звучит как что-то шизофазическое или из арсенала альтернативной медицины


      1. krote
        08.08.2022 15:05

        как мне кажется вполне смысл передать должно было, лишь стилизовал термин под саму статью))


        1. Alex_Mtrskn
          08.08.2022 15:39

          Какой смысл?


        1. AlexanderS
          08.08.2022 15:44

          Там слишком всё вариантивно, но жизнеспособно. При неблагоприятных условиях все процессы могут идти с небольшими мутациями, но в целом организм вполне себе живёт и развивается дальше, получая то, «что получилось», но как-то работоспособное. При улучшении условий возможно в будущем всё может как-то подправиться. Введение CRC в таких условиях не поломает всё начисто?


          1. neznaju
            08.08.2022 17:25

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


            1. krote
              08.08.2022 19:05

              Как мне кажется если каждому отдельному человеку предоставить возможность самому решить рак или CRC то выбор будет однозначный. Человечество уже давно вне конкуренции с другими популяциями, а если дойдет до уровня CRC в ДНК то и эволюция уже будет происходить целенаправленно а не случайным образом.


              1. neznaju
                08.08.2022 19:12

                Чуть неправильная логика, извините.

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

                2) человек постоянно конкурирует с другими популяциями: вирусы, бактерии, и это только пример

                3) дезадаптивность такого механизма появится на временных рамках, превышающих время существования европейской цивилизации, но это не так уж и много

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


              1. AlexanderS
                08.08.2022 21:14

                рак или CRC то выбор будет однозначный

                Разовая двухнедельная простуда или смерть от нового штамма гриппа — тоже выбор будет однозначный. Тут не всё так просто. Вот если вы с внедрением CRC ещё и одновременно антивирус свой прокачаете — тогда да, ещё можно подумать. Но опять же вы утратите гибкость живого организма — немного изменились условия и всё: вместо адаптации к среде, придётся среду под себя адаптировать.


    1. alexhott
      08.08.2022 15:37

      дак там вроде есть что-то подобное, То есть как-попало встроенный кусок в ДНК работать не будет, нужно определенные правила соблюдать. Но в пределах этих правил можно.... а иначе никакого тебе размножения, только клонирование.


      1. Alex_Mtrskn
        08.08.2022 17:22

        определенные правила

        И эти правила уже известны?


        1. anastasiamrr
          08.08.2022 19:12
          +1

          На самом деле да, существует несколько основных правил, которые должны быть соблюдены, для полноценной экспрессии правильного белка:

          1. Последовательность должна находиться под рамкой считывания для транскриптазы, фермента, переводящего ДНК в РНК. Эта рамка представляет из себя последовательность, которая начинается с сайта связывания транскрипционного фактора и транскриптазы. На данном уровне происходит управление тем, что именно будет экспрессироваться

          2. Встраивание другой последовательности может привести к сдвигу рамки считывания. Представьте, что мы считываем код кодонами, которые расположены последовательно. Если выбросить из этой последовательности 1-2 нуклеотида, все последующие будут считываться неправильно. Получается так, что транскрибируется мусорный транскрипт, который транслируется в мусорные белки.

          3. Встраивание последовательности не должно нарушать работу точек начала репликации, поскольку это может привести к невозможности репликации (копирования) ДНК

          Резюмируя, главное, чтобы встроенная последовательность экспрессировалась, не нарушала остальные функции и не мешала копировать ДНК


          1. Alex_Mtrskn
            09.08.2022 07:30

            Ох как много же вы всего не знаете. Трех вами перечисленных правил очень даже недостаточно. Как минимум присутствуют еще несколько, которые я могу вспомнить навскидку:

            • метилирование/ацетилирование ДНК

            • упаковка ДНК гистонами в гетерохроматин

            • пространственная конфигурация хромосом в ядре (наличие т.н сборочных фабрик)

            • наличие различных регуляторов транскрипции на ДНК (факторы транскрипции и т.д.)

            В общем к чему это я? К тому, что ДНК нельзя воспринимать как просто код.


    1. Vsevo10d
      08.08.2022 18:56

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


      1. bbs12
        08.08.2022 19:15

        Не нужна стабилизация, всегда нужна изменчивость. Это основная движущая сила эволюции.

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


        1. Vsevo10d
          08.08.2022 22:11

          Я лично выбирал бы стабильную ДНК

          Дайте угадаю, а на вопрос "Как вы себе представляете способ взять и отменить краеугольное свойство живых организмов?" последует "Так ты мне это и придумай, тыжученый!"


  1. Vsevo10d
    08.08.2022 19:21
    +2

    Статья хороша своей подробностью и наглядностью изложения, но аналогии с железом и софтом, как уже сказали выше, вредны. Отсюда и происходит вера в то, что сознание можно в компьютер загрузить, и прочее подобное.

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

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

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

    Также мне не нравятся аналогии, что нейроны - это провода и ЦОДы, вся молекулярщина для работы с "кодом" ДНК есть везде, в каждой клетке, тут нет отдельных специализированных структур "железа", на молекулярно-клеточном уровне все клетки равны.

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


    1. visirok
      08.08.2022 22:10

      Люди вообще и учёные в частности пытаются объяснить происходящие на базе доступных им «твёрдых» понятий. Поскольку ИТ - дело рукотворное, понятия этой области относительно «тверды» (не то что непонятная серая материя). Вот и делается попытка через аналогии объяснить плохо понимаемые явления.

      Такие статьи на Хабре появляются снова и снова. И почему-то никто из авторов не пытается ответить на самый главный и самый интересный вопрос: Если ДНК - это программа, то где находится её интерпретатор и операционная система? Как происходит это чудо, что одни клетки «строящегося» в утробе матери ребёнка «знают» как им соединиться в глаз а другие клетки в свою очередь «знают» что им соединяться в мизинец? Как координируется этот сложнейший строительный процесс? Как осуществляется логистика?

      Неужели никого кроме меня это не интересует?


      1. Vsevo10d
        08.08.2022 22:22
        +1

        Если ДНК - это программа, то где находится её интерпретатор и операционная система?

        Да потому что нет никаких программ, вот и интерпретаторов нет, чушь все это.

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

         Как происходит это чудо, что одни клетки «строящегося» в утробе матери ребёнка «знают» как им соединиться в глаз а другие клетки в свою очередь «знают» что им соединяться в мизинец? Как координируется этот сложнейший строительный процесс?

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


        1. visirok
          09.08.2022 09:17

          Как-то всё не сходится на уровне грубой инженерной прикидки. Если мы продолжаем аналогию, предложенную в стате «ДНК - программа на ассемблере». Тогда, если я правильно понимаю, тестовое представление ДНК займёт не более 20 страниц А4 текста. Учитывая , что строчки ассемблера короткие, это около 10 тыс. строк ассемблера.

          Мягко говоря сомнительно, что такой программой можно закодировать процесс построения человека (или отдельные правила выделения веществ, которые заставляют клетки дифференцироваться, как вы пишете).

          Программа может быть короткой, например на некотором DSL. Но тогда интеллект упрятан в интерпретаторе. А где тогда упрятан он?


          1. Vsevo10d
            09.08.2022 11:33

            Вы все продолжаете углубляться в аналогию с программой и уходить от сути.

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

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

            Честно говоря, зная это, я не удивляюсь парадоксу Ферми. Жизнь может быть уникальным для нашего уголка космоса явлением вселенского масштаба.


            1. visirok
              09.08.2022 13:31
              +2

              Моя логика такова:

              1. Если аналогия «ДНК это программа» работает в биологии, значит должен быть «интерпретатор ДНК».

              2. «Интерпретатор ДНК» и необходимая для него ОС не найдены. Значит их нет.

              3. Если их нет, то и вся аналогия «ДНК это программа» не работает. Другими словами, не стоит пытаться на её основе объяснять биологические процессы.

              Мне вспомнились попытки Аристотеля объяснить причины рождения в семьях мальчиков или девочек. Стоит напомнить, что тогдашние греки, включая Аристотеля, не знали ни химии, ни физики, ни даже арифметики толком. Самый сложный технологический процесс, который Аристотель знал (тут я немного утрирую) был - варка супа. Этот был предел тогдашних технологических, проверенных или «твердых», как я сформулировал в предудушем комментарии, знаний. На основе этих знаний Аристотель пытался построить теорию, объясняющую, почему иногда рождаются мальчики, а иногда - девочки. По этой теории дети появляются от смешения жидкостей, выдделяемых при половом акте мужчиной и женщиной. И чья жидкость горячее, тот и победит.

              Вы уже догадались, какая рекомендация следовала мужчинам, если они хотели бы иметь потомком мальчика?

              А потом горизонт знаний расширялся. Люди научились делать зубчатые передачи и стали искать в мозгу и организме шестерёнки. Потом пришла очередь химии. Стали искать резервуары и трубопроводы с химическими элементами. Потом электротехники. Стали искать в организме провода. Теперь граница «твердых» знаний включает ИТ и начинает формироваться в ИИ. И современные учёные именно в этих терминах, в аналогиях с этими понятными областями пытаются понять пока непонятное.

              Но мне кажется, это так же безперспективно, как и попытки Аристотеля. Человечеству, я думаю, не хватает фундаментально знаний, которые мы только отдалённо можем себе представить. Настоько же отдалённо, насколько учение Аристотеля о четырех элементах удалено от таблицы Менделеева.

              Механизм случайных внутриклеточных реакций не в состоянии объяснить зарождение и развитие сверхсложных систем типа человеческий организм. Для построения сложных систем нужна информация. Либо план (это вряд ли), либо набор правил строительства, исполнение которых автоматически приводит к созданию организма. И то и другое - это колоссальное количество информации. Где оно спрятано? В другом измерении? Или на каком-то нано-уровне? Остаётся только гадать.

              Ну вывод - перестаньте говорить об аналогии ДНК и программ!


      1. Alex_Mtrskn
        09.08.2022 07:35

        Как происходит это чудо, что одни клетки «строящегося» в утробе матери ребёнка «знают» как им соединиться в глаз а другие клетки в свою очередь «знают» что им соединяться в мизинец? Как координируется этот сложнейший строительный процесс? Как осуществляется логистика?

        Неужели никого кроме меня это не интересует?

        Всмысле кроме вас это не интересует? Вас явно это не интересует, т.к. иначе вы бы знали, что есть такое научное направиление как developmental biology. И многие ученые в нем работают. И да координация развития это очень сложный многофакторный процесс. В нем полно темных пятен до сих пор, но многие закономерности уже известны. Вы просто не интересовались


        1. visirok
          09.08.2022 09:04

          Мой немного риторический вопрос относился к писателям и читателям Хабра.

          Про аналогию ДНК и программы я читал на Хабре много раз. А вот про интерпретатор - не попадалось. Статьи типа этой тем и замечательны, что доносят до не-профессионалов сведения из соседних с ИТ областей знания.


          1. Alex_Mtrskn
            09.08.2022 09:50
            +1

            Процитирую себя. В общем эта цитата отлично подходит к вашему ответу Vsevo10d

            Начинается условный Вася и потом с пеной у рта будет доказывать, что он все понимает. Он же программист и разбирается в программах, а ДНК это всего лишь программа. 

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

            И объяснять как на самом деле обстоят дела очень долго (да и нужно оно мне?), так как требует специальных знаний и понимания концепций. Тех самых пресловутых базовых знаний это понимание требует


            1. visirok
              09.08.2022 13:33
              +1

              Я попытался свою точку зрения сформулировать точне в комментарии выше: https://habr.com/ru/post/681260/#comment_24612792


              1. Alex_Mtrskn
                09.08.2022 17:22
                +1

                Прекрасный комментарий! Если бы мог поставил бы ещё пару лайков ему. Я бы чётче чем вы не смог сформулировать почему нельзя рассматривать ДНК как код


    1. Alex_Mtrskn
      09.08.2022 07:38

      А от собственных раковых клеток иммунитет вряд ли поможет

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


      1. Vsevo10d
        09.08.2022 11:18

        Ну да, я уже за скобки беру нормальную повседневную работу иммунитета.

        Однако раковые клетки под давлением естественного отбора также маскируются от иммунитета или меняют свою окружающую среду

        Вот против таких формулировок я и возражаю. Они не обладают своей волей, просто остаются в живых те, которые наиболее приспособлены к давлению отбора. Если вы один раз бегло пропылесосите ковер, останутся волосы и мелкие репейники, которые вцепились в ворс, и камешки, слишком тяжелые, чтобы всосаться. Вот так это работает, пассивно, спонтанно.


        1. Alex_Mtrskn
          09.08.2022 11:40

          Нет. Мои формулировки как раз правильные. Под воздействием внешней среды (цитокины, кислотность, жесткость внеклеточного матрикса и прочее и прочее), а также под воздействием различных веществ (химиотерапевтических лекарств, к примеру) или других клеток они сами адаптируют свой метаболизм и , а также активно меняют свой протезом. Также, они активно рекрутируют другие клетки для своих целей (иммунные или клетки стромы). Поверьте, я знаю о чём говорю


          1. Vsevo10d
            09.08.2022 12:13

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


            1. Alex_Mtrskn
              09.08.2022 17:24

              Значит я неправильно понял что вы имели в виду ранее. Теперь мысль ясна и я всецело поддерживаю, что рак по своему поведению не похож на вирусную программу