pmcore 0.2.1

Rust library with the building blocks needed to create new Non-Parametric algorithms and its integration with Pmetrics.
Documentation
# PMcore
[![Build](https://github.com/LAPKB/PMcore/actions/workflows/rust.yml/badge.svg)](https://github.com/LAPKB/PMcore/actions/workflows/rust.yml)
[![Documentation](https://github.com/LAPKB/PMcore/actions/workflows/docs.yml/badge.svg)](https://github.com/LAPKB/PMcore/actions/workflows/docs.yml)
[![Security Audit](https://github.com/LAPKB/PMcore/actions/workflows/security_audit.yml/badge.svg)](https://github.com/LAPKB/PMcore/actions/workflows/security_audit.yml)
![crates.io](https://img.shields.io/crates/v/pmcore.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/PMcore/)