← Run history

Independent population-PK analysis — run R-20261008-141821-7241

primary template pk_2cmt_oral_v1 v1.0.3 · status completed · 2026-10-08T14:18:36Z

1. Pre-comparison checks

CheckStatusDetail
convergencepassOptimizer message: Normal exit from bobyqa
covariance steppassCovariance matrix obtained (method |r|,|s| (full))
RSE feasibilitypassAll RSE below 50%
parameter boundspassAll estimates and variances within plausible bounds
estimation diagnosticswarnnlmixr2 reported: gradient problems with covariance; see $scaleInfo; since sandwich matrix is corrected, you may compare to $covR or $covS if you wish; S matrix non-positive definite but corrected by S = sqrtm(S%*%S); R matrix non-positive definite but corrected by R = sqrtm(R%*%R); last objective function was not at minimum, possible problems in optimization; ETAs were reset to zero during optimization; (Can control by foceiControl(resetEtaP=.))

2. Comparison with the applicant's reported values

Relative difference = (independent − applicant) / applicant. Flag when |Δ| > 20%.

ParameterApplicantIndependent95% CIΔApplicant value in CIFlag
CL/F (L/h)4.24.09 3.81 – 4.39 -2.6%yes
V2/F (L)3535.5 31.5 – 40 +1.3%yes
Q/F (L/h)8.17.94 7.53 – 8.38 -1.9%yes
V3/F (L)120117 110 – 125 -2.1%yes
KA (1/h)1.11.14 0.959 – 1.36 +3.6%yes
IIV CL (CV%)3027 – -10.0%–

Possible sources of difference

No parameter differs from the applicant's value by more than the tolerance. Generic factors are listed for completeness.

Facts about this run

Generic factors

3. Parameter estimates

ParameterEstimateRSE %95% CIIIV CV%η-shrinkage SD%Fixed
CL/F (L/h)4.0913.62 3.81 – 4.39 275.58no
V2/F (L)35.476.08 31.5 – 40 24.919.5no
Q/F (L/h)7.9442.74 7.53 – 8.38 ––no
V3/F (L)117.43.17 110 – 125 ––no
KA (1/h)1.148.84 0.959 – 1.36 28.734.7no
Residual: add.sd5.83561.4–––no
Residual: prop.sd0.14533.61–––no

RSE on the natural scale ≈ 100 × SE(log θ); 95% CI = exp(log θ ± 1.96 SE). OFV = 4372.9333 · AIC = 5151.9766 · 60 subjects, 413 observations (0 censored) · covariance |r|,|s| (full) · estimation time 11.4 s.

4. Goodness-of-fit

DV vs PRED
DV vs PRED
DV vs IPRED
DV vs IPRED
CWRES vs TIME
CWRES vs TIME
CWRES vs PRED
CWRES vs PRED
Individual profiles
Individual profiles (first six subjects)

5. Data QC and preparation

Every exclusion or correction is listed. Raw records: 483 → prepared: 473 (413 observations, 60 subjects).

CheckOutcomeRecordsDetailSubjects
required_columnspass0All 11 required columns present
unitsfix4Converted DV and LLOQ from ug/mL to ng/mL SYN-052
duplicatespass0No duplicate records
chronologypass0Every subject has a dose record (60 subjects)
records_before_doseexclude3Observation records before the first dose excluded (3 with a quantified concentration > 0, which is not expected before dosing) SYN-007, SYN-023, SYN-041
ntime_vs_timewarn9Actual time deviates from nominal by more than max(0.5 h, 10% of NTIME); records kept, actual TIME used SYN-005, SYN-007, SYN-012, SYN-014, SYN-019, SYN-025, SYN-035, SYN-046
missing_covariatespass0WT available for all subjects
blq_proportionpass77 BLQ records = 1.7% of observations (6.2% of samples with NTIME >= 24 h)
blq_handlingexclude7BLQ method M1: BLQ records discarded before estimation SYN-002, SYN-011, SYN-020, SYN-030, SYN-039, SYN-042

6. Analysis spec (confirmed by the assessor)

Confirmed 2026-10-08T14:18:21Z by auto-confirm (auto-confirm (demo)).

{
  "compartments": 2,
  "absorption": "first_order",
  "route": "oral",
  "error_model": "combined",
  "iiv": [
    "CL",
    "V2",
    "KA"
  ],
  "estimation": "FOCEi",
  "reference_values": {
    "CL": 4.2,
    "V2": 35.0,
    "V3": 120.0,
    "Q": 8.1,
    "KA": 1.1,
    "IIV_CL": 30.0
  },
  "analysis_type": "primary",
  "blq_method": "M1",
  "template": "pk_2cmt_oral_v1"
}

7. Traceability manifest

Run ID / parentR-20261008-141821-7241 / — (root R-20261008-141821-7241)
Templatepk_2cmt_oral_v1 v1.0.3, catalogue 1.0.3, template hash 589f254e36326ab2…
Script SHA-25641f519daf7a1adac8e51bef28150365230ef97a2c5e983f2d5d6962366ae729d
Raw data SHA-2561cb7adff311dcd25660f2353d892964c98ad1932a6b69b6ed28c6ebfcaa48c6b
Prepared data SHA-256643cf77a70d32f3e284a6391b2438c2c1ee0b95f85d8b6c246098e4ef7f82494
Seed20240607
Extractormock (rule-based, prompt mock_v1) jobs J-4c1e061e5b, J-7f6d32ad91
R packagesnlmixr2 7.0.1, nlmixr2est 7.1.0, rxode2 5.1.7.1, lotri 1.0.5, ggplot2 4.0.3, jsonlite 2.0.0, R 4.6.1, BLAS /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3, LAPACK /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so
Python packagespython 3.12.3, jinja2 3.1.4, pandas 2.2.3, numpy 2.1.3, jsonschema 4.23.0, typer 0.12.5
EnvironmentLinux-6.17.0-1022-azure-x86_64-with-glibc2.39 · image ghcr.io/djindetoss/pk-analysis-poc:sha-39060f2 · commit 39060f262255
Full manifest.json
{
  "run_id": "R-20261008-141821-7241",
  "parent_run_id": null,
  "root_run_id": "R-20261008-141821-7241",
  "purpose": "analysis",
  "analysis_type": "primary",
  "sensitivity_fields": [],
  "status": "completed",
  "created_at": "2026-10-08T14:18:21Z",
  "completed_at": "2026-10-08T14:18:36Z",
  "spec": {
    "compartments": 2,
    "absorption": "first_order",
    "route": "oral",
    "error_model": "combined",
    "iiv": [
      "CL",
      "V2",
      "KA"
    ],
    "estimation": "FOCEi",
    "reference_values": {
      "CL": 4.2,
      "V2": 35.0,
      "V3": 120.0,
      "Q": 8.1,
      "KA": 1.1,
      "IIV_CL": 30.0
    },
    "analysis_type": "primary",
    "blq_method": "M1",
    "template": "pk_2cmt_oral_v1"
  },
  "spec_hash": "5c35bee5bc26c533ecfbf89e2cc3a004ae8575e9508e07875adba84dacdf6d07",
  "methodology_hash": "b654e16c214dc3976105d8ac0299bbdd62f10838806e6f9b8c4930f04667771a",
  "template": {
    "id": "pk_2cmt_oral_v1",
    "version": "1.0.3",
    "hash": "589f254e36326ab2ae18dce251949169b318f7e59c79210d33428f972dc38600",
    "catalogue_version": "1.0.3"
  },
  "script_hash": "41f519daf7a1adac8e51bef28150365230ef97a2c5e983f2d5d6962366ae729d",
  "seed": 20240607,
  "input_data": {
    "raw_file": "data/raw/adpc_synthetic.csv",
    "raw_hash": "1cb7adff311dcd25660f2353d892964c98ad1932a6b69b6ed28c6ebfcaa48c6b",
    "prepared_hash": "643cf77a70d32f3e284a6391b2438c2c1ee0b95f85d8b6c246098e4ef7f82494"
  },
  "extractor": {
    "name": "mock",
    "model": "rule-based",
    "prompt_version": "mock_v1",
    "job_ids": [
      "J-4c1e061e5b",
      "J-7f6d32ad91"
    ]
  },
  "confirmation": {
    "at": "2026-10-08T14:18:21Z",
    "by": "auto-confirm",
    "mode": "auto-confirm (demo)"
  },
  "packages": {
    "python": {
      "python": "3.12.3",
      "jinja2": "3.1.4",
      "pandas": "2.2.3",
      "numpy": "2.1.3",
      "jsonschema": "4.23.0",
      "typer": "0.12.5"
    },
    "r": {
      "nlmixr2": "7.0.1",
      "nlmixr2est": "7.1.0",
      "rxode2": "5.1.7.1",
      "lotri": "1.0.5",
      "ggplot2": "4.0.3",
      "jsonlite": "2.0.0",
      "R": "4.6.1",
      "BLAS": "/usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3",
      "LAPACK": "/usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so"
    }
  },
  "environment": {
    "platform": "Linux-6.17.0-1022-azure-x86_64-with-glibc2.39",
    "machine": "x86_64",
    "cpu": "AMD EPYC 9V74 80-Core Processor",
    "math_env": {
      "OPENBLAS_CORETYPE": "Prescott",
      "OPENBLAS_NUM_THREADS": "1",
      "GLIBC_TUNABLES": "glibc.cpu.hwcaps=-AVX2_Usable,-AVX512F_Usable,-FMA_Usable,-FMA4_Usable,-AVX2,-AVX512F,-FMA,-FMA4"
    },
    "container_image": "ghcr.io/djindetoss/pk-analysis-poc:sha-39060f2",
    "git_commit": "39060f262255991b7d5beba50bd8273ae2702323",
    "python_executable": "/opt/venv/bin/python"
  },
  "tool_version": "0.1.0",
  "settings": {
    "tolerance": 0.2,
    "rse_threshold": 50.0,
    "qc": {
      "ntime_abs_tol_h": 0.5,
      "ntime_rel_tol": 0.1,
      "blq_warn_fraction": 0.1
    }
  },
  "engine": {
    "returncode": 0,
    "elapsed_s": 15.1,
    "resumed_from_checkpoint": false
  },
  "outputs": {},
  "request_prompt_hash": "3c85327d7417dfcc3e3852c5f74c8462505acdc9d7dbdb44cf9c4a2d2bfe283d",
  "comparable": true
}

Generated 2026-10-08T14:18:36Z by pk-analysis-poc 0.1.0 — synthetic data, demonstrator only.