FoldIt Wiki
FoldIt (рус. Фолдит) — авторы игры рассчитывают на такую человеческую особенность, как интуиция. «Существует слишком много вариантов строения молекулы, - говорит Бейкер (создатель игры). Если увеличивается размер моделируемого белка, то сложность проблемы растёт нелинейно, в таком случае компьютерные алгоритмы уже не справляются. Однако люди, используя свои интуитивные возможности, способны получить правильный ответ гораздо быстрее». Более того, с помощью данной игры можно найти новые алгоритмы поиска, которые можно будет использовать при компьютерном моделировании.
Игра похожа на объёмный тетрис, в котором требуется оптимальным образом свернуть белок. Решение каждой задачи приносит определённое количество баллов, отражающих потенциальную энергию белка в полученной конфигурации. В трёхмерную «развлекалку» Fold.it могут играть все: даже дети и жители отдалённых островов Земли, которые понятия не имеют о молекулярной биологии. Разработчики постарались сделать такую игру, чтобы она была интересна каждому. А результат игры вполне может стать основой для Нобелевской премии и спасти жизни тысяч людей. Так что этот проект интересен возможностью отыскать среди обыкновенных людей тех, кому дарована способность «чувствовать» структуру белка.
FoldIt разработана коллективом учёных Вашингтонского университета с факультета Computer Science and Engineering (компьютерной науки и инженерии) и с факультета Biochemistry (биохимии) (многие из них участвовали в создании Rosetta@Home). Первый бета-релиз был выпущен в мае 2008 года. Foldit следует парадигме "игра с целью", в которой игроки, в качестве конечного результата игры, помогают в решении проблем, которые не могут решить компьютеры. Более ранним примером использования данной парадигмы является ESP Game (также называемая Google Image Labeler).
Foldit представляет собой красивую и нетребовательную к ресурсам компьютера трёхмерную игру, в которой игрок управляет простыми белково-подобными структурами, в которой периодически обновляется множество головоломок, основанных на реальных белках. Программа выводит графическое трёхмерное представление структуры белка недоступное пока (на 27 марта 2012г) современным электронным микроскопам, и пользователь может управлять этой структурой с помощью набора инструментов.
Результаты игры сразу же отправляются в центр обработки, где их проверяют на суперкомпьютере. В рамках проекта Fold.It предложен новый способ: не тупой перебор всех вариантов, а интеллектуальный мозговой штурм через компьютерную игру. Количество вариантов сокращается на порядок, а суперкомпьютер гораздо быстрее найдёт правильные параметры фолдинга.
Распределённые игры для науки
[править]В Вашингтонском университете создали игру FoldIt, превратив процесс моделирования структуры белков в онлайн-головоломку, доступную для понимания широкому кругу далёких от биохимии людей.
Паззл-симулятор укладки молекул белков Foldit стал победителем конкурса журнала Science на самую лучшую художественную работу, описывающую один из научных феноменов или процессов в номинации научно-познавательных игр за 2011 год.
Мелкие достижения там были и раньше (типа успешного определения структур уже известных белков или небольшого уточнения/полировки моделей созданных автоматизированными алгоритмами типа R@H, так же была победа по нескольким моделям при CASP9 соревновании), а сейчас благодаря "коллективному разуму" игрокам удалось определить 3D структуру белка, которую более 10 лет не удавалось определить учёным. Оригинал полной статьи тут: http://depts.washington.edu/bakerpg/drupal/node/414 Краткое изложение тут: http://the-scientist.com/2011/09/18/pub ... Команда нашедшая правильную структуру - The Contenders. Результаты были оформлены как научная статья и опубликованы в журнале "Nature Structural and Molecular Biology" 18 сентября 2011. Белок, структуру которого искали - "retroviral protease" из вируса родственного ВИЧ/СПИД (только у обезьян, а не человека), были неоднократные попытки определить его структуру - как кристаллографией, так и различными методиками моделирования. Все заканчивались неудачно. После очередной неудачи один из учёных (Mariusz Jaskolski из Mickiewicz University из Польши) отправил этот белок Дэвиду Бейкеру вместе с которым оформили её как очередной "пазл" для игры FoldIt. В результате игроками была найдена правильная структура.
Немного цифр: поиск продолжался 3 недели - в работе над этим белком принимало участие 600 человек ("игроков") из 41 команды - сгенерировано 1.25 миллиона моделей (на самом деле это не такая уж гигантская цифра - в FoldIt после каждого небольшого внесённого изменения в структуру белка промежуточный результат на всякий случай отправляется на сервер, (супекомпьютер для более подробного "обсчёта". Можно считать проведено 1.25 млн. "манипуляций", хотя тоже прилично - в среднем по 2 тыс на человека). - из них учёными было отобрано 5000 наиболее "перспективных", которые тестировали сравнивая с результатами рентгеновской кристаллографии (там тот случай о котором я раньше писал: когда по кристаллографии невозможно определить исходную структуру/модель исследуемой молекулы, но при данной известной модели можно проверить соответствует ли она экспериментальным наблюдениям). Победила в итоге модель созданная командой The Contenders, давшая почти идеальное совпадение с данными кристаллографии.
Сейчас обсуждается возможность, а не дать ли игрокам FoldIt доступ к данным и соответствующий инструментарий для сравнения моделей которые они создают с экспериментальными данными по этому белку (если они есть конечно), чтобы игроки могли самостоятельно сравнивать модели с экспериментальными данными и лучше понимать в правильном ли направлении они двигаются и что возможно нужно изменить в модели для большего соответствия (формула минимальной энергии, которая сейчас используется, не всегда хороша - часто она заводит модель в "ловушки локальных минимумов"). По сути это уже практически не будет отличаться от того, чем занимаются настоящие учёные занимающиеся кристаллографией, только в форме онлайн "игры" и командного соревнования.
Скачивание дистрибутива игры
[править]Ссылки для скачивания дистрибутива игры:
Учебные головоломки
[править]Их всего тридцать две. Все несложные. Видеоописание как каждую проходить есть на ютубе.
Свойства элементов и правила по-простому объяснены в обучающей части. A стремится приклеиться к B, но отталкивается от C. В результате пользователь получает трёхмерный паззл.
“Сложи это!” - призывает название игры. Программа предлагает игроку лучшую из известных моделей какого-либо белка и небольшой набор инструментов для её изменения: можно дёргать, тянуть и переворачивать элементы. Цель игры - сложить ещё более стабильную и энергетически выгодную для молекулы структуру. Эти параметры просто и прозрачно отражены в получаемых очках. Сложили хорошо - плюс, развалили молекулу вдребезги - минус.
Полезные советы FoldIt
[править]Если не загружаются рецепты - перезагрузите клиент и попробуйте опять добавить рецепты, и у Вас всё получится !
Игра
[править]«FoldIt», скриншот игры. Стрелочками показаны:
Свойства белковой цепи:
1 — слишком близко расположенные атомы;
2 — водородная связь;
3 — гидрофобный аминокислотный остаток; поскольку он не защищен (то есть не спрятан внутрь молекулы белка), на нём «висит» желтая капелька;
4 — гидрофильный аминокислотный остаток;
5 — сегмент белкового «хребта» (то есть основной цепи), имеющий повышенную энергию и поэтому выделенный красным.
Рабочие инструменты игрока:
6 — «резинки», с помощью которых игроки могут управлять автоматическими инструментами;
7 — «замораживание» белкового «хребта», сохраняющее данный участок неизменным при изменениях других областей белка.
Интерфейс игры:
8 — панель, на которой показан текущий статус игрока, включая количество заработанных очков;
9 — список лучших игроков-одиночек и лучших команд;
10 — панель дополнительных инструментов и опций;
11 — чат для общения с другими игроками;
12 — «кулинарная книга» для создания новых автоматических инструментов, или «рецептов», по работе с белком.
Стратегия
[править]В этой игре вам даётся начальная конфигурация структуры белка, где вы можете мышью перетаскивать части белка, изменяя его структуру. Все изменения мгновенно отображаются программой в 3D. Если вы двигаете в правильном направлении, отросток становится зеленым, исчезают красные звездочки, увеличиваются ваши очки. В неправильном случае все наоборот.
Для добавления в свой клиент новых инструментов/рецептов/макросов нужно сделать следующее:
Групповые рецепты зарегистрировавшимся игрокам доступны по следующему адресу: http://fold.it/portal/recipes/group .
Практически все рецепты написаны на второй внутренней версии языка Lua, которая, к сожалению, до сих пор так и не появилась в основной версии клиента. Поэтому для их запуска необходимо перейти в "бета"-версию клиента. Официальная инструкция здесь: http://fold.it/portal/info/faq, вкратце - необходимо найти на своем компьютере файл в папке C:\Documents and Settings\All Users\Application Data\foldit\ options.txt, и в нём поменять строку
"update_group" : "main" на "update_group" : "beta". После этого перезапустить клиента и все новые добавленные рецепты будут работать. А также у Вас появится ещё с десяток новых пазлов.
Общей стратегией игры является получение как можно большего количества очков зарабатываемых при применении рецептов. Большое количество голосов "Votes" и звёзд "Stars" рецептам совершенно не значит, что они приносят много очков. Ниже приведена таблица самых результативных рецептов на 23 марта 2012 года.
Название рецепта | Рейтинг рецепта: звёзд/голосов | Использован раз | Принёс очков | Коэффициент полезности рецепта | примечание |
---|---|---|---|---|---|
Genetic Fuse V1.7 | 4.17 stars (18 votes) | 703 | 330349 | 469.9 | Текст ячейки |
check rebuild 1.0 | 3.85 stars (13 votes) | 1015 | 75243 | 74.1 | Текст ячейки |
Local Wiggle 3-6 (backwards) | 3.36 stars (14 votes) | 334 | 21018 | 62.9 | Текст ячейки |
Compress gently | 3.8 stars (25 votes) | 536 | 29171 | 54.4 | Текст ячейки |
SimpleRebuilder_0.1 | 4 stars (30 votes) | 2099 | 31032 | 14.8 | Текст ячейки |
Just Compress | 4.05 stars (21 votes) | 1603 | 19688 | 12.3 | Текст ячейки |
Описание полезных рецептов FoldIt
[править]Ниже описаны полезные рецепты FoldIt:
Забыл предупредить:
Если не загружаются рецепты в каком то браузере - перезагрузите клиент и попробуйте опять добавить рецепты, и у Вас всё получится !
Забыл предупредить:
Страничка с рецептами и только что открытая игра должны быть запущены одновременно, тогда рецепты в FoldIt сразу появятся в Вашей поварённой книге, жёлтым цветом. (проверено в Google Chrome)
- WS_or_SW
- Описание: Скрипт из текущего положения пробует 4 разных варианта набора очков при различных комбинациях wiggle, shake и clashing. В пазлах с Mutate shake заменяется на mutate.
- Область применения: После каких-либо действий над белком, приведших к уменьшению очков.
- Пример: Из лучшего состояния потяните белок в любую сторону. Количество очков резко уменьшится. Запустите WS_or_SW.
- BlueFuze Mod
- Описание: Скрипт "расслабляет" белок путем комбинаций shake/wiggle при низком clashing. Автор скрипта - vertex. Я просто добавил удобный для себя вывод и обновил версию Lua на котором он написан.
- Область применения: Можно запускать на лучшем варианте, либо после изменений белка для тестирования текущего состояния. Позволяет очень быстро находить очки на ранних стадиях игры. На более поздних - "расслабляет" белок, зарабатывая небольшое количество очков.
- FastRelax Mod
- Описание:Аналог BlueFuze. Скрипт является результатом исследования разработчиков игры на алгоритмы игроков. Работает дольше чем BlueFuze, но в итоге позволяет набрать большее количество очков. Ещё одно отличие - скрипт циклически повторяется, если в результате работы одного цикла улучшение результата составило более 2 очков. В пазлах с Mutate shake заменяется на mutate.
- Область применения: Можно запускать на лучшем варианте, либо после изменений белка для тестирования текущего состояния. Позволяет очень быстро находить очки на ранних стадиях игры. На более поздних - "расслабляет" белок, зарабатывая небольшое количество очков.
- Clashing
- Описание: Скрипт ступенчато расслабляет белок и тестирует результат. Часть принципов работы схожа с BlueFuze и FastRelax. В пазлах с Mutate shake заменяется на mutate.
- Область применения: Запускать на лучшем варианте.
- Параметры запуска: Repeat - указывает надо ли запускать скрипт заново при улучшении результата. По-умолчанию - нет.
- Mutate
- Описание: Делает Mutate один раз (либо shake, если пазл не позволяет mutate).
- Область применения: Пазлы с Mutate. Если запустить Mutate вручную, то часто сложно понять, успел ли он пройтись по всему белку и стоит ли его останавливать. Чтобы не гадать, можно использовать данный скрипт.
- Sidechain Flipper
- Описание: Последовательно перебирает все варианты положения каждой из аминокислот (одну за раз). По логике действия аналогичен shake, но иногда приносит очки.
- Область применения: Запускать на лучшем варианте.
- New Mutate
- Описание: Каждый сегмент, который можно мутировать, мутирует во все возможные аминокислоты. Аналог работы Mutate, приносит очки когда mutate не приносит.
- Область применения:Пазлы с Mutate. Запускать на лучшем варианте.
- Local Wiggle
- Описание:Применяет wiggle локально ко всему белку по частям от начала к концу.
- Область применения: Запускать на лучшем варианте, на конечных стадиях игры. На ранних и средних стадиях игры запускать не желательно (по крайней мере несколько раз подряд), т.к. быстро скатывает белок в локальный максимум, из которого набрать большее количество очков становится затруднительно.
- Параметры запуска: Segment Length - длина сегмента.
- Number of Wiggles - количество итераций wiggle над каждым сегментом.
- Total Wiggle - опция позволяющая применить local wiggle множество раз, начиная с длины сегмента 15 до длины в 1 сегмент (предыдущие параметры при этом не важны). При данной опции из белка выжимается максимум очков, после чего с ним вряд ли что-то можно будет сделать :) Используйте в самом конце.
- Band Test
- Описание: Создает случайную резинку в рамках заданных параметров, делает wiggle, затем тестирует полученный результат.
- Область применения: Запускать на лучшем варианте. Годится для любых стадий игры. Создаваемые резинки случайны, т.е. повторный запуск на том же решении будет давать другой результат. Работа скрипта циклична, т.е. работает пока не остановите.
- Параметры запуска:
- Start Length (percents) - минимально возможная длина резинки (в процентах от текущей длины между сегментами).
- End Length (percents) - минимально возможная длина резинки.
- Clashing - значение clashing, при тестировании белка.
- Quake
- Описание: Создаёт резинки по всему белку через одинаковые промежутки. Затем делает wiggle, что приводит к сжиманию белка, после чего тестирует полученный результат. За один цикл работы перебирает все варианты заданной длины.
- Область применения: Запускать на лучшем варианте.
- Параметры запуска: Segment Length - длина резинок.
- Clashing - значение clashing, при тестировании белка.
- Not shake (0) / Shake (1) / Mutate (2) - еще одна опция для тестирования полученного результата, в целом её можно не трогать. Определяет что делать с белком перед тестированием.
- Rebuild worst
- Описание: Применяет rebuild к сегментам заданной длины, начиная с худшего к лучшему. После чего тестирует полученный результат.
- Область применения: Запускать на лучшем варианте. В начальной стадии игры старается избавится от очень плохих сегментов (красных в сравнении с другими). Т.к. скрипт пытается сделать rebuild почти над всеми сегментами начиная с худшего, работает почти бесконечно, лучше всего остановить после прохождения небольшого числа сегментов.
- Параметры запуска:
- Segment Length - длина сегмента для rebuild. Следует учитывать, что к этому числу добавятся еще два крайних сегмента. Т.е. задав 1 вы получите поиск худшего одинарного сегмента, который затем будет подвержен rebuild вместе с граничащими с ним сегментами.
- Clashing - значение clashing, при тестировании белка.
- Rebuild tries - количество попыток rebuild над каждым сегментом. Важное замечание - если в результате будут улучшены очки, количество пройденных попыток над сегментом сбросится в единицу. Т.е. если вы задали параметр 3, и при первых двух попытках результат не улучшился, а при третьей - улучшился, то вместо того, чтобы перейти к другому сегменту, т.к. количество попыток кончилось, скрипт сбрасывает их до 1 и будет еще минимум 3 раза пытаться сделать rebuild над данным сегментом.
- Rebuiler
- Описание: Применяет rebuild к заданному сегменту. После чего тестирует полученный результат.
- Область применения: Запускать на лучшем варианте. В отличие от Rebuild worst, работает всегда над одним и тем же заданным сегментом до бесконечности.
- Параметры запуска: Start segment - начальный сегмент.
- End segment - конечный сегмент.
- Clashing - значение clashing, при тестировании белка.
- Mutate and Test
- Описание: Имеет три алгоритма работы, нужный задается при запуске. Выбирает мутируемый сегмент и мутирует его в другую аминокислоту. Затем тестирует получившееся решение.Перебирает все возможные вариант последовательно.
- Выбирает два мутируемых сегмента и мутирует их в другие аминокислоты. Затем тестирует получившееся решение. Перебирает все возможные варианы последовательно. Выбирает два мутируемых сегмента и мутирует их в другие аминокислоты. Затем тестирует получившееся решение. Сегменты и аминокислоты выбираются случайным образом.
- Область применения: Пазлы с Mutate. Запускать на лучшем варианте.
- Параметры запуска: Function to run - Номер алгоритма для запуска.
- Freestyle Starter
- Описание: Применяет rebuild к всему белку. После чего тестирует полученный результат (запускает WS_or_SW). Работает бесконечно долго, необходимо остановить при достижении приемлемого результата.
- Пример работы: После загрузки Freestyle или Exploration пазла запускаем данный скрипт. Работает он бесконечно, поэтому я его останавливаю примерно через 12-24 часа. После этого получается более менее нормальный результат по очкам (однако структура самого белка будет ужасной и явно не "природной"). Плюс в том, что полученный результат довольно легко поддается дальнейшим улучшениям, что в итоге может принести хороший результат.
- Область применения: Freestyle puzzles (пазлы у которых при старте одна длинная линия), Exploration puzzles.
Запускать на начальных стадиях игры (либо сразу после загрузки пазла).
- Multistart
- Описание: Находит все начальные позиции для пазлов с несколькими различными стартами. После чего применяет над каждой из них следующую последовательность скриптов, для выявления лучшего старта:
- WS_or_SW
- FastRelax Mod
- Clashing
- Band Test, 20 попыток.
- Rebuild worst, длина сегмента - 2, кол-во попыток - 2, сегментов - 3.
- BlueFuze Mod.
- Rebuild worst, длина сегмента - 1, кол-во попыток - 2,сегментов - 3.
- Clashing.
- Все полученные в итоге результаты сохраняет в quicksave слотах, которые после можно загрузить вручную и сохранить себе.
- Описание: Находит все начальные позиции для пазлов с несколькими различными стартами. После чего применяет над каждой из них следующую последовательность скриптов, для выявления лучшего старта:
Работает достаточно долго (при пяти различных стартах - может занять до суток и более).
- Область применения: Пазлы с несколькими стартами. Запускать в самом начале.
- Autobot
- Описание: Применяет различные, описанные ранее скрипты над пазлом. Последовательность запуска скриптов:
- Описание: Применяет различные, описанные ранее скрипты над пазлом. Последовательность запуска скриптов:
1. Clashing.
2. FastRelax.
3. Band_tests, 30 раз.
4. Rebuild Worst, длина сегмента - 2, кол-во попыток - 1, сегментов - 10.
5. Quake, 1 случайный цикл.
6. BlueFuze.
7. Rebuild Worst, длина сегмента - 1, кол-во попыток - 1,сегментов - 10.
8. Sidechain_shock, random segment.
9. Local_wiggle, 1 случайный цикл.
- После 9 шага снова запускается 1 и т.д., т.е. скрипт работает бесконечно. Кстати, логи работы всех скриптов сохраняются в файле scriptlog.default.xml, который находится в папке с игрой (он перезатирается для каждого нового скрипта). Т.о. для данного скрипта в удобном виде с помощью данного файла можно посмотреть сколько времени потребовалось для каждого шага и сколько очков он принёс.
- Область применения:Запустил и забыл. При лучшем раскладе - загружаешь пазл, запускаешь скрипт и смотришь как он зарабатывает тебе очки до окончания пазла. В реальности - скорость набора очков не позволяет занимать самые топовые места, но в топ 30-50 попасть абсолютно реально.
Из минусов - иногда лучше запустить какой нибудь конкретный скрипт например на ночь, очки наберутся быстрее.
- Пример применения:
- Пример применения:
1. Абсолютно нет времени на игру: загрузил пазл, запустил скрипт (только не забываете хоть иногда выкладывать результаты для команды :) ).
2. Много пазлов: пока я мучаюсь с одним пазлом, на другом компе/ядре работает клиент с данным скриптом например.
Полезные советы FoldIt
[править]- Если не загружаются рецепты - перезагрузите клиент и попробуйте опять добавить рецепты, и у Вас всё получится !
- Горячие кнопки:
- 1 - Режим перемещений
- 2 - Режим структур
- 3 - Режим сносок
- 4 - Режим мутаций
- Колесо мыши: заморозить/разморозить сегмент, долгое нажатие - установить связь между протеинами или чем захотите.
Для программистов
[править]Язык рецептов написан на языке программирования Lua. Поверьте, проще Бейсика.
Рейтинг игроков/стран
[править]- Вступив в команду вы получаете возможность:
- 1. Использовать командные скрипты: https://fold.it/portal/recipes/group
- 2. Использовать решения созданные другими членами команды и участвовать в evolve рейтинге, поднимая тем самым рейтинг всей команды, а также делиться своими решениями с командой.
- 3. Общаться в отдельном командном чате :)
Ссылки
[править]- русскоязычные:
- англоязычные:
См. также
[править]- Очень хорошее 40-минутное видео о FoldIt (на английском языке), основы науки о сворачивании белка, подсчёт очков, CASP, и ответы на многие другие вопросы, касающиеся сворачивания белка: http://www.youtube.com/watch?v=2ad_ZW-mpOk.
- Почитать подробнее о научной стороне игры: The Science Behind Foldit (англ.).