Научная статья на тему 'Моделирование ИК-спектра смеси веществ с использованием полиморфной перегрузки операторов'

Моделирование ИК-спектра смеси веществ с использованием полиморфной перегрузки операторов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
353
28
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ХЕМОМЕТРИКА / МОДЕЛИРОВАНИЕ / ИК-СПЕКТР / АНАЛИТИЧЕСКАЯ ХИМИЯ / ВЫЧИСЛИТЕЛЬНЫЕ МЕТОДЫ / ПЕРЕГРУЗКА ОПЕРАТОРОВ / CHEMOMENTRICS / SIMULATION / FTIR / ANALYTICAL CHEMISTRY / COMPUTATIONAL METHODS / OPERATOR OVERLOADING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Куперштейн-Чалей П.С., Никехин А.А.

В статье рассмотрен подход к реализации объектно-ориентированной модели спектров в ближнем инфракрасном диапазоне для смесей нескольких химических веществ, принадлежащих разным классам. Спектр смеси, принадлежащих одному классу, в соответствии с законом Бугера-Ламберта-Бера определяется как комбинация спектров исходных веществ, вошедших в состав смеси. Комбинация определяется комбинирующей функцией. В общем случае комбинирующая функция может иметь как линейный, так и нелинейный вид, и различаться для разных пар классов смешиваемых веществ. Так, при смешивании этилового и изопропилового спиртов была экспериментально найдена линейная зависимость результирующего спектра от концентрации спиртов. Комбинирующие функции должны поддерживать свойства коммутативности и ассоциативности присущие процессу смешивания веществ. При этом классы операндов (смешиваемых веществ) определяют выбор функции комбинации. Поддержка этих свойств и явилось постановкой задачи, решение которой описано в статье. Для моделирования инфракрасных спектров был выбран язык программирования С++, облегчавший расчет комбинации спектров возможностью использования технологии ускорения вычислений на GPU (графической карте). Модель строилась в объектно-ориентированном стиле, обеспечивавшем быстрое внесение изменений в код программы и читаемый код. Формула расчета результирующего спектра в коде имеет вид «Smix=ka*Sa + kb*Sb +…», где Smix объект, отражающий спектр результирующей смеси; Sa объект-спектр вещества ‘a’, Sb объект-спектр вещества ‘b’; ka и kb концентрация соответствующего вещества (ka+kb+…=100%) Способом решения поставленной задачи является перегрузка операторов сложения спектров ‘+’ и умножения “*”, соответствующих классу вещества, и определяющих поведение класса. Сами операторы производят вычисления в соответствии с ранее найденной экспериментальной моделью, использующей PCA для расчета подпространства в котором располагаются все спектры двух смешиваемых веществ, операндов. В результате примененного подхода проектирования объектной модели получен читаемый, легко модифицируемый и вычислительно эффективный код.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The article describes the approach to the implementation of an object-oriented model of the near infrared spectra for mixtures of several chemicals, belonging to different chemical classes. The spectrum of the mixture of chemicals of the same class, in accordance with the Beer-Lambert-Bouguer law, can be defined as a combination of the spectra of original chemicals that are included in the mix. The combination result is defined by combining function. In general, the combining function may be either linear or nonlinear, and may vary for different pairs of classes of chemicals to be mixed. For example, the linear dependence of the resulting spectrum of the alcohol concentration was found experimentally by mixing ethanol and isopropanol. Сombining function must have the properties of commutativity and associativity inherent to the operation of mixing of chemicals. Specific operand classes (chemicals to be mixed) determine choice of a combining function. Support for properties of commutativity and associativity as long as polymorphic combining function implementation is the statement of the problem. The solution for this problem is described in the article. The C++ programming language was chosen to build implementation due to the possibility of using GPU (graphics processing unit) acceleration. The model was built in object-oriented style featuring readability and maintainability of the code along with computational efficiency. The statement for calculating the resulting spectrum has the form «Smix = ka * Sa + kb * Sb +...», where Smix an object that contains the spectrum of the resulting mixture; Sa object-spectrum of chemical 'a', Sb object-spectrum of chemical 'b'; ka and kb the concentration of the chemicals (ka + kb +... = 100%) The implemented solution was to overload operators '+' and "*" with polymorphic methods specific for each pair of chemical classes. Operators internally performed rather complicated calculations using the defined experimental model, which uses PCA to calculate a subspace where all the spectra of the two mixed chemicals reside. The algorithm implementation details are out of the scope of this article. The result of this object oriented approach to implementation design was clean, readable, modifiable and computationally efficient model.

Текст научной работы на тему «Моделирование ИК-спектра смеси веществ с использованием полиморфной перегрузки операторов»

3. А.Е.Васильев Развитие логических моделей данных. // http://citforum.ru/database/articles/ref_vs_nav_models

4. Микляев И.А., Формализованное описание основной структуры представления данных матричной универсальной объектно-реляционной базы данных // Вестник Астраханского государственного технического университета. Серия: Управление, вычислительная техника и информатика. 2011. № 1., Астр., С. 61-68

5. Микляев И.А. Матричная универсальная объектно-реляционная база данных на реляционной платформе: монография/ Сев.(Арктич.) федер. Ун-т им. М.В. Ломоносова. - Архангельск: ИД САФУ, 2014. - 226 с.

6. С.Д. Кузнецов. Объектно-ориентированные базы данных - основные концепции, организация и управление: краткий обзор (рус.). CIT Forum. 2011.

7. Жирнова М.А., Микляев И.А., Синтезирование метаинформации и данных Сборник докладов по материалам научно-практической конференции в рамках XLII Ломоносовских чтений / секция «Информационные системы и технологии в экономике и управлении» /Сборник докладов. - Федеральное государственное автономное образовательное учреждение высшего профессионального образования «Северный (Арктический) федеральный университет имени М.В. Ломоносова» филиал в г. Северодвинске Архангельской области институт судостроения и морской арктической техники, 2013. - с., стр. 38-43.

8. И.А. Микляев, П.П. Олейник, С.М. Салибекян., Методы реализации объектных статических моделей в приложениях баз данных. Информационные технологии и вычислительные системы 1/2016 - с., стр. 12-31

9. Микляев И.А., Свидетельство ОФЕРНиО № 14246 (Объединённого фонда электронных ресурсов «Наука и образование») Универсально приложение для матричной универсальной объектно-реляционной базы данных", 2010.

10. Микляев И.А., Никифоровых Д.В. Реализация принципов инкапсуляции и полиморфизма в МУОРБД // Объектные системы - 2016: материалы XII Международной научно-практической конференции (Ростов-на-Дону, 10-12 мая 2016 г.) / Под общ. ред. П.П. Олейника. - Ростов-на-Дону: ШИ (ф) ЮРГПУ (НПИ) им. М.И. Платова, 2016, С. 3337, http://objectsystems.ru/files/2016/Object_Systems_2016_Proceedings.pdf

11. Микляев И.А., Жирнова М.А. Реализация принципов наследования и агрегации в МУОРБД// Объектные системы - 2016: материалы XII Международной научно-практической конференции (Ростов-на-Дону, 10-12 мая 2016 г.) / Под общ. ред. П.П. Олейника. - Ростов-на-Дону: ШИ (ф) ЮРГПУ (НПИ) им. М.И. Платова, 2016, С. 2328, http://objectsystems.ru/files/2016/0bject Systems 2016 Proceedings.pdf

УДК 004.02

МОДЕЛИРОВАНИЕ ИК-СПЕКТРА СМЕСИ ВЕЩЕСТВ С ИСПОЛЬЗОВАНИЕМ ПОЛИМОРФНОЙ ПЕРЕГРУЗКИ ОПЕРАТОРОВ

Куперштейн-Чалей Павел Савельевич, магистрант каф. ИТТЭК, Факультет ЛиСИ, Университет ИТМО, Россия, Санкт-Петербург, kuperchal@hotmail.com Никехин Алексей Алексеевич, к.т.н., ассистент каф. ИТТЭК, Университет ИТМО, Россия, Санкт-Петербург, nikekhin@corp.ifmo.ru

Введение

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

линейный, так и нелинейный вид, и различаться для разных пар классов смешиваемых веществ.

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

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

Для моделирования инфракрасных спектров был выбран язык программирования С++, облегчавший расчет комбинации спектров возможностью использования технологии ускорения вычислений на GPU (графической карте). Модель строилась в объектно-ориентированном стиле, обеспечивавшем быстрое внесение изменений в реализацию программы и легко читаемый код. Формула расчета результирующего спектра в исходном коде имеет вид «Smix=k(A)*S(A) + k(B)*S(B) +...», где Smix - объект, отражающий спектр результирующей смеси; S(A) - объект-спектр вещества 'A', S(B) - объект-спектр вещества 'B'; k(A) и k(A) - концентрация соответствующего вещества (k(A) + k(B) +.=100%)

Способом решения поставленной задачи является перегрузка операторов сложения спектров '+' и умножения "*", соответствующих классу вещества, и определяющих поведение класса. Сами операторы производят вычисления в соответствии с найденной экспериментальной моделью, использующей метод главных компонент (PCA) для расчета подпространства в котором располагаются все спектры двух смешиваемых веществ.

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

Постановка задачи

Сегодня трудно представить аналитическую химию без спектроскопических исследований. Аналитическая спектроскопия решает качественные и количественные задачи различной сложности, предоставляя информацию о составе и свойствах исследуемых объектов. Однако извлечение необходимой информации из спектра является актуальной проблемой, для решения которой всё чаще прибегают к помощи специализированных приложений. [4]

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

В связи с большой вычислительной сложностью решаемых задач для реализации алгоритмов использовался язык программирования C++, предоставляющего возможности использования аппаратных ускорителей вычислений и объектно-ориентированного подхода для создания модели. Объектно-ориентированный подход дает возможность разделения задачи на два уровня абстракции: вычислительного уровня и абстракции предметной области. В результате обеспечивается возможность создания гибких, расширяемых и легко модифицируемых моделей и вычислительных экспериментов при сложной вычислительной составляющей.

В качестве исследуемой смеси использовалась двухкомпонентная спиртовая смесь химически чистых изопропилового и этилового спиртов. ИК-спектры чистых образцов

данных соединений отличаются очень незначительно, что создаёт значительные трудности при определении концентрации смеси данных компонентов с помощью традиционных методов.

В связи с этим была сформулирована задача определить концентрацию веществ в исследуемой смеси, используя в качестве входных данных ИК-спектры «чистых» веществ, составляющих смесь и непосредственно сам ИК-спектр исследуемой смеси.

Для решения задачи определения концентрации и отладки алгоритмов возникла необходимость генерации расчетных спектров на основе экспериментальной модели. [5]

Описание экспериментальной модели

Для построения модели спектра смеси необходимо знать, как изменяются различные параметры ИК-спектра с изменением концентрации её составляющих. Для этого была подготовлена база данных спектров, в которых градация концентраций двух смесей имела следующий формат:

Таблица 1. Градация концентраций исследуемых смесей

Этанол 0 5% 10% 15% 95% 100%

Изопропанол 100% 95% 90% 85% 5% 0%

Для исключения влияния случайных погрешностей, методических погрешностей, погрешностей экспериментатора и с целью проверки воспроизводимости получаемых результатов было проведено 2 серии экспериментов [2]. Исходная база данных включала в себя 2 серии из 21 независимо полученных ИК-спектра, каждый из которых отражает уникальный результат спектроскопических исследований для пары веществ этанол/изопропанол определённой концентрации из градации, приведённой в Таблице 1.

Исходные спектральные данные имеют исходную размерность 1866, что соответствует количеству регистрируемых ИК-частот. Для того, чтобы узнать, как меняются спектральные данные с изменением концентрации в данной паре веществ, необходимо было снизить размерность данных [3]. Для этой цели был применён метод главных компонент (PCA), который позволяет снизить размерность данных, при минимальных потерях полезной информации.

Метод главных компонент, примененный к исходным спектрам, не даёт полезной информации о том, какие изменения претерпевает спектр с изменением концентрации. Виной этому наличие множества «мешающих» факторов, погрешностей. Среди них: шумы (ошибки) измерений, различный масштаб спектральных данных, различное смещение спектральных данных, а также наличие неинформативных участков спектра, которые вносят непредсказуемый вклад в результат работы метод главных компонент. [ 1]

Для решения данных проблем был разработан специальный модуль предобработки спектральных данных, который включает в себя следующие методы: дифференцирование спектра, удаление неинформативных участков, нормализацию (приведение к единому масштабу).

После получения результатов PCA анализа была сформулированная следующая модель: пусть существует два вещества: А и В, для которых получены их спектры такие что: S(A) - есть спектр чистого вещества А (т.е. S {С (А, B) =100, 0%}), S(B) - есть спектр чистого вещества B (т.е. S {С (Л, B) = 0,100%}). Тогда: Smix=k(A)*s(А) + к(В^(В), где Smix -спектр результирующей смеси; к(Л) и к(В) - концентрация соответствующего вещества (к(Л)+к(В)+.. .=100%).

Результаты РСА анализа

Для получения адекватных результатов и проведения оценки изменения спектральных данных с изменением концентрации необходимо было уменьшить размерность с 1866 до 1,

при этом потеряв как можно меньше полезной информации. Благодаря разработанному модулю предобработки процент потерянной «полезной» информации не превышал 10%. Полученная зависимость главной компоненты (РС 1) от концентрации позволила провести общую оценку изменения спектральных данных с изменением концентрации: исходя из полученных данных изменение спектральных данных с изменением концентрации происходит линейно. Дальнейшее построение модели будет базироваться на информации полученной на данном этапе исследования.

Концентрация 0%-100% Рис. 1 - Зависимость счетов первой главной компоненты от концентрации

Для того, чтобы восстановить спектр на основе зависимости, полученной с помощью РСА используется обратное преобразование, которое заключается в извлечении из метода главных компонент информации о спектральных данных конкретной концентрации. Формально метод главных компонент описывается как X = ИБУ1, где X - матрица исходных предобработанных данных, У - матрица нагрузок (каждый столбец есть вектор главных компонент), и - матрица счетов (каждая строка - проекция вектора данных на вектор главных компонент), S - диагональная матрица сингулярных значений.

Матрица Х подвергается обязательной предобработке, которая заключается в вычислении среднего значения относительного пропускания для каждой из 1866 частот по спектрам всех серий, после чего производится «центрирование» данных путём вычитания среднего из каждого спектра каждой серии (не путать с модулем предобработки!). Таким образом, центр образуемой «новой» системы координат будет располагаться в фактическом центре «облака данных».

Тогда, чтобы извлечь из полученной зависимости исходные данные, необходимо произвести следующую операцию: соответствующую строку матрицы V умножить на соответствующий элемент (счёт) результирующей матрицы ИБ и к результату произведения прибавить среднее значение относительного пропускания по всем сериям. Соответствующий строка матрицы У (1865 элементов) определяется номером главной компоненты, а соответствующий элемент результирующей матрицы ИБ определяется соотношением концентрации и номером главной компоненты. Результатом данных преобразований будет 1865 значений относительного пропускания, соответствующих такому же количеству частот, что позволит построить спектр заново.

Описание реализации модели

Реализация модели осуществлена на языке программирования C++, предоставляющего возможности использования аппаратных ускорителей вычислений и объектно-ориентированного подхода для создания модели. Основная вычислительная сложность заключена в реализации операторов сложения спектров, требующей большого объема хорошо параллелизируемых вычислений. Вычисления производились с использованием функций заголовочной библиотеки «boost.compute», входящей в стандартный пакет boost, начиная с версии 1.61, и предоставляющей для программ на С++ оболочку для OpenCL API. Наряду с набором классов для управления объектами OpenCL, такими как device, kernel и command_queue, библиотекой предоставляется реализация контейнеров и алгоритмов, входящих в стандартную библиотеку С++ STL.

Каждый класс веществ, используемых при моделировании спектров смесей, задающий группу веществ с характерной комбинирующей функцией, реализован в форме класса C++ с перегруженными операторами сложения спектров '+' и умножения на коэффициент концентрации "*". В результате, спектр смеси в коде может быть представлен в виде выражения «Smix=k(A)*S(A) + k(B)*S(B) +...», где, напомним S - спектры, k - концентрации составляющих смеси.

Объявление классов реализации без вычислительной части иллюстрировано следующим листингом:

// базовый класс для остальных классов веществ

class Chemical{

protected:

// защищенные спектральные данные public:

// общий оператор композиции спектров

virtual const Chemical operator+(const Chemical& rhs) const { ...; // вычисление спектра смеси

}

// общий оператор расчета концентрации

friend const Chemical operator*(const double& k,

const Chemical& spectrum){ ...; // вычисление спектра с учетом концентрации

}

// коммутативная пара для оператора расчета концентрации friend const Chemical operator*(const Chemical& spectrum,

const double& k){

return k*spectrum;

}

};

// Класс спиртов

class Spirit: public Chemical{

public:

// стандартный оператор using Chemical::operator+;

// переопределенный оператор смешивания(сложения) веществ virtual const Chemical operator+(const Chemical& rhs) const { .; // вычисление спектра смеси

}

// специальный оператор для класса Oil class Oil;

virtual const Chemical operator+(const Oil& rhs) const { .; // вычисление спектра смеси

}

};

// Класс масел

class Oil: public Chemical{

public:

// коммутативная пара для оператора сложения со спиртами virtual const Chemical operator+(const Spirit& spirit){ return spirit + *this;

}

// Пример использования // Исходные вещества Spirit ethanol; Spirit isopropanol; Oil oil;

// Спектры идентичны mix 1 1 == mix 1 2 Chemical mix 11 = 0.6*ethanol + 0.4*isopropanol; Chemical mix 12 = 0.4*isopropanol + 0.6*ethanol; // Спектр разнородных веществ Chemical mix 2 1 = ethanol + oil;

Соответствующая диаграмма классов приведена на рис.2. Классы аппаратных абстракций (GPU) в диаграмму не включены в связи с тем, что вычислительная часть, где они используются, хотя и явилась определяющей в выборе языка программирования, сама по себе не повлияла на объектную модель. Библиотека «boost.compute» используется стандартным образом в соответствии со своей документацией.

Рис. 2 - Диаграмма классов реализации модели

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

Результатом работы реализации модели является расчетный спектр смеси. Для сравнения на рис. 3 сплошной линией отображён характерный участок спектра смеси 50% этанола и 50% изопропанола. Пунктирной линией в едином масштабе изображен измеренный спектр той же смеси.

Рис. 3 - Сравнение измеренного спектра смеси и расчетного спектра в соответствии с моделью

Сравнение расчетных и измеренных спектров для различных концентраций показывает хорошую точность модели.

Выводы

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

Благодаря гибкости модели, в дальнейшем область приложений может быть расширена, а модель адаптирована под любой класс соединений. В перспективе с помощью построения подобной модели станет возможным решение прямой колебательной задачи.

Литература

1. Цикин, А.М. Хемомметрика в анализе многокомпонентных объектов на основе данных ИК, ЯМР И ренгтенофлуоресцентной спектроскопии, отличающихся большим значением взаимной информации: дис. на соиск. учен. степ. канд. хим. наук / Цикин Алексей Максимович; Саратовский Государственный Университет Имени Н.Г. Чернышевского. -Саратов, 2014. - 181 с.

2. Hollas, J.M. Modern Spectroscopy / J. Michael Hollas. - New Jersey: John Wiley & Sons, 2004 -452 p.

3. Lindon, J. Encyclopedia of Spectroscopy and Spectrometry / — 2nd Ed. — Academic Press, 2010.

— 3312 p.

4. Adams, M.J. Chemometrics in Analytical Spectroscopy. Cambridge: Royal Society Chemistry, 1995.

— 238 p.

5. Larkin, P. J. Infrared and Raman spectroscopy: principles and spectral interpretation. — Elsevier, 2011. — 230 p.

i Надоели баннеры? Вы всегда можете отключить рекламу.