— Я сказал работодателю «извините» и пошёл собирать чемодан: меня ждала наука, — поработав в белорусском аутсорсе, программист Александр Грызлов уехал в Бельгию учиться на биоинформатика. В интервью dev.by он рассказал, чем научный мир отличается от айтишного и почему его в конце концов «отвернуло» от науки — зато опыт обработки больших данных пригодился в одной из ИТ-компаний в Вильнюсе.
Извините, но меня ждёт наука
13 лет назад Александр учился на факультете прикладной математики и информатики БГУ и параллельно проходил онлайн-программу университета Мангейма в Академии Наук. Подрабатывал сперва в IBA и Exadel, после вуза поработал в аутсорсинговой ИТ-компании Elilink. За год освоился и начал интересоваться... биологией: устройством клетки, геномом.
— Я подумал, а почему бы мне не объединить две науки: Computer Science, которой я увлёкся ещё на первом курсе, и биологию. Стал смотреть вакансии в области биоинформатики, подавал заявки в аспирантуру за рубежом. И так сложилось, что прошёл в подразделение биотехнологий Гентского университета (Бельгия). Долго ждал подтверждения и, когда уже согласился на вакансию во Львове, пришло письмо из Гента. Я так обрадовался, что сказал работодателю «извините» и пошёл собирать чемодан — меня ждала наука.
Первый проект, над которым работал белорус в Бельгии, был связан с микромолекулярными веществами, а именно с моделированием эволюции дрожжей. Бельгийцы, как известно, большие поклонники пива, поэтому не удивительно, что такими исследованиями занимаются именно там.
— Я исследовал и моделировал белок, ответственный за запуск процесса ферментации, а именно за катализ расщепления сахара-мальтозы до глюкозы (служит топливом для брожения). Идея заключалась в том, чтобы на кластере симулировать эволюцию белка. Поскольку у нас есть транскрипты его генетического кода у разных видов дрожжей, мы можем приблизительно подсчитать ферментативную активность у разных его вариантов и попробовать сымитировать процесс, происходивший в природе тысячелетиями.
Но затем произошёл несчастный случай с преподавателем — и работа остановилась почти на год.
«Сухая» и «мокрая» лаборатория
— Когда-то биоинформатику называли сборной солянкой, потому что у неё много ответвлений, одно из популярных — системная биология, которая пытается не просто посчитать корреляции одних генов с другими, а смоделировать какие-то клеточные процессы. Есть проекты и по эволюционной биологии — моделируют и восстанавливают по косвенным признакам процесс микроэволюции каких-то генетических или белковых подсистем. Целиком на организм пока не замахиваются, но какие-то отдельные признаки изучают разные группы учёных.
Основная задача биоинформатика — с помощью моделирования определить область, куда можно «копать». Например, просканировать оцифрованный геном, попытаться найти в нём интересные характеристики и понять, исследовать ли его дальше с помощью экспериментов или оставить в покое.
— В науке есть такие понятия, как «сухая» и «мокрая» лаборатория. Мокрая — это экспериментаторы, а сухая — это мы, компьютерщики. Между ними, как и в любой составной группе, может возникать недопонимание, различия в мировоззрениях. У экспериментаторов работа очень выматывающая: большую часть времени просто сидишь с пипеткой и капаешь по пробиркам. При этом уходит на это не 8 часов в день, а все 12. Далеко не всегда это творческая работа: она требует выносливости.
Эксперименты на растениях занимают месяцы, а на животных ещё больше — нужно сперва доказать, что ты не просто так собираешься резать мышку, а для какой-то благой цели. Это всё очень трудозатратно.
— Целиком «размотать» цепь ДНК с текущими технологиями очень сложно. Поэтому её, как правило, «рубят» на мелкие куски и считывают их по отдельности, а потом склеивают. Сейчас эта задача уже решаема, есть подходы, с помощью которых сравнительно быстро проводится такое полногеномное секвенирование. Каждое из них — это научное статья. Поэтому часто можно увидеть статьи с заголовками «секвенирован геном картошки» (или баклажана) — и перечисляется весь список учёных (40-70 человек), которые этим занимались: начиная от тех, кто получал материал, и заканчивая теми, кто писал вспомогательные программы.
Как учёные жертвуют временем и мощностями своих компьютеров — но не ради биткоинов
Одна из фундаментальных на сегодня проблем в биологии — свёртка (или фолдинг) белка, т.е. сворачивание аминокислотной линейной цепи в уникальную трёхмерную форму, похожую на клубок или причудливую фигурку. Это важный процесс, поскольку свёрнутая форма определяет функционирование белка: он может прицепиться к какой-то молекуле и разрезать её пополам, или, наоборот, способствовать «склейке» двух молекул в одну. В общем, это основной элемент огромной биохимической фабрики.
Исследования таких процессов дорогостоящие: свёртка в клетке происходит очень быстро, за какие-то десятки-сотни микросекунд. Однако на отдельном компьютере посчитать такое для сложных белков практически нереально — это может занимать десятки лет. Поэтому учёные прибегают к распределённым способам, например, тем, которые сейчас стали популярны в сфере криптовалют.
— Только в условном биткоине люди делают это, чтобы поучаствовать в распределении денежного потока, а в старых биологических проектах вознаграждения пользователи не получали, — поясняет Александр. — Просто выделяли часть времени и мощности своего компьютера для расчётов таких сложных и важных вычислений. Есть мнение, что квантовый компьютер может сильно упростить решение этой проблему, но это, если честно, пока из области научной фантастики.
Баги научного мира: учёные-кочевники и научная паранойя
Из-за долгой паузы (около года), которая образовалась из-за несчастного случая с преподавателем Гентского университета, запал осваивать мир биологии у программиста погас.
— Я потерял время, а из-за этого и мотивацию учиться, поэтому решил это прекратить: бросил, так и не защитив диссертацию. Ещё одна причина, почему я ушёл из науки — там не было хардкорного Computer Science. Нужно было писать стандартные скрипты, которые будут «перемалывать» какую-то штуку — чисто технически-прикладное занятие, — поясняет собеседник.
В науке образовался кризис перепроизводства, считает он. В мире выдают много грантов на обучение, но проблема в том, что позиций для докторов наук очень мало, и за ними все «охотятся». К тому же грантовая публикационная система работает таким образом, что твои публикации должны цитировать другие. В итоге возникает сообщество, где все друг друга повально цитируют: «Кто эти статьи читает, кроме рецензентов, и насколько это применимо к жизни — спорный вопрос», — разводит руками Александр.
В западной науке нельзя засиживаться на одном месте (максимум — где-то 5 лет), по крайней мере до тех пор, пока ты не получил позицию мечты, считает белорус. Поэтому после защиты диссертации ты вынужден скитаться из университета одной страны в университет другой. «Получается такой учёный-кочевник: первые полгода-год ты вникаешь в задачи, а последние полгода лихорадочно всё доделываешь, и потом тебя «перефутболивают» на новый проект», — объясняет программист.
К тому же атмосфера конкуренции приводит к тому, что учёные не стремятся помогать друг другу — каждый «строгает» свою часть работы и бдительно следит, чтобы её не украли. «Бывает, что ты почти дописал работу, а её кто-то уже опубликовал, — рассказывает Александр. — И 2-5 лет исследований отправляются коту под хвост. Поэтому все параноидально следят за своими данными и наработками, и из-за этого формируется иногда не совсем здоровая атмосфера».
— Пригодилась бы мне сейчас докторская степень? — задаётся вопросом собеседник. — Собственно, как и диплом, чтобы показать, что я не просто какой-то парень с улицы — у меня есть крутая корочка, и я что-то знаю. В ИТ в этом плане гораздо проще.
Java и JVM созданы друг для друга, но я выбираю Scala
Сейчас Александр — Data Scientist в ИТ-компании в Вильнюсе. Задачи у него, конечно, не такие наукоёмкие, как в Бельгии, но, по его словам, тоже интересные:
— На уровне программирования не так уж и важно, какие у тебя данные: показы баннеров или вспышки активности каких-то ферментов. Основное — это работа с данными и распределёнными фреймворками, такими как Apache Spark. Причём большую часть времени занимает очистка и приведение данных в надлежащий вид, а поиск каких-то закономерностей происходит практически вручную или по известным алгоритмам.
Программист работает на Scala, несмотря на то, что большинство разработчиков не жалуют этот язык:
— Scala я выбрал по историческим причинам. Когда учился в университете, ходил на курсы по Java. Мне интересно было функциональное программирование, и я самостоятельно изучал Lisp и OCaml. А потом из всего этого синтезировалась Scala. В этом языке много инструментария, которым можно делать сложные вещи, но, если не задаваться такой целью, то можно писать и довольно просто. Всё равно существует баланс между выразительностью и абстрактной сложностью.
Разработчик считает, что нельзя сравнивать, какой из языков — Scala или Java — раскрывает больше возможностей JVM: «Java и JVM созданы друг для друга, поэтому нельзя сказать, что Scala в этом плане лучше. Scala сейчас пытается развиваться как многоплатформенный язык: и JS там уже есть, и экспериментальный нативный код. К тому же в процессе трансляции какие-то функциональные нюансы теряются».
— В интернете была шутка про языки, в которой говорилось, что Scala пытается объединить возможности функционального и объектно-ориентированного программирования, а в итоге его начинают люто ненавидеть обе стороны. Действительно, когда пытаешься объединить две стороны, то порой наталкиваешься на непонимание обеих. Поэтому в энтерпрайзе этот язык не всегда жалуют. Но за пять лет я уже освоился. Не могу сказать, что знаю все его закоулки, всегда можно написать что-то более остроумное. В общем, есть, куда расти и какие абстракции изучать.
Фото: Flickr, из личного архива героя
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.