# PMcore
[](https://github.com/LAPKB/PMcore/actions/workflows/rust.yml)
[](https://lapkb.github.io/PMcore/pmcore/)
[](https://github.com/LAPKB/PMcore/actions/workflows/security_audit.yml)
[](https://crates.io/crates/pmcore)
Rust library with the building blocks to create and implement new non-parametric algorithms for population pharmacokinetic modelling and their integration with [Pmetrics](https://github.com/LAPKB/Pmetrics).
## Implemented functionality
- Solver for ODE-based population pharmacokinetic models
- Supports the Pmetrics data format for seamless integration
- Covariate support, carry-forward or linear interpolation
- Option to cache results for improved speed
- Powerful simulation engine
- Bestdose module for dose optimization
## Available algorithms
This project aims to implement several algorithms for non-parametric population pharmacokinetic modelling.
- [x] Non Parametric Adaptive Grid (NPAG)
- [Yamada et al (2021)](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7823953/)
- [Neely et al (2012)](https://pubmed.ncbi.nlm.nih.gov/22722776/)
- [x] Non Parametric Optimal Design (NPOD)
- [Otalvaro et al (2023)](https://pubmed.ncbi.nlm.nih.gov/36478350/)
- [Leary et al (2003)](https://www.page-meeting.org/default.asp?abstract=421)
- [ ] Non Parametric Simulated Annealing (NPSA)
- [Chen et al (2023)](https://arxiv.org/abs/2301.12656)
In the future we also aim to support parametric algorithms, such as the Iterative 2-Stage Bayesian (IT2B)
## Examples
Look at the examples in the `examples` folder to see how to use this library. The examples cover a variety of scenarios.
You may run them with the following command, e.g.
```
cargo run --example bimodal_ke --release
```
## Documentation
For more information on how to use this crate, please review the [documentation](https://lapkb.github.io/PMcore/)