Картинка для иллюстрации к предыдущему посту. Поясняет, чем отличаются quality и overall_quality друг от друга и от чего зависят
Forwarded from Алексей Хохлов
На недавно прошедшей II Научной конференции «Искусственный интеллект (ИИ) в химии и материаловедении» особое внимание было уделено необходимости создания качественных баз данных по химии (см., https://t.me/khokhlovAR/1126), без которых невозможно разработать эффективные инструменты ИИ в этой области.
В данный момент химики пользуются двумя общепринятыми базами: Reaxys и SciFinder. Но оба сервиса являются иностранными, причем доступа к Reaxys в России сейчас нет. С учетом этого, вопрос о разработке отечественного аналога этих баз является актуальным. Хотел бы здесь привлечь внимание к российской платформе OdanChem (https://odanchem.org), которую я упоминал в своем вступительном слове на круглом столе по базам данных в прошедший четверг:
https://disk.yandex.ru/i/4vv-kIwdU0UmFQ
База OdanChem перекрывает часть функционала SciFinder и Reaxys. В частности, там удобно искать ИК и ЯМР спектры органических молекул, а также есть и свои уникальные возможности. В частности, можно автоматически решать обратную спектроскопическую задачу: поиск молекул, соответствующих заданному пользователем спектру, таким образом разгадывая состав смесей. Существенная часть этой системы находится в открытом доступе.
Разработчики OdanChem сообщили мне, что сегодня на данной платформе была размещена новая версия, в которой стал доступен поиск не только по молекулам, но и по реакциям, что еще больше увеличивает перекрытие функционала с SciFinder и Reaxys. Эта функция уже доступна, там все self-explanatory, но скоро появится и подробная инструкция, как ей пользоваться.
Интересно, что платформа была инициативно сделана выходцами из ИНЭОС РАН за собственные средства, и никакого бюджетного финансирования коллеги не получают. Это уже становится традицией – новые полезные для ученых информационные инструменты разрабатывают одни, а бюджетные деньги за научную информацию для российских ученых получают другие (см. также https://t.me/khokhlovAR/1125).
В данный момент химики пользуются двумя общепринятыми базами: Reaxys и SciFinder. Но оба сервиса являются иностранными, причем доступа к Reaxys в России сейчас нет. С учетом этого, вопрос о разработке отечественного аналога этих баз является актуальным. Хотел бы здесь привлечь внимание к российской платформе OdanChem (https://odanchem.org), которую я упоминал в своем вступительном слове на круглом столе по базам данных в прошедший четверг:
https://disk.yandex.ru/i/4vv-kIwdU0UmFQ
База OdanChem перекрывает часть функционала SciFinder и Reaxys. В частности, там удобно искать ИК и ЯМР спектры органических молекул, а также есть и свои уникальные возможности. В частности, можно автоматически решать обратную спектроскопическую задачу: поиск молекул, соответствующих заданному пользователем спектру, таким образом разгадывая состав смесей. Существенная часть этой системы находится в открытом доступе.
Разработчики OdanChem сообщили мне, что сегодня на данной платформе была размещена новая версия, в которой стал доступен поиск не только по молекулам, но и по реакциям, что еще больше увеличивает перекрытие функционала с SciFinder и Reaxys. Эта функция уже доступна, там все self-explanatory, но скоро появится и подробная инструкция, как ей пользоваться.
Интересно, что платформа была инициативно сделана выходцами из ИНЭОС РАН за собственные средства, и никакого бюджетного финансирования коллеги не получают. Это уже становится традицией – новые полезные для ученых информационные инструменты разрабатывают одни, а бюджетные деньги за научную информацию для российских ученых получают другие (см. также https://t.me/khokhlovAR/1125).
Яндекс Диск
OdanChem.pptx
Посмотреть и скачать с Яндекс Диска
👍4
Как найти методику синтеза вещества с использованием OdanChem
Сейчас у нас уже есть бета-версия поиска по реакциям, и доступных данных будет все больше. Однако, опишу здесь один лайфхак как искать доверенную методику синтеза.
Допустим, вы хотите сварить молекулу. Стандарты работы в органике говорят, что, если молекула получена, для нее нужно зарегистрировать спектр. Поэтому просто ищете по структуре, находите в odanchem ее спектры. Выбираете ту статью, где у молекулы максимальный overall quality, открываете эту статью и саппорт. Наверняка тут будет описан ее синтез. И вот в этот момент вам поможет то, что мы в явном виде приводим описания спектров, а не только ссылку на статью. Копируете строку спектра (лучше не всю, а ее часть, включающую основные сигналы - начало строки спектра мы немного модифицируем для унификации хранения в нашей БД), в саппорте/самой статье нажимаете ctrl+F и сразу попадаете на то место, где описан синтез данной молекулы. И не надо листать 200+ страниц саппорта).
Сейчас у нас уже есть бета-версия поиска по реакциям, и доступных данных будет все больше. Однако, опишу здесь один лайфхак как искать доверенную методику синтеза.
Допустим, вы хотите сварить молекулу. Стандарты работы в органике говорят, что, если молекула получена, для нее нужно зарегистрировать спектр. Поэтому просто ищете по структуре, находите в odanchem ее спектры. Выбираете ту статью, где у молекулы максимальный overall quality, открываете эту статью и саппорт. Наверняка тут будет описан ее синтез. И вот в этот момент вам поможет то, что мы в явном виде приводим описания спектров, а не только ссылку на статью. Копируете строку спектра (лучше не всю, а ее часть, включающую основные сигналы - начало строки спектра мы немного модифицируем для унификации хранения в нашей БД), в саппорте/самой статье нажимаете ctrl+F и сразу попадаете на то место, где описан синтез данной молекулы. И не надо листать 200+ страниц саппорта).
👍4
Поиск по реакциям в OdanChem
#odanchem
Наконец можно подробнее написать про поиск по реакциям. Он возник, это большой шаг для нашей платформы, так как всем его не хватало.
Как обычно, чтобы им воспользоваться, нужно залогиниться. Страница
Мы постарались сделать интерфейс как можно проще.
Просто рисуете что вам нужно найти. Хотите реакцию сразу - в окне кетчера нужно ее изобразить. Система поймет, что это реакция, и будет по ней искать.
Если вы нарисовали молекулу, то надо с использованием выпадающих списков под рисовалкой выбрать, это продукт или исходник, и искать точно или в режиме фрагмента структуры.
После поиска можно уточнить результаты. Наша система позволяет гибко сочетать запросы, например выполнить поиск по реакции, а далее отфильтровать только те хиты, что содержат заявленную молекулу, или оставить только те реакции, которые идут в нужном диапазоне условий.
Сейчас у нас порядка 10 млн реакций, это много, но далеко не все, что хотелось бы. Поэтому мы пока считаем это бета-версией поиска.
#odanchem
Наконец можно подробнее написать про поиск по реакциям. Он возник, это большой шаг для нашей платформы, так как всем его не хватало.
Как обычно, чтобы им воспользоваться, нужно залогиниться. Страница
Мы постарались сделать интерфейс как можно проще.
Просто рисуете что вам нужно найти. Хотите реакцию сразу - в окне кетчера нужно ее изобразить. Система поймет, что это реакция, и будет по ней искать.
Если вы нарисовали молекулу, то надо с использованием выпадающих списков под рисовалкой выбрать, это продукт или исходник, и искать точно или в режиме фрагмента структуры.
После поиска можно уточнить результаты. Наша система позволяет гибко сочетать запросы, например выполнить поиск по реакции, а далее отфильтровать только те хиты, что содержат заявленную молекулу, или оставить только те реакции, которые идут в нужном диапазоне условий.
Сейчас у нас порядка 10 млн реакций, это много, но далеко не все, что хотелось бы. Поэтому мы пока считаем это бета-версией поиска.
👍10🔥6🍌4🎄2
Forwarded from CoLab.ws
Представляем интеграцию 🔥 CoLab.ws и OdanChem🔥
OdanChem — это российский сервис поиска химической информации с самой большой в мире базой ЯМР-спектров.
Одна из ключевых фишек — возможность решения обратной спектроскопической задачи. То есть загрузить спектр и найти какая структура ему соответствует.
В их базе данных содержится:
>17млн ЯМР спектров на 37 типах ядер
>20млн молекул
>2млн ИК-спектров
>500k ВЭЖХ и ГХ
И теперь есть возможность искать по 10млн химических реакций.
1) Теперь в OdanChem можно авторизоваться через кнопку “Login with CoLab.ws”. После входа ваши данные автоматически подтянутся из профиля ученого CoLab — заполнять их вручную больше не нужно.
2) В это же время на страницах публикаций в CoLab и в результатах поиска Cobalt теперь отображается количество молекул и спектров из OdanChem. Нажав на этот счётчик, вы можете сразу перейти к соответствующим данным.
Функция уже доступна для авторизованных пользователей для более чем 880 000 публикаций на CoLab.
👉🏻Также призываем подписаться на канал коллег:
https://t.me/odanchem
OdanChem — это российский сервис поиска химической информации с самой большой в мире базой ЯМР-спектров.
Одна из ключевых фишек — возможность решения обратной спектроскопической задачи. То есть загрузить спектр и найти какая структура ему соответствует.
В их базе данных содержится:
>17млн ЯМР спектров на 37 типах ядер
>20млн молекул
>2млн ИК-спектров
>500k ВЭЖХ и ГХ
И теперь есть возможность искать по 10млн химических реакций.
1) Теперь в OdanChem можно авторизоваться через кнопку “Login with CoLab.ws”. После входа ваши данные автоматически подтянутся из профиля ученого CoLab — заполнять их вручную больше не нужно.
2) В это же время на страницах публикаций в CoLab и в результатах поиска Cobalt теперь отображается количество молекул и спектров из OdanChem. Нажав на этот счётчик, вы можете сразу перейти к соответствующим данным.
Функция уже доступна для авторизованных пользователей для более чем 880 000 публикаций на CoLab.
👉🏻Также призываем подписаться на канал коллег:
https://t.me/odanchem
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤4👍2
Принципы поиска по спектру
#spectrum_search
Данным постом открываю серию публикаций на тему использованию поиска по ЯМР спектру в работе синтетика. Эта концепция не самая стандартная, поэтому для подавляющего большинства синтетиков вообще дико звучит идея "поищи по ЯМР спектру". Для массов благодаря базе NIST к этому все привыкли, для ИК спектров - в целом, тоже, но для ЯМР частая реакция - "А что, так можно было?". Внезапно да, можно и нужно. Будет серия постов, потом они объединятся в большой лонгрид с картинками.
Сегодняшний пост - начало рассуждений о том, как такой поиск вообще может работать, какие есть подводные камни. А потом будут части про то, как он работает у нас, какие-то практические use-case, а также рекомендации.
Все программы для библиотечного поиска, которые я знаю (буду рад в комментариях обсудить другие подходы, концепции, примеры реализации), работают по принципу полнопрофильного сравнения спектров. То есть, допустим, у нас доступна библиотека ИК или масс спектров. Туда залиты экспериментально зарегистрированные и как-то предобработанные данные. По сути, полный профиль. Есть экспериментальный спектр, который мы хотим пробить по базе. Программа предобрабатывает загруженный спектр по аналогии с библиотечными и сравнивает со всеми спектрами в базе. По пути считает какую-то similarity, по которой ранжируется выдача результатов. Математика (алгоритм сравнения) там может быть разная, но общая логика примерно одна - мы каждую точку нашего спектра сравниваем с соответствующей точкой библиотечного. Возможно, когда-то потом сделаю пост с описанием классических алгоритмов поиска.
Схема - отличная, позволяет аккуратно искать по библиотеке, дает довольно точные результаты. Один нюанс - для ее работы нужна база данных с исходниками спектров. Такие базы для МС с ионизацией электронами делает NIST, есть много ИК-баз разного размера от производителей ИК-спектрометров. Новый спектр туда тоже попадает по одной схеме: автор базы должен либо зарегистрировать его сам, либо у кого-то доверенного (то есть автор верит этому кому-то, что спектр соответствует тому, чему заявлено) этот спектр взять. И это работает для коммерчески доступных веществ, но что, если мы хотим базу state-of-the-art молекул?
Можно написать авторам статей, где они опубликованы. Но убедить всех все прислать, стандартизировать формат и т.п. - задача нетривиальная. Но погодите, они УЖЕ описали спектры своих молекул в стандартном общепринятом виде строки спектра. Всем знакомое
Вот их можно попытаться оцифровать и получить список положений пиков. Но ключевая проблема - мы не можем по этим данным полноценно восстановить профиль спектра. Интенсивности на 13С ЯМР зависят от кучи факторов и их обычно не пишут. И, думаю, все это читающие хоть раз забивали на расшифровку сложной мультиплетности (сложнее дублета дублетов) на протоннике и писали "m". Ширина мультиплета тоже не всегда понятна. Поэтому нужен какой-то другой принцип поиска, который мы как раз и реализовали. В чем он заключается - будет следующий пост.
#spectrum_search
Данным постом открываю серию публикаций на тему использованию поиска по ЯМР спектру в работе синтетика. Эта концепция не самая стандартная, поэтому для подавляющего большинства синтетиков вообще дико звучит идея "поищи по ЯМР спектру". Для массов благодаря базе NIST к этому все привыкли, для ИК спектров - в целом, тоже, но для ЯМР частая реакция - "А что, так можно было?". Внезапно да, можно и нужно. Будет серия постов, потом они объединятся в большой лонгрид с картинками.
Сегодняшний пост - начало рассуждений о том, как такой поиск вообще может работать, какие есть подводные камни. А потом будут части про то, как он работает у нас, какие-то практические use-case, а также рекомендации.
Все программы для библиотечного поиска, которые я знаю (буду рад в комментариях обсудить другие подходы, концепции, примеры реализации), работают по принципу полнопрофильного сравнения спектров. То есть, допустим, у нас доступна библиотека ИК или масс спектров. Туда залиты экспериментально зарегистрированные и как-то предобработанные данные. По сути, полный профиль. Есть экспериментальный спектр, который мы хотим пробить по базе. Программа предобрабатывает загруженный спектр по аналогии с библиотечными и сравнивает со всеми спектрами в базе. По пути считает какую-то similarity, по которой ранжируется выдача результатов. Математика (алгоритм сравнения) там может быть разная, но общая логика примерно одна - мы каждую точку нашего спектра сравниваем с соответствующей точкой библиотечного. Возможно, когда-то потом сделаю пост с описанием классических алгоритмов поиска.
Схема - отличная, позволяет аккуратно искать по библиотеке, дает довольно точные результаты. Один нюанс - для ее работы нужна база данных с исходниками спектров. Такие базы для МС с ионизацией электронами делает NIST, есть много ИК-баз разного размера от производителей ИК-спектрометров. Новый спектр туда тоже попадает по одной схеме: автор базы должен либо зарегистрировать его сам, либо у кого-то доверенного (то есть автор верит этому кому-то, что спектр соответствует тому, чему заявлено) этот спектр взять. И это работает для коммерчески доступных веществ, но что, если мы хотим базу state-of-the-art молекул?
Можно написать авторам статей, где они опубликованы. Но убедить всех все прислать, стандартизировать формат и т.п. - задача нетривиальная. Но погодите, они УЖЕ описали спектры своих молекул в стандартном общепринятом виде строки спектра. Всем знакомое
1H NMR (400 MHz, CDCl3) δ 7.37 (dd, J = 7.4, 1.7 Hz, 1H), 7.30 (ddd appears as td, J = 7.9, 1.6 Hz, 1H), 7.25 – 7.19 (m, 2H), 6.99 – 6.91 (m, 2H), 6.75 (t, J = 7.3 Hz, 1H), 6.71 (d, J = 7.5 Hz, 2H), 4.39 (s, 2H), 4.17 (s, 1H), 3.90 (s, 3H).
Вот их можно попытаться оцифровать и получить список положений пиков. Но ключевая проблема - мы не можем по этим данным полноценно восстановить профиль спектра. Интенсивности на 13С ЯМР зависят от кучи факторов и их обычно не пишут. И, думаю, все это читающие хоть раз забивали на расшифровку сложной мультиплетности (сложнее дублета дублетов) на протоннике и писали "m". Ширина мультиплета тоже не всегда понятна. Поэтому нужен какой-то другой принцип поиска, который мы как раз и реализовали. В чем он заключается - будет следующий пост.
❤13👍5🔥4
Принципы поиска по спектру - ч.2
#spectrum_search
Продолжаем рассказывать о том, как работает/может работать поиск по спектру. В прошлый раз мы остановились на том, что классические поиски по библиотеке спектров работают по принципу того или иного сравнения профилей спектров. Алгоритм сравнивает каждую точку в спектре-запросе с соответствующей точкой в библиотечном спектре. Ограничение этого подхода - невозможность разумными средствами собрать базу ЯМР для новых молекул и быстро ее обновлять.
Наша идея заключается в том, что надо как-то оцифровать строковые описания спектров и искать по ним. Текстовый поиск в данном случае - плохая идея. Описания "7.95 (d, J = 7 Hz, 1H)" и "8.0 (m, 1H)" вполне могут соответствовать одному и тому же мультиплету. Да и само количество описанных сигналов может отличаться в зависимости от сложности спектра.
Поэтому мы сделали так: основной режим поиска в OdanChem по спектру отвечает не на вопрос "Насколько один спектр соответствует другому?", а на вопрос "Насколько литературный спектр НЕ ПРОТИВОРЕЧИТ запрошенному?". Иначе говоря, насколько молекулы, для которых в литературе были описаны спектры, МОГУТ присутствовать в СМЕСИ, для которой получен спектр в запросе? Технически, система смотрит, насколько в литературном спектре присутствуют сигналы, которых нет на спектре в запросе с учетом допустимых отклонений в положении сигнала.
Покажем на примере (картинка). Допустим, вы загрузили спектр с положениями сигналов, условно, 10, 20, 30 и 40 ppm. Пока не важно какой тип спектра. В нашей библиотеке есть спектр 1 с сигналами 10, 20, 30, 40, спектр 2 с сигналами 10, 15, 20, 30, 40, и спектр 3 с сигналами 10, 20, 40. Первый спектр полностью совпадает с запросом, он, очевидно, будет в выдаче. Второй спектр - ему противоречит, поскольку в нем есть один лишний сигнал. Третий спектр, напротив, соответствует запросу, так как соответствующее ему вещество вполне могло присутствовать в спектре, по которому выполнен поиск.
Таким образом, мы можем сравнительно быстро понять, а стоит ли вообще рассматривать конкретный литературный спектр дальше, или нет. А потом уже нужно отсортировать найденные хиты по проценту перекрывания с исходным запросом. Явно, что, если мы загрузили 10 пиков и нашлось два литературных спектра, в одном - 7 сигналов, в другом - 5, то первый будет явно лучше соответствовать.
Очевидно, что у такого подхода есть ряд слабых мест, и его эффективность варьируется в зависимости от типа спектра. Об этих аспектах будет следующий пост.
#spectrum_search
Продолжаем рассказывать о том, как работает/может работать поиск по спектру. В прошлый раз мы остановились на том, что классические поиски по библиотеке спектров работают по принципу того или иного сравнения профилей спектров. Алгоритм сравнивает каждую точку в спектре-запросе с соответствующей точкой в библиотечном спектре. Ограничение этого подхода - невозможность разумными средствами собрать базу ЯМР для новых молекул и быстро ее обновлять.
Наша идея заключается в том, что надо как-то оцифровать строковые описания спектров и искать по ним. Текстовый поиск в данном случае - плохая идея. Описания "7.95 (d, J = 7 Hz, 1H)" и "8.0 (m, 1H)" вполне могут соответствовать одному и тому же мультиплету. Да и само количество описанных сигналов может отличаться в зависимости от сложности спектра.
Поэтому мы сделали так: основной режим поиска в OdanChem по спектру отвечает не на вопрос "Насколько один спектр соответствует другому?", а на вопрос "Насколько литературный спектр НЕ ПРОТИВОРЕЧИТ запрошенному?". Иначе говоря, насколько молекулы, для которых в литературе были описаны спектры, МОГУТ присутствовать в СМЕСИ, для которой получен спектр в запросе? Технически, система смотрит, насколько в литературном спектре присутствуют сигналы, которых нет на спектре в запросе с учетом допустимых отклонений в положении сигнала.
Покажем на примере (картинка). Допустим, вы загрузили спектр с положениями сигналов, условно, 10, 20, 30 и 40 ppm. Пока не важно какой тип спектра. В нашей библиотеке есть спектр 1 с сигналами 10, 20, 30, 40, спектр 2 с сигналами 10, 15, 20, 30, 40, и спектр 3 с сигналами 10, 20, 40. Первый спектр полностью совпадает с запросом, он, очевидно, будет в выдаче. Второй спектр - ему противоречит, поскольку в нем есть один лишний сигнал. Третий спектр, напротив, соответствует запросу, так как соответствующее ему вещество вполне могло присутствовать в спектре, по которому выполнен поиск.
Таким образом, мы можем сравнительно быстро понять, а стоит ли вообще рассматривать конкретный литературный спектр дальше, или нет. А потом уже нужно отсортировать найденные хиты по проценту перекрывания с исходным запросом. Явно, что, если мы загрузили 10 пиков и нашлось два литературных спектра, в одном - 7 сигналов, в другом - 5, то первый будет явно лучше соответствовать.
Очевидно, что у такого подхода есть ряд слабых мест, и его эффективность варьируется в зависимости от типа спектра. Об этих аспектах будет следующий пост.
❤3👍3🔥1
Принципы поиска по спектру - ч. 3
#spectrum_search
В предыдущем посте был описан ключевой принцип поиска по спектру, используемый в OdanChem. Напомню, основная идея заключается в том, что мы смотрим, насколько литературный спектр НЕ ПРОТИВОРЕЧИТ запрошенному. Для этого мы проверяем, чтобы пики на спектре из базы соответствовали каким-то пикам на спектре в запросе. И тут естественным образом возникает вопрос про то, а как учитывать возможность сдвига сигнала, из-за, например, концентрационных эффектов или межмолекулярного взаимодействия?
Для каждого типа спектра тут своя погрешность. Для ¹H ЯМР мы считаем адекватным сдвиг на 0.2 ppm, для ¹³С ЯМР - на 0.5. Для спектров других типов все тоже индивидуально. И вот здесь кроется ключевой принцип, который позволяет повысить эффективность работы с системой - зависимость точности поиска от ширины шкалы. Допустим, есть две схожих молекулы, и в них есть СН₂ группа. Для определенности, о-хлорбензиловый спирт и о-аминобензиловый спирт.
Для o-Cl(C₆H₄)CH₂OH можно найти вот такие спектры:
Для o-NH₂(C₆H₄)CH₂OH:
Обратите внимание на сигналы СН₂ группы. В протонных спектрах - это 4.77 и 4.65. Очень близко. Понятно, что они различимы. Но такой сдвиг вполне может объясняться условиями съемки спектра, в том числе концентрацией. И, глядя на данный спектр, нельзя без учета других факторов отдать предпочтение o-NH₂(C₆H₄)CH₂OH или o-Cl(C₆H₄)CH₂OH чисто на основании данного сигнала.
На углеродных спектрах та же СН₂ группа дает сигналы 62.99 и 64.3. Эта разница - существенна. Сдвинуть спектр на 1.3 ppm, конечно, можно, но гораздо сложнее.
Поэтому для автоматизированного поиска по спектру углеродные спектры заметно более надежны. Из-за малого размера рабочей зоны шкалы ¹H ЯМР (по сути, 12 ppm) найдется слишком много спектров, содержащих сигналы, не противоречащие тому же синглету при 4.65. А на углеродных спектрах сигналы распределены по широкой шкале в 240 ppm. И вероятность такого наложения низкая.
В результате, если выполнить поиск по любому из приведенных выше спектров ¹³С ЯМР, то найдется меньше сотни молекул, и в топе выдачи будет соответствующий бензиловый спирт. Более того, если объединить эти два спектра, смоделировав смесь таких спиртов, поиск даст всего лишь 130 молекул, и в топе также будут оба требуемых соединения. А вот, если выполнить поиск по любому из приведенных выше протонных спектров, то будет найдено несколько тысяч молекул, которые не противоречат запрошенному спектру с точки зрения положения сигналов. Все из-за того, что в ¹Н ЯМР слишком высока вероятность наложения сигналов, и в результате точность поиска падает.
Таким образом, поиск по ¹³С ЯМР в OdanChem является вполне самостоятельным инструментом даже без дополнительных фильтров, а результаты поиска по ¹Н ЯМР надо как-то уточнять/фильтровать уже поверх выдачи. Как самостоятельный инструмент они гораздо менее эффективным. Как это делать - опишу в дальнейших постах.
#spectrum_search
В предыдущем посте был описан ключевой принцип поиска по спектру, используемый в OdanChem. Напомню, основная идея заключается в том, что мы смотрим, насколько литературный спектр НЕ ПРОТИВОРЕЧИТ запрошенному. Для этого мы проверяем, чтобы пики на спектре из базы соответствовали каким-то пикам на спектре в запросе. И тут естественным образом возникает вопрос про то, а как учитывать возможность сдвига сигнала, из-за, например, концентрационных эффектов или межмолекулярного взаимодействия?
Для каждого типа спектра тут своя погрешность. Для ¹H ЯМР мы считаем адекватным сдвиг на 0.2 ppm, для ¹³С ЯМР - на 0.5. Для спектров других типов все тоже индивидуально. И вот здесь кроется ключевой принцип, который позволяет повысить эффективность работы с системой - зависимость точности поиска от ширины шкалы. Допустим, есть две схожих молекулы, и в них есть СН₂ группа. Для определенности, о-хлорбензиловый спирт и о-аминобензиловый спирт.
Для o-Cl(C₆H₄)CH₂OH можно найти вот такие спектры:
¹H NMR (400 MHz, CDCl₃): δ 7.59-7.42 (m, 1H), 7.42-7.32 (m, 1H), 7.31-7.14 (m, 2H), 4.77 (s, 2H), 2.22 (s, 1H).
¹³C NMR (CDCl₃, 100 MHz, 298 K) δ (ppm): 138.26, 132.84, 129.47, 128.97, 128.86, 127.15, 62.99;
Для o-NH₂(C₆H₄)CH₂OH:
¹H NMR (400 MHz, CDCl₃) δ 7.13 (td, J =7.7, 1.6 Hz, 1H), 7.09 – 7.03 (m, 1H), 6.76 – 6.66 (m, 2H), 4.65 (s, 2H), 3.58 (s, 3H).
¹³C NMR(101 MHz, CDCl₃) δ 145.9, 129.3, 129.1, 124.7, 118.1, 115.9, 64.3
Обратите внимание на сигналы СН₂ группы. В протонных спектрах - это 4.77 и 4.65. Очень близко. Понятно, что они различимы. Но такой сдвиг вполне может объясняться условиями съемки спектра, в том числе концентрацией. И, глядя на данный спектр, нельзя без учета других факторов отдать предпочтение o-NH₂(C₆H₄)CH₂OH или o-Cl(C₆H₄)CH₂OH чисто на основании данного сигнала.
На углеродных спектрах та же СН₂ группа дает сигналы 62.99 и 64.3. Эта разница - существенна. Сдвинуть спектр на 1.3 ppm, конечно, можно, но гораздо сложнее.
Поэтому для автоматизированного поиска по спектру углеродные спектры заметно более надежны. Из-за малого размера рабочей зоны шкалы ¹H ЯМР (по сути, 12 ppm) найдется слишком много спектров, содержащих сигналы, не противоречащие тому же синглету при 4.65. А на углеродных спектрах сигналы распределены по широкой шкале в 240 ppm. И вероятность такого наложения низкая.
В результате, если выполнить поиск по любому из приведенных выше спектров ¹³С ЯМР, то найдется меньше сотни молекул, и в топе выдачи будет соответствующий бензиловый спирт. Более того, если объединить эти два спектра, смоделировав смесь таких спиртов, поиск даст всего лишь 130 молекул, и в топе также будут оба требуемых соединения. А вот, если выполнить поиск по любому из приведенных выше протонных спектров, то будет найдено несколько тысяч молекул, которые не противоречат запрошенному спектру с точки зрения положения сигналов. Все из-за того, что в ¹Н ЯМР слишком высока вероятность наложения сигналов, и в результате точность поиска падает.
Таким образом, поиск по ¹³С ЯМР в OdanChem является вполне самостоятельным инструментом даже без дополнительных фильтров, а результаты поиска по ¹Н ЯМР надо как-то уточнять/фильтровать уже поверх выдачи. Как самостоятельный инструмент они гораздо менее эффективным. Как это делать - опишу в дальнейших постах.
❤7👍5🔥5
Коллеги выкатывают очередную версию базы данных по растворимости. Если вы вдруг про нее не знали - обратите внимание.
❤3
Forwarded from Chem ML/AI/Datasets
🎊 Спешим поделиться нашим новым и очень важным релизом
MixtureSolDB, dataset of solubility values for organic compounds in binary mixtures of solvents at various temperatures
https://doi.org/10.26434/chemrxiv-2025-m51v8
Многие из вас помнят наш датасет по растворимости BigSolDB 2.0, который мы опубликовали в июле в Scientific Data📕 .
У BigSolDB был один принципиальный недостаток: он не покрывал случаи, когда соединение растворяется в бинарной смеси растворителей, а текущие датасеты (BaoDB, MixSolDB) — на наш взгляд, были слишком небольшими для ML.
Поэтому мы решили собрать самый большой в мире датасет по смесям бинарных растворителей. Так и получился MixtureSolDB.
В него входит:
— 175626 экспериментально измеренных значений растворимости
— 813 уникальных соединений
— 750 уникальных бинарных смесей растворителей
— 3023 уникальные системы растворённое вещество – бинарная смесь растворителей
— данные из 1119 рецензируемых статей
Датасет подходит как для обучения и сравнения различных ML-моделей, так и для прямого анализа экспериментальных данных.
Для удобной визуализации мы также сделали интерактивный веб-интерфейс с 3D-графиками растворимости с возможностью поиска по тривиальным названиям (Aspirin, Paracetamol и т.д.):
https://mixturesoldb.streamlit.app/
Скачать MixtureSolDB можно как всегда на Zenodo:
https://zenodo.org/records/17846307
MixtureSolDB, dataset of solubility values for organic compounds in binary mixtures of solvents at various temperatures
https://doi.org/10.26434/chemrxiv-2025-m51v8
Многие из вас помнят наш датасет по растворимости BigSolDB 2.0, который мы опубликовали в июле в Scientific Data
У BigSolDB был один принципиальный недостаток: он не покрывал случаи, когда соединение растворяется в бинарной смеси растворителей, а текущие датасеты (BaoDB, MixSolDB) — на наш взгляд, были слишком небольшими для ML.
Поэтому мы решили собрать самый большой в мире датасет по смесям бинарных растворителей. Так и получился MixtureSolDB.
В него входит:
— 175626 экспериментально измеренных значений растворимости
— 813 уникальных соединений
— 750 уникальных бинарных смесей растворителей
— 3023 уникальные системы растворённое вещество – бинарная смесь растворителей
— данные из 1119 рецензируемых статей
Датасет подходит как для обучения и сравнения различных ML-моделей, так и для прямого анализа экспериментальных данных.
Для удобной визуализации мы также сделали интерактивный веб-интерфейс с 3D-графиками растворимости с возможностью поиска по тривиальным названиям (Aspirin, Paracetamol и т.д.):
https://mixturesoldb.streamlit.app/
Скачать MixtureSolDB можно как всегда на Zenodo:
https://zenodo.org/records/17846307
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥6👍2
Пример поиска по протонному спектру
#spectrum_search
Выше было три поста с общим описанием поиска по спектру. Но чаще всего мы все пользуемся протонниками, а поиск по ним, как следует из вышесказанного, дает слишком много результатов без применения дополнительных фильтров. Подробно про фильтры — следующий пост. А сейчас просто пример для иллюстрации.
Допустим, вы ставили реакцию как на схеме (первая картинка).
После реакции получился вот такой спектр (вторая картинка).
Что же мы получили? Можно глазами расшифровать. Но давайте попробуем в OdanChem:
1) Разметили все мультиплеты в Mnova, скопировали строку спектра (здесь важно отметить все пики, интенсивность и мультиплетность в данном случае вторичны: для такого поиска нет разницы отметить триплет как триплет или как три синглета):
2) Выполнили поиск по строке спектра в OdanChem — получили 1786 страниц результатов (третья картинка). Слишком много.
3) Поняли, что надо уточнять результаты. Предполагаем, что замещение в бензольное кольцо не пошло. Также алифатическая алкановая часть явно не будет затронута. Применяем
4) Получили всего 8 молекул (пятая картинка). Profit! Произошло гидросилилирование и гидролиз Si—H связи.
#spectrum_search
Выше было три поста с общим описанием поиска по спектру. Но чаще всего мы все пользуемся протонниками, а поиск по ним, как следует из вышесказанного, дает слишком много результатов без применения дополнительных фильтров. Подробно про фильтры — следующий пост. А сейчас просто пример для иллюстрации.
Допустим, вы ставили реакцию как на схеме (первая картинка).
После реакции получился вот такой спектр (вторая картинка).
Что же мы получили? Можно глазами расшифровать. Но давайте попробуем в OdanChem:
1) Разметили все мультиплеты в Mnova, скопировали строку спектра (здесь важно отметить все пики, интенсивность и мультиплетность в данном случае вторичны: для такого поиска нет разницы отметить триплет как триплет или как три синглета):
1H NMR (400 MHz, CDCl3) δ 7.75 – 7.60 (m, 1H), 7.60 (d, J = 1.9 Hz, 1H), 7.58 (d, J = 2.3 Hz, 1H), 7.43 (q, J = 7.6 Hz, 4H), 7.41 – 7.28 (m, 1H), 6.24 (t, J = 6.2 Hz, 1H), 6.20 (t, J = 6.2 Hz, 1H), 6.06 – 5.97 (m, 1H), 2.26 (q, J = 6.9 Hz, 2H), 1.48 (d, J = 14.6 Hz, 1H), 1.43 – 1.34 (m, 2H), 1.35 (s, 5H), 1.31 (s, 4H), 1.32 – 1.16 (m, 1H), 0.98 – 0.79 (m, 6H).
2) Выполнили поиск по строке спектра в OdanChem — получили 1786 страниц результатов (третья картинка). Слишком много.
3) Поняли, что надо уточнять результаты. Предполагаем, что замещение в бензольное кольцо не пошло. Также алифатическая алкановая часть явно не будет затронута. Применяем
substructure filter : рисуем там оба этих фрагмента и в явном виде прорисовываем атомы водорода, чтобы запретить замещения в этих положениях (четвертая картинка).4) Получили всего 8 молекул (пятая картинка). Profit! Произошло гидросилилирование и гидролиз Si—H связи.
🔥7👍4❤2
Основные проблемы при работе (и как их решать)
#odanchem
Коллеги, еще один внеплановый пост. Опишу основные проблемы, с которыми вы можете сталкиваться при работе с системой, и что с ними делать, если столкнулись.
Если вы сталкивались с чем-то еще, пожалуйста, напишите в комментариях.
Проблема: Открыли сайт, пытаетесь открыть кетчер для рисования молекулы, и он не прогружается.
Решение: Закройте модальное окно, подождите несколько секунд, откройте заново. Скорее всего, все будет работать.
Причина: Скорее всего, у вас медленный интернет. Рисовалка большая. Она при первом открытии сайта после открытия браузера должна загрузиться. Могла не успеть.
Проблема: Нарисовали молекулу с обобщенными обозначениями атомов/групп (G*, R, A, ...), а оно не ищет по ним.
Решение: Не использовать обобщенные обозначения атомов. Такая опция у нас до сих пор не реализована. Рекомендуем использовать обычный substructure search.
Проблема: Зашли на сайт, а там только одна кнопка. Где все функции, о которых вы тут пишете?
Решение: Нужно залогиниться/зарегистрироваться. Все сложные поиски и существенная часть базы у нас доступна только после регистрации.
Проблема: Грузилась какая-то страница (например, с результатами exact search), прогрузилось часть данных, а потом, внезапно, белый экран, либо странное сообщение об ошибке.
Решение: Обновите страницу.
Причина: Прервалась связь в процессе загрузки или еще что-то такое. Обычное обновление страницы помогает.
Проблема: Кажется, что поиск завис. Викинг продолжает смеяться, но кажется, что ничего не происходит.
Решение: Скорее всего все ок, и просто поиск долгий. Он может занимать 2-3-5 минут. Можно подождать на данной странице, или закрыть вкладку, а позже открыть историю поиска, и посмотреть там. Если напротив данного поиска показывается ненулевое количество найденных молекул — нажмите на него, он откроется заново, и все прогрузится.
Проблема: Не читается файл спектра.
Решение: Проверьте, что файл соответствует требованиям. То есть это zip-архив, который содержит стандартную папку с прибора (для ЯМР). Папка должна включать все нужные файлы и иметь стандартную структуру. Если все равно не читается — напишите нам, разберемся.
#odanchem
Коллеги, еще один внеплановый пост. Опишу основные проблемы, с которыми вы можете сталкиваться при работе с системой, и что с ними делать, если столкнулись.
Если вы сталкивались с чем-то еще, пожалуйста, напишите в комментариях.
Проблема: Открыли сайт, пытаетесь открыть кетчер для рисования молекулы, и он не прогружается.
Решение: Закройте модальное окно, подождите несколько секунд, откройте заново. Скорее всего, все будет работать.
Причина: Скорее всего, у вас медленный интернет. Рисовалка большая. Она при первом открытии сайта после открытия браузера должна загрузиться. Могла не успеть.
Проблема: Нарисовали молекулу с обобщенными обозначениями атомов/групп (G*, R, A, ...), а оно не ищет по ним.
Решение: Не использовать обобщенные обозначения атомов. Такая опция у нас до сих пор не реализована. Рекомендуем использовать обычный substructure search.
Проблема: Зашли на сайт, а там только одна кнопка. Где все функции, о которых вы тут пишете?
Решение: Нужно залогиниться/зарегистрироваться. Все сложные поиски и существенная часть базы у нас доступна только после регистрации.
Проблема: Грузилась какая-то страница (например, с результатами exact search), прогрузилось часть данных, а потом, внезапно, белый экран, либо странное сообщение об ошибке.
Решение: Обновите страницу.
Причина: Прервалась связь в процессе загрузки или еще что-то такое. Обычное обновление страницы помогает.
Проблема: Кажется, что поиск завис. Викинг продолжает смеяться, но кажется, что ничего не происходит.
Решение: Скорее всего все ок, и просто поиск долгий. Он может занимать 2-3-5 минут. Можно подождать на данной странице, или закрыть вкладку, а позже открыть историю поиска, и посмотреть там. Если напротив данного поиска показывается ненулевое количество найденных молекул — нажмите на него, он откроется заново, и все прогрузится.
Проблема: Не читается файл спектра.
Решение: Проверьте, что файл соответствует требованиям. То есть это zip-архив, который содержит стандартную папку с прибора (для ЯМР). Папка должна включать все нужные файлы и иметь стандартную структуру. Если все равно не читается — напишите нам, разберемся.
❤5👍2🔥2🥰1