О заданиях к 22-й мишени в проекте SiDock@home

О заданиях к 22-й мишени в проекте SiDock@home.

О заданиях к 22-й мишени. Длительность их обработки самая большая из тех, что были до сих пор. На Ryzen 3900X большая часть обрабатывается за время от 16 до 36 часов, значительно меньшая - менее, чем за 16 часов или наоборот - больше 36. Самое длинное из тех, что считалось у меня на компьютере - 46 часов. В связи с этим срок ожидания результатов был увеличен с 6 до 14 дней. Для BOINC-проектов - далеко не рекорд, но и больше среднего, конечно.

Причин несколько.

Во-первых - большой размер области в которой нужно моделировать взаимодействие атомов и молекул - 7887 A^3;

Во-вторых, (исключительно моё предположение) - какие-то дополнительные свойства самой области;

В-третьих - мы пробуем увеличить качество результатов. Здесь, думаю, надо рассказать, что подробнее.

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

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

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

А если каждый лиганд обсчитывать, например, 30 или 50 раз, то обработка данных всей библиотеки может потребовать несколько лет. Задать же число N небольшим (например, 5 раз) - тоже не очень хороший вариант, так как мы можем пропустить какой-то "хороший лиганд", которому просто не повезло в эти первые 5 раз. Да и тот самый "пик" лигандов, которые в итоге пойдут в лабораторию, будет в некоторой степени случайным из-за слишком малого числа попыток, не давших достаточно точных данных по энергии связи. Но при этом хочется ещё и результат получать не очень большой, и чтобы "не подходящие" соединения в него не попали, а "перспективные" - не были отсеяны.

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

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

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

Хотите принять участие в распределенных вычислениях, тогда, Вам сюда:

https://boinc.berkeley.edu/wiki/Simple_view

https://boinc.berkeley.edu/download_all.php

https://boinc.ru

Ссылка на git-хаб, где лежат исходники программы-клиента BOINC.

https://github.com/BOINC/boinc

О заданиях к 22-й мишени в проекте SiDock@home Наука, Исследования, Boinc, Проект, Мишень, Гифка, Длиннопост
О заданиях к 22-й мишени в проекте SiDock@home Наука, Исследования, Boinc, Проект, Мишень, Гифка, Длиннопост
О заданиях к 22-й мишени в проекте SiDock@home Наука, Исследования, Boinc, Проект, Мишень, Гифка, Длиннопост