Биологические проблемы багфикса


    Как чинить баги, если вы — органический продакшн с аптаймом в десятки лет, когда нельзя сделать ни ребут, ни замену внутренних модулей? Почему переиспользование кода — это логично, но печально? Отчего нельзя выключить какой-нибудь белок и стать неуязвимым к ВИЧ или SARS-CoV-2?


    Лирическое отступление


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


    Цель повествования


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


    Основные проблемы багфикса в биологии


    Итак, для начала про поиск багов. Там уже всё непросто.


    • Брейкпоинты не завезли.
    • Каждый инстанс немного (а иногда очень даже ощутимо) отличается от любого другого.
    • Проявления багов, которые видны невооружённым глазом, обычно уже имеют фатальный характер, который может непоправимо повлиять на аптайм системы.
    • История событий, происходивших с инстансом до момента обнаружения бага, крайне важна, но никаких логов не предусмотрено. Совсем никаких.

    И это верхушка айсберга. Но про поиск багов в следующий раз. Пока нас интересует их исправление. С ними всё ещё более грустно.


    • Поднять новый инстанс, чтобы всё исправилось — не вариант. Перезагрузить существующий инстанс — совсем не вариант. При попытке выключить и снова включить сообщают о тёмном коридоре и ярком свете в его конце, но баг это не исправляет.
    • Юнит тесты только в пробирке на очень ограниченной выборке и только в очень маленькой окрестности того места, которое собираемся чинить.
    • Никакой гарантии независимости модулей, а точнее наоборот, множество прецедентов их глубокой и ни разу не очевидной зависимости.
    • Интеграционные тесты не завезли. Только тесты на реальных продакшенах. В начале на мелких инстансах типа мышей, а потом и на антропоморфных продакшенах. То есть та самая всеми любимая фраза "пользователь — лучший тестировщик" — верна как никогда.
    • Прогнать полную регрессию тоже не вариант, мы банально не знаем ни всех возможных состояний системы, ни относительно быстрых способов перевода системы в эти состояния. Было бы круто иметь эргодичную систему, чтобы за один прогон узнать всё что нужно. Но пока такую не изобрели.
    • Цикл дебага, в лучшем случае — это несколько лет, а обычно десятки лет. Плюс нет гарантий, что шероховатости фикса удастся быстро подпилить напильником. Очень часто они фатальны и нужно начинать поиск способа решения почти с нуля. По этому поводу даже понятие допустимого ущерба есть. Это когда профит от приёма препарата ощутимее, чем проблемы, которые он создаёт. То есть без негативных последствий можно пить только минералку… и то не точно.
    • Деплой фикса. Далеко не всегда можно просто взять и скушать таблетку. Или вколоть что-нибудь, закапать куда-нибудь или свечку вставить в то самое место. Проблема доставки фикса к месту его применения — это ни разу не тривиальная задача. Пока что, бо́льшая часть медикаментов похожа на броадкаст или ковровую бомбардировку. Со всеми вытекающими последствиями.

    Итак, давайте пройдёмся по всему вышеозначенному и попробуем понять, почему оно такое какое есть и что с этим пытается сделать современная наука.


    Переиспользование кода


    Очень хочется начать с этого пункта, потому что он объяснит добрую половину всех проблем.


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


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


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


    Гистамин


    Все слышали про "противовоспалительные". Многие слышали, что некоторых из них называют называют "антигистаминными". Всё потому, что гистамин — один из важных медиаторов воспаления на периферии нашего организма. Именно он отвечает за кучу событий, случающихся при воспалении. И именно его блокируют вышеупомянутые препараты. А, как говорится, "нет человека гистамина — нет проблем".


    Но не тут-то было. Гистамин оказался ещё очень важной штукой при изучении механики аллергии, которая, в общем-то, то же воспаление, только локальное и стихийное. Конечно же, это верно в случае если мы говорим про аллергию 1-го типа. Она развивается за минуты и её классический пример — это когда тополь начал активно "плодоносить" пухом и все сразу начали рыдать и чихать.


    Казалось бы, счастье! Фармацевты думали забацать обезболивающее, а ещё и противоаллергическое случилось! Но нет. Гистамин используется не только в иммунной системе как медиатор воспаления, но и в нервной системе как нейромедиатор. Что это значит? Это значит, что когда вы употребляете блокатор гистамина, то уменьшаете воспаление, снимаете приступ аллергии, а попутно блокируете главный возбуждающий медиатор ЦНС. Как следствие: заторможенность, вялость, сонливость и всё то, что вызывают противоаллергические препараты. То есть чихать и плакать вам уже не хочется, но и мир захватывать как-то особого желания нет. Зато вздремнуть — это запросто!


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


    И даже это ещё не всё! Там ещё есть пяток мест на которые влияет гистамин, но они уже чуть менее важные.


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


    Циклооксигеназа


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


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


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


    Муцин


    Теперь немного иной пример, который приблизит нас к белкам и их "отключению". Муцин — основной компонент всех слизей. В общем-то mucus и переводится как "слизь". Но эта же штука позволяет клеткам рака и иных опухолей уходить от обнаружения иммунной системой. Грубо говоря, опухоль начинает вырабатывать слизь, обмазывается ей и становится невидимой для иммунитета. Логично предложить: давайте выключим муцин и излечим многие опухоли и рак! Но, как вы понимаете, фигня получится. Так как вместе с фиксом рака вы выключите все слизистые оболочки и тазиком накроется ЖКТ, половая система и прочие скользкие секреты организма. После чего жить вы будете ещё меньше, чем с раком.


    Невосприимчивость к коронавирусу


    Начну с известного примера про ВИЧ. Сей наимерзейший вирус садится на белок CD4 и благодаря ему может зацепиться за клетку и проникнуть в неё. Первая проблема в том, что это белок клеток иммунной системы. Вторая проблема в том, что это важный белок иммунных клеток. По сути, он отвечает за некий аналог ssl handshake при встрече двух клеток иммунной системы. Поэтому если его выключить, то иммунный ответ на ранее неизвестную угрозу станет не 10-14 дней, а 2-4 месяца. В общем-то, это равносильно поздней стадий СПИДа. Немного позитива здесь в том, что часть нашей популяции имеет мутировавшую версию CD4 и ВИЧ не может за неё зацепиться. То есть часть людей имеет врождённый иммунитет к вирусу.


    После примера с ВИЧ, думаю, понятно, что желание отключить ACE2, чтобы заиметь иммунитет к коронавирусу — это очень опасная хотелка. Таки да, вы можете стать невосприимчивы к вирусу, но в комплекте можете получить сбои в функционировании организма несовместимые с жизнью.


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


    Продолжение багфикса и тестов


    Итак, с переиспользованием исходной кодовой базы разобрались. Всё сложно и всё связано со всем. Что же ещё портит жизнь при биологическом багфиксе?


    Юнит тесты


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


    Для тех, кто придерживается подхода "мне повезёт!" рассказываю маленький кейс про Альцгеймера. Проблема нейродегенеративных заболеваний довольно проста: в нейронах накапливаются "неправильные" белки. Их и использовать нельзя, и дефолтные механизмы сборки мусора их не видят. В итоге в какой-то момент в клетке собирается столько нечистот, что она перестаёт функционировать и скоропостижно отправляется к праотцам. Один из векторов лечения был прост и прекрасен: давайте стимулировать внутренний процесс сборки мусора, чтобы клетка сама себя очистила. Прототип на тестовой группе нейронов в пробирке ожидания оправдал, завалы мусора в клетке разгреблись и биологи весело пошли к испытаниям на живых организмах. Вот тут и была засада: Альцгеймер начал рассасываться, а вместе с ним начала рассасываться печень, почки и ещё парочка органов. То есть пока garbage collector нейронов приводил дела в порядок, аналогичных механизм в остальном организме мусора не нашёл и, как умел, начал чистить здоровые клетки.


    Перезагрузка и новые инстансы


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


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


    Feature specs


    И здесь высокая зависимость всех систем нам прохода не даёт. Вырастить в пробирке, например, кусок ЖКТ — это что-то странное, да и для его жизнеобеспечения нужна кровеносная система, нервная система для управления, эндокринка для регуляции… и получаем уже добрую половину организма. И так со многими внутренними системами. Поэтому, насколько я понимаю, для фиче-тестинга больше подходит моделирование. Тогда можно навалить стабов/моков на все зависимости и посмотреть на поведение только интересующего фрагмента. Уже не так локально как в случае юнитов, но и не так глобально, когда весь инстанс нужно поднимать.


    Засада моделирования в том, что мы очень мало знаем о принципах работы организма. Не говоря уж о взаимосвязях его частей и их взаимном влиянии. Вон, последнюю нобелевку дали за эритропоэтин и механизм генерации красных кровяных телец. Первые опыты и исследования в этом направлении были 1905 году. К тому же, кровь известна человечеству и им же изучается с очень давних времён. Однако механизм управления генерацией её основной составной части узнали только недавно. Что уж говорить о прочих частях организма.


    Полная регрессия


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


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


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


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


    Деплой


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


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


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


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


    Выводы


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

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 14

      +3
      То ощущение, когда впервые понял статью о коронавирусе…
        +1

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


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

          0

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


          Касаемо эргодичности вы абсолютно правы. Если рационально и здраво подходить к вопросу, то она на уровне организма никаким боком не прикладывается. Однако лично мне понравилось фантазировать на тему "а что если организм будет эргодичен"? Да и вообще, эти тема меня как-то цепляет ещё с момента курса теории случайных процессов в институте. В общем фантази получились интересные в духе Дункана Маклауда и параллельных вселенных, но не без конфликтов и взаимоисключающих процессов. Из-за этого и добавил упоминание в статью.


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

        +2

        Отличный язык, замечательная тема. Спасибо :)

          0
          ЧСХ, по ходу эволюционный алгоритм, который разрабатывал наш организм, до фига всё переусложнил. Ну например, при пребывании в невесомости теряется мускульная масса и кальций из костей. Ну нафига? Если жрать много наркоты, то вырабатывается дефицит аналогичных веществ, производимых организмом, и появляется зависимость от введенных извне доз. Опять же, нафига? Есть такое чувство, что если бы в человеческом коде половину IF… ELSE...'ов заменить просто на вбитую раз и навсегда константу, то было бы куда проще…
            +2
            Проще, наверное, было бы — только при неизменяемых внешних условиях. А так вполне возможно, что сегодняшние оптимальные константы завтра станут неоптимальными, а то и вообще вредными. У Д.Даймонда в книге «Ружья, микробы и сталь» есть хороший пример про различие между культурной пшеницей и дикорастущей.
              0

              Возможно стало бы лучше конкретно сейчас. Было бы проще разбираться и дебажить/фиксить текущей науке. Но совсем не факт, что мы бы в такой конфигурации смогли изначально дожить до момента, в котором пребываем. И так же не факт что эта конфигурация сможет просуществовать долго. Так что виднеется ровно та же проблем, описанная в статье: недостаточно знаний для однозначного ответа на вопрос.

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

              Вовсе не поэтому, а просто потому что клинические испытания занимают время. Ну и вакцина не имеет отношения к изменениям в белках.

              И вы были правы, в статье хватает биологических неточностей.
              Хотя вывод отличный!
                0

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

                  +1
                  Закончу еще мысль про белок. У вас немного перепутано понятие иммунитета. Вакцина разовьет именно иммунитет к вирусу. А мутация в рецепторе сделает клетку невосприимчивой к вирусу и иммунитет вовсе не понадобится.

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

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

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

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

                      0

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

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

                        Про время реакции проще, это достаточно общие принципы для всех биологических систем.
                          0

                          Я бы с удовольствием почитал что-нибудь достаточно простое про эпигенетику, где бы доходчиво рассказали про метилирование, промоторы, влияние копии генов и прочие интересности, которое нараскапывали в последнее время. Только окромя Сапольского ничего такого не видел. Может подскажете иные источники для любителей с непрофильным образованием?


                          А так, кажется, Эйнштейн говорит "если вы что-то не можете объяснить 6-летнему ребёнку чем занимаетесь, то вы сами этого не понимаете". Исходя из этого тезиса хочу заметить, что когда что-то пытаешься рассказать просто, то открываешь для себя много нового. Поэтому почему бы не попытаться?

                Only users with full accounts can post comments. Log in, please.