Система описания химических формул для WEB.

Обзор методов описания химических формул

Научно-популярная статья. Сравнительный анализ методов и систем цифрового представления химических формул. Обсуждаются системы: 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. Но широкого применения они пока не получили.

Системы описания химических формул

Наконец-то мы добрались до сути статьи. Очевидно, что как только возникла потребность хранить формулы в базах данных, сразу появились способы их формализованного описания. Рассмотрим несколько наиболее распространённых систем.

XyMTeX

Xϒ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).

Вот несколько примеров для отображения одного и того же вещества:
\bzdrv{1==OH} \bzdrv{2==OH} \bzdrv[r]{1==OH} \bzdrv[l]{1==OH} \bzdrv[A]{1==OH}
OH|\||`/`\\`|// ||`/`\\`|//\/OH OH|\||`/`\\`|// OH|\\|`//`\`||/ OH|\|`/`\`|/_o
А вот более сложная структура:
\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. Новичку не стоит надеяться, что получится быстро сверстать пару формул без долгого изучения документации. Ведь для каждого типа химических структур нужно найти соответствующий макрос и изучить его параметры.

• SMILES

SMILES - весьма оригинальная система для описания химических структур при помощи коротких текстовых описаний. Её принципы были разработаны в 80х годах прошлого века. За прошедшие три десятка лет появилось множество усовершенствованных версий и программных реализаций.

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

Атомы обозначаются символами периодической системы в квадратных скобках. Например, [Na]. Для элементов-органогенов (B, C, N, O, P, S, F, Cl, Br, I) скобки могут быть опущены.
Водород можно не указывать. Он добавляется автоматически.
Можно указать изотоп [235U] (для $M(235)U) и заряд [Fe+3] (для Fe+3).

Одинарные связи указывать не нужно. Запись BrCCO соответствует Br-CH2-CH2-OH или Br\/\OH
Двойные и тройные связи указываются символами = и #. Так С=СC это H2C=CH-CH3, а С#СC это HC%C-CH3.

Боковые ответвления заключаются в круглые скобки. Так CC(C)O это /(*`|*)\OH. А CC(=O)O это /`|O|\OH.

Циклы описываются при помощи числовых меток:

C1CCCCC1 /\|`/`\`|
C1=CC=C2C=CC=CC2=C1 `//`\`||/\\|\//`|`\\`/
C1CC2=CC=CC=C2OC1C3=CC=CC=C3 /\//\||`/`\\<`|>`/O`\<`|>`/||`/`\\`|//\; $color(gray)@:N(n,a,l:.4)#&n_(A&a,L&l,N0)"&n"@(1,-135); @N(2,-90); @N(3,-90); @N(4,-90); @N(5,-45); @N(6,45); @N(7,90); @N(8,90); @N(9,90,.7); @N(10,90,.5); @N(11,-90); @N(12,45); @N(13,90); @N(14,135); @N(15,-135); @N(16,-90)

Можно описывать не только отдельные молекулы, но и уравнения реакций. Например, такая запись:

[I-].[Na+].C=CCBr>>[Na+].[Br-].C=CCI
означает
I^- + Na^+ + H2C=CH-CH2Br -> Na^+ + Br^- + H2C=CH-CH2I

Классический вариант SMILES позволяет описывать одну и ту же молекулу различными способами. Например, BrCC и CCBr.
Однако, существует специальная версия - Каноническая SMILES. Она позволяет получить однозначное описание молекулы. Канонической является запись CCBr. Это весьма полезно, если нужно осуществлять поиск вещества по его описанию в базе данных.

SMILES всегда оперирует только структурными формулами. Поэтому для неорганических молекул и уравнений реакций её описания выглядят непривычно и избыточно:

H2SO4 OS(=O)(=O)O
K2Cr2O7 [O-][Cr](=O)(=O)O[Cr](=O)(=O)[O-].[K+].[K+]
K3[Fe(CN)6] [C-]#N.[C-]#N.[C-]#N.[C-]#N.[C-]#N.[C-]#N.[K+].[K+].[K+].[Fe+3]

Описание SMILES записывается в одну строчку, без пробелов.

Итог

SMILES является наиболее популярной системой описания молекул. Большинство систем цифровой обработки химических данных поддерживает этот формат.
Система довольно проста. Текстовые описания простых молекул довольно легко расшифровать и без использования программного обеспечения. Правда, для больших молекул уже вряд ли получится обойтись без молекулярного редактора.
Для неорганической химии SMILES гораздо менее удобна, чем для описания структурных формул органических молекул.
Внешний вид графической формулы во многом зависит от алгоритма визуализации. Не получится изобразить фенол несколькими способами, как это демонстрировалось для XyMTeX. То есть, применение SMILES для полиграфии весьма ограничено. Кроме того, нет возможности использовать оформление цветами и делать какие-либо подписи или нумерацию.

• The IUPAC International Chemical Identifier (InChI)

Этот формат описания молекул является стандартом IUPAC. И это весомый аргумент в его пользу.
Базовый принцип, положенный в его основу: каждое вещество имеет одно и только одно описание. Учитывая, что современные химические базы данных могут содержать описания миллионов веществ, требуются эффективные способы поиска. InChi призван решить эту проблему.

Так же, как и SMILES, описание молекулы в InChi записывается в виде одной текстовой строки. И позволяет описывать только структурные формулы. Кроме того, расположение узлов в пространстве полностью определяется алгоритмом визуализации. На этом сходство заканчивается.

Вот несколько примеров:
InChI=1S/C2H6O/c1-2-3/h3H,2H2,1H3 @:M(t,a,l:.4)<_(A&a,L&l,N0)$itemColor1(gray)"&t">@; CH3@:Mh(t)@M(&t,-90,.6)@(1)-CH2@Mh(2)-OH@Mh(3)
InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H \@M(2,-45)||@M(1,45)`/@M(3,90)`\\@M(5,135)`|@M(6,-135)//@M(4,-90)
InChI=1S/C6H8O2/c7-5-1-2-6(8)4-3-5/h1-4H2 `/@M(1,45)`-@M(2,135)`\@M(6,-115,.6)`-O@M(8,-115,.6)-/@M(4,-135)-@M(3,-45)\@M(5,-55,.6)=O@M(7,-55,.6)

Всё описание InChi делится на секции, разделённые знаком /. Первой секцией всегда является заголовок, вторая - брутто-формула. Остальные секции начинаются с определённой буквы. Так префикс "c" - это секция, определяющая порядок соединения атомов. А "h" - это описание количества атомов водорода. Существуют и другие префиксы, которые появляются только в случае необходимости. Они описывают заряды, хиральность, изотопы и другие свойства молекулы.

Очень важным процессом является правильная нумерация узлов. Но правила весьма сложны. Для их понимания требуется приложить значительные усилия.

Пожалуй, стоит упомянуть такое понятие как InChiKey.
Запись InChi для сложных молекул может оказаться довольно длинной. Поэтому её не эффективно использовать для поиска в базе данных. Но из неё генерируется хеш-ключ, который состоит из 14 символов для любой формулы.
Таким образом, для каждого из миллионов веществ можно получить уникальный ключ, генерируемый из структурной формулы.
Вот InChiKey для бензола: UHOVQNZJYSORNB-UHFFFAOYSA-N.
А это для витамина B12 (масса которого в 17 раз больше): RMRCNWBMXRMIRW-WYVZQNDMSA-L
Обратное преобразование ключа в InChi-описание уже невозможно.

Итог

Система 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
Строки Назначение
1Заголовок
2Название молекулярного редактора и дата
3Комментарий (не заполнен)
4Число атомов, число связей, ... версия формата V2000
5-14Описание каждого атома в отдельной строке. Включает координаты x, y, z и символ элемента.
15-24Описание каждой связи в отдельной строке: номера связанных атомов и кратность связи.
А вот, для сравнения, описания этого же вещества в других системах:
SMILES O=[N+]([O-])c1cncc(O)c1
InChi InChI=1/C5H4N2O3/c8-5-1-4(7(9)10)2-6-3-5/h1-3,8H
CharChem O^-`\N^+`|O|`/|`//N`\`||<`\wHO>/\\

Итог

MOL-формат позволяет хранить одновременно химические и графические свойства молекулы.
Очевидно, что размер MOL-файла в десятки раз превышает аналогичные описания в других системах.
И хотя данные представлены в текстовом виде, формат ориентирован на обработку молекулярным редактором, а не человеком.

• CharChem

Ну и конечно же, как автор CharChem, я готов рассказать, зачем понадобилось изобретать ещё одну систему.

В настоящее время CharChem - единственная система, позволяющая отображать химические формулы в HTML прямо из описаний. При этом, не требуется устанавливать никакого дополнительного программного обеспечения. Нужен только интернет-браузер.

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

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

Cr2O3 + 2KNO3 -> K2Cr2O7 + 2NO"|^"
CharChem Cr2O3 + 2KNO3 -> K2Cr2O7 + 2NO"|^"
TEX
даже не XyMTeX
Cr$_{2}$O$_{3}$ + 2KNO$_{3}$ → K$_{2}$Cr$_{2}$O$_{7}$ + 2NO↑
HTML Cr<sub>2</sub>O<sub>3</sub> + 2KNO3 → K<sub>2</sub>Cr<sub>2</sub>O<sub>7</sub> + 2NO↑
SMILES O=[Cr]O[Cr]=O.[N+](=O)([O-])[O-].[K+]>>[N+](=O)([O-])[O-].[K+].[N]=O

Как видите, описание CharChem самое простое и короткое. Описания в HTML и TeX не несут в себе химической информации. А SMILES не позволяет ввести коэффициенты.
Кстати, в составе CharChem есть модуль, позволяющий автоматически вычислять коэффициенты.(Открыть)

Теперь рассмотрим принципы описания структурных формул. Наиболее простой для понимания является SMILES. Казалось бы, для описания этилового спирта достаточно записать CCO. Три символа. Что проще?
В CharChem нужно записать 4 символа: /\OH или \/OH. Но зато такая запись понятна даже тому, кто знает химию, но не знает ничего о системах формализованного описания молекул. А ещё можно записать CH3-CH2-OH или C2H5OH.

Так же, как и XyMTeX, при помощи CharChem можно нарисовать одну молекулу разными способами:

XyMTeX \bzdrv{2==OH} \bzdrv[l]{1==OH} \bzdrv[A]{1==OH}
Формула ||`/`\\`|//\/OH OH|\\|`//`\`||/ OH|\|`/`\`|/_o
CharChem ||`/`\\`|//\/OH OH|\\|`//`\`||/ OH|\|`/`\`|/_o
Возможно, на первый взгляд, запись XyMTeX выглядит логичнее. Но во-первых, нужно изучить руководство и узнать, что бензол обозначается bzdrv, и у него есть соответствующие параметры. А если это не бензол, а циклогексан или совсем незнакомое вещество? Значит снова штудировать руководство...
Для CharChem достаточно запомнить, что палочки означают линию слева направо (сверху вниз). А если есть обратный апостроф - то справа налево (снизу вверх). И этого достаточно, чтобы изобразить множество разнообразных структур.
Ну а для того, чтобы "прочитать" описание, нужно проследить за ходом движения палочек.
На тестовом стенде можно вводить описание и сразу видеть результат.

Вот несколько более сложных примеров, которые демонстрируют возможности CharChem:

Антоцианы α-циклодекстрин Фуллерен С60
@:Anthocyanin(R1,R2,R3,R4,R5,R6,R7)`||/<&R1>\\<&R2>|<&R3>`//`\`/|<&R4>`//`\`|`\`//<&R7>|<&R6>\\<&R5>/`|/O^+\\@; @:Tx(a,tx)<_(A&a,L.5,N0)$itemColor1(gray)"&tx">@; @Anthocyanin(@Tx(-150,3')`|$itemColor1(#F00){R1},@Tx(-90,4')/$itemColor1(#00F){R2},@Tx(-50,5')\$itemColor1(#0A0){R3},@Tx(90,3)\$itemColor1(#a243a2){R4},@Tx(40,5)|$itemColor1(#1d1d8f){R5},@Tx(90,6)`/$itemColor1(#00da00){R6},@Tx(-90,7)`\$itemColor1(#a14242){R7}) $L(.9)O\@:ACDg()_q6<_(a-60,d+)O_p6H>_p6<_(a-60,w+)O_p6H>_p6<_(a-120,L.7,w+)H><_p6<_(a-60,w+)_pO_(a85,L.7)H>_p6O_p6_(a0,L.7,w+)H>_q6@()O|@ACDg()O`/@ACDg()O`\@ACDg()O`|@ACDg()O/@ACDg() {}_(x2.92,y3.96,N0)$color(#999)_(x.92)_(x.32,y-.92)_(x-.76,y-.52)_(x-.76,y.52)_#2# $color(#666)_(x-.52,y.72,N2)_(x.48,y.84)_(x1.08,N2)_(x.44,y-.84)_(N2)#3; #4_(x.84,y-.24,N2)_(x.64,y.64)_(x-.32,y1.04,N2)_#10; #9_(x.64,y.4)_(x.96,y-.68)_#13; #12_(x.6,y-.44)_(x-.36,y-1.16)_(x-.8)<_#11>_(x-.84,y-.6,N2)_(x-.84,y.4)<=#5>_(x-.88,y-.36)_(x-.88,y.6,N2)# _(x.12,y.92)<=#6>_(x-.6,y.72)_(x.32,y1,N2)<_#7>_(x-.2,y.76)_(x.92,y.64)<_#8>_(x.52,y.6,N2)_(x1.36)=#14; #15_(x.64,y-.36,N2)_(x.44,y-1.24)=#16; #17_(x-.08,y-.72,N2)_(x-1.12,y-.8)_(x-.72,y.16,N2)<_#19># _(x-1.2)<_#21>_(x-.76,y-.16,N2)_(x-1.08,y.84)_(x-.04,y.72,N2)<_#22>_(x-.36,y1.16)<_#24>_(x-.36,y.68,N2)_(x.4,y1.24)<=#26># $color(#333)_(x.32,y.44)_(x1.28,y.92,N2)<_#28>_(x1.24,y-.16)_(x1.28,y.16)<_#29>_(x1.2,y-.96,N2)<_#30># _(x.24,y-1.16)_(x.52,y-1.16)<_#31>_(x-.52,y-1.44,N2)<_#32>_(x-1.08,y-.6)_(x-.88,y-.88)<_#33>_(x-1.56,N2)<_#36># _(x-.92,y.88)_(x-1.08,y.6)<_#37>_(x-.44,y1.48,N2)<_#40>_(x.52,y1.12)<_#42>$color(#000)_(x1.2,y-0.4,N2)_(x1.52,y1.08)<=#44># _(x1.52,y-1.12)<=#47>_(x-.6,y-1.76)<=#50>_(x-1.88)<=#53>_#57

Если присмотреться к средней формуле (α-циклодекстрин), можно заметить, что она состоит из 6 одинаковых фрагметнов. А молекула δ-циклодекстрина состоит из 9 таких же фрагментов. Но CharChem позволяет описывает макрокоманды. Таким образом, достаточно описать только одно звено. Остальные генерируются автоматически.

Если кратко охарактеризовать основные принципы системы CharChem, то их два:

  1. Большинство химических формул могут быть описаны при помощи простых конструкций, максимально напоминающих привычную для химиков запись.
  2. Простые конструкции всегда имеют функциональные ограничения, не позволяющие описать более сложные и редкие формулы. Поэтому существуют более сложные конструкции, напоминающие макросы XyMTeX.
Таким образом достигнуто сочетание простоты, компактной записи и широких возможностей. Кроме того, автор надеется, что со временем расширится математический аппарат CharChem, который позволит решать различные вычислительные задачи, в которых участвуют химические формулы.

Итог

Отображение формул из текстовых описаний прямо в html-странице. Не требуется установки никакого дополнительного программного обеспечения.
Нет какой-либо узкой специализации. Одна система обрабатывает как простые рациональные, так и сложные структурные формулы. Есть возможность описывать не только одиночные вещества, но и уравнения реакций.
Система проста в изучении и использовании. Описания получаются довольно компактные. Их можно создавать и редактировать в тексте без использования молекулярного редактора.
Есть возможность автоматизировать однотипные операции при помощи макрокоманд.
Пока что не хватает высокого полиграфического качества получаемых изображений. Но это недостаток системы визуализации, а не описания. И работа по усовершенствованию CharChem активно продолжается.
В данное время не поддерживается каноническое описание. То есть, система не слишком хорошо подходит для алгоритмов поиска веществ в базе данных.

Сравнительный анализ

В качестве заключения предлагается таблица, где сведены основные характеристики всех обсуждаемых систем.

Системы →
↓ Возможности
XyMTeX SMILES InChi MDL Molfiles CharChem
Цветовое оформление ДА НЕТ НЕТ НЕТ ДА
Рациональные формулы ДА НЕТ НЕТ частично ДА
Химические реакции ДА ДА НЕТ НЕТ ДА
Выбор внешнего вида формулы ДА частично НЕТ ДА ДА
Полимеры ДА НЕТ НЕТ НЕТ ДА
Макрокоманды ДА НЕТ НЕТ НЕТ ДА
Анализ формулы НЕТ ДА ДА ДА ДА
Представление в каноническом виде НЕТ ДА ДА НЕТ НЕТ

Конец статьи. Автор: PeterWin. Ноябрь 2013.