Skip to content

v2.9.4 — VPC tab hardening and new options

Choose a tag to compare

@Robterheine Robterheine released this 01 May 12:26
· 31 commits to main since this release

What's new

Seven targeted fixes and improvements to the VPC tab.

Bug fixes

  • Stale m1/ after a PsN re-run — if PsN's vpc was re-run with different settings and produced a fresh m1.zip, the app previously kept using the old extracted m1/. The extractor now compares modification times and re-extracts automatically when the zip is newer.
  • vpc_results.csv absence not detected — PsN run with -no_results=1 or an aborted VPC produces no vpc_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.
  • xpose4 confused with xpose — users with the legacy xpose4 package but not the newer xpose got 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_NUMERIC locale, read.csv would misparse decimal separators in vpc_results.csv. Both generated R scripts now begin with Sys.setlocale("LC_NUMERIC", "C").
  • xpose error diagnostics — the xpose error handler now lists .lst and .mod files 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 both vpc::vpc() and xpose::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_on option produces incorrect results.