MMVSola Predictor
  • File Input
  • Prediction
  • Report
  • User guide
  • About
Processing your input...

Welcome to MMVSola!


Please, either

  • upload a Science Cloud input file, or

  • upload a MMVSola report file, or

  • specify parameters manually in the Prediction tab.

Please, read these helpful tips!
You can open or close the input categories below by clicking on their titles. The input fields are colored depending on the source of input: azure for default value, golden for ScienceCloud, white for manual input. If you type a value manually, you need to press Enter or click outside the input field for the value to be submitted. Place the mouse over the icon next to an input field to see additional information, such as the valid range for this parameter. Pressing the Reset compounds button from the File Input tab will erase all ScienceCloud and manual inputs for selected compounds and reset all parameters to their defaults. Note that the displayed values can be rounded to a few decimal digits, although the values with the full available precision will be used in the calculations.

Simulation parameters

Oral LAI Fast LAI Slow
Fraction Absorbed (0 – 1)
Ka [1/h]
Number of Doses
Dosing Interval [h]

Chemical properties

PK in vivo

H R M D
Plasma Binding [%]
Blood to Plasma Ratio
Plasma CL [mL/min/kg]
Plasma Vss [L/kg]
Renal Plasma Clearance (mL/min/kg)

PK in heps

H R M D
Hep. Clint [µL/min/10^6 cells]
Measured fu in Hep. assay (0-1)
10^6 cells/mL in Hep. Assay
Hep. regression intercept
Hep. regression slope

PK in mics

H R M D
Mic. CLint [µL/min/mg]
Measured fu in Mic. assay (0-1)
mg/mL Protein in Mic. Assay
Mic. regression intercept
Mic. regression slope

PD in vitro

PD in SCID

Prediction details

  • Oral
  • LAI


Select compound

Select sheets

Sheet Oral LAI
All
Summary
PK Prediction
Sensitivity Plots
Sensitivity Analysis
Comparative Summary
Comparative PK Prediction
Comparative User Inputs

Shared sheets
User Inputs
Science Cloud File
Additional Information
GPF
Generate Full Report Generate Oral Report Generate LAI Report
Open in new browser tab | Download Word (.docx)

About MMVSola Predictor

Version 1.11.15


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.11.15

Improvements
  • User Guide links: The User guide tab now has links, in its top-right corner, to open the guide in its own browser tab and to download it as a Word (.docx) file. The links are plain page content, so readers that cannot display the embedded guide, such as AI assistants, can still reach the guide text. The guide now also states its authors, version and copyright, and offers a suggested citation. (#246)
Bug fixes
  • Time above MIC now matches the dose criterion: The Time above MIC (and MPC) shown in the Oral and LAI statistics and in the report Summary sheet, together with its onset and end, now refer to the last uninterrupted period above the threshold, which is the definition used to predict the MIC-based doses. Previously the sum of all periods was shown, which could exceed the target coverage time when the concentration dropped below the MIC between doses. (#244)

Release Notes — v1.11.14

Improvements
  • Default fu predictions: The fraction unbound in the hepatocyte and microsome assays can now be predicted from the other assay type measured in other species, when it is not available for the same species. This follows the team decision of 30.09 and may change predicted default fu values, and thus predicted clearance, relative to earlier versions. The Prediction Graph and Prediction Table show which rule was applied. (#169)

Release Notes — v1.11.13

Bug fixes
  • Large report upload: Uploading a report file larger than 5 MB no longer fails with "Maximum upload size exceeded". The upload limit is now 50 MB. (#124)

Release Notes — v1.11.12

Documentation
  • User Guide: The section on PD parameters from SCID mouse data now lists the required inputs and defaults (mouse plasma protein binding, mouse blood-to-plasma ratio, Hill coefficient), states that the SCID haematocrit is always accounted for, and explains how E MAX , MPC 90 and MIC are obtained. (#236)

Release Notes — v1.11.11

Documentation
  • User Guide: A short section in the Quick Start explains how to export the Science Cloud extract that can be uploaded on the File Input tab. (#233)

Release Notes — v1.11.10

Improvements
  • Faster restarts: The cached snapshot of the default input state is now also kept on disk in the app folder, so it survives restarts of the app process until a new version is deployed, and it is found reliably in every session. (#231)

Release Notes — v1.11.9

Bug fixes
  • Report upload: Reports generated by older versions of MMVSola now also restore the human blood to plasma ratio, the IC50, the SCID mouse EC50 and the human hepatocyte count, whose labels had been renamed. The legacy labels are listed in Resources/LegacyReportLabels.xlsx. (#229)

Release Notes — v1.11.8

Improvements
  • Faster start and file uploads: New compounds are now initialised from a cached snapshot of the default input state instead of recomputing it for every input, which shortens the app start and the upload of Science Cloud and report files by a few seconds. (#225)
  • Faster app start: Removed a duplicate update of all input fields at startup. (#225)
Maintenance
  • Developer monitoring tab: With the server setting MMVSOLA_TRACK_TIME=TRACK the tab is always offered and execution-time tracking starts with every session. (#225)

Release Notes — v1.11.7

Bug fixes
  • Loading banner after a file upload: The red "Processing your input..." banner now stays visible until the app has finished updating all tables and figures, instead of disappearing while the app is still busy. (#194)

Release Notes — v1.11.6

Maintenance
  • Developer monitoring tab: Updated SafeShiny: every event expression of an observer is now recorded (even very fast ones), so it can be inspected in the flame chart at high zoom. (#218)
  • Execution-time tracking: Off by default (no overhead, and the developer tab is not shown). Developers enable it with the environment variable MMVSOLA_TRACK_TIME=TRUE (or AUTO) on the server. (#216)
  • Developer monitoring tab: Updated SafeShiny: the tab has a field to set the minimum duration of the calls that define the trim window. (#214)
  • Developer monitoring tab: Updated SafeShiny: the "trim idle time" option can ignore tiny calls (such as tab-switch observers) via an optional minimum duration; by default every call counts. The tab also no longer risks ending the session: an error in the trigger of an observer is now contained too. (#212)

Release Notes — v1.11.2

Bug fixes
  • Developer monitoring tab: Clearing or refreshing the console sub-tab no longer crashes the session when the captured output contains non-UTF-8 characters. (#210)

Release Notes — v1.11.1

Bug fixes
  • Developer monitoring tab: The tab content now scrolls above the footer banner, so the table pager is reachable. The tab also has a console output sub-tab, can trim idle time from the flame chart and summary, and empties its tables on Start. (#208)

Release Notes — v1.11.0

Maintenance
  • Developer monitoring tab: Opening the app with ?safeshinytab=1 adds a developer tab to start/stop execution-time tracking, view an interactive flame chart and the error log. Not visible to regular users. (#206)

Release Notes — v1.10.6

Maintenance
  • Updated internal libraries: SafeShiny 0.4.0 and MMVshiny 1.4.0. Added optional execution-time tracking (for developers; off by default). (#204)

Release Notes — v1.10.5

Bug fixes
  • One compound's problem no longer breaks the whole report: If a compound has an invalid parameter, report generation now degrades for that compound's sheet only instead of failing for all compounds. (#121, #123, #199)
  • Report sheets no longer missing or empty: Fixed a defect in the new report-generation safeguards that could leave some sheets empty (Comparative sheets, Additional Information) or drop others (User Inputs, Comparative PK Prediction, GPF) in generated reports. (#202)

Release Notes — v1.10.4

Enhancements
  • Faster Science Cloud file upload processing, continued: Updated to MMVshiny 1.2.3, a slightly faster version.

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

Version 1.11.15 Powered by: