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🥰2
Фильтры в поиске по спектру.
#spectrum_search
Итак, поговорим про фильтры в поиске по спектру. Напомню ключевой принцип поиска данных в odanchem: сначала выполняется некоторый общий запрос, а далее результаты можно уточнять. В прошлом посте был продемонстрирован именно такой путь.
Имеющиеся в поиске по спектру фильтры можно разбить на два типа: структурные и спектральные.
Если у вас есть какие-то данные о том, что входит или может входить в состав реакционной системы, то это можно использовать в структурных фильтрах. Самый мощный вариант — фильтр по фрагменту структуры (substructure filter). Если вы ожидаете конкретный структурный блок в искомом веществе, то можно этот блок нарисовать, и среди результатов останутся только молекулы, содержащие данный фрагмент структуры. Помните о возможности задания атомов водорода в явном виде. Если вы где-то его не прорисовали, то там может быть любой заместитель. А если прорисовали — там заместителя точно не будет. Это полезно при условии понимания, какие исходные молекулы у вас были, и какие фрагменты молекулы точно не будут реагировать.
Второй структурный фильтр — по молекулярной массе. Тут можно использовать результаты, например, ГХ-МС или ВЭЖХ-МС. Если по масс-спектру вы видите, что молекулярная масса вашего вещества, условно, 156 Да, то можно задать фильтр по массе от 155.5 до 156.5. Если у вас есть HRMS, то можно еще сузить диапазон. Система фильтрует по моноизотопной массе, так как заточена именно под комбинацию ЯМР + МС.
Спектральный фильтр — это, в первую очередь, фиксация обязательных пиков (Mandatory peaks filter). Если вы видите, что какой-то из сигналов особенно интенсивен, или вы понимаете, что именно он вам нужен, можно его зафиксировать. Тогда у вас в результатах выдачи останутся только те спектры, которые содержат данный сигнал. Может быть полезно для последовательного разбора состава смеси.
Наконец, важная опция — установить допустимое число потерянных сигналов (can be missed). Как обсуждалось в предыдущих постах, наш поиск чувствителен к тому, чтобы все пики были хорошо видны. Если какой-то пик не прокопился, то соответствующая ему молекула не найдется. Добавление возможности потери одного пика решает данную проблему. Но важно учитывать, что при этом количество результатов возрастет на порядок.
В заключение к данному посту напомню: чем шире шкала, тем лучше идет поиск по пикам (пост с описанием причины). Поэтому, с высокой вероятностью, при поиске по ¹³С ЯМР фильтры вообще не понадобятся. А вот при поиске по протонному спектру использование фильтров, по сути, обязательно.
Кроме того напомню, что некоторые поиски у нас могут занимать несколько минут. Это нормально. Можно вкладку с таким поиском закрыть, а потом вернуться к ней из истории поиска.
#spectrum_search
Итак, поговорим про фильтры в поиске по спектру. Напомню ключевой принцип поиска данных в odanchem: сначала выполняется некоторый общий запрос, а далее результаты можно уточнять. В прошлом посте был продемонстрирован именно такой путь.
Имеющиеся в поиске по спектру фильтры можно разбить на два типа: структурные и спектральные.
Если у вас есть какие-то данные о том, что входит или может входить в состав реакционной системы, то это можно использовать в структурных фильтрах. Самый мощный вариант — фильтр по фрагменту структуры (substructure filter). Если вы ожидаете конкретный структурный блок в искомом веществе, то можно этот блок нарисовать, и среди результатов останутся только молекулы, содержащие данный фрагмент структуры. Помните о возможности задания атомов водорода в явном виде. Если вы где-то его не прорисовали, то там может быть любой заместитель. А если прорисовали — там заместителя точно не будет. Это полезно при условии понимания, какие исходные молекулы у вас были, и какие фрагменты молекулы точно не будут реагировать.
Второй структурный фильтр — по молекулярной массе. Тут можно использовать результаты, например, ГХ-МС или ВЭЖХ-МС. Если по масс-спектру вы видите, что молекулярная масса вашего вещества, условно, 156 Да, то можно задать фильтр по массе от 155.5 до 156.5. Если у вас есть HRMS, то можно еще сузить диапазон. Система фильтрует по моноизотопной массе, так как заточена именно под комбинацию ЯМР + МС.
Спектральный фильтр — это, в первую очередь, фиксация обязательных пиков (Mandatory peaks filter). Если вы видите, что какой-то из сигналов особенно интенсивен, или вы понимаете, что именно он вам нужен, можно его зафиксировать. Тогда у вас в результатах выдачи останутся только те спектры, которые содержат данный сигнал. Может быть полезно для последовательного разбора состава смеси.
Наконец, важная опция — установить допустимое число потерянных сигналов (can be missed). Как обсуждалось в предыдущих постах, наш поиск чувствителен к тому, чтобы все пики были хорошо видны. Если какой-то пик не прокопился, то соответствующая ему молекула не найдется. Добавление возможности потери одного пика решает данную проблему. Но важно учитывать, что при этом количество результатов возрастет на порядок.
В заключение к данному посту напомню: чем шире шкала, тем лучше идет поиск по пикам (пост с описанием причины). Поэтому, с высокой вероятностью, при поиске по ¹³С ЯМР фильтры вообще не понадобятся. А вот при поиске по протонному спектру использование фильтров, по сути, обязательно.
Кроме того напомню, что некоторые поиски у нас могут занимать несколько минут. Это нормально. Можно вкладку с таким поиском закрыть, а потом вернуться к ней из истории поиска.
🔥6👍3
Экзистенциальный пост: иллюстрация, зачем нужен поиск по спектру и вообще OdanChem
#odanchem
#spectrum_search
Мы на протяжении нескольких постов рассказывали про то, как работает поиск по спектру, а также проиллюстрировали это примером работы чисто с ¹Н ЯМР.
По сути, мы создали инструмент, позволяющий в полуавтоматическом режиме разгадывать состав реакционных смесей. И это можно использовать много где, в том числе для поиска новых реакций!
Как, вообще говоря, мы находим новые реакции?
Классический часто декларируемый вариант: подумали и предположили, что из молекулы А в условиях Х можно получить молекулу В. Проверили — работает. Порадовались, оптимизировали — готова новая реакция. Проблема этого подхода — на практике он редко реализуется. Да, есть случаи, но чаще всего происходит второй вариант.
Частый практический вариант: Хотели получить молекулу В из вещества А, но внезапно получили что-то другое. Разобрались, что это, поняли, почему так произошло, и вот готова новая реакция. Ключевое тут — понять, что произошло, расшифровать структуру того вещества, которое получилось вместо ожидаемого. Это получается не у всех. И вот здесь поможет OdanChem.
Наша платформа позволяет работать с самым рутинным из существующих методов определения структуры органических молекул. Без ЯМР органики — как без рук. Кроме того, данный метод является бесконтактным, то есть можно зарегистрировать спектр с реакционной смеси, не изменяя ее состав (как мы все понимаем, при выделении часть компонентов смеси может разложиться/превратиться еще во что-то). Именно поэтому концепция "Зарегистрировать ЯМР с реакционной смеси" → "полуавтоматически расшифровать ее состав" выглядит крайне заманчиво.
Именно это было нами реализовано и подтверждено на двух примерах ранее не описанных реакциях: попроще и посложнее.
Подробнее читайте в нашем свежем препринте. В последующих постах подробнее опишем, что там было сделано и как.
#odanchem
#spectrum_search
Мы на протяжении нескольких постов рассказывали про то, как работает поиск по спектру, а также проиллюстрировали это примером работы чисто с ¹Н ЯМР.
По сути, мы создали инструмент, позволяющий в полуавтоматическом режиме разгадывать состав реакционных смесей. И это можно использовать много где, в том числе для поиска новых реакций!
Как, вообще говоря, мы находим новые реакции?
Классический часто декларируемый вариант: подумали и предположили, что из молекулы А в условиях Х можно получить молекулу В. Проверили — работает. Порадовались, оптимизировали — готова новая реакция. Проблема этого подхода — на практике он редко реализуется. Да, есть случаи, но чаще всего происходит второй вариант.
Частый практический вариант: Хотели получить молекулу В из вещества А, но внезапно получили что-то другое. Разобрались, что это, поняли, почему так произошло, и вот готова новая реакция. Ключевое тут — понять, что произошло, расшифровать структуру того вещества, которое получилось вместо ожидаемого. Это получается не у всех. И вот здесь поможет OdanChem.
Наша платформа позволяет работать с самым рутинным из существующих методов определения структуры органических молекул. Без ЯМР органики — как без рук. Кроме того, данный метод является бесконтактным, то есть можно зарегистрировать спектр с реакционной смеси, не изменяя ее состав (как мы все понимаем, при выделении часть компонентов смеси может разложиться/превратиться еще во что-то). Именно поэтому концепция "Зарегистрировать ЯМР с реакционной смеси" → "полуавтоматически расшифровать ее состав" выглядит крайне заманчиво.
Именно это было нами реализовано и подтверждено на двух примерах ранее не описанных реакциях: попроще и посложнее.
Подробнее читайте в нашем свежем препринте. В последующих постах подробнее опишем, что там было сделано и как.
👍14🔥2
Продолжение о нашем препринте.
Представьте себе, у вас был ТГФ, ацетат кобальта, синтез-газ (смесь угарного газа с водородом), автоклав и масляная баня. Не то, что бы это все было прямо нужно в лаборатории, но, если работаете с газами, то нужно идти до конца.
В общем, вы это все смешали и погрели (первая картинка). Из общих соображений, особо ничего произойти не должно (ТГФ — он растворитель, в нем Гриньяра делают, ну что может пойти не так?). Но на практике получается сложная смесь алифатических продуктов. Протонный спектр выглядит как-то так (вторая картинка).
Ясно, что с ТГФ что-то случилось. Но что? Можно предположить те или иные структуры, но выглядит откровенно мутно.
Пробуем разобраться. Взяли довольно большую загрузку реакционной смеси, удалили на роторе легколетучие растворители (остатки ТГФ), зарегистрировали с этого ¹³С ЯМР. Получилось так (третья картинка):
Запускаем поиск по спектру .
Получилось 12 страниц результатов, что много, но не ужасно. Далее надо проглядеть их на предмет соответствия здравому смыслу и принципиальной возможности образования таких молекул из ТГФ. В топе много алифатических спиртов и эфиров. В том числе циклических. В том числе тетрагидропирановые, а также ацетальные.
С этим уже можно работать, разбираться что там и как. Но принципиально уже отсюда можно понять, что образуются молекулы, родственные показанному на четвертой картинке.
Далее смесь разделили, выделили вот такие вот молекулы (пятая картинка). И это даже уточняющие фильтры не применяли. А с их помощью можно еще сильнее сузить выдачу данных.
Представьте себе, у вас был ТГФ, ацетат кобальта, синтез-газ (смесь угарного газа с водородом), автоклав и масляная баня. Не то, что бы это все было прямо нужно в лаборатории, но, если работаете с газами, то нужно идти до конца.
В общем, вы это все смешали и погрели (первая картинка). Из общих соображений, особо ничего произойти не должно (ТГФ — он растворитель, в нем Гриньяра делают, ну что может пойти не так?). Но на практике получается сложная смесь алифатических продуктов. Протонный спектр выглядит как-то так (вторая картинка).
Ясно, что с ТГФ что-то случилось. Но что? Можно предположить те или иные структуры, но выглядит откровенно мутно.
Пробуем разобраться. Взяли довольно большую загрузку реакционной смеси, удалили на роторе легколетучие растворители (остатки ТГФ), зарегистрировали с этого ¹³С ЯМР. Получилось так (третья картинка):
13C NMR (101 MHz, CDCl3) δ 102.92, 98.78, 78.03, 77.48, 76.84, 70.77, 68.45, 67.99, 67.70, 67.57, 67.35, 65.78, 65.13, 64.32, 62.47, 62.25, 38.59, 37.74, 35.56, 33.94, 32.38, 31.97, 31.81, 30.73, 29.52, 27.68, 26.20, 26.01, 25.48, 25.11, 23.10, 22.91, 22.02, 21.19, 19.61, 19.42, 19.12, 18.09, 13.95, 13.89, 1.00.
Запускаем поиск по спектру .
Получилось 12 страниц результатов, что много, но не ужасно. Далее надо проглядеть их на предмет соответствия здравому смыслу и принципиальной возможности образования таких молекул из ТГФ. В топе много алифатических спиртов и эфиров. В том числе циклических. В том числе тетрагидропирановые, а также ацетальные.
С этим уже можно работать, разбираться что там и как. Но принципиально уже отсюда можно понять, что образуются молекулы, родственные показанному на четвертой картинке.
Далее смесь разделили, выделили вот такие вот молекулы (пятая картинка). И это даже уточняющие фильтры не применяли. А с их помощью можно еще сильнее сузить выдачу данных.
❤6