NextStatNextStat

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 / AFTnextstat.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-компартментной PKNextStat
Байесовская оценка эффекта лечения: NUTS + диагностикаNextStat
GPU-ускоренная пакетная проверка гипотезNextStat
Отчет валидации для аудита (JSON + PDF)NextStat

Следующие шаги