Skip to content
unibio-intelligencePublic

About

PK/PD simulation and fitting through Rust, Python, R, browser and MCP interfaces.

Topics

Resources

Contributing

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Repository files navigation

QSPQuest

QSPQuest simulates pharmacology models and fits model parameters. Run it locally from the command line, Python or R, or connect through WebAssembly or MCP. Models declare their equations, units, parameters and dosing events.

Start with the synthetic model below. To explore a published model, use the model catalog.

Start with your agent

Connect your own agent client to the QSPQuest MCP server. The Docker image includes a synthetic model, so you can inspect it and run a dose simulation without installing Rust or downloading a model library. Follow the complete agent and Docker quickstart for HTTP or stdio setup, a copyable agent prompt and expected results.

Try it in your browser

Explore the synthetic model with adjustable dose, clearance and volume, a concentration plot and CSV download. Load your own model and run request, or select a library preset included in a prepared bundle. Computation runs on your device in a WebAssembly worker. The browser quickstart covers the prepared bundle and source build. Use the MCP server when connecting your agent.

Try the CLI

You need Git, Rust 1.98.1/Cargo and a native compiler. On macOS or Linux:

git clone https://github.com/unibio-intelligence/qspquest.git
cd qspquest
cargo build --release --locked -p qspquest-cli
target/release/qspquest run \
  conformance/models/synthetic-one-compartment.qsp \
  docs/examples/first-run.json > simulation.json

If you already have the source, start with the build command from its root. The first build downloads locked dependencies and can take several minutes. For other interfaces and platform prerequisites, see installation.

This example gives a 6 mg bolus into a 3 L compartment, with clearance 0.3 L/h. Open simulation.json: its cp output contains four post-dose concentrations in mg/L, along with event sides and engine identity.

Time (h) Concentration (mg/L)
0 2.000000
2 1.637462
8 0.898658
24 0.181436

The concentration follows cp(t) = 2 * exp(-0.1 * t). These synthetic parameters illustrate a one-compartment model; they are not a clinical dosing recommendation. Choose a new output filename to retain another run.

Choose your next step

Task Guide
Run a model from the library Choose a model · Engine setup
Work in Python or R Python · R
Write equations or fit observations Modeling · Synthetic fitting · Published-data fit
Use Docker, a browser or MCP Docker · WebAssembly · MCP

The guide index includes paired-endpoint fitting, SBML/OMEX interchange, analysis notebooks and API references.

Supported scope

Native models support dosing events, scans, sensitivities and bounded fitting. The SBML importer supports rate-rule ODEs and a bounded OMEX experiment profile; general reaction-network and SED-ML execution are outside this release. Shared-model execution uses each archive's verified native QSPQuest projection.

Independent validation reports numerical comparisons for its recorded engine and inputs. BDF and Rodas5P are the qualified routes for those contracts. The capability matrix describes other methods and interfaces. Agreement on tested problems does not establish clinical suitability, an error-free engine or fitting support for every model. Read each model's scope and units before interpreting its results.

Contribute and get help

See contributing for tests, builds and bug reports, and the security policy for private vulnerability reports. Ubi-owned engine code and synthetic examples use Apache-2.0. Vendored components retain their licenses and provenance. Developed by UniBio Intelligence.

About

PK/PD simulation and fitting through Rust, Python, R, browser and MCP interfaces.

Topics

Resources

Contributing

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages