Русский
Русский
English
Статистика
Реклама

Биоинформатика

Чем биоинформатика отличается от вычислительной биологии краткое введение

01.11.2020 12:07:42 | Автор: admin

Пару дней назад на нашем ютубе выступала Алсу Миссарова, выпускница мехмата МГУ, 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: раньше можно было делать его с видимыми глазами, ртом, носом, другими чертами, а сейчас надо делать только с помощью носа, потому что на глазах могут быть солнечные очки, а на рту маска. То есть, проблема усложняется, и тут то же самое. Нужно с помощью малого количества информации вычислять биологические параметры, и тут есть большое количество задач.

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


Что было ранее


  1. Илона Папава, Senior Software Engineer в Facebook как попасть на стажировку, получить оффер и все о работе в компании
  2. Борис Янгель, ML-инженер Яндекса как не пополнить ряды стремных специалистов, если ты Data Scientist
  3. Александр Калошин, СEO LastBackend как запустить стартап, выйти на рынок Китая и получить 15 млн инвестиций.
  4. Наталья Теплухина, Vue.js core team member, GoogleDevExpret как пройти собеседование в GitLab, попасть в команду разработчиков Vue и стать Staff-engineer.
  5. Ашот Оганесян, основатель и технический директор компании DeviceLock кто ворует и зарабатывает на ваших персональных данных.
  6. Сания Галимова, маркетолог RUVDS как жить и работать с психиатрическим диагнозом. Часть 1. Часть 2.
  7. Илья Кашлаков, руководитель фронтенд-отдела Яндекс.Денег как стать тимлидом фронтендеров и как жить после этого.
  8. Влада Рау, Senior Digital Analyst в McKinsey Digital Labs как попасть на стажировку в Google, уйти в консалтинг и переехать в Лондон.
  9. Ричард Левелорд Грей, создатель игр Duke Nukem 3D, SiN, Blood про личную жизнь, любимые игры и о Москве.
  10. Вячеслав Дреер, гейм-дизайнер и продюсер игр с 12-летним стажем про игры, их жизненный цикл и монетизацию
  11. Андрей, технический директор GameAcademy как видеоигры помогают прокачивать реальные навыки и найти работу мечты.
  12. Александр Высоцкий, ведущий PHP-разработчик Badoo как создаются Highload проекты на PHP в Badoo.
  13. Андрей Евсюков, заместитель CTO в Delivery Club про найм 50 синьоров за 43 дня и о том, как оптимизировать фреймворк найма
  14. Джон Ромеро, создатель игр Doom, Quake и Wolfenstein 3D байки о том, как создавался DOOM
  15. Паша Жовнер, создатель тамагочи для хакеров Flipper Zero о своем проекте и другой деятельности
  16. Татьяна Ландо, лингвист-аналитик в Google как научить Google-ассистента человеческому поведению
  17. Путь от джуна до исполнительного директора в Сбербанке. Интервью с Алексеем Левановым
  18. Как Data Science продает вам рекламу? Интервью с инженером Unity
  19. Как я переехал в Лондон c Revolut
  20. Завтрак с легендарным геймдизайнером Американом МакГи: о новой Алисе, России и депрессии
  21. Наталья Крапкина Как организовать IT-конференцию и не сойти с ума
  22. Александр Чистяков Docker уже умер или все, что вы хотели узнать про Devops, но боялись спросить




Подробнее..

Анонс три задачи из геномики, которые решают биоинформатики в СПбГУ

15.11.2020 14:11:45 | Автор: admin


Мы продолжаем раскрывать тему биоинформатики как науки из первых рук.

Завтра, 15 октября, в 20:00 в наших соцсетях выступит Ольга Кунявская, младший научный сотрудник лаборатории Центр биоинформатики и алгоритмической биотехнологии СПбГУ.

Оля в науке уже 4 года и сейчас учится на втором курсе магистратуры НИУ ВШЭ Санкт-Петербург по направлению Software Engineering. Закончила Академический университет по направлению биоинформатика.




О чем расскажет Оля, кроме ответов на вопросы


  • Как я начала заниматься биоинформатикой.
  • Лаборатория биоинформатики в СПБГУ: специфика работы, кто работает
  • Spades: программа нашей лаборатории, которая собирает геном
  • Моя работа со Spades: оптимизация и поддержка кода
  • Проект Nerpa про антибиотики и нерибосомные пептиды
  • Что такое нерибосомные пептиды и почему даже микробиологи часто о них не слышали
  • Маленькая история успеха: предсказали какая бактерия производит конкретный NRP и биологи из Сан-Диего смогли это подтвердить
  • Почему в 2000-х годах геном человека был собран неполностью
  • Что такое центромеры, почему это сложный участок в геноме для сбора и обработки
  • Как мы в СПБГУ изучаем эволюцию центромер
  • Почему в биоинформатике как науке много творчества и почему нельзя забывать все, что рассказывали в школе
  • Где брать интересные и понятные статьи про биоинформатику и как их читать
  • Как попасть в лабораторию при СПБГУ: обучение, минимальные знания, контекст


Кроме того вы можете задать вопрос Оле здесь в комментариях или в инстаграме и он ответит на них в прямом эфире.



Как не пропустить эфир?


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


До встречи в эфире!

Подробнее..

Данные внутри нас Чем занимаются биоинформатики?

08.10.2020 14:21:11 | Автор: admin

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

Эта и другие статьи раньше всего выходят в блоге на нашем сайте. Приятного чтения.



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

Специалисты в этой области имеют дело с огромными объемами данных (к примеру, результаты секвенирования генома одного человека занимают около 100 гигабайт). Поэтому обработка такого массива информации требует подходов и инструментов Data Science. Логично, что успешный биоинформатик должен разбираться не только в биологии и химии, но и в методах анализа данных, статистике и математике это делает его профессию достаточно редкой и востребованной. Такие специалисты особо нужны в областях инновационной медицины и разработке лекарств. Технологический гиганты вроде IBM и Intelоткрывают свои программы, посвященные изучению биоинформатики.

Что нужно, чтобы стать биоинформатиком?


  • Биология и химия (университетский уровень);
  • Матстат, линейная алгебра, теория вероятностей;
  • Языки программирования (Python и R, часто также используют C++);
  • Для структурной биоинформатики: понимание математического анализа и теории дифференциальных уравнений.

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

image


Чем занимаются биоинформатики?


Современная биоинформатика делится на два основных ответвления структурная биоинформатика и биоинформатика последовательностей. В первом случае мы видим человека, который сидит перед компьютером и запускает программы, помогающие изучать биологические объекты (например, ДНК или белки) в 3D-визуализациях. Они строят компьютерные модели, позволяющие предсказать, как молекула лекарства будет взаимодействовать с белком, как выглядит пространственная структура белка в клетке, какими свойствами молекулы объясняются ее взаимодействия с клеточными структурами и т. д.

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

image

РНК-зависимая РНК-полимераза SARS-CoV-2 (слева), а также её связь с дуплексом РНК.Источник.

Что такое геном?


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

image

Взаимодействие лекарства ремдесивира с РНК-зависимой РНК-полимеразой вируса SARS-CoV-2.Источник.

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

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

Например, благодаря биоинформатическому анализу были найдены и описаны мутации, приводящие к развитию муковисцидоза моногенного заболевания, вызванного поломкой гена одного из хлорных каналов. А еще теперь мы гораздо лучше знаем, кто приходится ближайшим биологическим родственником человеку и как наши предки расселялись по планете. Более того, каждый человек, прочитав свой геном, может узнать, откуда происходит его род и к какой этнической группе он принадлежит. Множество зарубежных (23andme,MyHeritage) и российских (Genotek,Atlas) сервисов позволяют получить эту услугу за сравнительно небольшую цену (порядка 20 тыс. рублей).

image

Результаты анализа ДНК-теста на происхождение и популяционную принадлежность от компании MyHeritage.

image

Результаты анализа ДНК-теста на популяционную принадлежность от компании 23andMe.

Как читают геном?


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

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

image

Пример данных, с которыми работают биоинформатики последовательностей: выравнивание аминокислотных последовательностей.

Где работают и сколько получают биоинформатики?


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

image


Где учатся на биоинформатика?


  • МГУ факультет биоинженерии и биоинформатики
  • ВШЭ Анализ данных в биологии и медицине (магистерская программа)
  • МФТИ кафедра биоинформатики
  • Институт биоинформатики (НКО)

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

Известные биоинформатики


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

image


Кстати, многие программы, созданные именно российскими учеными, сегодня широко используются во всем мире например, геномный сборщикSPAdes, St. Petersburg genome assembler, созданный в Санкт-Петербургском институте, помогает ученым со всего мира собирать короткие последовательности ДНК в большие последовательности, чтобы восстановить исходные геномы организмов.

Открытия и достижения биоинформатики


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

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

Помимо этого, биоинформатики сыграли ключевую роль в разработке новых методов редактирования генома, в частности, CRISPR/Cas9 системы (технология, базирующаяся на иммунной системебактерий). Благодаря биоинформатическому анализу структуры данных белков и их эволюционного развития, точность и эффективность этой системы за последние годы выросла в разы, что позволило целенаправленно редактировать геномы многих организмов (в том числе человека).

image

Получить востребованную профессию с нуля или Level Up по навыкам и зарплате, можно, пройдя онлайн-курсы SkillFactory:



Подробнее..

Перевод Поэтика мутации искусственный интеллект поможет изучить ускользающие вирусы

15.01.2021 20:21:00 | Автор: admin
Источник

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

Копия неверна


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

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

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

Ученые всегда внимательно следят за потенциальными попытками побега со стороны вируса. Это актуально и для SARS-CoV-2: появляются новые штаммы и ученые исследуют, насколько эти изменения критичны для существующей вакцины (P.S. Пока тут все в порядке). Сложнее всего приходится исследователям вируса гриппа и ВИЧ, которые лучше всего ускользают от иммунной защиты нашего организма.

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

Вирусное правописание


Прошлой зимой Брайан Хи, биоинформатик из Массачусетского технологического института и большой поклонник поэзии Джона Донна, обдумывал эту проблему и пришел к интересной аналогии. Что если рассматривать вирусные последовательности так же, как мы рассматриваем письменную речь? По мнению ученого, каждая вирусная последовательность имеет своего рода грамматику набор правил, которым она должна следовать, чтобы быть этим конкретным вирусом.

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

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

Архитектура паттернов выбора того или иного слова масштабная, и прописывается она все более детально. Так, наиболее продвинутые алгоритмы обработки естественного языка типа GPT-3 от OpenAI учатся создавать идеальные с точки зрения грамматики тексты, сохраняя стилистику.

И в литературе, и в биологии


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

По мнению Джереми Ховарда, исследователя искусственного интеллекта из Университета Сан-Франциско и эксперта по алгоритмам обработки естественного языка, применение алгоритмов ИИ в биологических исследованиях может быть результативным.

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

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

Языковые модели для гриппа, ВИЧ и коронавируса


Этой весной лаборатория Бергер воплотила идею Брайана Хи. Результаты исследования опубликованы в журнале Science. Изначально команда интересовалась вирусом гриппа и ВИЧ, которые печально известны мастерским ускользанием от вакцин. Но, когда они начали исследование в марте 2020 года, стал доступен геном нового коронавируса, поэтому они решили добавить к исследованию и его.

Для всех трех вирусов ученые сосредоточились на последовательностях белков, которые они используют для проникновения в клетки и репликации, объясняет Брайан Брайсон, биоинженер, профессор Массачусетского технологического института и соавтор исследования. Эти же последовательности главная мишень для возникновения иммунного ответа и ключ к созданию эффективной вакцины. Здесь антитела цепляются за вирус, предотвращая его проникновение в клетку и приговаривая к уничтожению (для SARS-CoV-2 это спайковый S-белок.) Для каждого вируса команда МIT обучила языковую модель, используя данные генетической последовательности вместо привычных абзацев и предложений.

Спустя время ученые проверили результат обучения модели. Согласно гипотезе ученых, последовательности, которые имеют схожую семантику, должны инфицировать одних и тех же хозяев. Так, генетический язык свиного гриппа должен быть семантически похож на другой свиной грипп и отличаться от другого подвида гриппа, например, птичьего. Гипотеза ученых подтвердилась. Кроме того, они обнаружили, что распределенные во времени штаммы гриппа (к примеру, птичий грипп 1918 и 2009 года), были оценены ИИ как семантически похожие.

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

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

Что касается SARS-CoV-2, ученые проверяли свои гипотезы на искусственно выведенных мутантах. Существующий вирус многократно пропускали через сыворотку с антителами до тех пор, пока вирус не мутировал до толерантной к ним стадии (нам пока реально не о чем беспокоиться). Процент успеха тут был меньше. Модель выделяла большинство истинных беглецов, но иногда ошибалась.

Это только начало


Тем не менее, полученные результаты хороший задел для дальнейших исследований вирусологов, которые хотят понять, как работает механизм естественной мутации. Это отличный способ сузить круг потенциальных вирусов-мутантов, сравнимый с размерами вселенной, комментирует Бенхур Ли, микробиолог из Медицинской школы Икана на горе Синай.

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

Бенхур Ли отметил, что в первую очередь предсказания ИИ помогают исследователям подтверждать уже существующие знания. Так, модель правильно идентифицировала две части спайкового белка SARS-CoV-2, которые, как было выяснено ранее, более подвержены к мутациям, и участок последовательности вируса, который стабилен, а значит, является хорошей мишенью для антител.

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

Следующий шаг, который совершат сотрудники Брайсона, будет состоять в создании в лаборатории некоторых из прогнозируемых мутантов SARS-CoV-2 и наблюдение за их откликом на антитела, взятые у переболевших и вакцинированных людей. По словам Брайсона, они также протестируют несколько последовательностей, собранных при попытках секвенирования образцов вируса от пациентов с Covid-19, которые, по мнению модели, более склонны к ускользанию.

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

Подробнее..

Медведи, хомяки, человекоподобные. Хомяк или медведь брат человеку с точки зрения биоинформатики?

27.01.2021 18:04:51 | Автор: admin

Чтобы ответить на этот вопрос, в научном исследовании необходимо определиться с целью, задачами и методами, и изучаемыми материалами. Для этого нужно постараться предварительно поставить гипотезу, которая облегчит нам понимание того, чего мы хотим, а следовательно, позволит нам выбирать материалы исследования. В качестве гипотезы можно опираться на ваши знания в области классификации групп животных. Однако, если у Вас нет таких знаний и Вы не хотите страдать в поисках этих знаний в полях, лесах и лабораториях, то Вы можете стать продвинутым пользователем интернета и воспользоваться удобном сайтом lifemap [1], который отображает филогенетическое древо всех животных. Если же вы не продвинутый пользователь, то Вы можете просто воспользоваться википедией. Стоит отметить, что для учёного сайт Lifemap является таким же примитивным, как и википедия, но не бойтесь начать с малого, ведь википедия может послужить толчком к эволюции от простого к сложному. Поэтому пойдёмте эволюционировать на вики вместе. Для этого зайдём в поисковик и посмотрим информацию о нужных нам группах, с которыми в будущем нам предстоит работать, на данном сайте. Первые в списке у нас медвежьи. На странице сайта нам не нужно досконально изучать строение, размножение и образ жизни медведей. Нам нужны три вещи:

1) Раздел научной классификации.

2) Раздел филогенетики.

3) Краткая сводка классификации, которая отображена в верхнем правом углу под картинкой с научной классификацией.

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

(рис.1)

После проделанной работы переходим в раздел филогенетики и выбираем кладу с ближайшими живыми родственниками в качестве запасного варианта.

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

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

Теперь переходим в раздел краткой сводки научной классификации (рис.3). Находим вкладку отряд хищные и переходим по ней.

(рис.3)

Во вкладке отряда переходим в раздел 4.1. Внешняя систематика. Там необходимо найти надотряд, к которому принадлежат медведи (рис.4). Он указан на филогенетическом древе в виде гиперссылки, нажимаем на неё и переходим в соответствующий раздел.

(рис.4)

В разделе нам нужно узнать отношение приматов к этому надотряду. Для этого мы переходим во вкладку классификация и как не странно мы не обнаруживаем в нём приматов (рис.5) Получается, что медведи по версии википедии вообще не близкие родственники приматов. Может это так и есть, но кто же по версии википедии примату будет братом?

(рис.5)

Для этого проводим аналогичные манипуляции с семейством хомяковые и в конечном итоге попадаем в отряд грызуны. Переходим в раздел систематики и ищем надотряд (рис.6).

(рис.6)

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

1) Выбрать генетические последовательности представителей родов изучаемых групп в качестве внутренней группы в базе NCBI [2].

2) Показать на основе выбранных последовательностей, взятых у выбранных групп достоверные родственные связи друг с другом.

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

4) Выровнять выбранные последовательности правильным методом в зависимости от выбранных последовательностей.

5) Выбрать модель вычисления попарных расстояний и метод построения эволюционного дерева.

Чтобы уже начинать определяться с методами нам нужно выбрать внешнюю группу, а также определиться с генетическими последовательностями. Внешняя группа нам нужна для определения положения корня дерева, так сказать, его основы. В качестве внешней группы обычно используют одну или несколько клад, отпочковавшихся от общего дерева заведомо раньше (но желательно ненамного раньше) анализируемых последовательностей. Поскольку мы изучаем филогенетические отношения между плацентарными млекопитающими, то в качестве внешней группы можно использовать сумчатых млекопитающих [4]. Пусть это будут опоссумы. Я люблю опоссумов. Это котики мира сумчатых, а котиков любят все.

Далее определяем материалы. В качестве необходимых материалов я решил взять рибосомальные гены 18S рРНК у двух представителей разных родов из каждых изучаемых групп. Маркер 18S рРНК используется с конца 70-х годов прошлого столетия и является универсальным для систематических построений. Ген, кодирующий 18S рибосомную РНК, есть в геноме всех известных эукариот и является удобным маркером для их идентификации; он отсутствует у вирусов, бактерий и архей. Ген 18S рРНК содержит как консервативные участки, одинаковые у всех прокариот, так и вариабельные. Консервативные участки служат для первого этапа полимеразной цепной реакции присоединения праймеров к исследуемой ДНК-матрице, вариабельные участки для идентификации видов. Степень сходства видоспецифичных вариабельных участков отражает эволюционное родство разных видов [3].

С материалами более-менее определились, теперь их необходимо скачать в генетической базе данных. Переходим на сайт ген банка и в поисковой строке вбиваем название семейства латинскими буквами и ищем генетические последовательности родов, которые мы записывали ранее. Последовательности должны быть приблизительно равной длины и ни в коем случае не короткие, ибо короткие последовательности несут мало информации, а информация в нашей работе это золото, где филогенетическое древо Зиккурат. А всем мы знаем, что для строительства Зиккурата нужно больше золота. Поэтому для удобства в графе Sequence length выставим необходимую длину последовательностей (1600-2500) и нажмём кнопку Search (рис.7).

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

(рис. 8).

Таким образом мы скачиваем все необходимые нам последовательности в формате fasta. Cкаченные последовательности закидываем по одной (или несколько, если Вы скачали всё одним форматом) в программу MEGA 10 для объединения в один формат fasta в будущем (рис.9)

(рис.9)

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

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

Теперь нам надо начинать определяться с методами. Первым важным методом будет выравнивание генетических последовательностей. Выравнивание является важным биоинформатическим методом, основанным на размещении двух или более генетических последовательностей позволяющим увидеть сходные участки в этих последовательностях. Их сходство может отображать структурные и эволюционные связи, которые без выравнивания не построить [5]. Выравнивание мы не будем производить в MEGA 10, так как для рибосомальных последовательностей лучше воспользоваться мафтом [6]. Перед этим мы объединим все последовательности в меге в одну и экспортируем в любую папку на рабочем столе в формате fasta (рис.10).

(рис.10)

Сохранённый файл мы загружаем на сервер мафта в браузере (рис. 11) и изменим один стандартный параметр, выбрав тот, который показан на рисунке 12. Далее нажимаем кнопку Submit и получаем результат, который необходимо реформировать в формат fasta, как показано на рисунке 13.

(Рис.11)

(Рис.12)

(Рис.13)

Полученный формат необходимо загрузить обратно в мегу и уже работать в ней. Поздравляю мы это сделали! (рис.14)

(рис.14)

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

(Рис.15)

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

Данная модель различает скорость различных точечных мутаций и учитывает не равные базовые частоты, которые не учитываются простыми моделями [7]. В меге эту модель можно выбрать сразу при построении дерева в методе максимального правдоподобия, там же заранее выставим проверку в 1000 реплик (так называемый бустрэп анализ). Данный анализ позволяет посмотреть статистическую поддержку ветвей, чем она выше, тем будет лучше. Высокая поддержка большинства ветвей более 70% позволяет сказать, что дерево построено правильно (рис.16). Поддержка ниже 70% для

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

(рис.16)

К сожалению, посмотреть эту модель отдельно инструментал меги не позволяет, но наглядно она бы выглядела примерно таким образом (рис.17).

Рис (17).

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

Метод максимального правдоподобия, говоря примитивным языком, позволяет определить неизвестное число параметров на основании известных результатов эксперимента. Скажем, если известно число граней правильного многогранника (т.е. число параметров), то можно определить, чему равны вероятности различных исходов бросков этого многогранника. Так, для шестигранной игральной кости вероятность любого исхода броска будет равна 1/6. Однако если взять за гипотезу, что число граней некой игральной кости нам неизвестно, данный метод позволяет предположить путём многократных повторных экспериментов в виде бросков этой игральной кости, число граней этой кости и определить правдоподобие этого предположения. Так, многократно подбрасывая некую игральную кость с неизвестным числом граней и наблюдая, что число различных исходов бросков кости равно шести, можно сделать предположение, что это кость шестигранная [4]. Именно поэтому этот метод в данном случае я считаю одним из лучших для ответа на заданные мной вопросы.

В качестве дополнительных плюшек мега позволяет воспользоваться функциями уточнения выводимого дерева, что даёт нам возможность вывести исходное дерево для эвристического поиска, который в свою очередь используется для оценки лучшего состояния нашего дерева. Подробно, что такое эвристический поиск можно прочитать в IT сообществе хабр [5]. Итак, в дополнительных параметрах меги меге мы можем выбрать метод максимальной экономии, который является критерием оптимальности, для которого наилучшим считается самое короткое дерево, которое объясняет данные. Этот метод работает по канонам Бритвы Оккама (рис 18). В принципе в дополнительных параметрах можно выбрать ещё кучу всего, но я думаю и этого вполне хватит.

(Рис.18)

Собственно, теперь у нас всё готово, чтобы проверить википедию на подлинность и заодно нашу гипотезу. Строим дерево! (Рис.19) ;(Рис.20)

(Рис.19)

(Рис.20)

Вуаля чувствую себя доктором ВУ, когда дерево строится успешно!

Теперь давайте взглянем, что у нас получилось, а получилось у нас практически всё идеально!

Как Вы сами видите построенное дерево рассказывает нам о том, что грызуны являются более близкими родственниками по отношению к людям и подтверждает нашу гипотезу, несмотря на то, что одна ветвь у нас имеет поддержку ниже 70%, что в принципе не является критичным, так как все остальные ветви имеют статистическую поддержку более 70%. Конечно я допускаю за собой маленькие ошибки в построении дерева, но общая картина была вполне ожидаема и показала всё то, что известно самому капитану очевидности и его капитанше. Действительно хомяк является братом человека, а медведь его дальним родственником, а теперь можно выдохнуть! Всего доброго!

Примечание :

Материал был написан мной 26.01.2021 года и опубликован 27.01.2021 в научно-популярном сообществе фанерозой (http://personeltest.ru/aways/vk.com/phanerozoi).

Источники:

1)http://lifemap.univ-lyon1.fr

2)https://www.ncbi.nlm.nih.gov/nuccore/?term=Phocidae+18S+ribosomal+gene

3) Соловьева В.В. Молекулярно-генетический анализ беспозвоночных животных по нуклеотидной последовательности гена 18S рибосомной РНК: учебное пособие / Соловьева В.В., Моров А.Р., Ризванов А.А., Сабиров Р.М.- Казань: федеральный ун-т, 2011 52 с.

4) Молекулярная эволюция и филогенетический анализ/ В.В. Лукашов М.БИНОМ. Лаборатория знаний, 2009. с.256. с.92-123.

5)Mount DM.Bioinformatics: Sequence and Genome Analysis. 2nd. Cold Spring Harbor Laboratory Press: Cold Spring Harbor, NY., 2004.

6)https://mafft.cbrc.jp/alignment/server/

7) Hasegawa M., Kishino H., and Yano T. (1985). Dating the human-ape split by a molecular clock of mitochondrial DNA.Journal of Molecular Evolution22:160-174.

8) http://personeltest.ru/aways/habr.com/ru/company/mailru/blog/217839/

Подробнее..

Биоинформатика лекции онлайн-школы 2020

29.01.2021 14:10:10 | Автор: admin
Каждый год летом проходит шестидневная школа по биоинформатике, на которой сто студентов и аспирантов биологов и программистов погружаются в изучение основ биоинформатики по интенсивной программе.

В 2020 летняя школа, как и многие другие мероприятия, прошла онлайн и в сокращенном формате. За три дня участники из разных городов России и ближайших стран знакомились с обзором направлений в биоинформатике, пробовали свои силы в программировании, поиске геномных ассоциаций и хемоинформатике.

Традиционно мы записали несколько лекций школы и делимся видео и слайдами. Помеченные звёздочкой * можно смотреть без подготовки.

Приятного просмотра!





1. *Биоинформатика в 2025: чего ждать в следующие 5 лет? | Александр Предеус, Институт биоинформатики/University of Liverpool

Видео
Слайды

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



2. *Введение в технологии секвенирования и форматы данных | Юрий Барбитов, Институт биоинформатики

Видео
Слайды

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



3. Вычислительные методы в анализе данных масс-спектрометрии | Алексей Гуревич, Центр алгоритмической биотехнологии СПбГУ

Видео
Слайды

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



4. Методы сравнительной геномики прокариот и их применение для задач эволюционной биологии и биомедицины | Ольга Бочкарева, IST Austria

Видео
Слайды

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

5. *Публикации что-где-когда | Олег Шпынов, JetBrains Research

Видео
Слайды

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



6. Практика по хемоинформатике и дизайну малых молекул | Тимур Маджидов, КФУ, Казань и Павел Полищук, Университет Палацкого в Оломоуце, Чехия

Видео
Слайды

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

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

image

Для заинтересованных



Школа 2020 состоялась в пандемию благодаря поддержке компании JetBrains, за что выражаем ей огромную благодарность!

Летние школы по биоинформатике проходят каждый год с 2013 года. На YouTube-канале опубликованы в открытом доступе видеозаписи школ прошедших лет по самым разным темам.

Если примеров биоинформатических задач в приведенных лекциях оказалось мало, то можно почитать статью на Habr про анализ данных ChIP-seq , написанную по итогам семестрового проекта в Институте биоинформатики. А для желающих глубоких знаний до 1 марта открыт прием заявок на программу переподготовки по биоинформатике в Петербурге или онлайн, бесплатную для студентов. Скоро будут проходить дни открытых дверей.

Надеемся, в этом году состоится полноценная летняя школа 2021 и еще больше лекций.

До новых встреч и всем биоинформатики!

image
Подробнее..

Всё-таки я не зря учился! Как клёвые алгоритмы и школьные формулы помогают создавать инновационные лекарства

21.07.2020 18:12:25 | Автор: admin

image


Введение


Меня зовут Александр Садовников, я выпускник корпоративной магистерской программы ИТМО и JetBrains Разработка программного обеспечения и по совместительству старший разработчик биоинформатического ПО в департаменте вычислительной биологии компании BIOCAD.


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


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


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


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


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


image
Структура антитела


Антитело состоит из нескольких частей. Наиболее значимыми частями в контексте способности антитела взаимодействовать с другими молекулами являются его петли (на рисунке петли помечены как L1, L2, L3 и H1, H2, H3). Название этих частей антитела обусловлено их формой: посмотрите на рисунок действительно же петли какие-то! От структуры петель антитела зависит сила его связывания с поверхностью целевой молекулы и геометрические свойства данного взаимодействия. Поэтому при разработке лекарственных средств на основе антител наибольшее внимание уделяется именно петлям.


image
Пример взаимодействия антитела с мишенью. Зелёным цветом показана молекула антитела, жёлтым молекула мишени. Красным цветом обозначены петли антитела.


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


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


Принцип работы алгоритмов решения задачи докинга


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


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


image
Схема работы алгоритма докинга


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


Докинг на сетках


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


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


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


complexes = []# перебираем все возможные вращения второй молекулы относительно первойfor rotation in rotations:     # перебираем все возможные смещения второй молекулы относительно первой    for shift in shifts:         # поворачиваем и сдвигаем вторую молекулы         # с учётом заданных вращения и смещения        moved_mol2 = rotate_and_shift(mol2, rotation, shift)         # создаём из молекул комплекс, в котором вторая         # молекула повёрнута и сдвинута        new_complex = (mol1, moved_mol2)         complexes.append(new_complex)# сортируем все полученные комплексы по их правдоподобиюcomplexes.sort(lambda candidate_complex: score_complex(candidate_complex)) 

Однако тут важны детали. А именно, нас интересует способ оценки правдоподобия молекулярного комплекса, то есть того, насколько вероятно существование этого комплекса в природе. Точное определение правдоподобия даже одного молекулярного комплекса задача достаточно трудоёмкая. Всего у нас получается $R \cdot S$ комплексов, где R число вращений второй молекулы, а S число её смещений. На практике $R \cdot S$ имеет порядок $10^5$. Определить правдоподобие такого большого числа комплексов за разумное с практической точки зрения время и в условиях ограниченности вычислительных ресурсов просто не представляется возможным.


В 1992 году, когда был изобретён алгоритм докинга на сетках, проблема производительности была ещё более актуальна. Поэтому его авторами был предложен следующий подход.


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


$\text{cell}_{ijk} = \begin{cases} 1, & \text{если на поверхности} \\ p, & \text{если внутри} \\ 0, & \text{в другом случае}. \end{cases}$


Значение 1 присваивается ячейкам сетки, которые содержат атомы, находящиеся на поверхности молекулы. Значение $p$, которое находится в промежутке от 0 до 1, присваивается ячейкам, которые содержат только атомы молекулы, не имеющие доступа к её поверхности. Значение 0 присваивается всем остальным ячейкам сетки. Пример построения сеток для двух молекул приведён ниже.


image
Пример построения двумерных корреляционных сеток для двух молекул


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


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


Однако в таком виде данная идея не даёт нам прироста производительности: корреляция двух сеток вычисляется за время $O(N^3)$, где N размер одного измерения сетки, и время работы алгоритма всё ещё будет составлять $O(R \cdot S \cdot N^3)$. Это много. Заметим, что теперь нам не надо искать смещение второй молекулы относительно первой. Смещение молекул мы описываем исключительно в терминах сеток и их корреляции, поэтому достаточно найти смещение сетки второй молекулы относительно сетки первой молекулы. По найденному смещению можно однозначно восстановить сдвиг второй молекулы относительно первой. Теперь можно более точно оценить время работы текущего алгоритма: оно получилось $O(R \cdot N^6)$. Но это очень много, учитывая, что приемлемая точность работы алгоритма достигается при N, имеющем порядок $10^2$.


Тут нам наконец-то приходит на помощь университетская программа курса по алгоритмам. Оттуда мы знаем (или ещё только узнаем), что корреляция двух трёхмерных сеток может быть вычислена за время $O(N^3 \log N)$ для всех циклических сдвигов одной сетки относительно другой. Делается это с помощью алгоритма быстрого преобразования Фурье, более известного как FFT. При таком подходе время работы алгоритма докинга на сетках составляет $O(R \cdot N^3 \cdot \log N)$, что является намного более приемлемым результатом, чем время работы первоначального подхода.


Наконец-то мы можем записать финальную эффективную версию алгоритма докинга на сетках:


complexes = []# строим корреляционную сетку для первой молекулыgrid_for_mol1 = build_grid(mol1) # прямое преобразование Фурье для первой молекулыfft_mol1 = fft_3d(grid_for_mol1) # перебираем все возможные вращения второй молекулы относительно первойfor rotation in rotations:     # поворачиваем вторую молекулу с учётом заданного вращения    rotated_mol2 = rotate(mol2, rotation)     # строим корреляционную сетку для повёрнутой второй молекулы    grid_for_mol2 = build_grid(rotated_mol2)     # прямое преобразование Фурье для второй молекулы    fft_mol2 = fft_3d(rotated_mol2)     # поэлементно перемножаем преобразованные сетки. После этого     # применяем к результату перемножения обратное преобразование     # Фурье. И, казалось бы, магическим образом получаем корреляции     # для всех циклических сдвигов второй сетки относительно первой    correlations = ifft_3d(fft_mol1 * fft_mol2)     # создаём из молекул комплексы, в которых вторая     # молекула повёрнута и сдвинута    rotation_complexes = map(lambda shift_: (mol1, shift(rotated_mol2, shift_)))     # для каждого комплекса мы уже посчитали его правдоподобие     # с помощью быстрого преобразования Фурье    complexes += list(zip(rotation_complexes, correlations)) # сортируем все полученные комплексы по их правдоподобиюcomplexes.sort(lambda (candidate_complex, score): score) 

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


Улучшение докинга на сетках за счёт статистического потенциала


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


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


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


$E_{SP} = \sum_{I \in N} \sum_{j \in M} SP_{ij},$


где $N$ и $M$ множества атомов молекул данного комплекса, а $SP_{ij}$ энергия взаимодействия атомов типов $i$ и $j$ в статистическом потенциале $SP$.


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


Создание статистических потенциалов с разными свойствами представляет большой простор для исследований. Например, один только Piper использует два разных потенциала: DARS (Decoys as Reference State) и aADARS (asymmetric Antibody DARS). aADARS используется для докинга антител, а DARS для докинга остальных видов молекул.


В рамках своей магистерской работы я занимался созданием нового статистического потенциала, предназначенного именно для докинга антител. Изначально предполагалось просто обновить aADARS, пересчитав его на новых экспериментальных данных. Однако в ходе работы выяснилось, что сам подход к созданию потенциала может быть существенно улучшен за счёт учёта информации про электростатические взаимодействия атомов и петли антител. Это привело к созданию нового статистического потенциала WAASP (Widely Applicable Antibody Statistical Potential). Использование WAASP существенно увеличило точность алгоритма докинга HEDGE, разрабатываемого в департаменте, в котором я работаю:


image
Сравнение версий алгоритма докинга HEDGE, использующих разные статистические потенциалы


Что важно, прирост точности является существенным не только относительно версии алгоритма, не использующей статистические потенциалы, но и относительно версий, использующих DARS и aADARS.


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


Кластеризация


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


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


Разбиение множества элементов на группы по принципу сходства элементов называется кластеризацией. Каждая полученная группа называется кластером. В нашем случае в качестве разбиваемого на группы множества выступает множество результатов работы алгоритма докинга на сетках. В качестве метрики сходства элементов множества выбирается классическая для задач структурной биоинформатики метрика RMSD (Root-Mean-Square Deviation). RMSD между двумя молекулярными комплексами вычисляется как среднеквадратичное отклонение координат атомов одного комплекса от координат атомов другого.


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


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


Минимизация


image
Минимизация структуры молекулярного комплекса


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


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


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


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


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


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


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


Процесс поиска минимума функции называется минимизацией. Отсюда и название данного этапа работы докинга!


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


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


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


image
Пример ситуации, когда локальный минимум функции энергии не является глобальным


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


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


Всё, процесс работы всего алгоритма докинга завершён!


Заключение


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


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


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


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

Подробнее..

Видео курсов Computer Science клуба

05.01.2021 18:18:32 | Автор: admin

Computer Science клуб это открытые лекции по компьютерным наукам в Санкт-Петербургском отделении Математического института РАН. Филиалы CS клуба действуют в Новосибирске и Казани. В связи с эпидемией все лекции осеннего семестра проходили онлайн и были доступны всем желающим вне зависимости от их местонахождения. Видеозаписи этих курсов выложены на сайт клуба и в канал на ютубе.

В осеннем семестре читались следующие курсы:

Кроме курсов, состоящих из нескольких лекций, в клубе проходят доклады Computer Science семинара - это открытые лекции от действующих учёных, популярно рассказывающие о какой-то теме. В этом семестре у нас были следующие доклады:

Также на базе Computer Science клуба проходили семинаре по курсу "Алгоритмы: продвинутые главы" от Константина Макарычева. Константин записал видеолекции на русском для курса, который он читает в Northwestern University в США. На семинарах были очень подробные и интересные обсуждения. Семинары вели Александр Шень (LIRMM, Монпелье) и Илья Разенштейн (Microsoft Research). В качестве приглашённого лектора выступал Григорий Ярославцев (Indiana University).

Более того, на сайте вы можете найти материалы и видеозаписи большинства курсов, которые когда-либо читались в клубе. Список курсов.

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

Подробнее..

Анализ колоса пшеницы методами компьютерного зрения. Определение плоидности

19.08.2020 12:13:25 | Автор: admin
14-ого августа завершился первый воркшоп Математического центра в Академгородке. Я выступал в роли куратора проекта по анализу колоса пшеницы методами компьютерного зрения. В этой заметке хочу рассказать, что из этого вышло.

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

image

Описание данных


Для решения задачи еще до начала воркшопа был подготовлен набор данных, в котором для каждого вида растения была известна плоидность. Всего в нашем распоряжении оказалось 2344 фотографии гексаплоидов и 1259 тетрапроидов.

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

image

Всего 3603 фото с 644 уникальными посевными номерами. В наборе данных представлено 20 видов пшениц: 10 гексаплоидных, 10 тетраплоидных; 496 уникальных генотипов; 10 уникальных вегетаций. Растения были выращены в период с 2015 по 2018 годы в теплицах ИЦиГ СО РАН. Биологический материал предоставлен академиком Николаем Петровичем Гончаровым.

Валидация


Одному растению в нашем наборе данных может соответствовать до 5 фотографий, снятых по разным протоколам и в разных проекциях. Мы разделили данные на 3 стратифицированные подборки: train (обучающая выборка), valid (валидационная выборка) и hold out (отложенная выборка), в соотношениях 60%, 20% и 20% соответственно. При разбиение мы учитывали, что бы все фотографии определенного генотипа всегда оказывались в одной подвыборке. Данная схема валидации использовалась для всех обучаемых моделей.

Пробуем классический CV и ML методы


Первый подход, который мы использовали для решения поставленной задачи основан на существующем алгоритме разработанным нами ранее. Алгоритм из каждого изображения позволяет извлечь фиксированный набор различных количественных признаков. Например, длина колоса, площадь остей и т.д. Подробное описание алгоритма есть в статье Genaev et al., Morphometry of the Wheat Spike by Analyzing 2D Images, 2019. Используя данный алгоритм и методы машинного обучения, нами были обучены несколько моделей для предсказания типов плоидности.

image

Мы использовали методы логистической регрессии, случайный лес и градиентный бустинг. Данные были предварительно нормированы. В качестве меры точности мы выбрали AUC.

Метод Train Valid Holdout
Logistic Regression 0.77 0.70 0.72
Random Forest 1.00 0.83 0.82
Boosting 0.99 0.83 0.85


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

Интерпретируем результаты


Для каждой модели мы получали оценку важности каждого признака. В результате получили список всех наши признаков, ранжированный по значимости и отобрали топ 10 признаков: Awns area, Circularity index, Roundness, Perimeter, Stem length, xu2, L, xb2, yu2, ybm. (описание каждого признака можно посмотреть тут).
Примером важных признаков являются длина колоса и его периметр. Их визуализация показана на гистограммах. Видно, что гексаплоидные растения по характеристикам размера больше,
чем тетраплоидные.
image

Мы выполнили кластеризацию топ 10 признаков методом t-SNE

image

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

Для подтверждения нашей гипотезы о большей фенотипической изменчивости у гексаплоидов мы применили F статистку. F статистика дает значимость различий дисперсий двух распределений. Опровержением нулевой гипотезы о том, что не существует различий между двумя распределениями мы считали случаи, когда значение p-value меньше 0.05. Мы провели этот тест независимо для каждого признака. Условия проверки: должна быть выборка независимых наблюдений (в случае нескольких изображений это не так) и нормальность распределений. Для выполнения этих условий мы проводили тест по одному изображению каждого колоса. Брали, фотографии только в одной проекции по протоколу table. Результаты показаны в таблице. Видно, что дисперсия для гексоплоидов и тетраплоидов имеет значимые различия для 7 признаков. Причем во всех случаях значение дисперсии выше у гексоплоидов. БОльшую фенотипическую вариабельность у гексаплоидов можно объяснить большим числом копий одного гена.

Name F-statistic p-value Disp Hexaploid Disp Tetraploid
Awns area 0.376 1.000 1.415 3.763
Circularity index 1.188 0.065 0.959 0.807
Roundness 1.828 0.000 1.312 0.718
Perimeter 1.570 0.000 1.080 0.688
Stem length 3.500 0.000 1.320 0.377
xu2 3.928 0.000 1.336 0.340
L 3.500 0.000 1.320 0.377
xb2 4.437 0.000 1.331 0.300
yu2 4.275 0.000 2.491 0.583
ybm 1.081 0.248 0.695 0.643


В наших данных представлены растения 20 видов. 10 гексоплоидных пшениц и 10 тераплоидных.
Мы разукрасили результаты кластеризации так, что бы цвет+форма каждой точки соответствует определенному виду.
image

Большинство видов занимает достаточно компактные области на графике. Хотя эти области могут сильно перекрываться с другими. С другой стороны, внутри одного вида могут быть четко выраженные кластеры, например как для T compactum, T petropavlovskyi.

Мы усредняли значения для каждого вида по 10 признакам, получив таблицу 20 на 10. Где каждому из 20 видов соответствует вектор из 10-ти признаков. Для этих данных построили матрицу корреляции и провели иерархический кластерный анализ. Синие квадраты на графике соответствуют тетраплоидам.
image

На построенном дереве, в общем, виды пшениц разделись на тетраплоидные и гексаплоидные. Гексаплоидные виды четко разделисись на два кластера среднеколосые T. macha, T.aestivum, T. yunnanense и длинноколосые T. vavilovii, T. petropavlovskyi, T. spelta. Исключение к гексаплоидным попал единственный дикий полиплоидный (тетраплоидный) вид T. dicoccoides.
В то время как в тетраплоидные виды попали гексаплоидные пшеницы с компактным типом колоса T. compactum, T. antiquorum и T. sphaerococcum и рукотворная изогенная линия АНК-23 мягкой пшеницы.

Пробуем CNN


image
Для решения задачи определения плоидности пшеницы по изображению колоса мы обучили сверточную нейронную сеть архитектуры EfficientNet B0 с предобученными на ImageNet весами. В качестве loss функции использовали CrossEntropyLoss; оптимизатор Adam; размер одного батча 16; изображения ресайзили до разрешения 224x224; скорость обучения меняли, согласно стратегии fit_one_cycle с начальным lr=1e-4. Обучали сеть в течении 10 эпох, накладывая случайным образом следующие аугментации: повороты на -20 +20 градусов, изменение яркости, контрастности, насыщенности, зеркальное отображение. Лучшею модель выбирали по метрике AUC, значение которой считалось в конце каждой эпохи.

В результате точность на отложенной выборке AUC=0.995, что соответствует accuracy_score=0.987 и ошибки равной 1.3%. Что является очень не плохим результатом.

Заключение


Эта работа является удачным примером того, как силами коллектива из 5 студентов и 2-ух кураторов в течении нескольких недель можно решить актуальную биологическую задачу и получить новые научные результаты.
Я хотел бы выразить благодарность всем участникам нашего проекта: Никита Прохошин, Алексей Приходько, Андреевич Евгений, Артем Пронозин, Анна Паулиш, Евгений Комышев, Михаил Генаев.
Николаю Петровичу Гончарову и Афонникову Дмитрию Аркадьевичу за предоставленный биологический материал и помощь в интерпретации результатов.
Математическому центру Новосибирского Государственного Университета и Институту Цитологии и Генетики СО РАН за организацию мероприятия и вычислительные мощности.
image

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

Запрограммировано ли старение? Разбираем доказательства

22.02.2021 20:07:34 | Автор: admin

Гипотеза о том, что старение запрограммировано весьма популярна среди обывателей, но имеет довольно мало сторонников среди ученых-геронтологов. При этом данная гипотеза кажется весьма логичной, на первый взгляд. Откуда такое расхождение? Может быть, ученые просто находятся в плену своих предубеждений и когнитивных ошибок, не давая зеленый свет смелой гипотезе?

"Ничто в биологии не имеет смысла, кроме как в свете эволюции"

Добржанский Феодосий Григорьевич

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

Моделирование численности популяций нестареющих хищников и жертв.Моделирование численности популяций нестареющих хищников и жертв.

Когда старения нет минимальная и максимальная численность обоих видов разнится на два порядка и довольно долгое время численность популяции находится возле нуля: малейшая флуктуация - и оба вида исчезнут! А теперь взглянем на результаты симуляции, где присутствует старение "не-хищников" и старые особи представляют более легкую добычу:

Моделирование численности популяций хищников и стареющих жертв.Моделирование численности популяций хищников и стареющих жертв.

Мы видим, что в этой симуляции динамика существенно стабилизировалась и есть даже некий намек на сходимость - колебания уменьшаются со временем. Это ли не лучшее доказательство наличия Программы!? Прежде чем ответить на этот вопрос, давайте изучим матчасть. А именно модель Лотки-Вольтерры, которую (с небольшими модификациями) использовал Джош Миттельдорф.

Модель Лотки-Вольтерры

"В сущности, все модели неправильны, но некоторые полезны"

Джордж Бокс

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

\frac{dx}{dt} = \alpha x - \beta xy \frac{dy}{dt} = \delta xy - \gamma y
  • x численность жертв (травоядных);

  • y численность хищников;

  • скорость роста популяции жертв;

  • вероятность того, что жертва будет съедена хищником при контакте;

  • 1/ имеет смысл среднего времени до голодной смерти хищника;

  • вероятность того, что хищнику хватит еды на дальнейшее размножение.

Оставим пока хищников в покое и рассмотрим уравнение для жертв. Как будет выглядеть динамика их численности при условии, что все хищники куда-то внезапно исчезли (y=0)?

А вот как:

\frac{dx}{dt} = \alpha x => x(t) = Сe^{\alpha t}

То есть численность "не-хищников" по этой модели растет по экспоненте! И действительно, модель Лотки-Вольтерры предполагает что в распоряжении жертв неограниченные ресурсы (например, пища). Однако в реальности все совсем не так.

Логистическая модель роста

Вот как, например, выглядит рост численности популяции инфузорий туфелек (Paramecium):

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

Чем же обусловлено такое замедление? Существуют, как минимум, две группы факторов: механистические и адаптивные (генетические).

  • К механистическим можно, например, отнести недостаток пространства для размножения. Возьмем, к примеру, паразитическую осу, обитающую в Центральной Америке, которая откладывает яйца (см. рисунок снизу) только на спинках гусениц определенного вида. Очевидно, что максимальный прирост популяции равен количеству гусениц помноженному на количество яиц, которое можно разместить на гусенице. Таким образом ограничивается бесконечный экспоненциальный рост в данном случае. Такая же логика применима и к другим животным: например, существует предел того, сколько гнезд чайки могут разместить в ареале своего обитания, или предел подходящих мест для нереста лососей. Другим чисто механистическим препятствием является голод: если не хватает пищи, то даже если места полно, потомство либо вовсе не родится, либо умрет, не успев продолжить род.

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

Подробнее про логистическую функцию

Логистическая функция является решением следующего дифференциального уравнения:

\frac{dx}{dt} = \frac{(T - x) x}{T}

Давайте поймем в чем физический смысл этого уравнения. Пусть x(t) - это функция роста численности некоей популяции от времени, тогда dx/dt - это скорость роста популяции. Понятно, что скорость роста зависит от того, сколько уже особей существует (просто потому что количество детей зависит от количества родителей). Но еще она зависит от множителя (T - x), где T - это некий предел численности популяции, который может обеспечить среда. Когда x = T, то dx/dt = 0, то скорость роста популяции нулевая независимо от того сколько уже особей есть на данный момент). Когда T намного больше x, то функция похожа на экспоненту, но по мере приближения x к T функция становится все более пологой. Это, кстати, похоже на динамику эпидемий и, действительно, рост числа новых случаев COVID-19 неплохо описывается таким простым дифференциальным уравнением. А все почему? Да потому что даже без ограничительных мер вследствие иммунитета (или смерти) у вируса остается все меньше свободных переносчиков для распространения и поэтому скорость распространения падает.

Давайте попробуем решить это уравнение:

T \int \frac{dx}{(T - x)x} = \int dtT \int \frac{dx}{(T - x)x} = \int (\frac{1}{T - x} + \frac{1}{x}) = -ln|T - x| + ln|x| + C_1ln| \frac{x}{T - x}| = t + C_2 => \frac{x}{T - x} = e^{t+C_2} => x = Ce^t(T - x)

Если мы будем рассматривать только значения x(t) >= 0, то можно избавиться от модуля и после несложных алгебраических манипуляций получим:

x = Ce^t(T - x) => x(1 + Ce^t) = CTe^t => x(t) = \frac{CTe^t}{1 + Ce^t} = \frac{CT}{e^{-t}+C}

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

Итак, чтобы учитывать логистический рост популяции "не-хищников", я переписал первое уравнение Лотки-Вольтерры в следующем виде:

\frac{dx}{dt} = \alpha (1 - \frac{x}{T})x - \beta xy

И вот какую динамику популяций мне удалось получить:

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

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

Но в итоге эти виды, когда это преимущество уже закреплялось в генах достаточно большого количества особей, вымирали из-за голода, вызванного перенаселением, от которого такой вид страдал хотя бы один раз в течение миллионов лет эволюции. А избежали вымирания только те виды, в которых групповой отбор закрепил достаточное количество дублирующих механизмов старения, и те, которые научились пережидать голодные времена в виде спор или затаившихся яиц как нестареющая гидра. http://personeltest.ru/aways/habr.com/ru/post/405101/

Но спасает ли старение от перенаселения? Давайте рассмотрим простейший пример: пусть у нас есть бактерия, которая умирает от старения через 2 деления. Похожим образом стареют пекарские дрожжи Saccharomyces cerevisiae: от материнской клетки отпочковывается дочерняя клетка, которой достаются самые хорошие органеллы, а все плохие органеллы и клеточный мусор остаются в материнской клетке, которая через несколько десятков таких делений умирает. У дрожжей есть еще хронологическое старение, но это отдельная история.

Так как же будет выглядеть рост популяции в нашей простейшей модели очень быстрого старения? А вот как (см. рисунок внизу для пояснения):

  1. 1 бактерия

  2. 2 бактерии

  3. 4 бактерии - 1 умершая от старости = 3

  4. 6 бактерий - 1 умершая от старости = 5

  5. 10 бактерий - 2 умерших от старости = 8

  6. 16 бактерий - 3 умерших от старости = 13

  7. ...

Светлые кружочки - молодые бактерии, наполовину черные - старые, полностью черные - мертвыеСветлые кружочки - молодые бактерии, наполовину черные - старые, полностью черные - мертвые

1 2 3 5 8 13... Да это же последовательность чисел Фибоначчи (каждое число равно сумме двух предыдущих)! Но это в свою очередь означает, что старение никак не ограничивает экспоненциальный рост популяции, потому что последовательность Фибоначчи растет по экспоненте. Поэтому эволюция никак не могла прийти к программе старения с этой целью, но она вполне могла прийти к механизмам ограничения размножения, что ученые и обнаружили у мышей.

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

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

Подытожим:

  1. Гипотетическая программа старения вредит индивидуальному отбору и НЕ дает никаких ощутимых преимуществ при групповом отборе (который до сих пор не является общепризнанным).

  2. Гипотеза запрограммированного старения нарушает принцип бритвы Оккама: постулируется новая сущность без надобности (см. пункт 1).

  3. До сих пор не найдено ни намека на генетическую программу старения у млекопитающих хотя другие генетические программы давно найдены (например, вышеупомянутая программа отключения фертильности)

  4. Самое главное: не существует примеров взломов "программы старения" внутри одного вида. Если есть программа, значит, чисто статистически должны быть особи, у которых она ломается со временем. Например, у каждой клеточки нашего организма есть программа самоубийства (апоптоза), но она с завидной регулярностью ломается, что служит одним из механизмов патогенеза онкологических заболеваний. Где среди 7 миллиардов людей нестареющие мутанты с отключенной программой старения!? Ведь ожидаемая продолжительность жизни таких людей должна составлять как минимум сотни лет.

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

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

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

Подробнее..

Научно-исследовательские инициативы JetBrains

03.03.2021 14:04:54 | Автор: admin
Develop with pleasure, The drive to develop об этом вы наверняка от нас слышали. Но наши интересы далеко не ограничиваются разработкой и созданием мощных инструментов для повышения продуктивности. Мы верим, что можем многое изменить и сделать мир лучше. Один из верных способов проведение исследований в области передовых технологий и образования. Совместно с ведущими научными учреждениями мира мы занимается прикладными исследованиями, способными влиять на жизни людей и двигать нас всех вперед.

Наши научные исследования объединены в рамках направления JetBrains Research.

Ниже мы представим исследовательские группы JetBrains Research и расскажем, чем они занимаются.

Наука сегодня для технологий будущего



JetBrains Research объединяет более 150 исследователей, участвующих в проектах более 19 лабораторий и групп. Лаборатории и группы ведут работу в самых разных направлениях от физики элементарных частиц до разработки ПО.


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



Исследовательские группы



BioLabs


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


Задача BioLabs раскрыть механизмы эпигенетической регуляции у людей и животных и понять, какое значение эти механизмы играют в процессах дифференцировки и старения клеток. Самым крупным является проект старения, реализуемый BioLabs совместно с Университетом Вашингтона в Сент-Луисе. Другие исследовательские проекты посвящены различным темам, включая новые алгоритмы анализа данных, эффективные инструменты обработки данных для секвенирования нового поколения (Next Generation Sequencing), масштабируемые конвейеры данных, подходы к визуализации и мета-анализу существующих баз данных с информацией о механизмах эпигенетической регуляции. BioLabs также отвечает за PubTrends новый сервис для анализа научных публикаций, позволяющий быстрее анализировать тренды и находить значимые работы. Такой сервис необходим, поскольку число работ, публикуемых каждый год, неуклонно растет, и уследить за всеми публикациями по выбранной теме практически невозможно.


Вернуться к списку исследовательских групп


Группа биоинформатики


Биология практически необъятная наука, многие области которой пока не открыты и не изучены. Мы не знаем, что готовит нам будущее, но чем больше у нас будет знаний о биологии, тем лучше мы сможем подготовиться.

Группа биоинформатики занимается разработкой эффективных вычислительных методов для решения важных проблем в области биологии и медицины. Группа базируется на кафедре компьютерных технологий Университета ИТМО. Группа активно взаимодействует с лабораторией Максима Артемова (Университет Вашингтона в Сент-Луисе). Проекты лаборатории охватывают широкий спектр тем от анализа данных метагеномного секвенирования до анализа экспрессии генов и метаболомики. Фундаментальные знания в области алгоритмов и компьютерных наук позволяют группе заниматься решением задач биологии, сводя их к известным вычислительным задачам и создавая инструменты визуализации и анализа данных для биологов.


Вернуться к списку исследовательских групп


Лаборатория нейробиологии и физиологии развития


Нейробиология и физиология развития прошли долгий путь и накопили фундаментальную базу исследований. И тем не менее многое в этой науке по-прежнему остается неизведанным. А ведь эти науки таят в себе огромный потенциал к пониманию человеческого мозга.
Задача лаборатории нейробиологии и физиологии развития разработать вычислительный фреймворк для создания динамических пространственных моделей структуры нервных тканей и динамики базовых стимулов. Проект Biological Cellular Neural Network Modeling (BCNNM) использует последовательности биохимических реакций для запуска сложных моделей нейронных сетей при формировании исходных стволовых клеток. Фреймворк можно использовать для in silico репликации экспериментов, проведенных in vitro, чтобы получать измерения с ключевых компонентов, а также выполнять предварительную вычислительную проверку новых гипотез.


Вернуться к списку исследовательских групп



Лаборатория прикладного машинного обучения и глубокого обучения
и
Лаборатория агентных систем и обучения с подкреплением


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


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


Вернуться к списку исследовательских групп


Исследовательская группа Paper-Analyzer


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


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


Вернуться к списку исследовательских групп


Лаборатория криптографии


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


Лаборатория криптографии занимается исследованиями современных задач в области криптографии и информационной безопасности. Она сотрудничает с COSIC исследовательской группой компьютерной безопасности и промышленной криптографии в Левене (Бельгия), Selmer Center в Университете Бергена (Норвегия) и INRIA (Франция). Исследования ведутся по различным направлениям: криптографические логические функции, симметричные шифры, легковесная криптография, технология блокчейна, квантовая криптография и информационная безопасность. Помимо публикации монографий и статей в ведущих журналах о криптографии, сотрудники лаборатории преподают криптографию в Новосибирском государственном университете и организуют NSUCRYPTO Международную студенческую олимпиаду по криптографии.


Вернуться к списку исследовательских групп


Группа HoTT и зависимых типов


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


Исследовательская группа занимается созданием Arend зависимо-типизированного языка и инструмента доказательства теорем, основанного на гомотопической теории типов. HTT является более продвинутым фреймворком, чем те, на которых основаны инструменты вроде Agda и Coq. Конечная цель создать онлайн-помощник для доказательства теорем, основанный на современной теории типов, который бы позволил формализовать определенные разделы математики.


Вернуться к списку исследовательских групп


Лаборатория методов ядерно-физических экспериментов


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


Лаборатория методов ядерно-физических экспериментов базируется в МФТИ. Основной интерес лаборатории методологии и ПО для решения задач в области физики элементарных частиц. На данный момент команда программистов лаборатории занимается разработкой нового поколения инструментов для получения данных (медленное управление, обработка сигналов) и анализа данных. Исследования лаборатории охватывают три сферы: физика элементарных частиц без ускорителя (эксперименты GERDA, Троицк ню-масс, KATRIN и IAXO), численное моделирование в физике элементарных частиц (эксперименты с ускорителем и без, атмосферное электричество, физика рентгеновского излучения) и разработка программного обеспечения для экспериментальной физики (системы получения и анализа данных, проекты по разработке инфраструктур, научные библиотеки для языка Kotlin). Огромное внимание уделяется и обучению: лаборатория старается дать молодым студентам возможность получить реальный опыт в физике и разработке.


Лаборатория методов ядерно-физических экспериментов


Вернуться к списку исследовательских групп


Лаборатория исследований процессов обучения


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


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


  1. Кто идет в STEM и программирование?
  2. Какие факторы (когнитивные возможности, история семьи и т. д.) приводят человека к лучшим результатам и уменьшают вероятность забросить учебу?
  3. Существуют ли характерные установки (мотивация, вовлеченность и т.д.), способные пересилить первоначальные данные?
  4. Какие методологии обучения приносят успех, а какие повышают вероятность неудачи?

Вернуться к списку исследовательских групп


Лаборатория алгоритмов мобильных роботов


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


Лаборатория алгоритмов мобильных роботов объединяет исследования в области разработки эффективных алгоритмов для мобильных роботов. В лаборатории имеется единственный в России экземпляр Duckietown платформы и среды, позволяющих разрабатывать алгоритмы для мобильных роботов. В центре внимания лаборатории задача одновременной локализации и построения карты (SLAM). SLAM подразумевает составление и последующее поддержание карты неизвестной среды; при этом благодаря анализу данных с различных датчиков можно отслеживать местонахождение агента в среде. Сложность задачи SLAM связана с шумами, свойственными физическим датчикам, а также с необходимостью следить за изменениями в динамической среде. Кроме того, многие алгоритмы SLAM рассчитаны на недорогое оборудование, которое задает строгие требования к производительности. В 2019 году лаборатория роботов участвовала в третьих AI Driving Olympics соревнованиях роботов, управляющих беспилотным транспортом. Эти престижные соревнования считаются местом силы для развития знаний в сфере беспилотных автомобилей. Наша лаборатория заняла первое место во всех трех состязаниях. Примечательно, что это был первый прецедент победы алгоритма глубокого обучения на этих соревнованиях.


Исследователи лаборатории преподают множество курсов по дисциплинам STEM в университетах. Также они предлагают курсы по мобильной разработке для школьников и принимают студентов из MIT, приезжающих по программе MISTI.


Лаборатория алгоритмов мобильных роботов


Вернуться к списку исследовательских групп


Проблемы оптимизации в программной инженерии


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


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


Вернуться к списку исследовательских групп


Группа параметризованных алгоритмов


В компьютерных науках всегда есть чему поучиться. И решение сложных задач современными методами это наше движение вперед.


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


Вернуться к списку исследовательских групп


Лаборатория параллельных вычислений


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


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


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


Вернуться к списку исследовательских групп


Лаборатория киберфизических систем


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


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


Вернуться к списку исследовательских групп


Методы машинного обучения в области программной инженерии


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


Группа методов машинного обучения в области программной инженерии занимается разработкой и тестированием методов улучшения инструментов и процессов разработки путем применения анализа данных (включая машинное обучение) к данным из программных репозиториев. Совместно с командами нескольких продуктов JetBrains группа занимается интеграцией в продукты современных методов на основе данных. В данный момент группа работает над десятком исследовательских проектов на различные темы от поддержки библиотек сбора данных до генерации кода из описаний на естественном языке. Недавние результаты работы группы включают новый подход к рекомендации рефакторингов Move method, исследование нарушений лицензий в заимствованном коде на GitHub, современный подход к присуждению авторства исходного кода и метод построения векторных представлений стиля кода без явных признаков.


Вернуться к списку исследовательских групп


Лаборатория языковых инструментов


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


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


Вернуться к списку исследовательских групп


Лаборатория верификации и анализа программ (VorPAL)


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


В лаборатории верификации и анализа программ студенты, аспиранты и исследователи занимаются разработкой программных технологий, основанных на формальных методах, таких как верификация, статический анализ и методы трансформации программ. Эти методы помогают повысить продуктивность разработчиков при использовании ими автономных инструментов, расширений языков программирования и плагинов для IDE.
Существенная часть исследований посвящена изучению возможностей по расширению Kotlin. Мы верим, что Kotlin можно продолжать улучшать и расширять. Например, это могут быть макросы, liquid-типы, pattern matching, вариативные дженерики. Также в лаборатории занимаются исследованием применения
конколического тестирования в Kotlin, различных техник фаззинга компилятора и других областей.


Лаборатория верификации и анализа программ (VorPAL)


Вернуться к списку исследовательских групп


Лаборатория инструментов совместной работы


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


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


Вернуться к списку исследовательских групп



Если вы хотите присоединиться к какой-либо из групп, создать совместный проект или у вас есть общие вопросы, пишите нам по адресу info@research.jetbrains.org.


Благодарим Ольгу Андреевских за помощь в подготовке этой публикации.



Ваша команда JetBrains Research
The Drive to Develop
Подробнее..

Открытые материалы курс по вычислительной нейронауке

04.01.2021 18:18:07 | Автор: admin

В осеннем семестре 2020 года командалаборатории Нейробиологии и физиологии развития прочитала курс Вычислительные Нейронауки для студентов партнерских магистратур ВШЭ и ИТМО, а также для заинтересованных вольнослушателей. Курс проводится в рамках образовательных программ JetBrains c 2019 года. В этом году, в отличие от прошлого, формат обучения был, естественно, дистанционный лекции и семинары проводились в виде видеоконференций. В ходе курса студентам был предложен базовый материал для изучения и обсуждения в аудитории, материалы для самостоятельного, более глубокого погружения, интересные практические задания по моделированию нейронов и биологических нейронных сетей.

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

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

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

Если вас заинтересовал наш курс или какие-то отдельные темы, которых мы коснулись приглашаем вас в следующем осеннем семестре: будет еще интереснее, поскольку мы постоянно расширяем и дорабатываем контент. Прослушать курс могут все желающие. Вы также можете посмотреть все лекции 2020 года в любое удобное для вас время видеоматериалы доступны наYouTube-каналеJetBrains Research.

Слайд из лекции о кодировании и декодировании информации в НС.Слайд из лекции о кодировании и декодировании информации в НС.
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru