# Instructions

## Install code

Install with 

```bash
git clone https://git0.fmf.uni-lj.si/studen/PBPK_public.git
```

Use [GIT][GITinstaller] for Windows. More instructions on the web page.

## Dependencies

On top of python, you'll need numpy and scipy. Install using pip

```
pip3 install numpy,scipy
```

Use windows terminal (ie. cmd.exe)

## Use 

Follow `cDiazepam.json`. Basic instructions:
- `runSolver.main(setup,model,parameters,jobDir,srcDir)` 
   This constructs a model from the model file, sets it up with parameters from parameters file, uses the setup to drive calculation which it stores in jobDir. If srcDir is not a string NONE, it takes the solution from srcDir and continues it until tmax in setup is reached.
   `setup['mode']` will select computation method. Typical value is `'IVP'`, which will use `LSODA` or a similar method, set through `setup['method']` to perofrm adaptable step solution of an inital value problem. Selecting `'solveMatrix'` as mode and `'solveSequential'` as method will calculate solution using matrix equation, which should be faster.
   
- `runSolver.loadSolutionFromDir(jobDir,True)` 
   Read solution from dir jobDir. Returns a dict with fields 
   t,sol,se,qt,sOut,lut,lutSE,setup,model,parameters,qt,sOut where:
   
    - t is the sequence of time points
    - sol is the list of solutions for each compartment at each time point
    - se is the error 
    - lut is the look up table of named containers / indices pairs where index points to a list in solution, ie `['sol'][lut[containerName],j]` is the concentration of containerName at time point j
    - lutSE is the lookup table of parameters
    - setup is the parsed setup file
    - parameters are the parsed parameters
    - model is the model parse model





[GITinstaller]: https://www.git-scm.com/download/win

