v2.9.4 — VPC tab hardening and new options
What's new
Seven targeted fixes and improvements to the VPC tab.
Bug fixes
- Stale
m1/after a PsN re-run — if PsN'svpcwas re-run with different settings and produced a freshm1.zip, the app previously kept using the old extractedm1/. The extractor now compares modification times and re-extracts automatically when the zip is newer. vpc_results.csvabsence not detected — PsN run with-no_results=1or an aborted VPC produces novpc_results.csv, causing R to fail with a confusing error. The app now detects this before running and prints a clear warning to the console.xpose4confused withxpose— users with the legacyxpose4package but not the newerxposegot a cryptic R error. The R-package status now shows: "xpose ✗ (xpose4 found — run install.packages('xpose'))".- R locale mismatch — on systems with a non-English
LC_NUMERIClocale,read.csvwould misparse decimal separators invpc_results.csv. Both generated R scripts now begin withSys.setlocale("LC_NUMERIC", "C"). - xpose error diagnostics — the xpose error handler now lists
.lstand.modfiles in the run directory alongside sdtab files, so "run not found" failures are immediately diagnosable from the console.
New functionality
- ULOQ field — upper limit of quantification can now be specified next to LLOQ. Passed as
uloq=to bothvpc::vpc()andxpose::vpc_opt(). Disabled when "Use PsN settings" is checked. - Configurable timeout — the hard-coded 5-minute R script timeout is replaced by a user-configurable field (1–120 min, default 30 min). VPCs with 1000+ simulations routinely need 10–30 minutes.
UX
- Stratify field tooltip warns that combining it with PsN's
-stratify_onoption produces incorrect results.