# NPcore [![Build](https://github.com/LAPKB/NPcore/actions/workflows/rust.yml/badge.svg)](https://github.com/LAPKB/NPcore/actions/workflows/rust.yml) [![Security Audit](https://github.com/LAPKB/NPcore/actions/workflows/security_audit.yml/badge.svg)](https://github.com/LAPKB/NPcore/actions/workflows/security_audit.yml) ![crates.io](https://img.shields.io/crates/v/npcore.svg) 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 * Informative Terminal User Interface (TUI) ## Available algoritms 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 There are two examples using NPAG implemented in this repository, `bimodal_ke` and `two_eq_lag`. You may run them with the following command, e.g. ``` cargo run --example bimodal_ke --release ``` Look at the corresponding `examples/.../*.toml`-file to change the configuration for each run. ## Documentation For more information on how to use this crate, please review the [documentation](https://lapkb.github.io/NPcore/)