Program to run backward predictions of individual tumor initiation time with bayesian inference and likelihood maximization.

# PLUMKY

## Population modeling of tumor growth kinetics and bayesian predictions.

# Program requirements

Program to perform predictions of individual tumor growth with bayesian inference (in particular, backward prediction of the initiation time of the tumor).

Launch the main.py file to run the code. In the main.py file it is possible to chose the data set (cell line name),

the models to perform the analysis, the error model and the number of observations to take into account for the backward prediction.

...

...

@@ -35,15 +38,15 @@ Then the following options can be run:

- backward predictions with stan

- backward predictions with likelihood maximization

# Results

### Results

Results are organized as follows inside the folder folder_results/cell_line_name (specified in the main.py file):

- global monolix analysis: a summary is created (summary_global_population_analysis.pdf) with the results relative to each model. In the subfolder global_monolix_analysis/ there are files and subfolders with the detailed analysis of the nonlinear mixed effects modeling of each tumor growth equation.

- backward predictions: a summary is created (summary_backward_predictions.pdf) with the relative errors of each model obtained with bayesian inference and likelihood maximization (detailed results and figures are in prediction_summary). Individual prediction plots can be found in backward_prediction/model_name, in case of bayesian inference, and in backward_prediction_lm/model_name, in case of likelihood maximization. The files .db contain the workspace with the results of backward predictions for each individual.

The folders named with numbers contain the test set and the learning test used for the k-fold cross validation with the monolix analysis of the learning set. The parameter distributions found are used then as prior distribution to perform bayesian inference.

# How to add a new data set

### How to add a new data set

It is possible to add a new data set. Data must be saved in a txt file with three columns (ID, Time, Observation) and each row contains the observation of an individual at a certain time. The new data set must be declared in the function import_data in import_data.py.

# How to add a new tumor growth model

### How to add a new tumor growth model

Tumor growth models are defined in model_definition.py (for the Monolix analysis and backward predictions using likelihood maximization) and in stan_model_definition.py (for backward predictions using Bayesian inference).

All the models defined in stan_model_definition.py must be defined in model_definition.py.