6 800 замеров глюкозы у кошек с диабетом: что я узнал, создав платформу для мониторинга. Data Engineering.. Data Engineering. Flask.. Data Engineering. Flask. python.. Data Engineering. Flask. python. ReactJS.. Data Engineering. Flask. python. ReactJS. ветеринария.. Data Engineering. Flask. python. ReactJS. ветеринария. данные.. Data Engineering. Flask. python. ReactJS. ветеринария. данные. диабет.. Data Engineering. Flask. python. ReactJS. ветеринария. данные. диабет. диабет 1 типа.. Data Engineering. Flask. python. ReactJS. ветеринария. данные. диабет. диабет 1 типа. ИИ.. Data Engineering. Flask. python. ReactJS. ветеринария. данные. диабет. диабет 1 типа. ИИ. кошка.. Data Engineering. Flask. python. ReactJS. ветеринария. данные. диабет. диабет 1 типа. ИИ. кошка. разработка.

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

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

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

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

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

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

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

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

  • Не прошли 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.

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

Когда я начинал проект, я думал, что делаю удобный дневник для Манишки. Побочным эффектом оказался датасет, которого, насколько я знаю, нет ни у кого в России: почти 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

Автор: teamfighter

Источник

Rambler's Top100