Модуль RNAWorld/Архив
Архив Проекта | |
Пожалуйста, не редактируйте эту страницу! |
- Эта статья — часть материалов: лаборатории Биоинформатика, исследовательского проекта «RNAFoldingAI»
Здесь собраны материалы неудачных попыток, представляющий скорее исторический интерес, а так же выводы о том „как делать не нужно“.
Версия RNAFoldingAI 0.2
Причины создания
Неактуально. Концепции из кода Rosetta 2.3 более не используются, во всех отношениях признаны неудачными.
Предметные причины создания описываются в статье «Геномика бросает вызов искусственному интеллекту». Здесь же мы рассмотрим причины только с точки зрения создания нового программного обеспечения RNAFoldingAI 0.2.
При написании данного ПО, был исследован исходных код ПО Rosetta 2.3 (см. Молекулярное моделирование), который написан преимущественно на Си++ с элементами Фортрана и при этом ориентирован на ОС Linux, и дальнейшее его развитие пошло исключительно для ОС Linux. При ближайшем рассмотрении оказалось:
- Архитектурное качество ПО Rosetta 2.3 находится на очень низком уровне
- Смешан объектно-ориентированный и процедурный стиль, часто используются глобальные переменные
- Использование Си++ утяжеляет программные конструкции
- Использование Фортрана сильно затрудняет процесс отладки (debug`ing)
- Объем кода большой и он не может быть поделен на предметные части, все смысловые части сильно переплетены между собой
Поэтому дальнейшее развитие данного ПО невозможно. Но при всех этих недостатках данное приложение обладает одним несомненным преимуществом - оно работает и проверенно людьми с био-образованием. Кроме того, наверное, это одно из лучших ПО из имеющихся на данный момент.
Подходы к построению многоспиральных цепей РНК
- Проверенные, но не перспективные подходы
Роль компонента RG
Предположение. Компонент RG (радиус гирации) возможно лишний, так как не имеет биологической природы, а лишь указывает на сколько компактна в данный момент цепочка. Наибольший вред данный компонент вносит вначале моделирования, если за начальное положение выбирать растянутую цепь РНК.
Проверка
Данное предположение было проверено и частично опровергнуто. Была получена достаточно интересная неоднозначность. Действительно если не учитывать данный компонент происходит достаточно быстрое снижение энергии. Но получаемый локальный минимум соответствует бесформенному клубку - денатурированному состоянию цепи.
При этом подтверждается (в данном моделировании) положение: „разница энергий между искомой стабильной (нативной) и многими "неверными" конформациями достаточно мала“. Если учесть, что точность энергетических оценок ограничена, то это существенная проблема.
Поэтому данный компонент играет роль водного окружения, моделируя гидрофобный эффект, без которого как известно цепь не сворачивается, а находится в бесформенном состоянии, что и было получено. И его роль важна именно в начале моделирования.
Хиральность
- Основная статья: RNAFoldingAI/Моделирование хиральности многоспиральных цепей РНК
Моделирование сворачивания третичной структуры может пойти по пути различных симметричных вариантов. При этом будут даже образованы ряд (2-4) водородных связей, а остальные будут в достаточной близости (но не будут образованы). Таким образом не моделируя хиральность можно получить несколько возможных псевдо-структур, что и было получено в эксперименте О незначимости энергетической оценки при моделировании РНК.
Белковые цепи сложены только из остатков L-аминокислот ("левых" изомеров). L-D переход (рацемизация) спонтанно в белках практически не происходит. А РНК и ДНК - сложены из сахаров "правых" изомеров. Нам важно это свойство хиральности в больших масштабах - для ориентации многоспиральных цепей РНК.
Комбинация спиралей
При формировании цепи из нескольких спиралей мы уже не свободны вращать любые нуклеотиды. Те нуклеотиды которые входят в уже полученные фрагменты L1 и L2 нельзя вращать, иначе будут снова нарушены водородные связи в этих фрагментах. Но так как получены несколько тысяч вариантов фрагментов L1 и L2 их можно использовать целиком при комбинировании этих спиралей.
Режим8
Со временем оказалось, что в этом нет необходимости
Отличается тем, что поворачиваются не 9 атомов, а 8. Это является принципиальным для метода „РНК-тюнинг“. Все нуклеотиды связаны между собой атомом фосфора (P), поэтому нельзя осуществить независимое вращение отдельного нуклеотида. Но для метода „РНК-тюнинг“ важно, не нарушить положение тех нуклеотидов, которые уже проанализированы и установлены в положение, которое образует водородную связь. Чтобы максимально уменьшить такую вероятность введен режим при котором, на угол образованный фосфором, повороты не осуществляются. При этом, конечно нужно учесть, что в приближенной третичной структуре РНК, атомы фосфора уже установлены в такое положение, которое позволяет вращая только 8 углов найти варианты, которые образуют водородную связь. Иногда это не так, и тогда поиск осуществляется в обычном режиме, что переустанавливает атомы фосфора, а затем уже работает Режим8.
Так, например, нуклеотиды 8-16 установлены в положение, которое образует водородную связь. Далее ищем положение пары нуклеотидов 7-17, находим варианты образования водородной связи. Но, часто повороты, образующие водородную пару в нуклеотидах 7-17, приводят к поворотам нуклеотидов 8-16, и разрывают водородную связь между ними. Это происходит из-за того, что нуклеотиды связаны между собой фосфором. Но при режиме8 можно найти положения нуклеотидов 7-17 не затрагивая нуклеотиды 8-16.
Версия RNAFoldingAI 0.1
Были созданы черновые версии модулей на основе реинжиниринга ПО Rosseta 2.3. Следующие устаревшие ревизии находятся в репозитории SVN: [1]
- №22 - Первая черновая версия проекта RNAFoldingAI. Создает .pdb файл стартового состояния по первичной структуре РНК.
- №23 - Черновая версия модуля RNARotate „Вращение 3-х мерной цепи РНК“
- №24 - Черновая версия модуля RNAEnergyСalc „Расчет энергетических характеристик РНК“
- №25 - Черновая версия модуля FoldingSearchRnd „Поиск структуры с минимальной оценкой энергии цепи случайным перебором“.
- Был выполнен реинжиниринг РНК расчетов из ПО Rosseta. Функциональность воспроизведена, но требует тестирования. Можно начинать думать об архитектуре и написании модуля ИИ. Но уже сейчас можно отметить улучшение ряда архитектурных решений: ПО разделено на предметные модули, убраны лишние ненужные связи между классами.
- №28 - Черновая версия модуля FoldingSearchAI „Поиск структуры с минимальной оценкой энергии цепи применяя методы ИИ“ (Q-learning+)
- №31 - Рефакторинг: разделение AI библиотеки на независимую среду и агента, зависящего только от среды.
- №32 - Переход на реальные биологические тесты. Переделка Q - матрицы, на таблицу базы данных. Обобщение обновления Q-таблицы. + баги
„Поиск структуры с минимальной оценкой энергии цепи применяя методы ИИ“ (Модуль FoldingSearchAI)
- Подход №1. Обучение с подкреплением
- В основу было положено Обучение с подкреплением. Вообще требуется создать новый более совершенный метод ИИ. Но для этого нужно найти слабые стороны и опробовать уже имеющиеся подходы. Начнем с Q-learning (хотя потенциально возможно использовать и генетические алгоритмы и искусственные нейронные сети ).
- Общие принципы реализации среды
- Постановка задачи в терминах Q-learning
- Программная реализация Q-learning+
Зависимости между компонентами
На диаграмме компонентов видны все зависимости между динамическими библиотеками (.dll). Голова проекта (.exe) - это компонент RNAFoldingAI. Он зависит практически от всех остальных библиотек, и по сути лишь регулирует какие использовать компоненты в данный момент. Наоборот, ядро проекта (Core) не зависит ни от чего и содержит самую базовую логику, например, работу с векторами и матрицами, а так же различные константные определения.
Низкоуровневые библиотеки RNACreate, RNARotate, RNAEnergyCalc - зависят от ядра, а две последние от RNACreate. Таким образом, осуществление поворотов (RNARotate) и расчет энергии (RNAEnergyCalc) это независимые между собой модули.
Управляющие библиотеки FoldingSearchRnd, FoldingSearchAI - взаимозаменяемые. По сути FoldingSearchRnd - нужна лишь для сравнения с ПО Rosseta, т.к. осуществляет поиск траектории сворачивания принятым там (случайным поиском) подходом.
С точки зрения интеллектуальных методов интересны две библиотеки: RNAAgent, RNAWorld. Самое важное, что удалось добиться, это практически полная независимость работы среды от агента и агент, зависит только от среды. (детали см. Общие принципы реализации среды).