ЖИВОЕ

Что такое биоинформатика: как искать смысл в миллиардах букв

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

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

Представьте файл размером в три гигабайта, где записаны только буквы A, T, G и C — без пробелов, абзацев и комментариев. Где-то в нём спрятаны гены, регуляторные участки и инструкции, а где-то — кажущийся «мусор». Найти нужное вручную невозможно. Этим занимается биоинформатика.

Откуда взялись такие объёмы данных

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

Главная операция — выравнивание

Самая частая задача звучит так: «насколько похожи две последовательности?». Например, ген человека и ген мыши, или два варианта одного вируса. Чтобы их сравнить, нужно выровнять строки — расставить их друг под другом так, чтобы совпадений было максимум, разрешив вставки и пропуски.

Это классическая задача динамического программирования. Если вы знаете, как считается «расстояние редактирования» между двумя словами (сколько вставок, удалений и замен нужно, чтобы превратить одно в другое), — вы уже понимаете идею выравнивания геномов. Только вместо коротких слов здесь миллионы символов.

Почему нельзя сравнивать «в лоб»

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

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

Сборка генома как пазл

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

Что ищут на практике

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

Это всё ещё информатика

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

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

#алгоритмы#биоинформатика#геном#данные#ДНК