Пару дней назад на нашем ютубе выступала Алсу Миссарова, выпускница мехмата МГУ, PhD по системной биологии (functional genomics in yeast) в Universitat Ponepu Fabra в Барселоне. Сейчас Алсу постдок в лабе JOhn Marioni (EBI, Cambridge, UK), занимается single cell RNA-seq and интеграцией со spatial transcriptomics.
Алсу сделала очень краткое введение в то, что такое биоинформатика и чем это отличается от вычислительной биологии. Делимся с вами записью и расшифровкой эфира: мы надеемся, что это вводная к целой серии спикеров, которые занимаются биоинформатикой.
Меня зовут Алсу Миссарова. Меня просили рассказать про биоинформатику – в частности, какие задачи я решаю, какого рода данные я обрабатываю, какого рода задачи есть в вычислительной биологии для технарей, для людей с уклоном в computer science, data analysis и так далее.
Я сама не биоинформатик, я computational biologist. Эти два понятия весьма коррелируют, и грань между ними размытая, но важно понимать разницу. И у того, и у другого целью являются ответы на какие-то биологические вопросы, или улучшение нашего понимания того, как устроены биологические процессы. Подход у них схожий: обработка и data analysis большого количества данных, которые глазами-руками нельзя обработать. Разница в приоритете. У Computational biologist скорее будет относительно специфический биологический вопрос, и нужно будет понять, какого рода данные нужно собрать. Нужно иметь доступ к этим данным, нужно уметь правильно обрабатывать, анализировать, интерпретировать и, собственно, отвечать на вопрос. Когда цель – информатика, это, скорее, создание алгоритмов, тулов, методов для того, чтобы работать с биологическими данными. Задача будет положена сверху, скорее всего, и данные будут в более промышленном формате. То есть, у них будет определенный формат данных, которые они будут обрабатывать, которые нужно будет производить для большого количества индивидуумов или организмов и так далее.
Можно воспринимать это так: Computational biologist – скорее, биолог, который может открывать какие-то библиотеки и использовать какие-то тулы, а биоинформатик – скорее, именно компьютерщик, которому до биологии дела нет, который в ней не очень разбирается, и он просто работает с числами, со строками, с данными. На самом деле, это не так, конечно. Это актуально для любой сферы, но, когда вы работаете с данными – в любой сфере – вам абсолютно необходимо понимать, какого рода у вас данные и откуда у вас шум в данных. И в биологических данных, которые вы будете получать, шума будет очень много. Его можно, грубо говоря, разложить на технический и биологический шум. Технический шум получается из-за того, что машины, которые создают данные, не идеальны и допускают огрехи. А биологический шум возникает потому, что в любой системе очень много вариации. Даже между двумя клетками одного и того же организма, даже если это соседние клетки кожи, будет биологическая разница. Надо отличать технический шум от биологического, убирать технический и оставлять биологический, и для этого нужно понимание биологии.
Перейдем к тому, какого рода данные в биологии у нас есть. В первую очередь, когда люди слушают биоинформатику, они думают про ДНК-секвенирование (что, в принципе, оправдано). Я думаю, все знают, что это такое: это, условно говоря, умение определять, какая именно последовательность ДНК имеется у организма. То есть, ДНК – очень длинная молекула; у человека это примерно 3.1 миллиарда «букв». 4 буквы – АЦДГ – это нуклеотиды. Соответственно, люди научились читать ДНК живого существа. Это очень круто. Теперь можно, например, определить последовательности двух людей, сравнить их и сопоставить, в чем разница между этими последовательностями и в чем разница между этими людьми, и попытаться найти причинно-следственную связь. То есть, как ДНК влияет на ваш фенотип, в чем разница между двумя людьми. Так же, допустим, в вычислительной биологии: вы можете взять два организма из соседствующих видов, точно так же их секвенировать – определить ДНК-последовательность и, соответственно, попытаться понять, в чем разница между двумя организмами, и что из ДНК на это, собственно, влияет.
Теперь можно пойти в другую размерность и задать такой вопрос: если взять две клетки из одного организма, из одного человека, то в чем между ними разница? То есть, условно говоря, клетки эпителия кожи будут отличаться от нейронов. Тут ДНК уже не очень подходит. Есть такая аксиома, которая по большому счету ошибочна: то, что последовательность ДНК клеток одного организма всегда одна и та же. Она ошибочна потому, что живой организм – это динамическая структура; он растет, делится, умирает. В этом процессе накапливаются мутации. Процесс репликации ДНК не идеален, и иногда идут поломки; ДНК повторяется, но повторяется неидеально. Мутации могут быть нейтральные, которые ни к чему не приводят, или вредные, которые вызывают дисфункцию клетки. Конечно, если абстрагироваться, последовательность ДНК все-таки более-менее идентична между двумя клетками, но функционируют они по-разному. Соответственно, большое количество биологических вопросов нацелено на понимание того, в чем разница между различными клетками и что на это влияет. У комьюнити есть запросы на такого рода данные. Нужно уметь выделять, вычислять, считывать эту разницу.
Тут мы подходим к тому, чем я занимаюсь. Основной (или один из основных) формат данных, который люди используют здесь – это РНК-секвенирование. Сейчас я коротко расскажу про то, что такое РНК, и про эволюцию РНК-секвенирования в целом.
Это очень сокращенная версия, на самом деле все сложнее. Два столпа, на которых держится биосинтез клетки – это транскрипция и трансляция. ДНК – это очень длинное слово, которое кодирует определенную информацию. Эта информация клеткой может обрабатываться, считываться, процессироваться в функциональные элементы.
Один из ярких примеров этого – белки. Это такие маленькие машинки в клетке, которые выполняют определенные функции и обеспечивают жизнь и функционал этой клетки, чтобы она работала, как нужно. Белки кодируются генами. Ген – это подслово в ДНК-последовательности. Транскрипция – это когда на длинную двойную спираль молекулы ДНК садится большая молекулярная машина – полимераза, которая идет по генам, создает копии и выбрасывает их в цитоплазму клетки. Эти копии ДНК (на самом деле, не совсем копии) создаются в определенном количестве. Соответственно, в двух разных клетках разное количество РНК от разных генов. Для клетки эпителия нужно больше гена А, для нейронов – больше гена Б, и их производится разное количество. Дальше РНК процессируется, и потом, когда оно в более конечном формате, на нить «садится» другая машина. Соответственно, когда люди говорят про РНК-секвенирование, они имеют в виду, условно говоря, вычисление того, сколько каких РНК из каких генов в клетках производится. Это РНК-композиция, или РНК-секвенирование.
На самом деле, очень круто, что люди научились это делать. Долгое время главным ограничением этой технологии было то, что для получения РНК-материала требовалось очень много клеток. То есть, нужно было десятки тысяч клеток сложить вместе (естественно, уже нежизнеспособных), вытащить РНК и секвенировать.
Проблема в том, что клетки часто будут отличаться между собой. Будет большая биологическая вариация, потому что для многих процессов – например, development, или иммунология, или онкология – будет большое взаимодействие между клетками разного функционала. И когда, допустим, делается биопсия и вытаскивается много клеток, получается микс. И если вы берете только матожидание этих РНК по всем клеткам, то вы теряете дисперсию. И вы не понимаете и не можете их изучить.
И, соответственно, был запрос у комьюнити на то, чтобы это делалось на single cell level. И это научились делать лет 10 назад. Это очень круто, для многих областей это очень актуально. Можно очень глубоко взглянуть в систему, посмотреть, какого рода клетки находятся на микроскопическом уровне. Но там тоже есть ограничения. Одно из них – это то, что вы теряете вашу пространственную информацию. Условно говоря, чтобы сделать РНК-секвенирование, вам нужно взять кусок ткани, разрезать на клетки, и делать ваш single cell RNA-seq.
Но, по-хорошему, очень много функционала находится в том, как клетки взаимодействуют между собой в пространстве. И для этого придумали технологию special transcriptomics – умение измерять РНК, не теряя пространственную информацию.
Один из основных приемов для этого – это использование микроскопа: вы берете вашу ткань, фиксите ее – то есть, берете набор клеток, и он у вас зафиксирован в микроскопе. И дальше вы посылаете маленькие probe на эту ткань, которые содержат два элемента: один из них очень специфичен к вашему РНК, и он будет связываться только с теми генами, которые важны. А второй будет — светящаяся флуоресцентная марка. Вы можете посветить микроскопом с определенной частотой волны на ткань, и вы можете определить, сколько загорится светлячков в клетках. Соответственно, столько будет РНК-молекул. Собственно, задачи, которыми я занимаюсь, находятся на стыке special transcriptomics и single cell РНК-секвенирования. Условно говоря, вот я занимаюсь development, смотрю на маленьких мышей; у меня есть данные по single cell и special transcriptomics, и я пытаюсь между собой сопоставить клетки, которые вижу в special-контексте, и те, которые я вижу в single cell RNA-seq.
Я перейду к задачам, которые в принципе могут быть интересны технарям и ML-инженерам. Я определила три типа задач, которые сейчас востребованы, и они все находятся в области медицины; медицина сейчас очень много ресурсов получает, много денег, много данных.
Первый тип задачи – это drug discovery. Есть болезнь, ее нужно вылечить, для этого нужно найти drug. Как эту задачу суммаризировать подробнее; вам нужно найти состав химического вещества, которое можно поместить в таблетку или капсулу, отправить в организм, и после этого молекулы свяжутся специфически с теми белками, теми таргетами, которые, если модифицировать их состояние, поменяют состояние болезни – условно говоря, вылечат.
Тут есть несколько этапов. Один из них – это target identification/validation. Надо как-то уметь предсказать, какие молекулы нужно связывать, чтобы состояние болезни изменилось. Для этого собирается большой набор данных: вы берете больных людей, вы берете здоровых людей, вы измеряете очень много разных параметров у них. Вы секвенируете ДНК, РНК, транскриптомику, протеомику – состояние белков.
Дальше вы пытаетесь определить, какие из параметров клеток больных людей относятся именно к больным людям, а какие – к здоровым людям. То есть, пытаетесь определить, какие молекулы потенциально коррелируют с болезнью. Это с одной стороны. С другой, нужно еще найти такие молекулы, которые будут drugable – то есть, которые имеют потенциал связываться с активными химическими веществами, которые вы отправите в организм, чтобы вылечить. Тут надо измерять множество параметров: связываемость, сворачиваемость белков и так далее.
Для этого сейчас используется активный Machine Learning. То есть, вы смотрите на разные белковые соединения и пытаетесь предсказать на основе известных target, будет ли конкретный target хорошим. Кроме того, надо также синтезировать правильный drug. То есть, вам нужно найти такой химический состав молекулы, который сможет связаться специфически именно с тем белком, с которым нужно связаться, а также сможет в принципе попасть в организм, сможет раствориться в воде и так далее. Есть много features, которые нужно оптимизировать. Делать это руками тяжело, но это можно предсказывать на основе того, что у вас уже есть известные drugs, и вы сравниваете новый потенциальный drug с известными и предсказываете, насколько успешным он потенциально может быть. Все это – на уровне предсказания; потом это нужно будет валидировать, действительно показать, что это работает. Но drug-ные предсказания – это ключ к сокращению траты денег и времени на research. Это очень актуально.
Второй род задачи, связанный с первым – это, условно говоря, нахождение биомаркеров болезни. Хороший пример – это рак. Отчасти его так тяжело лечить потому, что он очень разный, и бывает много различий между двумя людьми. В целом, что такое рак – это когда накопилось какое-то количество мутаций, которое привело к поломке клетки. И клетка вместо того, чтобы выполнять свою функцию, начинает просто очень быстро делиться и замещать здоровые клетки. Это постепенно убивает организм. Но механизмов, из-за которых клетка ломается, очень много. Рак одного человека – это не рак другого человека, и лекарство, которое подошло одному, может не подойти другому. Соответственно, очень важно уметь быстро определять то, какие именно гены и другие параметры нужно смотреть, чтобы понимать, что человек болеет конкретным заболеванием. То есть, надо находить биомаркеры. Для этого используются базы данных. Сейчас активно собираются данные разного формата у большого количества людей, здоровых и больных. Нужно кристаллизировать output; человек может вылечиться или не вылечиться, и нужно понять, какие люди чем заболевают. Если вы таргетно найдете быстро, что именно поломалось, то вы сможете это вылечить.
Третье направление, которое сейчас развивается – забавно, но это text mining. В биологии сейчас очень много литературы, очень большое количество labs занимаются огромным количеством вещей. На самом деле, люди часто находят вещи – допустим, protein-protein interaction или drug-protein interaction. Это происходит независимо, в разных частях света, и они не знают, как это может взаимодействовать. Text mining смотрит на разные статьи, которые публикуются, и создает базу данных. То есть, если в одном месте определили, что один белок взаимодействует со вторым белком, а в другом – что на второй белок можно подействовать определенным drug, то получается, что этим drug можно подействовать и на изначальный белок. Создается граф взаимодействия, и вы можете предсказывать новые, ранее ненайденные interactions.
Еще один тип задач, который я хотела упомянуть и который, как мне кажется, достаточно интересен – это image analysis. Вообще, image – это мощный data-формат, который в биологии очень часто и много используется, потому что по тому, как выглядит клетка, можно многое понять про нее.
Если накапливается большое количество микроскопических картинок, вам нужно их быстро анализировать и уметь делать предсказания. Стандартный пример – опять же, рак; вы берете биопсию и смотрите на то, как здоровые и больные клетки соединены. Вы их красите – ядро в один цвет, цитоплазму в другой. Дальше вы пытаетесь предсказать: эта ткань – с опухолью, или нет?
Для более фундаментального исследования — обработка картинки с микроскопа уже сложнее; люди хотят смотреть на определенные органеллы, или молекулы, или на белки, и, соответственно, проследить, как клетки будут взаимодействовать между собой, как развиваться, и так далее. Люди научились подкрашивать разные элементы клетки, и это делается с помощью флуоресцентных белков. Вы берете то, что вам нужно, и присоединяете к этому такой белок с меткой. И если посветить на него светом, то он загорится, и вы поймете, что эти органеллы, или белок, или РНК – находятся в определенном месте. И дальше вы отслеживаете, как взаимодействуют клетки. Для этого тоже нужен image analysis, потому что картинок очень много, и они, как правило, не очень хорошего разрешения. И вам нужно из мутных картинок получать хорошее разрешение. На самом деле, комьюнити не стоит на месте; люди пишут нейронные сети, изменяют разные параметры и так далее. Но данные развиваются, и с ними должны развиваться и методы. То есть, эти вещи должны идти нога в ногу.
Актуальное направление, о котором думают многие лабы – это «как покорить время». То есть, очень часто и в секвенировании, и в image analysis и прочем есть такая проблема: существует snapshot системы, но он статичен. Вы делаете измерение за конкретное время. И вам непонятно, как клетки будут развиваться дальше. Один из подходов к решению этой проблемы – это life imaging. Когда вы клетки не убиваете, а помещаете в среду, в которой они развиваются, взаимодействуют и прочее, и микроскопом каждые 10 секунд, каждую минуту делаете snapshot, и дальше можете восстанавливать траектории движения, взаимодействия и так далее. Но тут есть limitation: например, флуоресцентные марки не очень хорошо использовать для life imaging, потому что, когда вы светите вашим светом на марку, она издает излучение, и это токсично для клетки. Клетка начинает умирать. Нужно найти компромисс: с одной стороны, вы хотите оставить клетку как можно более здоровой, но, с другой стороны, вы хотите сделать больше snapshots – но, чем больше вы их делаете, тем быстрее она умирает.
И тут есть такой подход: люди пытаются сейчас с помощью минимального количества флуоресцентных марок, а на самом деле – только с помощью микроконтура ядра и клетки, определить судьбу клетки. Это как с face recognition: раньше можно было делать его с видимыми глазами, ртом, носом, другими чертами, а сейчас – надо делать только с помощью носа, потому что на глазах могут быть солнечные очки, а на рту – маска. То есть, проблема усложняется, и тут то же самое. Нужно с помощью малого количества информации вычислять биологические параметры, и тут есть большое количество задач.
Задач очень много, типов данных очень много. Измеряются все параметры клеток, организмов и прочего. Это очень интересная область. Надеюсь, если вы думали про нее раньше, то я вас не разуверила.
Что было ранее
- Илона Папава, Senior Software Engineer в Facebook — как попасть на стажировку, получить оффер и все о работе в компании
- Борис Янгель, ML-инженер Яндекса — как не пополнить ряды стремных специалистов, если ты Data Scientist
- Александр Калошин, СEO LastBackend — как запустить стартап, выйти на рынок Китая и получить 15 млн инвестиций.
- Наталья Теплухина, Vue.js core team member, GoogleDevExpret — как пройти собеседование в GitLab, попасть в команду разработчиков Vue и стать Staff-engineer.
- Ашот Оганесян, основатель и технический директор компании DeviceLock — кто ворует и зарабатывает на ваших персональных данных.
- Сания Галимова, маркетолог RUVDS — как жить и работать с психиатрическим диагнозом. Часть 1. Часть 2.
- Илья Кашлаков, руководитель фронтенд-отдела Яндекс.Денег — как стать тимлидом фронтендеров и как жить после этого.
- Влада Рау, Senior Digital Analyst в McKinsey Digital Labs — как попасть на стажировку в Google, уйти в консалтинг и переехать в Лондон.
- Ричард «Левелорд» Грей, создатель игр Duke Nukem 3D, SiN, Blood — про личную жизнь, любимые игры и о Москве.
- Вячеслав Дреер, гейм-дизайнер и продюсер игр с 12-летним стажем — про игры, их жизненный цикл и монетизацию
- Андрей, технический директор GameAcademy — как видеоигры помогают прокачивать реальные навыки и найти работу мечты.
- Александр Высоцкий, ведущий PHP-разработчик Badoo — как создаются Highload проекты на PHP в Badoo.
- Андрей Евсюков, заместитель CTO в Delivery Club — про найм 50 синьоров за 43 дня и о том, как оптимизировать фреймворк найма
- Джон Ромеро, создатель игр Doom, Quake и Wolfenstein 3D — байки о том, как создавался DOOM
- Паша Жовнер, создатель тамагочи для хакеров Flipper Zero — о своем проекте и другой деятельности
- Татьяна Ландо, лингвист-аналитик в Google — как научить Google-ассистента человеческому поведению
- Путь от джуна до исполнительного директора в Сбербанке. Интервью с Алексеем Левановым
- Как Data Science продает вам рекламу? Интервью с инженером Unity
- Как я переехал в Лондон c Revolut
- Завтрак с легендарным геймдизайнером Американом МакГи: о новой Алисе, России и депрессии
- Наталья Крапкина — Как организовать IT-конференцию и не сойти с ума
- Александр Чистяков — «Docker уже умер» или все, что вы хотели узнать про Devops, но боялись спросить