Конвертер форматов химических формул OPEN BABEL

Автор работы: Пользователь скрыл имя, 16 Марта 2014 в 11:10, курсовая работа

Краткое описание

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

Содержание

Введение…………………..…………………………………………….…3
Особенности…...................................................................................5
Поддержка формата файла…………………………………………5
Цифровые отпечатки и быстрый поиск………….………………..6
Восприятия связи и печатание атома………………………….…..7
Каноническое изображение молекул……………………….…..8
Координирование поколения в 2D и 3D…………………..…….9
Стереохимия ……………………………………………………...10
Силовые поля …………………………………………………….11
Осуществление…………………………………………….……..13
Технические подробности….………………………………….….13
Код архитектуры………………………………………………….14
Расширяемый интерфейс………………………………..……….16
Лицензия Open Source…………………………………………...16
Проверки и тестирования………………………………………..17
Используются в Open Babel…………………….………………20
Приложения………………………………………………….……20
Программирование библиотеки………………………………..21
Примеры использования…………………………………….…..22
Выводы…………………………………………………………….…….25
Библиографический список……………………………...……………..26

Вложенные файлы: 1 файл

openbabel (1).docx

— 502.71 Кб (Скачать файл)

1.6 Стереохимия

Последнее направление Open Babel развития является обеспечение надежного перевода стереохимической информации между форматами файлов. Open Babel 2.3 включает классы для обработки СНГ/пространственно двойной связи стереохимии, четырехгранной стереохимии и площади-планарной стереохимии (последняя находится в стадии разработки), а также восприятие программ для 2D и 3D геометрии, и процедуры для запроса и изменения стереохимии.

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

1.7 Силовые поля

Молекулярной механики предусмотрены функции для работы с малыми молекулами. Типичные области применения включают оценки энергии или их минимизации, отдельно или как часть большого процесса. Выбор реализованного силового поля, позволяет наиболее молекулярные структуры, которые будут использоваться и параметры, которые будут назначены автоматически. В MMFF94 (ы) силовое поле может быть использовано для органических или неорганических молекул. Для молекул, содержащих любой элемент таблицы Менделеева или сложной геометрии (т.е. не поддерживается MMFF94), уф силовое поле может использоваться вместо. Недавно, код, реализующий БАГОР силового поля, также внес свой вклад и выпущен как часть версии 2.3. All forcefields разрешают приложению ограничения в частности, положение атомов, или определение расстояния.

Несколько conformer способов поиска было реализовано с помощью forcefields, все на основе "торсионных-вождений" подход. Этот подход предполагает создание торсионного угла из набора заранее заданных допустимых значений для конкретно вращающихся связей. Наиболее тщательный поиск реализован – это систематический метод поиска, который выполняет итерацию все разрешено торсионных углов для каждой вращающейся связи в молекуле и сохраняет в conformer с наименьшей энергией. Систематический поиск не может быть осуществим для молекулы с несколькими вращающимися связями, количество систематического метода поиска также доступен: метод случайного поиска. Настройка произвольного торсионного угла (из заранее установленных допустимых значений), и взвешенного поиска, систематического метода поиска, который сходится на низкой энергии conformer путем взвешивания частности торсионных углов на основе относительной энергии, произведенной conformer. С Open Babel 2.3, conformer поиск, основанный на генетическом алгоритме также доступен, который позволяет применение фильтров и различных функций оценки. Этот последний метод может быть использован для создания библиотеки бензола, или, как другие методы, чтобы искать низкие энергии conformer.

 

2 Осуществление


2.1 Технические Подробности

Open Babel осуществляется в соответствующий стандартам C++. Это обеспечивает поддержку широко различных компиляторов C++ (MSVC, GCC, Компилятор Intel, MinGW, Звон), операционные системы (Windows, Mac OS X, Linux, BSD, Windows/Cygwin) и платформ (32-бит, 64-бит). Поскольку версия 2.3, она компилируется с помощью CMake системы сборки. Это с открытым исходным кодом, кросс-платформенной сборки системы с расширенными возможностями для зависимостей анализов. Система сборки имеет связанные системы модульного тестирования CTest, чтобы быть скомпилированы и проверены автоматически с результатами, подбор и отображение на централизованных dashboard.

Для упрощения установки Open Babel уже как несколько внешних зависимостей, насколько это возможно. Где такие зависимости существуют, они являются дополнительными. Например, если XML развития библиотеки не доступны, Open Babel будет компилироваться успешно, но никто из XML-форматов (таких как Химический Язык Разметки, CML) будут доступны. Аналогичным образом, если собственные матрицы, не нашли, все классы, которые требует быстрая матрица манипуляций (например OBAlign, которая выполняет наименьших квадратов выравнивание) не будет компилироваться.

В то время как Open Babel библиотека написана на C++, привязок, разработаны для ряда других языков программирования, включая Java и .NET платформы, а также так называемые "динамические" скриптовые языки Perl, Python, и Ruby. Это автоматически генерируемые заголовочные файлы C++ с использованием инструментов. Как описано ранее, в случае Python дополнительный модуль обеспечивает имени Pybel, что упрощает доступ к C++ переплетам. Эти интерфейсы облегчения разработки веб-технологии химии приложений, а также быстрое развитие прототипов.

2.2 Код Архитектуры

Open Babel имеет модульную конструкцию, как показано на Рис. 2. Цель этой конструкции состоит из трех частей:

Рис . 2. Архитектура Open Babel).

1. Для отделения химии, в процессе преобразования и интерфейса пользователя, сокращение насколько это возможно, зависимости одного от другого.

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

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

Основной код можно рассматривать как состоящим из следующих модулей (Рис. 2):

• Химическое Ядро, которое содержит OBMol и т.д., и есть все о химической структуре описание и манипуляции. Это сердце приложения и его API может использоваться в качестве химического toolbox. Это не имеет вход/выход возможности.

• Форматы, чтение и запись в файлы различных типов. Эти классы производные от общего базового класса, OBFormat, который в Конверсии модуля Управления. Они также используют химические процедуры в Химическом Основном модуле. Каждый формат файл содержит глобальные объекты в формате класса. Когда формат загруженного класса конструктор регистрирует присутствие в классе с OBConversion. Это означает, что форматы являются плагины – новые форматы могут быть добавлены без изменения каких-либо рамок код.

• Распространенные. Форматы включают OBMoleculeFormat и XMLBaseFormat из которых большинство других форматов (например, Формат и Формат B на рисунке) являются производными. Независимые форматы как Формат C, также возможны.

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

• Пользовательский Интерфейс, который может быть приложением из командной строки и Графический Интерфейс Пользователя (GUI), или может быть частью другой программы, которая использует Open Babel ввода и вывода средств. Это зависит только от преобразования модуля Управления (obconversion.h включен), но не на Химических Core или на любом из Форматов.

• Цифровой отпечаток, API, а также полезная во внешних программах, работающих по в fastsearch и отпечатков пальцев форматов.

• Цифровой отпечаток, которые бит массивы, описывающие объект и которые способствуют быстрый поиск. Они также построены как плагины, данные, указанные себя в базовый класс OBFingerprint который в цифровом отпечатке API.

• Другие функции, такие как Forcefields, Частичной Зарядки Моделей и Химические Дескрипторов, хотя это и не отражено в диаграмме, обрабатываются аналогично отпечаткам пальцев.

• Обработку ошибок можно использовать в любой программе для регистрации и отображения ошибок и предупреждения.

2.3 Расширяемый интерфейс

Полезность программного обеспечения, библиотек, таких, как Open Babel зависит от способностей проверенных временем, для поддержки новых функций. Чтобы облегчить это, Open Babel реализует плагин интерфейс для формата файлов, цифровые отпечатки, заряд модели, дескрипторы, "операторы" и молекулярную механику Open Babel силовых полей. Это обеспечивает четкое разделение реализации частности, плагин от основного Open Babel библиотека код, и делает его легко для новых плагин (например, новый формат файла) взносов; все, что нужно-одноместный C++ файл и тривиальные изменения в один из файлов сборки. Оператор плагины обеспечивают очень важный механизм для работы с молекулами (например, энергии, минимизации или 3D координат поколения) или в список молекул (например, фильтрация и сортировка) после чтения, но, прежде чем писать.

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

2.4 Лицензия Open Source

Open Babel является open-source программным обеспечением, которое предполагает конечным пользователям и сторонних разработчиков ряд дополнительных прав, не предоставленные в ходе собственного программного обеспечения. Open-source программное обеспечение, на самом базовом уровне, дает пользователям права, чтобы изучить, как их программное обеспечение работает, чтобы адаптировать его для каких-либо целей или иным образом изменить его, и, чтобы разделить программное обеспечение и их модификаций с другими. В этом смысле, с открытым исходным кодом функции в подобных способах процессы открытое рецензирование, публикация и цитирование в науке. Права, предоставляемые open source лицензии во многом совпадают с нормами научного этикета для включения проверяемости, повторяемости, и опираются на ранних результатах теорий.

Кроме этих прав, Open Babel (как и большинство других проектов open-source) предлагает развитие – это значит, что все развитие происходит в общественных форумах, и с общественными код депозиторами. Это приводит к большему входу со стороны сообщества, как любой пользователь может легко представить отчеты об ошибках или функциях предложения, принять участие в дискуссиях о будущем направлении Open Babel или даже стать разработчиком. На практике, количество из активных участников увеличилось за время через этот уровень открытой, публичного развития (Рис. 3) . Кроме того, это означает, что при разработке кодекса он является полностью прозрачным и качество программного обеспечения, доступного для общественности. Действительно, с момента своего создания, более 658 ошибок были представлены общественности трекер и основных.

Рис . 3. Количество вкладчиков с течением времени.

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

2.5 Проверки и тестирования

Open Babel включает в себя огромный набор тестов, включающий 60 различных тестовых программ каждый от десятков до сотен тестов. В начале 2010 года, сборкой инфраструктуры и приборной панели был введен в действие при поддержке Kitware, Inc. Это значительно повысило эффективность качество кода, поймав регрессии, а также гарантирует, что код компилируется на всех платформах и компиляторов, поддерживаемые Open Babel. Некоторые примеры тестов, - запускаются каждую ночь:

(1) В рамках силового  поля MMFF94 код проверяется против MMFF94 проверки suite.

(2) OBAlign класс, который был разработан с использованием Test-Driven Development (TDD) методологии, - работать против своих тестов.

(3) Обработка симметрии  проверяется путем конвертации нескольких тестовых случаев между Smile, 2D и 3D SDF, и InChI (есть также несколько тестовых программ с unit – тесты для отдельных стерео классов в API).

(4) СМАРТС анализатор проверен с использованием более 250 действительных и недействительных СМАРТС узоров, и СМАРТС совпадений проверенных с использованием 125 основных СМАРТС моделей.

(5) ЛССР (по Крайней мере, Набор Маленьких Колец) код проверяется на инвариантности против изменения атом, для ряда молекул полициклических.

Рис . 4. Две неудачи найти в аттестационных испытаниях для чтения/записи Smile.

Другим приоритетным направлением деятельности был алгоритм канонизации, которые могут быть использованы для генерации канонического Smile, а также другие форматы. Алгоритм может быть проверен путем обеспечения, что канонического Smile строка получается даже в случаях, когда порядок атомов в молекуле меняется (при сохранении той же таблицы соединений). Тест подчеркивает все помещения библиотеки, в том числе ароматичностью восприятия, kekulization, стереохимии, и канонизации. Развитие канонизации код в Open Babel был, руководствуясь применением этого критерия в 5,151,179 молекул в eMolecules каталог (от 2011-01-02) с 10 случайных тасует атома порядка. В то время Open Babel 2.2.3 релиз, там были 24,404 неудачи алгоритм канонизации; он уже был сокращен до всего четырех (показано на Рис. 5, < 0.001%). Open Babel ночных тестов, этот тест проходит на количество проблемных молекул. Хотя алгоритм канонизации еще не идеален, текущий уровень производительности (99.99992% успеха на в eMolecules каталог) является приемлемым для общего пользования.

Рис . 5. Четыре неудачи найти в аттестационных испытаниях.

Учитывая, что частота ошибок по канонизации и обработки стереохимии сейчас довольно низкие, следующей темой для Open Babel команды разработчиков для улучшения обработки неявных валентностей "необычному атому". Это особенно важно, для биологических видов и неорганических комплексов.

 

3 Используются в Open Babel


3.1 Приложения

Open Babel пакет состоит из набора пользовательских приложений, а также программированных библиотек. Основным приложением из командной строки является obabel (небольшое обновление на ранее obabel), который облегчает преобразование формата файла, фильтрацию (по ЗАО " СМАРТС", название, описание значение, или поле), 3D или 2D структуры генерации, преобразования водорода из неявных к явным (и наоборот), и удаления мелких фрагментов или дублирует структуры. Ряд функций, предоставляются для обработки multi-молекулы форматы файлов (например, SDF или MOL2) и использовать и управлять информацией в собственности поля и молекулы записей.

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

Информация о работе Конвертер форматов химических формул OPEN BABEL