About MMVSola Predictor
Version 1.10.3
Description
MMVSola Predictor is an R Shiny web application for pharmacokinetic (PK)
prediction of malaria drug candidates. It predicts human clearance from
in-vitro data (hepatocytes, microsomes) and in-vivo animal data via IVIVE
(in vitro–in vivo extrapolation), and simulates PK/PD profiles to estimate
efficacious doses for oral treatment and long-acting injectable (LAI)
chemoprevention.
The app is developed by
Medicines for Malaria Venture (MMV)
to support early-stage decision-making for antimalarial drug candidates.
Release Notes — v1.10.3
Enhancements
-
Faster Science Cloud file upload processing:
Updated to MMVshiny 1.2.2, which fixes a call-count blowup where the parameter-type
lookup used throughout state initialization (
GetType()
) was re-derived
from scratch dozens of times per parameter instead of being computed once and reused,
and a scan instead of an indexed lookup for a parameter's display label and its
Science Cloud filter/value expressions during upload processing. Measured on a real
4-compound Science Cloud upload: parameter-lookup call count dropped from 5,120 to
2,300 calls, cutting both upload-processing time (16.25s to 12.21s) and true
end-to-end upload time - from selecting the file to the app going idle again -
by about a quarter (20.04s to 14.94s). (#194)
Bug fixes
-
Uploading a compound no longer recomputes its default fraction-unbound prediction repeatedly:
The internal "DefaultFus" calculation (used to derive default values for
plasma/albumax binding and hepatocyte/microsome fu when no Science Cloud or user
value is available) was being recomputed up to 16 times per compound as its
dependency parameters settled one at a time - only the last, correct result was
ever used, the rest was discarded work. Now cached so it computes once per compound
state; predicted values are unchanged. (#195)
Release Notes — v1.10.1
Documentation
-
User Guide updated for Human CL/Vss manual entry and the MMVFree link:
Documents two shipped-but-undocumented features - direct entry of human (H)
Plasma CL/Vss (#165) and pre-filling MMVSola from a URL query string via a link
in MMVFree (#181) - including a full reference table of every URL parameter
MMVSola recognizes. (#185)
Release Notes — v1.10.0
Enhancements
-
App opens are now tracked as their own analytics stat:
Distinguishes a plain open from one landing pre-filled via a compound link
(e.g. from MMVFree) with a yes/no flag only - never the query-string parameters
or values themselves. (#141)
Release Notes — v1.9.1
Bug fixes
-
Sidebar numeric inputs no longer truncate to ~1 decimal digit:
Numeric values in the Prediction tab's left sidebar (Simulation parameters,
Chemical properties, PK in vivo/heps/mics, PD in vitro/SCID) now fit fully
instead of being clipped by narrow per-species input boxes, and fields in the
same row bottom-align regardless of how many lines their label wraps to. (#186)
Release Notes — v1.8.2
Bug fixes
-
Renamed "CLint,unbound in vivo" to "CLint (hepatic) unbound in vivo" in the PK Prediction report:
Following a question from Peter Webborn (#172): the value is the hepatic unbound
intrinsic clearance, back-calculated from the in vivo hepatic plasma clearance using
the well-stirred model - the old label didn't make the "hepatic" scope explicit.
Release Notes — v1.8.1
Bug fixes
-
21d/28d > MIC dose predictions now require continuous coverage:
For multi-dose regimens, a predicted dose could satisfy the 21/28-day time-above-MIC
target even if a trough between doses dropped below MIC and recovered - the total
summed time above MIC could hide a real gap in coverage. Dose prediction now targets
the length of the last uninterrupted excursion above MIC instead of the sum - the one
anchored at the end of the regimen, after the final dose - so a gap is no longer
silently accepted, and the 21-day and 28-day targets converge on genuinely different
doses instead of both being pushed up to whatever eliminates every early gap.
-
PK graph now shows a real gap in MIC coverage instead of hiding it:
The tMIC segment drawn on the plasma concentration plot previously spanned from the
first crossing above MIC to the last, drawing one continuous bar even when the profile
dipped below MIC in between (e.g. for a manually entered "what-if" dose). Each
contiguous excursion above MIC is now drawn as its own segment, so a real gap shows as
a visible break in the line.
Release Notes — v1.8.0
Enhancements
-
Human Plasma CL and Vss can now be entered directly:
The "PK in vivo" panel's Plasma CL and Plasma Vss rows now have a Human (H)
column input, alongside the existing Rat/Mouse/Dog columns. Both default to the
current IVIVE/allometry-predicted value, and can be overwritten with a known human
value (e.g. for compounds with established human PK data) - the override flows
through to every downstream calculation (dose predictions, PK/PD simulation,
reports) exactly as the predicted value did before. These two inputs have no
Science Cloud filter, since they can only be calculated from other inputs or
entered manually.
Release Notes — v1.7.6
Bug fixes
-
In-vitro Hill Slope now extracted from the same Science Cloud assay as IC50:
The default in-vitro Hill Slope was being extracted from a different assay/strain
(NF54, 3H-Hypoxanthine) than the one used for IC50 (3D7, LDH) for the same compound
- Hill Slope and IC50 come from the same dose-response curve fit, so they should
always come from the same assay run. The Science Cloud filter for Hill Slope now
matches IC50 (and MMVFree), using the 3D7/LDH assay. Uploaded reports or Science
Cloud files that only contain the older NF54/3H-Hypoxanthine assay will no longer
auto-populate the default Hill Slope from that data (consistent with how IC50
already behaves for such files) - the value can still be entered manually.
Release Notes — v1.7.5
Bug fixes
-
User Guide equations no longer show as raw LaTeX on a fast first click:
Clicking straight into the User Guide tab right after opening the app could show
equations as untypeset LaTeX source text - clicking any other tab first always
worked. The one-time MathJax typeset triggered when the tab is shown now waits for
both the User Guide iframe to actually be in the page and for MathJax to finish
loading inside it, instead of assuming a fast click already gave both enough time to
happen.
Release Notes — v1.7.4
Bug fixes
-
User Guide equations no longer render huge/garbled on first load:
The User Guide iframe is pre-rendered at app startup while its tab is still
hidden behind the default "Input Data" tab, causing MathJax to mis-size equations
when computing font metrics inside a hidden container - and to cache that wrong
measurement, so a later retypeset alone did not fix it. MathJax's automatic
typeset-on-load is now disabled for this page; its one and only typeset is
triggered the first time the tab is actually shown instead, so metrics are always
measured while visible, without reloading the iframe or disturbing the reader's
scroll position on later tab switches.
Release Notes — v1.7.3
Bug fixes
-
User Guide equations rendered correctly on HTTPS:
Mathematical equations in the User Guide tab now render properly when
accessing the app via the public HTTPS URL. The fix switches MathJax from
the RStudio CDN (blocked by the server Content Security Policy) to
MathJax 3 via cdn.jsdelivr.net, which is on the allowlist.
-
User Guide scroll position preserved across tab switches:
Navigating away from the User Guide tab and returning no longer resets
the scroll position to the top. The iframe is now only reloaded when the
underlying documentation file changes on disk.
Release Notes — v1.7.2
New features
-
LAI chemoprevention sub-tab:
New Oral and LAI sub-tabs replace the previous single-panel Prediction view.
The LAI tab predicts doses for 90-day and 180-day coverage using fast and slow
Ka scenarios and both in-vitro and SCID EC50 sources.
-
Side-by-side PK/PD plots with interactive legend:
Each sub-tab shows two plots — in-vitro EC50-predicted doses on the left,
SCID EC50-predicted doses on the right — with checkboxes to toggle individual
curves. A merged single-plot view is available via a toggle button.
-
tMIC coverage segments on plots:
Each checked dose row overlays a segment showing the onset and duration of
MIC coverage with a dose-matched label (e.g. "28.1 d").
-
6 independent user dose inputs in Table 3:
Each Dose column (2 in Oral, 4 in LAI) has its own editable numeric input,
replacing the shared Simulated Dose parameter.
-
Dynamic plot panel titles:
The merged plot title reflects which EC50 sources contribute visible
predicted doses.
-
User Guide tab:
A comprehensive in-app user guide covering all major workflows, with
annotated screenshots and step-by-step instructions.
-
About tab:
New tab summarising the app description, release notes, and contact
information.
-
Redesigned Report tab and updated Excel report:
The Report tab has been redesigned for clarity. The Excel report now
includes separate sheets for Oral and LAI predictions.
Enhancements
-
Hepatic extraction ratio (E
H
) in Oral Table 1:
E
H
is shown in Predicted Human PK Parameters, making the
Fa → Fabs
1
correction transparent.
-
Fa tooltip:
An info icon on Fraction Absorbed (Fa) inputs explains the distinction between
oral (first-pass corrected) and LAI (bioavailability directly).
-
Y-axis anchored to MIC:
Both Oral and LAI plots anchor the y-axis to MIC/100 – 100×MIC.
-
Improved fu prediction:
Updated to MMVhuPKpred v0.1.14 with rules for fu prediction from available
inputs; a new action button generates a table of default value predictions.
-
Default value dependency graph:
A new collapsible group in the left-hand menu shows an interactive dependency
graph illustrating which inputs drive each predicted fu value.
-
Rules for fractions unbound:
Missing fu values (hepatocyte and microsome fu per species) are derived from
available measurements following an agreed hierarchy.
-
Reference human body weight updated to 55 kg:
Changed from 60 kg for consistency with clinical trial datasets for
African adults. Note: this affects oral predicted doses relative to
previous versions.
-
Separate fraction absorbed (Fa) parameters for Oral and LAI:
Fa is now defined independently for each route —
Oral (default 1.0), LAI fast (default 0.8), LAI slow (default 0.8).
-
Separate absorption rate (Ka) parameters for Oral and LAI:
Ka is now defined independently for each route —
Oral (default 1.0 1/h), LAI fast (default 2.98×10⁻³ 1/h,
based on medroxyprogesterone acetate), LAI slow (default 2.08×10⁻⁴ 1/h,
based on levonorgestrel butanoate).
Bug fixes
-
12-log kill PD curve floor:
Parasitemia curve now correctly stays at the minimum value after parasite
clearance without bouncing back.
-
Checkbox synchronisation:
Per-compound checkbox state is managed via a dedicated MMVshiny input type;
duplicate DOM IDs in the LAI tab resolved.
-
Test suite updated:
Tests redesigned with shinytest2; reference report files updated to match
current output format.
Release Notes — v1.6.0
- 21-day and 28-day > MIC dose predictions added to the Predict Dose
dialog and Excel report.
- SCID EC50 and SCID Hill included as user inputs for SCID-based dose
prediction.
- Absorption rate (Ka) made a user-editable input parameter
(previously fixed at 1.0 /h).
- Dual renv lock files (renv.R3.lock / renv.R4.lock) for R 3 and R 4
compatibility.
- Default value source shown in User Inputs report sheet.
Privacy
This app collects anonymous usage statistics (app opens, tab navigation,
file uploads, and report downloads). No compound data, parameter values,
or results entered or generated in the app are collected or transmitted.
Contact
For questions or feedback, please contact:
Medicines for Malaria Venture (MMV)
Route de Pré-Bois 20, 1215 Geneva 15, Switzerland
www.mmv.org