Обзор методов описания химических формул
Научно-популярная статья. Сравнительный анализ методов и систем цифрового представления химических формул. Обсуждаются системы: XyMTeX, SMILES, InChi, MDL Molfile и easyChem.
ВведениеИстория химии насчитывает не одну сотню лет. Но только в последние годы происходят активные процессы по переносу всей накопленной информации на цифровые носители данных. В связи с этим остро встал вопрос, каким образом оцифровать химические формулы. Общеизвестно, что в информатике разработано множество методик эффективного управления текстами, графикой, звуком и видео. Для химических формул тоже существуют свои методики. Но они пока ещё находятся в процессе развития и не приобрели достаточно устойчивой формы. Думаю, нет смысла доказывать, что наиболее перспективным источником информации в наше время стал интернет. И в первую очередь это относится к технологии HTML, которая буквально открывает для человека окно в мир при помощи интернет-браузеров. Поэтому, в этой статье я буду делать основной акцент на методы отображения химических формул средствами интернет-браузеров. Строго говоря, HTML расшифровывается так: язык гипер-текстовой разметки. Но уже давно он является вершиной айсберга, образованного множеством различных информационных технологий. Это позволяет пользователю браузера легко находить и использовать самые разнообразные данные по всему миру. Поэтому для краткости далее по тексту я буду использовать термин HTML в широком смысле, включая все возможности современных браузеров. Примитивные методы представления химических формулК сожалению, в настоящее время качество представления химических формул на большинстве сайтов остаётся довольно низким. Часто для этого используется обычный текст. Нередко можно увидеть записи типа CH3CH2OH. Хотя, если добавить разметку, то можно получить CH3CH2OH, что выглядит гораздо лучше. Для этого в HTML приходится делать более сложное описание: CH<sub>3</sub>CH<sub>2</sub>OH. Это несколько сложнее. Поэтому используется не всеми. Но всё же при помощи текста нельзя описывать полноценные структурные формулы. И тут на помощь приходят растровые изображения. Большинство формул, которые мы можем увидеть в интернете, представлены именно так. Другой вопрос, каким образом получены эти изображения. На некоторых сайтах до сих пор выкладываются отсканированные картинки из книг. Как правило, качество таких формул оставляет желать лучшего. Более прогрессивные источники используют изображения, полученные при помощи молекулярных редакторов. А солидные справочники типа PubChem или ChemSpider пользуются специальным программным обеспечением, которое позволяет автоматически строить изображение из какого-то специального описания молекулы. Вот здесь мы уже вплотную приблизились к теме статьи, которая посвящена способам формализованного описания химических формул. Хочу только кратко перечислить основные недостатки растровых изображений:
Но почему же они так популярны, если у них столько недостатков? Просто потому, что долгое время не было никаких других альтернатив. Старый HTML позволял выводить либо текст, либо растровые изображения. Но с появлением технологий HTML5 и SVG всё изменилось. Гораздо более прогрессивным является использование векторной графики. Например, в википедии можно найти формулы в формате SVG. Но широкого применения они пока не получили. Системы описания химических формулНаконец-то мы добрались до сути статьи. Очевидно, что как только возникла потребность хранить формулы в базах данных, сразу появились способы их формализованного описания. Рассмотрим несколько наиболее распространённых систем. • XyMTeXXϒMTeX базируется на весьма известной текстовой системе TEX. Формулы описываются при помощи текстовых команд. Исходный текст конвертируется специальными программами в PDF или PostScript формат. Например, такое описание:
{\red \bzdrv{1=={\blue OH};4=={\green NO$_{2}$}}}
даёт такое изображение :
$color(blue)OH$color(red)|\||`/<|$itemColor(green)NO2>`\\`|//
То есть, довольно легко понять, что бензольное кольцо рисуется командой \bzdrv,
а функциональные группы прикрепляются по номерам узлов: 1 - верхний, 4 - нижний.По сути, XyMTEX представляет собой весьма обширный набор макросов (наподобие \bzdrv), которые расширяют базовый набор команд TEX (наподобие \red). Вот несколько примеров для отображения одного и того же вещества:
\nonaheterovi[di]{5s==\cyclopropanev{2==(yl)}}%
{2SB==CH$_{3}$;2SA==CH$_{2}$OH;3B==OH;4==CH$_{3}$;6SB==CH$_{3}$;6SA==HO;7D==O}
`//<|CH3>`\<_(x-1)_q3_q3>`|<`-dHO><_(A-120,w+)C`H3>/`|O|\//\<_(A-60,w+)CH3><_(x1,d+)CH2OH>|<\wOH>_#1`|
Итог
Есть ещё одна особенность платформы TEX - возможность описывать собственные макросы.
Это позволяет автоматизировать однотипные операции. Тем самым, повышается эффективность процесса вёрстки документа.
Несомненно, достоинством системы является высокое полиграфическое качество.
Поэтому, XyMTeX очень полезен при вёрстке учебников или книг по химии.
Но для публикации в интернете такой способ представления химических формул не получил широкого распространения.
В отличие от других систем, рассматриваемых в этой статье, XyMTeX
предназначен только для визуализации формул.
То есть, высчитать молекулярную массу или брутто-формулу из такого описания нельзя.
Кроме того, XyMTeX довольно тяжёл в освоении. И требует знания базовой платформы TeX.
Новичку не стоит надеяться, что получится быстро сверстать пару формул без долгого изучения документации.
Ведь для каждого типа химических структур нужно найти соответствующий макрос и изучить его параметры.
• SMILESSMILES - весьма оригинальная система для описания химических структур при помощи коротких текстовых описаний. Её принципы были разработаны в 80х годах прошлого века. За прошедшие три десятка лет появилось множество усовершенствованных версий и программных реализаций. Система настолько проста, что её основные принципы можно изложить в нескольких предложениях.
Атомы обозначаются символами периодической системы в квадратных скобках. Например, [Na].
Для элементов-органогенов (B, C, N, O, P, S, F, Cl, Br, I) скобки могут быть опущены.
Одинарные связи указывать не нужно. Запись
Боковые ответвления заключаются в круглые скобки.
Так Циклы описываются при помощи числовых меток:
Можно описывать не только отдельные молекулы, но и уравнения реакций. Например, такая запись:
[I-].[Na+].C=CCBr>>[Na+].[Br-].C=CCI
означает
I^- + Na^+ + H2C=CH-CH2Br -> Na^+ + Br^- + H2C=CH-CH2I
Классический вариант SMILES позволяет описывать одну и ту же молекулу различными способами.
Например, SMILES всегда оперирует только структурными формулами. Поэтому для неорганических молекул и уравнений реакций её описания выглядят непривычно и избыточно:
Описание SMILES записывается в одну строчку, без пробелов. Итог
SMILES является наиболее популярной системой описания молекул.
Большинство систем цифровой обработки химических данных поддерживает этот формат.
Система довольно проста. Текстовые описания простых молекул довольно легко расшифровать и без использования программного обеспечения.
Правда, для больших молекул уже вряд ли получится обойтись без молекулярного редактора.
Для неорганической химии SMILES гораздо менее удобна, чем для описания структурных формул органических молекул.
Внешний вид графической формулы во многом зависит от алгоритма визуализации.
Не получится изобразить фенол несколькими способами, как это демонстрировалось для XyMTeX.
То есть, применение SMILES для полиграфии весьма ограничено.
Кроме того, нет возможности использовать оформление цветами и делать какие-либо подписи или нумерацию.
• The IUPAC International Chemical Identifier (InChI)
Этот формат описания молекул является стандартом IUPAC. И это весомый аргумент в его пользу. Так же, как и SMILES, описание молекулы в InChi записывается в виде одной текстовой строки. И позволяет описывать только структурные формулы. Кроме того, расположение узлов в пространстве полностью определяется алгоритмом визуализации. На этом сходство заканчивается. Вот несколько примеров:
Всё описание InChi делится на секции, разделённые знаком /. Первой секцией всегда является заголовок, вторая - брутто-формула. Остальные секции начинаются с определённой буквы. Так префикс "c" - это секция, определяющая порядок соединения атомов. А "h" - это описание количества атомов водорода. Существуют и другие префиксы, которые появляются только в случае необходимости. Они описывают заряды, хиральность, изотопы и другие свойства молекулы. Очень важным процессом является правильная нумерация узлов. Но правила весьма сложны. Для их понимания требуется приложить значительные усилия.
Пожалуй, стоит упомянуть такое понятие как InChiKey. Итог
Система InChi с самого начала была узко ориентирована на задачи, связанные с идентификацией и поиском в базах данных.
Очевидно, что с эти задачи успешно решены.
Описание InChi получается слишком сложным, чтобы человек мог его составить самостоятельно в текстовом редакторе.
Поэтому создавать и модифицировать такие описание лучше всего при помощи молекулярного редактора.
• MDL MolfilesЭтот формат поддерживается большинством молекулярных редакторов. Кроме того, MOL-файлы можно скачать в интернет-справочниках: ChemSpider, ChEBI и др. Есть расширенная версия данного формата, позволяющая включать дополнительную информацию. Такие файлы обычно имеют расширение SDF. Скачивать их можно из справочника PubChem Рассмотрим описание такой молекулы
O^-`\N^+`|O|`/|`//N`\`||<`\wHO>/\\
5-nitropyridin-3-ol ACD/Labs11211323262D 10 10 0 0 1 0 0 0 0 0 2 V2000 15.8780 -7.4592 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 15.8780 -8.7892 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 14.7261 -6.7942 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 14.7261 -9.4542 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 13.5743 -7.4592 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 13.5743 -8.7892 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 12.4225 -6.7942 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 17.0298 -6.7942 0.0000 N 0 3 0 0 0 0 0 0 0 0 0 0 18.1816 -7.4592 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0 17.0298 -5.4642 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 2 1 1 0 0 0 0 3 1 2 0 0 0 0 4 2 2 0 0 0 0 5 3 1 0 0 0 0 6 4 1 0 0 0 0 6 5 2 0 0 0 0 5 7 1 1 0 0 0 9 8 1 0 0 0 0 10 8 2 0 0 0 0 1 8 1 0 0 0 0 M CHG 2 8 1 9 -1 M END
Итог
MOL-формат позволяет хранить одновременно химические и графические свойства молекулы.
Очевидно, что размер MOL-файла в десятки раз превышает аналогичные описания в других системах.
И хотя данные представлены в текстовом виде, формат ориентирован на обработку молекулярным редактором, а не человеком.
• CharChemНу и конечно же, как автор CharChem, я готов рассказать, зачем понадобилось изобретать ещё одну систему. В настоящее время CharChem - единственная система, позволяющая отображать химические формулы в HTML прямо из описаний. При этом, не требуется устанавливать никакого дополнительного программного обеспечения. Нужен только интернет-браузер. Но почему не взять существующую систему и просто не сделать для неё визуализацию в HTML? Потому что CharChem претендует на то, что с её помощью гораздо удобнее вводить описания химических формул, чем с помощью любой из вышеперечисленных систем. Начнём с того, что существует огромное количество веществ и уравнений реакций, которые записываются рациональными формулами. Давайте посмотрим, какое описание потребуется для такой реакции:
Cr2O3 + 2KNO3 -> K2Cr2O7 + 2NO"|^"
Как видите, описание CharChem самое простое и короткое.
Описания в HTML и TeX не несут в себе химической информации. А SMILES не позволяет ввести коэффициенты.
Теперь рассмотрим принципы описания структурных формул.
Наиболее простой для понимания является SMILES.
Казалось бы, для описания этилового спирта достаточно записать Так же, как и XyMTeX, при помощи CharChem можно нарисовать одну молекулу разными способами:
Для CharChem достаточно запомнить, что палочки означают линию слева направо (сверху вниз). А если есть обратный апостроф - то справа налево (снизу вверх). И этого достаточно, чтобы изобразить множество разнообразных структур. Ну а для того, чтобы "прочитать" описание, нужно проследить за ходом движения палочек. На тестовом стенде можно вводить описание и сразу видеть результат. Вот несколько более сложных примеров, которые демонстрируют возможности CharChem:
Если присмотреться к средней формуле (α-циклодекстрин), можно заметить, что она состоит из 6 одинаковых фрагметнов. А молекула δ-циклодекстрина состоит из 9 таких же фрагментов. Но CharChem позволяет описывает макрокоманды. Таким образом, достаточно описать только одно звено. Остальные генерируются автоматически. Если кратко охарактеризовать основные принципы системы CharChem, то их два:
Итог
Отображение формул из текстовых описаний прямо в html-странице.
Не требуется установки никакого дополнительного программного обеспечения.
Нет какой-либо узкой специализации. Одна система обрабатывает как простые рациональные, так и сложные структурные формулы.
Есть возможность описывать не только одиночные вещества, но и уравнения реакций.
Система проста в изучении и использовании. Описания получаются довольно компактные.
Их можно создавать и редактировать в тексте без использования молекулярного редактора.
Есть возможность автоматизировать однотипные операции при помощи макрокоманд.
Пока что не хватает высокого полиграфического качества получаемых изображений.
Но это недостаток системы визуализации, а не описания. И работа по усовершенствованию CharChem активно продолжается.
В данное время не поддерживается каноническое описание.
То есть, система не слишком хорошо подходит для алгоритмов поиска веществ в базе данных.
Сравнительный анализВ качестве заключения предлагается таблица, где сведены основные характеристики всех обсуждаемых систем.
Конец статьи. Автор: PeterWin. Ноябрь 2013. |