Перейти к содержимому
CyberRXN
v0.1Исследовательская версия · возможности расширяются с каждым релизом

Графовая база химических реакций

От структуры — к реакции, условиям и источнику

CyberRXN Base помогает искать химические трансформации, сравнивать исходные наблюдения и исследовать связи веществ. Подключайте базу через Python, CLI или MCP и получайте данные вместе с их происхождением и статусом проверки.

  • Локальное размещение
  • 7 MCP-инструментов на чтение
  • Сохранение исходных полей
  • Неизвестное — явно
app.cyberrxn.com · макет
Точная трансформацияСходство продуктовУсловияВеществоЕстественный языкСкоро
C=O.CCN1CCNC(=O)C1=O>>CCN1CCN(CO)C(=O)C1=O
01Трансформация
H2CO+NHNOONNOOOH
reaction_id
52bab621…bd32
match
exact_original_transformation
agents_used_in_identity
false
observation_id
6d5502d7…7252

Уравнение после SynRBL

C(N1CCNC(=O)C1=O)C.C=O.Cl>>C(N1CCN(CO)C(=O)C1=O)C.[H+].[Cl-]

добавлено балансировкой

02Наблюдение
upstream_chemistry_valid = trueconditions_validated = falseexpert_confirmed = false
03Источник
evidence.kind
patent_extraction
Патент
US06482818B2 · 2002
Запись
row_900654
Отчёт
sh07of10.csv:21511
sha256
3e0d3092…fb45

paragraph_text

To a solution of 1-ethylpiperazine-2,3-dione (2.13 g, 15 mmol) in 30% aqueous (methanol free) formaldehyde (15 mmol) potassium hydroxide (150 mg, 2.7 mmol) was added and the mixture stirred at 50° C. for 7 days. It was neutralized with 5 N aqueous hydrochloric acid (50 μl) to pH=7. The mixture was evaporated at 15 mm and then dried in high vacuo (0.0013 mbar) (0.001 mm) to give 1-ethyl-4-(hydroxymethyl)-piperazine-2,3-dione as a colourless solid (100%).

Температура · Почему это важно

Явно связана с выдерживанием реакционной смеси: «stirred at 50° C. for 7 days».

lookup_reaction → get_observation(include_raw=true) · точный поиск p50 0,307 мс (локальный тест, 26.10.2026)

Рис. 1 — Макет интерфейса на реальной записи корпуса (US06482818B2_57). Каждое поле прослежено до абзаца патента; ошибки извлечения видны, а не исправлены молча.

  • Python 3.11+
  • RDKit
  • SQLite
  • NumPy
  • MCP stdio
  • Streamable HTTP
  • Docker
  • Caddy HTTPS
  • Корпус USPTO
  • Linux AMD64 · ARM64

01 — Корпус

Более 1,25 млн наблюдений — посчитаны честно

Локальный снимок на основе USPTO: собран 26.10.2026, статистика повторно сверена 27.10.2026. Наблюдения, трансформации, наборы продуктов и молекулы — разные единицы, поэтому мы их не складываем.

1 256 084

наблюдений с условиями и источником

1 198 868

уникальных трансформаций (канонические реагенты → продукты)

1 081 490

наборов продуктов в индексе сходства

1 389 716

уникальных структур во всех ролях

7

MCP-инструментов на чтение

94

автоматических тестов проходят

Покрытие условий

Доля наблюдений с заполненным нормализованным полем.

  • Температура (точка или диапазон)87,653 %

    1 100 997 из 1 256 084

  • Агенты89,538 %

    1 124 673 из 1 256 084

  • Численное давление3,589 %

    45 075 из 1 256 084

  • Все три поля сразу2,272 %

    28 540 из 1 256 084

Заполненное поле показывает покрытие извлечения, а не то, что значение относится к нужной стадии реакции.

Статусы, а не маркетинг

  • 911 43072,6 %

    положительный автоматический вердикт химии

    Импортированная исходная проверка, часто по уравнению после SynRBL. Не экспертная оценка.

  • 5130,041 %

    записей в карантине

    Непарсящаяся исходная химия сохранена вместе с исходными полями и ошибками.

  • 0

    экспертных подтверждений

    Сервис не присваивает их программно.

SQLite 7,3 GB + индекс сходства 349 MB · поставляются отдельно от кода

5 678 827 участий реагентов и продуктов · 1 868 232 участий агентов · 14 исходных отчётов с SHA256

02 — Зачем это нужно

Условия полезны вместе с контекстом

Одна и та же трансформация может встречаться в нескольких источниках с разными условиями. CyberRXN Base сохраняет каждое наблюдение отдельно: вы видите конкретные значения, исходные поля и результаты автоматической обработки, а затем можете проверить первичный источник.

Получить найденный факт и понять, откуда он появился.

Иллюстрацияreaction_id → observation_id × 3

Одна каноническая трансформация

C=O.CCN1CCNC(=O)C1=O>>CCN1CCN(CO)C(=O)C1=O

Патент A · 2002

50 °C · давление неизвестно · агент Cl

Патент B · 2011

20–25 °C · 1 bar · растворитель: water

Патент C · 2017

температура неизвестна · агенты не указаны

Хранятся отдельными наблюдениями — никогда не сводятся к одному «лучшему» набору.

03 — Возможности

Шесть вещей, которые можно уже сейчас

Всё перечисленное входит в версию 0.1 и одинаково работает из Python, CLI и MCP.

с картами атомов

[CH2:1]=[O:2].CCN1CCNC(=O)C1=O>>CCN1CCN([CH2:1][OH:2])C(=O)C1=O

другой порядок фрагментов

CCN1CCNC(=O)C1=O.C=O>>CCN1CCN(CO)C(=O)C1=O

канонический ключ

C=O.CCN1CCNC(=O)C1=O>>CCN1CCN(CO)C(=O)C1=O

SHA256 → 52bab621…bd32

порядок фрагментов нормализованкарты атомов вне ключастереохимия · заряды · соли сохранены

Найдите точную трансформацию

Ищите по SMILES реакции, каноническим реагентам или продуктам. Нормализация учитывает порядок фрагментов и удаляет карты атомов из ключа, сохраняя стереохимию, заряды и соли.

search_reactions(temperature_min=20, temperature_max=30)

  • 25 °C
  • 10–40 °C
  • 50 °C
  • температура неизвестна
запрос 20–30 °C050100 °C

Неизвестное никогда не проходит числовой фильтр.

Отберите условия

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

Morgan r = 2 · 2048 бит · хиральность

запрос
#10.78
#20.57
#30.42
Tanimoto = |A∩B| / |A∪B|порог 0.5 · #3 ниже порога

Сходство ≠ осуществимость, выход или безопасность.

Сравните структуры продуктов

Найдите исходные наборы продуктов с похожим Morgan fingerprint и оценкой Tanimoto. Используйте результат для исследования корпуса; сходство структуры само по себе не подтверждает осуществимость реакции.

has_reactanthas_reactanthas_producthas_conditionhas_agentReactionC=OCCN1CCNC(=O)C1=OCCN1CCN(CO)…Condition · 50 °CCl

molecule_reactions(role="agent") · Граф одного наблюдения · до 1000 узлов

Исследуйте участие вещества

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

исходная
C=O.CCN1CCNC(=O)C1=O>>CCN1CCN(CO)C(=O)C1=O
после SynRBL
C(N1CCNC(=O)C1=O)C.C=O.Cl>>C(N1CCN(CO)C(=O)C1=O)C.[H+].[Cl-]
evidence.kind
patent_extraction
expert_confirmed
false
source.sha256
3e0d3092…fb45

imputed_components → algorithmic_balance

Откройте исходную запись

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

statssearch_reactionslookup_reactionget_observationsimilar_productsmolecule_reactionsgraph
PythonCLIMCP stdioStreamable HTTP

Импорт JSONL: прогнозы моделей с версией, бинами и вероятностями

Подключите исследовательские инструменты

Используйте общий сервис из Python, CLI и MCP-клиентов. Передавайте результаты внешних моделей через JSONL как отдельные наблюдения с версией, бинами и вероятностями.

04 — Как это работает

Четыре шага от вопроса к источнику

    01

    Задайте структуру или условия

    SMILES, температурный интервал, давление или участие вещества.

    02

    Получите подходящие наблюдения

    Выдача содержит структуры, условия и статусы; стабильная пагинация до 100 на страницу.

    03

    Раскройте детали

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

    04

    Используйте в своём процессе

    Подключите Python, CLI или MCP; применимость оценивайте после проверки источника.

05 — Интеграция

Встраивается в ваш исследовательский процесс

SQLite хранит данные и связи, RDKit отвечает за структуры, а единый сервис предоставляет Python API, CLI и MCP. Локальный stdio подходит для одной машины; Streamable HTTP с Bearer-токеном и Docker-конфигурация — для собственного сервера.

  • Python API

    Один и тот же Service под всеми интерфейсами — поиск, карточки и графы в виде обычных словарей.

  • 7 MCP-инструментов на чтение

    readOnlyHint = true; SQLite открывается в mode=ro с query_only. Импорта, правки и удаления через MCP нет.

  • stdio и Streamable HTTP

    Локальные ИИ-клиенты — по stdio, удалённые — по HTTPS /mcp с заголовком Authorization: Bearer.

  • Импорт под вашим контролем

    CSV-отчёты и JSONL (включая прогнозы моделей) через CLI и Python, с атомарной публикацией.

Обсудить доступ
from reaction_kb.service import Service

with Service("data/reactions.sqlite") as kb:
    result = kb.search_reactions(
        products="CC=O", temperature_min=20, temperature_max=30, limit=5
    )
    for item in result["items"]:
        details = kb.get_observation(item["observation_id"], include_raw=True)
        graph = kb.graph(item["observation_id"])

Пример показывает программный API и не является рекомендацией химической реакции.

lookup_reaction · structuredContentUS06482818B2_57
{
  "match": "exact_original_transformation",
  "agents_used_in_identity": false,
  "items": [{
    "observation_id": "6d5502d7d4006bdc…",
    "reaction_id": "52bab621ec95bd4f…",
    "reaction_smiles": "C=O.CCN1CCNC(=O)C1=O>>CCN1CCN(CO)C(=O)C1=O",
    "conditions": {
      "temperature": { "value": 50, "min": 50, "max": 50, "unit": "C",
                       "status": "extracted", "raw": "50° C" },
      "pressure": { "value": 0.000001, "unit": "bar", "kind": "unknown",
                    "status": "extracted", "raw": "0.0013 mbar" },
      "agents": { "smiles": "Cl", "solvent_label": "methanol",
                  "catalysts": null, "roles_resolved": false, "status": "reported" }
    },
    "evidence": { "kind": "patent_extraction", "patent": "US06482818B2",
                  "year": 2002, "expert_confirmed": false },
    "validation": { "upstream_chemistry_valid": true, "applies_to": "rebalanced",
                    "conditions_validated": false },
    "balancing": { "solved": true, "method": "rule_based",
                   "confidence": null, "confidence_calibrated": false }
  }],
  "has_more": false
}

Семь MCP-инструментов

ИнструментОбязательноРезультат
stats—Размеры корпуса, покрытие условий, карантин, версия схемы, состояния импорта
search_reactions—Страница наблюдений, подходящих под все фильтры (AND)
lookup_reactionreaction_smilesНаблюдения точной канонической трансформации
get_observationobservation_idПолная карточка, источник и абзац; исходные поля по запросу
similar_productssmilesПохожие наборы продуктов, Tanimoto и примеры наблюдений
molecule_reactionssmilesНаблюдения, где молекула — реагент, продукт или агент
graphobservation_idУзлы и направленные связи одного наблюдения

06 — Происхождение

Происхождение данных остаётся видимым

Исходные поля сохраняются вместе с записью. Неизвестные условия не превращаются в значения по умолчанию. Автоматически восстановленные уравнения и результаты внешних моделей отделены от исходных сведений, а статус проверки показывает, что именно проверялось.

uspto_conditions_dedup_markedКорпус USPTO · полная сборка
опубликовано · индекс собран
  1. Импорт

    10 шардов отчётов + 4 repair-файла

  2. Сверка

    record_id и SHA256 каждого отчёта

  3. Канонизация

    Канонические SMILES через RDKit

  4. Карантин

    Непарсящаяся химия сохраняется, а не «чинится»

  5. Хранение

    SQLite с таблицами участия

  6. Индекс

    mmap-индекс Morgan fingerprints

✓импортпрочитано 1 338 346 строк · 82 261 повтор заменён по record_id

✓сверка1 256 084 уникальных записи · row_0…row_1256083 без пропусков

✓канонизациякарты атомов вне ключа · стереохимия, заряды, соли сохранены

✓карантин513 записей сохранены с исходными полями и ошибками (0,041%)

✓хранение5 678 827 участий · integrity_check ok

✓индекс1 081 490 наборов продуктов · 349 МБ · ревизия manifest проверена

Источник сохранён

Отчёт, строка происхождения и SHA256 исходного файла остаются у каждого наблюдения.

Неизвестное обозначено

null и unknown вместо выдуманной точности — никакой комнатной температуры или атмосферного давления по умолчанию.

Обработка объяснима

Исходная структура, SynRBL-уравнение и модельные данные разделены, у каждого — свой вид доказательства.

Что проверено 26.10.2026

  • SQLite integrity_check: ok — ошибок внешних ключей и некорректных fingerprints нет.
  • 10 000 исходных payload прочитаны без ошибок декодирования.
  • Детерминированная выборка из 10 000: идентичность и строгий разбор согласованы для 9 996; остальные 4 — в карантине.
  • Все 7 256 выбранных записей с положительным исходным вердиктом прошли строгий разбор RDKit, баланс тяжёлых атомов и суммарного формального заряда.
  • Из 2 744 отрицательных эти проверки прошли 24 — и их флаги не переписывались.

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

07 — Скорость

Индексы подготовлены для более миллиона наблюдений

Точный поиск использует B-tree-индексы; сходство продуктов перебирает только кандидатов после popcount-фильтра в mmap-индексе.

  • Карточка наблюдения0,092 мс / 0,159 мс
  • Точный набор продуктов0,072 мс / 0,559 мс
  • Точная трансформация0,307 мс / 0,714 мс
  • Фильтр температуры и давления1,55 мс / 1,63 мс
  • MCP get/search через stdio1,72 мс / 7,63 мс
  • Обратный поиск по веществу9,25 мс / 172 мс
  • Сходство наборов продуктов308 мс / 353 мс
p50 p950.05 · 1 · 10 · 100 · 1000 мс (log)

Локальные измерения 26.10.2026, без SLA. Python Service без JSON и транспорта (MCP измерялся отдельно), по 30 запросов, Windows 10, Python 3.11.2, SQLite 7,3 ГБ; кэш ОС не сбрасывался, оборудование не стандартизировано.

08 — Для кого

Для тех, кто проверяет источник

Химики-исследователи

Найти трансформацию и сравнить наблюдения

→ Структуры, условия и исходная запись для дальнейшей проверки

Хемоинформатики

Исследовать участие веществ и похожие продукты

→ Канонические SMILES, Morgan/Tanimoto и JSON-граф

Разработчики ИИ-инструментов

Подключить корпус реакций к ассистенту

→ Семь MCP-инструментов и ограниченная структурированная выдача

Команды данных и ML

Добавить источник или прогнозы внешней модели

→ JSONL-контракт и раздельное происхождение наблюдений

Лаборатории и R&D

Развернуть поиск в собственном окружении

→ Локальный режим, контейнеры, HTTPS с Bearer-токеном

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

09 — Что дальше

CyberRXN Base развивается

Версия 0.1 — это фундамент. Мы будем расширять продукт и дополнять информацию здесь по мере того, как каждая возможность будет готова и проверена.

В разработке

Поиск на естественном языке

Опишите превращение или ограничения словами — и получите подходящие сохранённые наблюдения.

В разработке

Веб-приложение app.cyberrxn.com

Интерфейс поиска с редактором структур, карточками наблюдений и интерактивным графом.

В планах

Поиск по подструктуре и названию

SMARTS-подструктуры, названия IUPAC/CAS и синонимы молекул.

В планах

Размещённый MCP и аккаунты

Управляемый эндпоинт с личными ключами, ролями и SSO.

В планах

Больше фильтров условий

Время, выход, pH, атмосфера, год и номер патента как полноценные фильтры.

В планах

Новые корпуса и экспертная проверка

Дополнительные источники и процесс экспертного подтверждения наблюдений.

Цифры на этой странице относятся к снимку 26–27.10.2026 и будут обновляться с каждой новой проверенной сборкой.

10 — Вопросы

Прямые ответы

11 — Тарифы

Начните с малого. Масштабируйтесь, когда заработает.

Платите за вызовы, подпишитесь на предсказуемый объём или лицензируйте развёртывание у себя. Условия раннего доступа — окончательные цены появятся вместе с размещённым доступом.

Сравнить тарифы

Оплата по факту

Размещённый MCP-доступ без обязательств.

$0+ $4 за 1 000 вызовов

500 бесплатных вызовов каждый месяц

Ранний доступ

Researcher

Для химиков и хемоинформатиков.

$49в месяц

20 000 вызовов / мес. включено, далее $3 за 1 000

Ранний доступ
ПОПУЛЯРНЫЙ

Team

Общий доступ для исследовательских и дата-команд.

$249в месяц · 5 ключей

150 000 вызовов / мес., далее $2 за 1 000 · доп. ключ $39

Ранний доступ

Enterprise

Развёртывание у себя и лицензии на корпус.

Индивидуально

Лицензия согласуется под развёртывание

Связаться с нами

Подключите реакции к своему исследовательскому процессу

Обсудим ваш корпус, необходимые фильтры и способ интеграции — Python, CLI или MCP.