Привет, Хабр!

Полгода назад я писал здесь, как за 5 дней с помощью нейросетей создал приложение для мониторинга диабета у своей кошки Манишки. Ей было 13 лет, она весила 3 кг, и каждый день я мерял ей сахар глюкометром и колол инсулин. Из блокнота на холодильнике данные перекочевали в Excel, потом в Python-скрипт с графиками, а потом — в полноценное веб-приложение Diabnostic.

Манишка собственной персоной
Манишка собственной персоной

С тех пор кое-что изменилось: Манишка вышла в ремиссию в декабре 2025 — глюкоза пришла в норму, инсулин больше не нужен. Но приложение жило своей жизнью: за 5 месяцев работы на платформе зарегистрировались 346 владельцев, и вместе с их питомцами накопился уникальный датасет — 6 773 записи глюкозы от 121 питомца.

📥 Анонимизированный датасет (6 773 записи, 117 питомцев) доступен на GitHub и на Kaggle — можете покопаться сами.

В этой статье — о том, какие неожиданные медицинские инсайты я нашёл в обычном дневнике глюкозы.

⚠️ Важный дисклеймер

Всё, что изложено ниже, — результаты наблюдательного анализа данных, а не клиническое исследование. Эти данные:

  • Не прошли peer review и не опубликованы в рецензируемых журналах

  • Собраны от владельцев питомцев, а не в контролируемых лабораторных условиях

  • Содержат неизбежные погрешности: разное время измерения, разные глюкометры, влияние кормления, стресса и других факторов

  • Не могут служить основанием для назначения или отмены лечения

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

Любые решения о лечении принимает только ветеринарный врач.

Датасет: откуда цифры и можно ли им верить

Diabnostic — это веб-приложение (PWA), где владельцы вручную вносят показания глюкометра, дозу инсулина, вес и заметки. Никакой автоматической интеграции с глюкометрами (пока). Каждая запись — осознанное действие человека.

Есть базовая валидация: глюкоза принимается в диапазоне 0.1–50 ммоль/л, доза инсулина — 0–100 единиц. Явно мусорных записей в базе нет — они не проходят валидацию. Но гарантировать точность каждого числа я не могу: разные глюкометры имеют разную погрешность (±15–20%), а измерение уровня глюкозы у кошки — процесс не самый стабильный (попробуйте уколоть в ухо животное, которое этого не хочет).

Общие метрики

Параметр

Значение

Период

ноябрь 2025 — март 2026 (5 месяцев)

Зарегистрированных пользователей

346

Записей глюкозы

6 773

Питомцев с записями

121

Активных питомцев (последние 30 дней)

42

Замеров в день (на платформе)

~51

Описательная статистика глюкозы

Показатель

Значение

Среднее ± SD

14.5 ± 7.4 ммоль/л

Медиана

14.5 ммоль/л

Межквартильный размах (IQR)

7.9 – 19.7 ммоль/л

10-й – 90-й перцентиль

5.1 – 24.2 ммоль/л

Диапазон

0.1 – 40.0 ммоль/л

Среднее совпадает с медианой — распределение почти симметричное, но с тяжёлыми хвостами: 10% замеров ниже 5, ещё 10% — выше 24 ммоль/л.

Вовлечённость на пациента

Показатель

Значение

Среднее записей на питомца

58

Медиана записей на питомца

16

Максимум

340 записей

Питомцев с 100+ записями

29 (24%)

Питомцев с 50+ записями

43 (36%)

Средний внутрипациентный SD

5.1 ммоль/л

Половина питомцев имеет 16 или меньше записей, при этом среднее — 58. Типичное правоскошенное распределение: большинство владельцев вносят данные пару недель, а ядро из 29 питомцев (100+ записей каждый) — ведёт дневник ежедневно месяцами.

Рост платформы Diabnostic
Рост платформы Diabnostic

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

Портрет пациента

Портрет пациента: кто болеет диабетом?
Портрет пациента: кто болеет диабетом?

90% пользователей — владельцы кошек. Средний возраст кошки с диабетом — 11 лет, что совпадает с литературными данными: пик заболеваемости приходится на 10–13 лет [12]. Среди заболевших чуть больше самцов (54%) — коты болеют диабетом в 1.5–2 раза чаще кошек, что тоже согласуется с эпидемиологическими исследованиями [12].

Находка №1: Распределение глюкозы — только 29% в норме

Распределение замеров глюкозы по диапазонам
Распределение замеров глюкозы по диапазонам

Лишь 28.8% всех замеров попадают в целевой диапазон 4–10 ммоль/л. Больше половины записей — выше 15 ммоль/л. Это одновременно и ожидаемо (диабет — болезнь с хронической гипергликемией), и отрезвляюще: даже при активном мониторинге большинство питомцев далеки от компенсации.

Суточный паттерн глюкозы у диабетических кошек
Суточный паттерн глюкозы у диабетических кошек

Два пика измерений — 8:00 и 20:00 — совпадают с типичным расписанием инъекций инсулина каждые 12 часов:

Время

Записей

Ср. глюкоза

В целевом диапазоне

8:00 (после инъекции)

573

12.9

39.6%

20:00 (после инъекции)

589

13.9

30.9%

7:00 (до инъекции)

447

16.2

26.0%

5:00 (ночь)

73

16.8

16.4%

Лучший контроль наблюдается сразу после утренней инъекции, а худший — в 5–7 утра, когда действие вечернего инсулина заканчивается. Это полностью соответствует фармакокинетике: длительные инсулины имеют пик действия через 4–6 часов и «хвост» до 12–16 часов.

Практический вывод: если ваша кошка стабильно «уходит» в гипергликемию к утру — это не обязательно проблема дозы, а вероятная особенность фармакокинетики конкретного инсулина. Обсудите с ветеринаром.

Находка №3: Сравнение действующих веществ инсулинов

На платформе используют 8 различных групп инсулинов. Я сравнил их по проценту времени в целевом диапазоне (4–10 ммоль/л) — это стандартный показатель Time-in-Range из человеческой эндокринологии:

Процент времени в целевом диапазоне глюкозы
Процент времени в целевом диапазоне глюкозы

На графике данные с малой выборкой (< 5 питомцев) выделены серым. Например, 83% у гларгина U300 — это один питомец. Возможно, его владелец идеально следит за диетой и режимом, а не заслуга конкретного препарата. Делать выводы по n=1 нельзя.

Если смотреть только на надёжные данные (≥ 5 питомцев):

Действующее вещество

Питомцев

Записей

% в диапазоне

Гларгин U100

6

408

33.8%

Детемир

39

3 124

28.2%

Гларгин U50 (ветеринарный)

15

1 103

23.8%

Тенденция к лучшему контролю на гларгине U100 согласуется с рекомендациями ISFM, где гларгин рекомендован как один из препаратов первой линии для кошек [3]. Но и тут оговорки:

  • Нет контроля за диетой, стадией диабета, сопутствующими заболеваниями

  • Детемир (39 питомцев) включает и начинающих, и опытных владельцев — «размытие» выборки

  • Самоотбор: кто ведёт дневник в приложении — уже не случайная выборка

Полная таблица (включая малые выборки)

Действующее вещество

Записей

Питомцев

Ср. глюкоза

Медиана

Ср. доза

% в диапазоне

Гларгин U300

262

1 ⚠️

5.8

5.8

1.85

83.2%

Гларгин (аналог)

88

4 ⚠️

10.3

9.5

1.82

45.5%

Гларгин U100

408

6

12.5

12.3

1.06

33.8%

Детемир

3 124

39

15.0

14.8

1.36

28.2%

Гларгин U50 (ветеринарный)

1 103

15

15.5

15.6

0.88

23.8%

Изофан-инсулин

62

1 ⚠️

15.5

16.4

0.02

17.7%

Гларгин (прочий)

258

3 ⚠️

15.8

17.4

0.68

12.8%

Изофан NPH

16

1 ⚠️

15.9

15.6

3.01

6.3%

⚠️ — выборка < 5 питомцев, данные ненадёжны.

Находка №4: Парадокс дозы

Зависимость «доза инсулина → уровень глюкозы» оказалась нелинейной и образует характерную U-образную кривую:

Парадокс дозы
Парадокс дозы

Почему лучший контроль у тех, кто не колет инсулин, и у тех, кто колет много? Это не парадокс, а артефакт выборки:

  • 0 единиц — записи на этапе диагностики (до начала терапии) или записи питомцев в ремиссии (как моя Манишка — глюкоза в норме без инъекций)

  • 0.5–2.0 единицы — период титрования (подбора дозы), когда терапия только начинается и контроль ещё не достигнут

  • 3+ единиц — питомцы на стабильной, уже подобранной терапии

Это красивая иллюстрация ловушки, в которую легко попасть при анализе наблюдательных данных: выше доза ≠ хуже контроль. Наоборот: высокая доза обычно означает длинный стаж терапии и, как следствие, стабильную ситуацию.

Если вы когда-нибудь видели корреляцию и торопились с выводами — вот вам пример, почему не стоит.

Находка №5: 40% кошек хотя бы раз были в гипогликемии

Гипо- и гипергликемия
Гипо- и гипергликемия

40% питомцев за 5 месяцев наблюдения хотя бы раз имели глюкозу ниже 3.5 ммоль/л. Из них 24 записи — ниже 2.0 ммоль/л, что является жизнеугрожающим состоянием.

Для контекста: в человеческой диабетологии считается, что 3–4% записей с гипогликемией — приемлемый уровень. У моих пациентов — 4.9% (308 + 24 записей из 6783), что немного выше нормы.

Инсулин — это не таблетки. Передозировка может убить за часы. Именно поэтому дневник глюкозы — не «для галочки», а инструмент безопасности.

Находка №6: Коморбидность с болезнью почек

У меня пока не так много лабораторных анализов (755 результатов — пользователи могут загружать фото анализов, и OCR вытаскивает значения). Но даже на этой выборке видна тревожная картина:

Частота отклонений в лаб. анализах
Частота отклонений в лаб. анализах

��ри из пяти лидеров — маркеры хронической болезни почек (ХБП): креатинин (77%), фосфор (56%), мочевина (50%). По данным литературы, частота ХБП среди диабетических кошек составляет около 44% — против 11% у недиабетических [4]. Мои данные (50–77% по отдельным маркерам) вписываются в эту картину.

Для ветеринарных клиник это важный инсайт: если к вам приходит кошка с диабетом — проверьте почки. С вероятностью 50%+ там будут проблемы.

Техническая часть

Для тех, кому интересен стек (он вырос с момента первой статьи):

  • Backend: Python (FastAPI) + PostgreSQL + SQLAlchemy + Alembic

  • Frontend: React + TypeScript + Vite + PWA (оффлайн-поддержка)

  • AI: OpenRouter API для анализа кривых глюкозы

  • OCR: распознавание лабораторных анализов с фотографии с помощью Gemini 2.0

  • Аналитика: Metabase для BI-дашбордов

  • Инфра: Docker + Nginx + Yandex Cloud VPS

Для анализа в этой статье я использовал прямые SQL-запросы к production-базе через Metabase. Пример расчёта Time-in-Range:

SELECT
  CASE
    WHEN it.name IN ('Левемир', 'Levemir') THEN 'Детемир'
    WHEN it.name IN ('Лантус', 'Lantus')   THEN 'Гларгин U100'
    -- ...группировка по действующему веществу
  END AS insulin_group,
  COUNT(*) AS records,
  COUNT(DISTINCT pet_id) AS pets,
  ROUND(AVG(glucose)::numeric, 1) AS avg_glucose,
  ROUND(100.0 * COUNT(CASE WHEN glucose BETWEEN 4 AND 10 THEN 1 END)
    / NULLIF(COUNT(*), 0), 1) AS pct_in_range
FROM glucose_records gr
JOIN pets p ON gr.pet_id = p.id
LEFT JOIN insulin_types it ON p.insulin_type_id = it.id
WHERE gr.date >= '2025-11-01'
GROUP BY insulin_group
ORDER BY pct_in_range DESC;

Что дальше

У платформы 346 пользователей и ~50 замеров в день. Датасет растёт каждый день. Из планов:

  1. ML-модель предсказания гипогликемии по паттерну предыдущих измерений — пока 24 случая тяжёлой гипогликемии, для полноценной модели мало, но с ростом данных хочу попробовать

  2. Интеграция с CGM (системами непрерывного мониторинга) — вместо 2–3 замеров будет 288 в день

  3. B2B для ветклиник — дашборд со всеми пациентами, вместо бумажных карточек — уже в работе, MVP готов.

  4. Если вы data scientist и хотите поиграть с данными — датасет на Github и на Kaggle.

Вместо заключения

Когда я начинал проект, я думал, что делаю удобный дневник для Манишки. Побочным эффектом оказался датасет, которого, насколько я знаю, нет ни у кого в России: почти 7 000 записей глюкозы с привязкой к типу инсулина, дозе, времени суток, виду и возрасту животного.

Манишка уже в ремиссии и больше не нуждается в инъекциях. Но каждый день на платформе появляются новые записи от сотни других питомцев.

Если у вашего питомца диабет — попробуйте Diabnostic. Если вы ветеринарный эндокринолог или data scientist и хотите покопаться в данных вместе — напишите мне, датасет растёт.

Все данные в статье анонимизированы. Имена питомцев и данные владельцев не раскрываются.

Литература
  1. O'Neill D.G. et al. Epidemiology of Diabetes Mellitus among 193,435 Cats Attending Primary‑Care Veterinary Practices in England. J Vet Intern Med, 2016. DOI: 10.1111/jvim.14365

  2. Öhlund M. et al. Incidence of Diabetes Mellitus in Insured Swedish Cats in Relation to Age, Breed and Sex. J Vet Intern Med, 2015. DOI: 10.1111/jvim.13584

  3. Sparkes A.H. et al. ISFM Consensus Guidelines on the Practical Management of Diabetes Mellitus in Cats. J Feline Med Surg, 2015. DOI: 10.1177/1098612×15571880

  4. Pérez‑López L. et al. Assessment of the association between diabetes mellitus and chronic kidney disease in adult cats. J Vet Intern Med, 2019. DOI: 10.1111/jvim.15559

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
У вашего питомца диабет?
30%Да, у кошки3
0%Да, у собаки0
70%Нет, но интересна тема7
0%Я ветеринар0
0%Я дата-сайентист, пришёл за датасетом0
Проголосовали 10 пользователей. Воздержался 1 пользователь.