Application of mathematical methods and DBMS technologies for solving the problem of crystalline grid identification
Application of mathematical methods and DBMS technologies for solving the problem of crystalline grid identification
Abstract
The work presents a method for applying mathematical methods of identification and classification of crystalline grids using modern programming languages and DBMS. The implementation of this approach opens up broad opportunities for automated analysis of crystalline structures. The discussed methods have the potential for use in such scientific and applied disciplines as crystallography, materials science, and molecular dynamics. The results of the work are promising in terms of the introduction of the suggested methods into scientific research using databases and decision support systems. Automating the process of recognising and classifying crystalline structures can significantly reduce the time required to analyse complex objects and increase the accuracy of predicting their properties.
1. Введение
Изучение кристаллических решеток представляет собой ключевую область науки кристаллографии, направленную на анализ и описание закономерностей пространственного расположения атомов, ионов или молекул в твёрдых веществах. В современное время существует необходимость в модернизации и развитии действующих информационных решений или создании новых вычислительно-программных комплексов, направленных на проведение исследований для анализа кристаллических структур. Также возникает потребность в программном обеспечении, реализующем методы распознавания и классификации кристаллических решеток. На данный момент существует множество программных решений для обработки и анализа данных, однако многие из них являются проприетарными, что затрудняет их модификацию и адаптацию под специфические научные задачи. Кроме того, доступ к некоторым программам может быть ограничен из-за коммерческой лицензии, санкций или прекращения поддержки разработчиками.
На данном этапе работе была поставлена цель — разработать математический и технический аппарат с использованием существующих математических методов, применимых в области кристаллографии. Особенностью технического решения является применение технологий систем управления базами данных для того, чтобы упростить процессы обработки и анализа данных.
Задача распознавания кристаллической решетки имеет множество применений в различных научных отраслях. Одним из примеров может служить математическое моделирование физических процессов в металлических кристаллических решетках . Другой пример — в области материаловедения при исследовании кристаллов может возникнуть проблема определения типа кристаллической решетки из-за большого количества ионов. При работе с множеством координат ионов и других параметров кристаллов возникает необходимость в усовершенствовании процессов ввода и обработки данных. Для решения этой задачи необходимо создать систему распознавания кристаллических решеток. Перспективой развития системы является подбор алгоритмов для расчетов в молекулярной динамике и автоматизация процессов.
Для достижения поставленной цели были сформулированы следующие задачи:
− Разработка алгоритмов распознавания и обработки данных. Алгоритмы будут учитывать различные параметры, такие как симметрия, тип решетки и геометрические характеристики, что позволит корректно интерпретировать данные и проводить их анализ;
− Разработка программы для распознавания кристаллических решеток, которая сможет автоматически распознавать и классифицировать кристаллические решетки, используя координаты ионов в различных поворотах. Ключевым аспектом являются различные типы входных данных, например, международный кристаллографический формат файлов CIF или формат координат ионов XYZ;
− Разработка пользовательского интерфейса. Приоритетной задачей является создание понятного интерфейса, который позволит легко взаимодействовать с приложением и проводить анализ данных.
2. Основная часть
С целью выявления ключевых доминант в проблематике исследования авторами было проведено контент-аналитическое исследование научных публикаций. Изучение, отбор и анализ научных статей позволили обозначить ключевые задачи. В настоящей исследовательской работе применены методы структурного и объектно-ориентированного программирования.
В качестве методов исследования использовался системный подход, теория информационных систем, теория баз данных, подходы к поиску и семантической обработки информации.
2.1. Обзор существующих методов и алгоритмов распознавания кристаллических решеток
Одной из современных задач в области кристаллических решеток является распознание и классификация решеток, которая может осуществляться различными методами: физическими, математическими и симуляционными. В своей работе авторы описывают исследование веществ с кристаллической структурой как сложный многоэтапный процесс. Ключевым этапом анализа кристаллического вещества является оценка параметров элементарной ячейки .
Физические и экспериментальные методы включают дифракционное исследование структуры материалов, интегральное исследование дефектов в кристаллах, рентгеновскую дифракционную микроскопию, электронную микроскопию высокого разрешения, растровую электронную микроскопию и другие . Задачу прогнозирования можно осуществить на данных с изображений рентгеновских дифрактограмм. Компьютерное распознавание изображений (CIR) на дифракционных картинах рентгеновского монокристаллического дифрактометра может повысить точность прогнозирования параметров элементарной ячейки на этапе подготовки к эксперименту, поскольку программное обеспечение может давать ошибочные прогнозы .
Среди математических и алгоритмических методов можно выделить несколько алгоритмов, такие как алгоритм параметрической идентификации на основе оценивания параметров элементарной ячейки Браве, алгоритм параметрической идентификации на основе оценивания объёма ячейки Вигнера–Зейтца, алгоритм параметрической идентификации кристаллических решёток на основе градиентного метода наискорейшего спуска и другие . Различные математические методы являются основой для развития решений с использованием нейронных сетей и машинного зрения. Вычислительные методы и алгоритмы машинного обучения для автоматического извлечения информации имеют решающее значение для развития материаловедения на основе данных .
Вычислительные и симуляционные методы базируются на молекулярной динамике , для изучения структуры материалов, методах Монте-Карло для предсказания структуры и других.
Существует множество программных решений, которые связаны с исследованием кристаллических решеток, таких как изучение их свойств, визуализация, моделирование и других. Среди них можно выделить ряд программных средств, которые связаны со смежными задачами в области кристаллографии, где распознавание и классификация кристаллических решеток является вторичной или узкоспециализированной задачей. В данном исследовании задача распознавания является ключевой и первостепенной.
Некоторые методы могут оказать влияние на смежные задачи в области кристаллографии, например методы сопоставления решеток играют важную роль в характеристике полиморфных форм . Было принято решение отказаться от всех вариантов, рассмотренных в ходе исследования, потому что они не обладают гибким математическим и техническим аппаратом.
Основываясь на общей картине всех методов, акцент в исследовании делается на математических методах и алгоритмах, так как они послужат основой для разработки прикладного программного продукта распознавания кристаллических решеток.
2.2. Математические механизмы. Алгоритмы
В ходе исследования был проведён анализ исходных данных и предметной области, на основе которого были разработаны алгоритмы, лежащие в основе математического аппарата предлагаемого подхода. Указанные алгоритмы формализуют ключевые этапы обработки, интерпретации и анализа информации в рамках поставленной задачи.
Алгоритм, описывающий решение задачи классификации и распознавания типов кристаллических решеток, приведен на блок-схеме (см. рисунок 1).

Рисунок 1 - Блок схема модулей распознавания кристаллических решеток
Пусть имеется множество ионов
Шаги алгоритма:
1. Поиск минимальных координат:
2. Построение радиус-вектора сдвига:
3. Сдвиг каждой координаты. Для каждого иона
4. Результат — возвращается множество
Таким образом, функция сдвига координат реализует оператор преобразования:
где
Второй этап сопровождается вызовом функции нормализации координат, которая принимает на вход неотрицательные координаты и приводит их в обезразмеренный вид (вещественные значения от 0 до 1) для кубических кристаллических решеток. Нормализация позволяет оценивать кристаллические решетки разных веществ без использования конкретных числовых значений координат. Опишем алгоритм функции математически.
Пусть дано множество сдвинутых ионов
Шаги алгоритма:
1. Поиск максимального значения среди всех координат:
2. Если
3. Нормализация координат. Для каждого иона
4. Результат — возвращается множество
Таким образом, функция реализует оператор нормализации:
На третьем этапе выполняется функция поиска кристаллических решеток с соответствующими ионами, которая делает запрос в базу данных по таблице библиотеки ионов и полям нормализованных координат. Алгоритм функции описывается следующим образом:
1. В цикле перебирается каждый ион. Выполняется запрос по таблице библиотеки ионов.
2. В случае ошибки соединение с базой данных закрывается, и функция завершается. Функция возвращает пустой список.
3. Функция возвращает полученные значения единым списком.
На четвертом этапе выполняется функция формирования списка вероятных типов кристаллических решеток и веществ, которая находит все подходящие ионы и отбрасывает вещества, которые не подходят по количеству введенных ионов. Результатом функции является список наиболее вероятных типов кристаллических решеток и веществ, где вероятность выражена в процентном отношении. Решетка и вещество на вершине списка принимаются за предполагаемые (истинные) с рассчитанной вероятностью. Алгоритм функции описывается следующим образом:
1. В цикле перебирается каждый ион. Выполняется запрос по таблице библиотеки ионов. Если вещество в таблице содержит меньше ионов, чем введенное количество, то оно отбрасывается из поиска.
2. Функция считает общее количество найденных веществ и типов кристаллических решеток.
3. Для полученных значений высчитывается вероятность по формуле «(значение / общее_количество) * 100» и выражается в процентах.
4. Списки сортируются по убыванию вероятности.
5. Функция возвращает полученные значения единым списком.
2.3. Проектирование и техническая реализация реализации
2.3.1. Анализ входных данных
Задача распознавания кристаллических решеток может основываться на разных типах входных данных.
− файлы формата CIF (Crystallographic Information File) — международный формат для описания кристаллографических данных;
− изображения кристаллических решеток в различных форматах;
− спектроскопические и другие экспериментальные данные.
Разные типы данных требуют соответствующих алгоритмы обработки и трансформации входных значений, а также методов распознавания кристаллических решеток. Работа с файлами формата CIF является наиболее распространённым решением в исследовании кристаллических решеток при помощи различных методов математического моделирования. Для обработки изображений могут использоваться методы распознавания с использованием машинного зрения и нейросетей. Спектрографические данные обрабатываются комплексом специализированного научного программного обеспечения.
Авторы в своем исследовании рассматривают в качестве входных данных формат CIF, который при описании данных использует 12 словарей для описания различных веществ и их свойств при помощи нескольких тысяч критериальных полей. Описание полей CIF-файлов опирается на информацию из международных таблиц кристаллографии . Была рассмотрена структура CIF-файлов на выборке из порядка 100–150 файлов различных типов кристаллических структур. В ходе анализа файлов были выявлены следующие аспекты:
1. Для разработки алгоритма распознавания кристаллических решеток потребуются не все критериальные поля.
2. Некоторые вещества могут не обладать информацией по различным полям. Например, одними из значимых полей для разработки алгоритма являются координаты атомных ячеек. Для некоторых типов кристаллических структур эти поля отсутствуют, поскольку координаты этих ионов вычисляются итерационно при помощи поворотов точек относительно плоскостей симметрии.
Исходя из всего вышеперечисленного, были выбраны порядка 25 полей для разработки алгоритма распознавания: поля с общей информацией о кристаллических решетках, поля с различными параметрами элементарных ячеек (таких как постоянная кристаллической решетки, объем, углы между осями), поля с номером группы симметрии, поля с описанием химических элементов.
2.3.2. Проектирование базы данных
После этапа анализа критериальных полей были выявлены основные объекты, представление которых будет описываться таблицами базы данных. Разработанная база данных состоит из 4-х таблиц (рисунок 2).

Рисунок 2 - Схема данных
− id — уникальный идентификатор типа кристаллической решетки;
− name_en, name_ru — название типа решетки на английском и русском языке;
− description — описание типа решетки.
Таблица «substances» (вещества) содержит информацию о веществах, включая их параметры кристаллической ячейки. В таблице указываются параметры элементарных ячеек кристаллической решетки вещества и его описание. Основные поля таблицы представлены далее:
− id — уникальный идентификатор вещества;
− name — название вещества;
− cell_length_a, cell_length_b, cell_length_c — постоянные кристаллической ячейки, измеряются в Åнгстремах;
− cell_volume — объем ячейки;
− cell_angle_alpha, cell_angle_beta, cell_angle_gamma — углы между осями в градусах.
Таблица «ions» (ионы) содержит информацию о начальных ионах в кристаллической структуре (например, для вещества NaCl начальными ионами будут Na и Cl). Основные поля таблицы представлены далее:
− id — уникальный идентификатор;
− atom_site_label — метка атомной позиции, уникальный идентификатор атома в структуре;
− atom_site_type_symbol — символ химического элемента или группы атомов, ассоциированных с атомной позицией.
Таблица «ions_library» (библиотека ионов) хранит информацию о координатах ионов в кристаллической структуре (например, для вещества с 50-ю ионами таблица будет содержать 50 строк с координатами каждого иона). Хранит координаты ионов в первоначальном и обезразмеренном виде. Поля таблицы представлены далее:
− id — уникальный идентификатор;
− atom_site_fract_x, atom_site_fract_y, atom_site_fract_z — координаты x, y, z атомного положения в пределах от 0 до 1;
− atom_site_normalized_x, atom_site_normalized_y, atom_site_normalized_z — нормализованные координаты x, y, z в пределах от 0 до 1.
После инициализации база данных заполняется соответствующими данными веществ, их свойств, кристаллических решеток и прочих параметров. В рамках исследования использовалась открытая база данных Crystallographic Open Database.
2.3.3. Выбор среды реализации
Разрабатываемое приложение состоит из базы данных и приложения с пользовательским интерфейсом. Для реализации базы данных была выбрана СУБД MySQL и инструмент разработки MySQL Workbench. Кодовая база проекта реализована с помощью языка программирования Python версии 3.10. Особое внимание уделялось логике программного продукта и его внутренней архитектуре для соблюдения инкапсулируемости функций, что позволяет легко модифицировать программу под различные научные задачи. Были прописаны функции для инициализации базы данных, импорта и преобразования входных данных, математических операций обезразмеривания координат ионов и распознавания кристаллических решеток по обезразмеренным координатам ионов. Также на данный момент идет разработка математической функции получения координат исходя из описания точки и поворотных значений.
3. Обсуждение
На рисунке 3 представлен результат работы программы. В полях, находящихся на левой части интерфейса, вводится количество ионов и их координаты. После нажатия кнопки «СТАРТ» программа преобразует введенные данные и выдает предполагаемый тип решетки и возможное вещество, основываясь на существующих веществах и их решетках из базы данных.
Для примера в качестве входных данных выбраны 22 иона с соответствующими координатами. На выходе программа выдает список наиболее вероятных типов кристаллических решеток и веществ в порядке убывания вероятности совпадения искомых ионов со значениями из базы данных. Поскольку все найденные вещества имеют кубическую кристаллическую решетку, то с вероятностью 100% этот тип принимается за истинный. Найденные вещества перечислены далее potassium chloride (20,37%), disodium oxide (20,37%), hydrogen chloride (12,96%), sodium chloride (12,96%), calcium oxide (12,96%), magnesium oxide (12,96%), tin tantalite (IV) (7,41%). Таким образом наиболее вероятное вещество это хлорид калия или оксид натрия с вероятностью 20,37%.

Рисунок 3 - Демонстрация результата работы приложения
Для анализа было выбрано около 30 простейших веществ, которые имеют кубическую кристаллическую решетку. На выборке из небольшого количества данных программа выдает верный результат с высокой вероятностью. Для более точной проверки работоспособности необходимо проводить тестирование на большей выборке.
4. Заключение
Поставленная задача в разработке программного продукта для задачи распознавания и классификации кристаллических решеток достигнута. Разработанный программный продукт обладает рядом преимуществ:
− программная база приложения реализована на языке программирования Python с подключением библиотек, что обеспечивает гибкость и масштабируемость решения;
− приложение легко модифицировать под конкретные цели или задачи, связанные с классификацией и анализом кристаллических решеток;
− эффективность анализа кристаллических решеток можно повысить с помощью использования продвинутых методов распознавания, таких как методы машинного обучения или нейронных сетей.
При дальнейшем развитии проекта ключевым направлением станет усложнение алгоритмов, что позволит более точно анализировать сложные и искаженные структуры, учитывать влияние внешних факторов и работать с многокомпонентными системами. Внедрение более глубоких архитектур нейронных сетей может значительно повысить точность и скорость обработки данных. Также объединение методов машинного обучение с традиционными физико-математическими моделями кристаллографии может обеспечить баланс между вычислительной эффективностью и интерпретируемостью результатов.
Еще одной перспективной задачей является определение кристаллических решеток схожих веществ, что может быть достигнуто с помощью учета различных углов поворота и растяжения таких решеток.
Таким образом, разработанный программный продукт решает поставленные задачи на текущем этапе и обладает значительным потенциалом для дальнейшего развития в научных исследованиях.
