NextStat для биологов и фармы
Клинические испытания, PK/PD и эффекты лечения
Вы проектируете клинические испытания, моделируете фармакокинетику и оцениваете эффекты лечения. NextStat дает быстрый и воспроизводимый инференс-движок с анализом выживаемости (Cox PH, Weibull, AFT), фармакометрикой (PK/PD, NLME), GLM и байесовским NUTS, а также артефактами валидации, рассчитанными на GxP и аудит-трейлы 21 CFR Part 11.
Почему NextStat для life sciences?
Регуляторные подачи требуют воспроизводимых и аудируемых статистических анализов. NextStat производит детерминированные отчеты валидации (JSON + PDF) с SHA-256 хешами данных, спецификацией модели, отпечатком окружения и результатами pass/fail по наборам. Это рассчитано на валидационные пакеты IQ/OQ/PQ и review со стороны FDA/EMA.
Что вы уже знаете → как это называется в NextStat
| Био / фарма | NextStat API | Контекст |
|---|---|---|
| Пропорциональные риски Кокса (Cox PH) | nextstat.CoxPhModel() | Время до события с правым цензурированием (Breslow/Efron ties) |
| Выживаемость: Weibull / AFT | nextstat.WeibullModel() | Параметрическая выживаемость: Weibull, логнормальная AFT |
| PK: 1-компартментная пероральная модель | nextstat.pk_1cmt_oral() | Аналитическая концентрация C(t) с ka, ke, V |
| NLME (популяционная PK) | nextstat.nlme() | Логнормальные случайные эффекты, диагональная Omega, лапласовское приближение |
| Эффект лечения (ATE) | nextstat.aipw() | Двойственно-робастный AIPW-оцениватель для наблюдательных исследований |
| Логистическая регрессия | nextstat.logistic() | Бинарные исходы с отношениями шансов и ДИ Вальда |
| Апостериорное распределение | nextstat.sample_nuts() | NUTS/HMC с R-hat, ESS и диагностикой расхождений (divergence) |
| Отчет валидации | nextstat validation-report | Артефакт JSON + PDF для пакетов IQ/OQ/PQ |
Быстрый старт: анализ выживаемости
import nextstat
import numpy as np
# Данные time-to-event с правым цензурированием
times = np.array([4.1, 7.3, 2.0, 11.5, 6.8, 1.2, 9.4, 3.7])
events = np.array([True, True, False, True, True, True, False, True])
X = np.array([
[1, 65], [0, 72], [1, 58], [0, 61],
[1, 70], [0, 55], [1, 68], [0, 63],
], dtype=float) # лечение + возраст
# Cox PH с обработкой ties по Эфрону
model = nextstat.CoxPhModel(times, events, X, ties="efron")
result = nextstat.fit(model)
print(f"Отношения рисков: {np.exp(result.params)}")
print(f"Стандартные ошибки: {result.std_errors}")
# Параметрическая выживаемость Weibull
weibull = nextstat.WeibullModel(times, events, X)
wb_fit = nextstat.fit(weibull)
print(f"Форма (k): {wb_fit.params[0]:.3f}")
print(f"Эффекты ковариат: {wb_fit.params[2:]}")Быстрый старт: популяционная PK (NLME)
import nextstat
# Популяционная фармакокинетика
# 1-компартментная пероральная модель с логнормальными случайными эффектами
subjects = [
{"id": 1, "times": [0.5, 1, 2, 4, 8], "conc": [2.1, 5.3, 4.8, 3.1, 1.2],
"dose": 100, "weight": 70},
{"id": 2, "times": [0.5, 1, 2, 4, 8], "conc": [1.8, 4.7, 4.2, 2.8, 0.9],
"dose": 100, "weight": 85},
# ... еще субъекты
]
# Фит популяционной модели: фиксированные эффекты (θ) + случайные эффекты (η)
pop_fit = nextstat.nlme(
model="pk_1cmt_oral",
data=subjects,
fixed={"ka": 1.0, "ke": 0.2, "V": 10.0}, # начальные оценки
random=["ka", "V"], # случайные эффекты: всасывание + объем
)
print(f"Популяционный ka: {pop_fit.fixed['ka']:.3f}")
print(f"Популяционный V: {pop_fit.fixed['V']:.2f}")
print(f"Omega (дисперсии случайных эффектов): {pop_fit.omega}")Валидация: артефакты, готовые к GxP
Отчет валидации NextStat рассчитан на регулируемые среды. CLI производит детерминированный JSON-артефакт и опциональный PDF, пригодные для:
- Валидационных пакетов IQ/OQ/PQ (FDA 21 CFR Part 11)
- Доказательной базы EMA: GxP / CSA (Computer Software Assurance)
- Статусов (pass/fail) по наборам с отпечатками данных (SHA-256)
- Фиксации окружения: ОС, версия Rust, хеш cargo.lock, версия Python
- Детерминированного режима: стабильный порядок ключей JSON, воспроизводимые метаданные PDF
# Сгенерировать отчет валидации (CLI)
nextstat validation-report \
--apex2 tmp/apex2_master_report.json \
--workspace workspace.json \
--out validation_report.json \
--pdf validation_report.pdf \
--deterministic
# Или через Makefile (локально + CI)
make validation-packКогда использовать NextStat, а когда NONMEM или R
| Задача | Лучший инструмент |
|---|---|
| Сложная многокомпартментная PK с ковариатами | NONMEM / Monolix |
| Быстрый анализ выживаемости с кривыми Каплана-Майера | R (survival / survminer) |
| Воспроизводимый Cox PH + артефакт валидации | NextStat |
| Быстрый NLME для 1-компартментной PK | NextStat |
| Байесовская оценка эффекта лечения: NUTS + диагностика | NextStat |
| GPU-ускоренная пакетная проверка гипотез | NextStat |
| Отчет валидации для аудита (JSON + PDF) | NextStat |
Следующие шаги
- Анализ выживаемости - Cox PH, Weibull, log-normal AFT → Анализ выживаемости
- Байесовское семплирование - NUTS/HMC с полной диагностикой → Байесовское семплирование
- Регрессия и GLM - Логистическая, Пуассона, отрицательная биномиальная → Регрессия и GLM
- Отчет валидации - JSON+PDF артефакты, готовые к GxP → Отчет валидации
- Агентные инструменты - Определения tools для LLM-управляемого анализа → Агентные инструменты
- API сервера - Self-hosted GPU-инференс для общей вычислительной среды → API сервера
- Глоссарий - Сопоставление терминов HEP ↔ DS ↔ Quant ↔ Bio → Глоссарий
