Samples / GLPI-103 / regulatory/m5-clinical/sap/SAP-301_statistical_analysis_plan.md

Statistical Analysis Plan — GLPI103-301

Field Value
Document ID SAP-301
Version 3.0 (full submission-grade)
Status Final (prior to database lock and unblinding)
Study No. GLPI103-301
Sponsor Virtual Biopharma Inc.
Standard(s) ICH E9 · E9(R1) (estimands) · E3 (alignment) · E6(R3)
Confidentiality Confidential

Statistical methods, model specifications, and analysis-set definitions correspond exactly to the executable analysis suite (src/biostat/: run_analysis.R, mmrm_estimands.R, missing_data_sensitivity.R, secondary_subgroup.py, survival_recurrent.R) and the ADaM datasets (ADaM-SPEC-301); the table/listing/figure shells map to the generated outputs (outputs/), and each result is traced in the Analysis Results Metadata (ARM-301). This SAP is finalized before unblinding. Companions: ADaM-SPEC-301, TLF-301, SAR-301 (executed report).

Change History

Version Date Author Summary of Change
1.0 2026-06-29 Biostatistics Initial SAP (skeleton)
2.0 2026-06-29 Biostatistics Full SAP (estimands, multiplicity, missing data, safety)
3.0 2026-06-29 Biostatistics Submission-grade expansion — full prose detail on conventions, model specifications, assumptions/diagnostics, all secondary analyses, sensitivity framework, safety analysis detail, ARM

Abbreviations

ANCOVA analysis of covariance · CMH Cochran–Mantel–Haenszel · CFB change from baseline · CI confidence interval · DF degrees of freedom · FAS full analysis set · ICE intercurrent event · KR Kenward–Roger · LS least squares · MAR/MNAR missing at random / not at random · MI multiple imputation · MMRM mixed model for repeated measures · PMM pattern-mixture model · PPS per-protocol set · SAF safety set · SE standard error · TEAE treatment-emergent adverse event.


1. Introduction

This Statistical Analysis Plan (SAP) describes in detail the statistical methods for the analysis of efficacy, safety, and other data from Study GLPI103-301, a Phase 3, randomized, double-blind, double-dummy, active-controlled, parallel-group, multicenter trial of GLPI-103 (intravenous and oral) versus oral semaglutide in adults with type 2 diabetes mellitus (T2DM) inadequately controlled on metformin. The SAP elaborates the statistical sections of the protocol (PROT-301 §11) and is finalized prior to database lock and unblinding. Any deviation from the planned analyses identified after finalization will be documented in this SAP (with version control) or described as post-hoc in the Clinical Study Report (CSR-301).

2. Study Objectives and Endpoints

The objectives and endpoints are reproduced from PROT-301 §2. The primary objective is to demonstrate superiority of GLPI-103 (IV and Oral) versus oral semaglutide on change from baseline (CFB) in HbA1c at Week 52. Key secondary objectives address body-weight reduction, attainment of HbA1c <7.0%, and ≥10% body-weight reduction at Week 52; additional secondary endpoints include FPG, blood pressure, and cardiometabolic biomarkers.

3. Estimands (ICH E9(R1))

3.1 Primary Estimand

3.2 Secondary and Sensitivity Estimands

Secondary endpoints share the primary ICE framework. Responder endpoints use a composite strategy (discontinuation/missing → non-responder) for the main analysis. Sensitivity estimands: a treatment-policy estimand for the rescue ICE (post-rescue data retained) and a trial-product (while-on-treatment) estimand assess robustness to ICE handling.

4. Sample Size and Power

A total of approximately 900 randomized subjects (≈300 per arm) provides ≥90% power at a two-sided α=0.05 to detect a between-treatment difference of 0.4% in HbA1c CFB versus semaglutide, assuming a common SD of approximately 1.1% and allowing for dropout (per-arm evaluable ≈191; total with dropout inflation ≈624; target 900 for margin — REF-002). The actual number randomized was 900; achieved power for the observed effect sizes is reported in CSR-301.

5. General Statistical Conventions

5.1 Definitions

5.2 Data Handling Conventions

Continuous variables are summarized by n, mean, standard deviation, median, minimum, and maximum; categorical variables by frequency and percentage (denominator = number with non-missing data unless otherwise stated). Two-sided 95% confidence intervals and p-values are reported. Partial/missing dates for AE onset and concomitant medications are imputed conservatively per pre-specified rules. No imputation is applied to the primary efficacy variable beyond the model-based handling described in §8.

6. Analysis Sets

Set Definition Use ADaM flag
Full Analysis Set (FAS) all randomized subjects, analysed as randomized primary efficacy FASFL="Y"
Per-Protocol Set (PPS) FAS subjects without major protocol deviations affecting the primary endpoint supportive efficacy PPSFL="Y"
Safety Set (SAF) all subjects receiving ≥1 dose, analysed as treated safety SAFFL="Y"
Completers subjects with a non-missing Week-52 HbA1c supportive derived

Data note: in the executed dataset major protocol deviations are modeled (53 subjects), so the PPS (847) is a strict subset of the FAS (900); the primary conclusions are consistent between FAS and PPS, supporting robustness (CSR-301 §10.2; ADRG, DEF-301).

7. Primary Efficacy Analysis

7.1 Model Specification

The primary endpoint (CFB in HbA1c at Week 52) is analysed on the FAS using analysis of covariance:

CHG ~ TRT01A + BASE + STRAT_HBA1C + STRAT_BMI

where TRT01A is the randomized treatment (3 levels, reference = Semaglutide Oral), BASE is the baseline HbA1c, and STRAT_HBA1C/STRAT_BMI are the randomization strata (derived from baseline values; consistency verified in the ADRG). The model is fitted by ordinary least squares; least-squares means and their standard errors are obtained by the method of estimated marginal means.

7.2 Estimates and Inference

For each arm, the LS-mean CFB and 95% CI are reported. The pairwise differences of each GLPI-103 arm versus semaglutide, with 95% CIs and p-values (no multiplicity adjustment within the contrast set beyond the testing hierarchy of §7.3), are the primary inferential quantities. Superiority is concluded if the upper bound of the 95% CI for the difference (GLPI-103 minus semaglutide) is below zero and the corresponding hierarchy step is significant.

7.3 Multiplicity — Fixed-Sequence Testing

Family-wise type-I error is strongly controlled at the two-sided 0.05 level by a pre-specified fixed-sequence (hierarchical) procedure. Each hypothesis is tested at α=0.05 only if all preceding hypotheses were rejected:

  1. GLPI-103 IV vs semaglutide — HbA1c CFB (primary)
  2. GLPI-103 Oral vs semaglutide — HbA1c CFB
  3. GLPI-103 IV vs semaglutide — body-weight CFB
  4. GLPI-103 IV vs semaglutide — HbA1c <7.0% responder
  5. GLPI-103 IV vs semaglutide — ≥10% weight-loss responder
  6. GLPI-103 Oral vs semaglutide — body-weight CFB
  7. GLPI-103 Oral vs semaglutide — HbA1c <7.0% responder
  8. GLPI-103 Oral vs semaglutide — ≥10% weight-loss responder

7.4 Model Assumptions and Diagnostics

Normality of residuals and homogeneity of variance are assessed graphically (residual and Q–Q plots); influential observations are examined. If assumptions are materially violated, a rank-based or robust sensitivity analysis is performed. The covariate-by-treatment interaction (BASE×TRT01A) is examined as a supportive check of the common-slope assumption but is not part of the primary model.

8. Missing Data

The primary analysis handles intercurrent events per the estimand (§3.1). For the longitudinal model (§9), missing post-baseline HbA1c values are accommodated by the MMRM under a missing-at-random (MAR) assumption (direct likelihood), which provides valid inference under MAR without explicit imputation. Robustness to departures from MAR is assessed by: (a) pattern-mixture models (PMM) under MNAR assumptions (e.g., a delta-adjustment penalizing missing values in the active arms); (b) reference-based multiple imputation (jump-to-reference / copy-reference) with Rubin's rules; and (c) a tipping-point analysis identifying the magnitude of departure from MAR that would overturn the primary conclusion. Last-observation-carried-forward is not used for the primary analysis.

9. Secondary and Longitudinal Analyses

9.1 Longitudinal HbA1c — MMRM

CHG ~ TRT01A * VISIT + BASE,  random = ~1 | USUBJID,
correlation = unstructured (corSymm);  AR(1) (corAR1) pre-specified fallback on non-convergence

Restricted maximum likelihood estimation; visits Week 4–Week 52 (VISITNUM 2–8). LS means by arm and visit, with treatment-by-visit contrasts at Week 52, are reported. Degrees of freedom use the Kenward–Roger approximation where the unstructured model converges; the pre-specified AR(1) fallback ensures an estimable, reproducible model otherwise.

9.2 Body Weight and FPG (CFB)

Analysed by ANCOVA analogous to the primary model (treatment, baseline value, strata). LS means and pairwise differences versus semaglutide with 95% CIs are reported.

9.3 Responder Endpoints

The proportions achieving HbA1c <7.0% and ≥10% weight loss at Week 52 are analysed by logistic regression (treatment, baseline value, strata) and by the Cochran–Mantel–Haenszel test stratified by the randomization factors; risk differences with 95% CIs are presented.

9.4 Cardiometabolic Biomarkers and Blood Pressure

NT-proBNP and hsCRP CFB are analysed by ANCOVA on log-transformed values [MOCK — not in dataset]; SBP/DBP CFB are summarized descriptively and by ANCOVA.

10. Subgroup Analyses

The primary HbA1c treatment effect is examined within pre-specified subgroups — baseline HbA1c (<8.5 vs ≥8.5%), BMI (<30 vs ≥30 kg/m²), age (<65 vs ≥65 years), and sex — using the primary model within each subgroup, displayed as a forest plot of treatment differences with 95% CIs. Treatment-by-subgroup interaction terms are tested as supportive (no multiplicity adjustment; interpreted descriptively).

11. Disposition, Demographics, and Exposure

Subject disposition (screened, randomized, treated, completed, discontinued with reason) is summarized and depicted in a CONSORT diagram. Demographics and baseline disease characteristics (age, sex, race, region, BMI, body weight, HbA1c, FPG, eGFR, disease duration) are summarized by arm and overall. Extent of exposure (duration, dose level reached) and treatment compliance are summarized for the Safety Set.

12. Safety Analyses (Safety Set)

12.1 Adverse Events

Treatment-emergent adverse events are coded to MedDRA (version fixed at lock) and summarized by system organ class and preferred term as the number and percentage of subjects with ≥1 event, by arm, overall, by maximum severity, and by relationship. A pre-specified between-arm comparison of nausea incidence (GLPI-103 IV vs semaglutide) uses a test of proportions, reporting the difference, 95% CI, and p-value.

12.2 AESIs and Hypoglycaemia

Adverse events of special interest (gastrointestinal events, acute pancreatitis, thyroid C-cell/MTC, hypoglycaemia, cardiovascular/heart-rate) are summarized separately with targeted follow-up data. Hypoglycaemia is classified per international consensus (Level 1 <3.9 mmol/L; Level 2 <3.0 mmol/L; Level 3 severe requiring assistance) and summarized by level and arm.

12.3 Laboratory, Vital Signs, ECG

Clinical laboratory results (hepatic ALT/AST, renal eGFR, haematology) are summarized as CFB and by shift relative to the reference range (shift tables); markedly abnormal values are flagged. Vital signs including heart rate are summarized as CFB by arm. ECG findings are summarized categorically [MOCK].

12.4 Deaths and Serious Adverse Events

Deaths, SAEs, and AEs leading to discontinuation are listed and summarized.

13. Interim Analyses and DSMB

No confirmatory interim efficacy analysis is planned. The independent DSMB performs periodic unblinded safety reviews per its charter (TMF-DSMB). Should any interim efficacy/futility assessment be added by amendment, an alpha-spending function (e.g., O'Brien–Fleming) would preserve the overall type-I error, documented in an updated SAP.

14. Statistical Software and Reproducibility

Analyses are performed in R (packages nlme, emmeans, broom) and Python (pandas, statsmodels). The analysis is fully reproducible from a fixed random seed (config/config.yaml, seed=42) via the project build (build.py); the verification gates (verify_pipeline, validate_cdisc, reconcile_csr, check_format) provide automated quality control, and CSR results are reconciled to the analysis outputs (reconcile_csr.py).

15. Changes from Protocol-Specified Analyses

None at finalization. Any post-hoc analyses will be clearly labeled as such in CSR-301.

16. Analysis Results Metadata (ARM)

Analysis Input dataset (filter) Method Output artifact
Primary HbA1c CFB W52 ADLB (FAS, PARAMCD=HBA1C, VISITNUM=8, ANL01FL=Y) ANCOVA outputs/stats/ancova_results.csv; Table 14.2.2
Longitudinal HbA1c ADLB (FAS, VISITNUM 2–8) MMRM (UN→AR1) outputs/stats/mmrm_results.csv; Figure 2
Nausea incidence (IV vs Sema) AE domain + ADSL denominators test of proportions outputs/stats/ae_prop_test.csv
Demographics & baseline ADSL / ADLB descriptive Table 14.1.3 / Table 1
TEAE summary AE domain descriptive Table 14.3.1 / Table 3
Disposition (CONSORT) ADSL / ADLB descriptive Figure 1
Subgroup forest ADLB/ADSL (by subgroup) ANCOVA Figure 3

17. Tables, Listings, and Figures

The planned TLFs and their shells are specified in TLF-301, mapped 1:1 to the generated outputs (outputs/tfl/, outputs/stats/).

Appendix A — Derivation Rules for Analysis Variables and Visit Windows

Derived variable Rule
BASE Last non-missing value on/before first dose (ABLFL="Y", VISITNUM=1), per parameter
CHG AVAL − BASE
PCHG CHG / BASE × 100 (BASE ≠ 0)
AGEGR1 <65 / >=65 from AGE
STRAT_HBA1C <8.5 / >=8.5 from baseline HbA1c (IRT-recorded; consistency verified)
STRAT_BMI <30 / >=30 from baseline BMI
Analysis visit Nominal week mapped to the nearest scheduled visit within ±7 days; the Week-52 window defines the primary timepoint
Responder (HbA1c<7.0%) 1 if Week-52 AVAL < 7.0, else 0; missing → non-responder (composite)
Responder (≥10% wt loss) 1 if Week-52 weight PCHG ≤ −10, else 0; missing → non-responder

Appendix B — Imputation Rules for Partial/Missing Dates

Appendix C — MMRM Model Statement and Convergence Logic

Primary longitudinal model (R nlme):

lme(CHG ~ TRT01A * VISIT + BASE,
    random = ~ 1 | USUBJID,
    correlation = corSymm(form = ~ 1 | USUBJID),     # unstructured
    weights     = varIdent(form = ~ 1 | VISIT),
    method = "REML", na.action = na.omit)
# On non-convergence, the pre-specified fallback is:
lme(CHG ~ TRT01A * VISIT + BASE,
    random = ~ 1 | USUBJID,
    correlation = corAR1(form = ~ 1 | USUBJID),       # AR(1)
    method = "REML")

LS means are obtained via emmeans(model, ~ TRT01A | VISIT); Week-52 contrasts versus semaglutide are reported. Degrees of freedom use the Kenward–Roger approximation for the unstructured model.

Appendix D — Multiplicity Testing Hierarchy (Graphical)

[1] IV vs Sema (HbA1c) ──► [2] Oral vs Sema (HbA1c) ──► [3] IV vs Sema (weight)
        │                                                       │
        └─ tested at α=0.05 only if all prior steps rejected ───┘
[3] ─► [4] IV<7.0% ─► [5] IV ≥10% wt ─► [6] Oral weight ─► [7] Oral<7.0% ─► [8] Oral ≥10% wt
Family-wise type-I error strongly controlled at two-sided α=0.05 (fixed sequence).

Appendix E — Hypoglycaemia Classification and Laboratory Shift-Table Definitions

Hypoglycaemia (international consensus): Level 1 (glucose 3.0–<3.9 mmol/L); Level 2 (<3.0 mmol/L); Level 3 (severe event requiring assistance). Summarized by level and arm (Safety Set). Laboratory shift tables: each analyte is classified relative to the central-laboratory reference range as Low / Normal / High at baseline and at the post-baseline worst value; shift frequencies (baseline category × worst post-baseline category) are tabulated by arm. Markedly abnormal criteria (e.g., ALT/AST >3×ULN; eGFR <45) are flagged separately and reconciled with the AESI listings.