Как программно получить химические данные из PubChem
Table Of Content
- PUG-REST против PUG-VIEW: Введение
- **Оглавление:**
- PUG-REST
- PUG-VIEW
- В чем разница?
- Политика использования
- Запросы и Beautiful Soup
- Другие статьи от меня
- Что нового в области машинного обучения в здравоохранении?
- Общий взгляд на проделанную работу
- Чеклист основной статистики
- Статистический вывод, экспериментальное проектирование, проверка значимости, регрессия.
- 6 общих метрик для вашего следующего проекта по регрессии
- Преимущества, недостатки и основные проблемы
- Источники
PUG-REST против PUG-VIEW: Введение
Вы когда-нибудь задумывались о том, как ученые общались, когда интернет еще не существовал? Я тоже об этом не задумывался, пока не услышал эту историю от профессора, с которым работал во время учебы. Оказывается, органические химики раньше создавали новые молекулы и не очень старались сообщать об этом кому-либо. В то время ученые были гораздо менее междисциплинарными, чем сейчас. Поэтому случайно произошло то, что он встретил биохимика, который искал определенную молекулу. И также случайно оказалось, что этот профессор создал такой тип молекулы.
Теперь фармацевтические компании намеренно тратят миллиарды долларов [1] на создание и тестирование химических веществ в поисках новых лекарств. Естественно, машинное обучение используется на каждом этапе процесса [2]. И, конечно, методы машинного обучения бесполезны без большого количества хороших данных. Вот где на помощь приходит PubChem, самая большая коллекция бесплатных химических данных. В этом руководстве я хочу рассмотреть способы программного получения данных из PubChem, если вам интересно попробовать.
Есть два способа получения данных из PubChem программно: PUG-REST [3] и PUG-View [4]. Какой из них выбрать зависит от типа данных, которые вы хотите получить. Ниже приведено краткое введение в использование этих двух сервисов. Пожалуйста, обратитесь к источникам внизу для более полного списка возможностей этих сервисов.
Оглавление:
PUG-REST
PUG-REST предоставляет вам способ доступа к данным через URL, который выглядит примерно так (<prolog>
- это "https://pubchem.ncbi.nlm.nih.gov/rest/pug"):
<prolog>
/<input >
/<operation>
/<output>
Вы используете <input>
, чтобы сообщить сервису, какие соединения или вещества нужно искать. Например, если я хочу найти информацию об аспирине, я могу сконструировать <prolog>
/<input spec>
таким образом:
Здесь <input>
разбивается на 3 части. Сначала я сообщаю сервису тип записи, который является "compound". Затем я хочу искать по "name". И это имя - "aspirin". Эта ссылка дает мне XML-файл, который содержит всю информацию, которую PUG-REST имеет об аспирине. Предположим, я хочу только молекулярную массу аспирина. Я могу сделать это:
где <operation>
- это просмотр "property" аспирина и извлечение "molecular weight". Затем, предположим, мне не нравится XML, и я хочу его вместо этого в формате JSON:
<prolog>
/compound/name/aspirin/property/MolecularWeight/json
PUG-VIEW
Как данные извлекаются через PUG-View очень похоже на PUG-REST. В этом случае прологом является "https://pubchem.ncbi.nlm.nih.gov/rest/pug_view". Предположим, я хочу узнать, что есть в PUG-View о лекарстве аспирин:
Здесь 2244 - это CID аспирина, что означает идентификатор соединения. Эта ссылка дает мне всю информацию, которая есть в PUG-View о аспирине. Чтобы сузить это, я делаю следующее:
чтобы узнать точку плавления аспирина. Если вы посмотрите на эту ссылку, вы увидите, что это не просто одно число, а несколько чисел вместе с аннотациями. Это приводит меня к следующему пункту.
В чем разница?
Во-первых, PUG-REST извлекает информацию, вычисленную PubChem, в то время как PUG-View предоставляет вам информацию, собранную из других источников вместе с аннотациями. Это означает, что если вам нужны экспериментальные данные, вам следует сначала посмотреть в PUG-View. Для списка разрешенных заголовков см. [5]. Если вы нажмете на "Химические и физические свойства", а затем на "Экспериментальные свойства", вы увидите "Температура плавления". Таким образом, используя указанный выше шаблон, вы можете получить другие типы информации из этого списка о аспирине (и других соединениях), такие как температура кипения или плотность.
Во-вторых, я не использовал название "аспирин" для поиска его информации в PUG-View. Это потому, что, в отличие от PUG-REST, PUG-View принимает только CID в качестве входных данных. Для полного списка идентификаторов, которые можно использовать с PUG-REST, см. [3].
В-третьих, используя PUG-REST, вы можете получить информацию о нескольких идентификаторах. Например, я могу получить информацию о соединениях с CID 1 и 2 следующим образом
С другой стороны, PUG-View позволяет использовать только один идентификатор за раз.
Политика использования
Ни PUG-REST, ни PUG-View не предназначены для обработки больших объемов (миллионов) запросов. PubChem имеет следующие ограничения:
- Не более 5 запросов в секунду.
- Не более 400 запросов в минуту.
- Не более 300 секунд времени выполнения в минуту.
Если ваши требования превышают эти ограничения, вы можете связаться с ними, чтобы решить эту проблему.
Запросы и Beautiful Soup
Вот блокнот Google Colab о том, как взаимодействовать с PubChem. Я не могу гарантировать, что это будет работать для всех химических соединений. Я пробовал только на аспирине. Надеюсь, это поможет!
Другие статьи от меня
Что нового в области машинного обучения в здравоохранении?
Общий взгляд на проделанную работу
towardsdatascience.com
Чеклист основной статистики
Статистический вывод, экспериментальное проектирование, проверка значимости, регрессия.
towardsdatascience.com
6 общих метрик для вашего следующего проекта по регрессии
Преимущества, недостатки и основные проблемы
towardsdatascience.com
Источники
[1] https://www.biopharmadive.com/news/new-drug-cost-research-development-market-jama-study/573381/
[2] https://www.nature.com/articles/s41573-019-0024-5
[3] https://pubchemdocs.ncbi.nlm.nih.gov/pug-rest