Программная разработка RNAFoldingAI

RNAFoldingAI - программное обеспечение молекулярного моделирования РНК, с элементами искусственного интеллекта. Разрабатывается участниками Викиверситета для проведения исследований в трех направлениях: геномика, искусственный интеллект, гибкое программное обеспечение высокого качества.

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

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

Исходники данного ПО находятся в репозитории SVN, т.е. используется контроль версий. Для ознакомления список ревизий можно посмотреть здесь. Устаревшие версии помещены в АРХИВ.

Изначально был выполнен реинжиниринг РНК расчетов из ПО Rosseta.

Далее следует список ревизий относящихся к версии от RNAFoldingAI 0.2 и выше :

№45 - Версия под кодовым названием "Тюнинг" (RNAFoldingAI 0.2). Осуществлен отказ от "обучения с подкреплением" (программно еще требуется отделить новый подход). Устранены ряд ошибок первичного реинжиниринга, реализовано Исправление оценки VDW, появились функции корреляционно-иерархического поиска.

Причины создания

Предметные причины создания описываются в статье «Геномика бросает вызов искусственному интеллекту». Здесь же мы рассмотрим причины только с точки зрения создания нового программного обеспечения RNAFoldingAI 0.2.

При написании данного ПО, был исследован исходных код ПО Rosetta 2.3 (см. Молекулярное моделирование), который написан преимущественно на Си++ с элементами Фортрана и при этом ориентирован на ОС Linux, и дальнейшее его развитие пошло исключительно для ОС Linux. При ближайшем рассмотрении оказалось:

Архитектурное качество ПО Rosetta 2.3 находится на очень низком уровне

Смешан объектно-ориентированный и процедурный стиль, часто используются глобальные переменные

Использование Си++ утяжеляет программные конструкции

Использование Фортрана сильно затрудняет процесс отладки (debug`ing)

Объем кода большой и он не может быть поделен на предметные части, все смысловые части сильно переплетены между собой

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

Развитие модулей/компонентов

Было решено полностью переписать данное ПО, а точнее создать заново на современном языке C#. Но при этом как в плане изучения, так и тестирования, где это возможно ориентироваться на функциональность ПО Rosetta 2.3.

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