diff --git a/README.md b/README.md index 1bbd75c..c0cece5 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,23 @@ # N-803_SIV_Model Jonathan W. Cody -This repository contains all the code needed to replicate the following journal article, submitted to PLoS Computational Biology. MATLAB R2018b or later is required. - +This repository contains all the code needed to replicate the following article. MATLAB R2018b or later is required. Cody JW, Ellis-Connell AL, O’Connor SL, Pienaar E. "Mathematical modeling indicates that regulatory inhibition of CD8+ T cell cytotoxicity can limit efficacy of IL-15 immunotherapy in cases of high pre-treatment SIV viral load." ========================= -To replicate the article, unzip the entire repository into a folder and run the code in the following order below. Results of step #3 are included in the repository in the file 'N803_ForPlots.mat', which allows you to skip to plotting (steps #4,5). +To replicate the article, unzip the entire repository into a folder and run the code in the following order below. Results of step #3 are included in the repository in the file 'N803_ForPlots.mat', which allows you to skip to plotting (steps #4,5). To replicate only the MAIN TEXT results, perform steps #1,3,4, but first edit 'N803_collector_2.m' and 'N803_plotter_2.m' (see those scripts for instructions). - 1. "main_shared_2_calibration" (runs MSLS and MCMC for both cohorts with shared constants) - 2. "main_singles_calibration_2022_09_25.m" (repeat with parameters not shared) - 3. "N803_collector_2.m" (stores model outputs, parameters, and initial conditions from thinned MCMC sample) - 4. "N803_plotter_2.m" (creates all time-course plots) - 5. "N803_plotter_2_violin.m" (creates violin plots) + 1. 'main_shared_2_calibration.m' (runs MSLS and MCMC for both cohorts with shared constants) + 2. supplemental calibrations: + -> 'main_shared_2A_calibration.m' + -> 'main_shared_2B_calibration.m' + -> 'main_shared_2C_calibration.m' + -> 'main_shared_2D_calibration.m' + -> 'main_single_2_calibration.m' + 3. 'N803_collector_2.m' (stores model outputs, parameters, and initial conditions from thinned MCMC sample) + 4. 'N803_plotter_2.m' (creates all time-course plots) + 5. 'N803_plotter_2_violin.m' (creates violin plots) ========================= @@ -34,42 +38,37 @@ Source: Webb GM, Li S, Mwakalundwa G, Folkvord JM, Greene JM, Reed JS, et al. "T ========================= -The repository containts the following code (MATLAB .m functions): +In addition to the MATLAB scripts referenced above, this repository contains the following functions: 'N803_model_2.m' (solves ODE model for N-803 treatment of SIV) - -'N803_shared.m' (calls 'N803_model_2.m', but first solves for ICs and shared parameters to start from two fixed points) - -'N803_single.m' (calls 'N803_model_2.m', but first solves for ICs and parameters to start from one fixed point) +'N803_model_2A.m' (solves ODEs for alternative model A) +'N803_model_2B.m' (solves ODEs for alternative model B) +'N803_model_2C.m' (solves ODEs for alternative model C) +'N803_model_2D.m' (solves ODEs for alternative model D) +'N803_model_2_naive.m' (solves ODE model for N-803 given to SIV-naive NHP) + +'N803_shared_2.m' (calls 'N803_model_2.m', but first solves for ICs and shared parameters to start from two fixed points) +'N803_shared_2A.m' (calls 'N803_model_2A.m', but first solves for ICs and shared parameters to start from two fixed points) +'N803_shared_2B.m' (calls 'N803_model_2B.m', but first solves for ICs and shared parameters to start from two fixed points) +'N803_shared_2C.m' (calls 'N803_model_2C.m', but first solves for ICs and shared parameters to start from two fixed points) +'N803_shared_2D.m' (calls 'N803_model_2D.m', but first solves for ICs and shared parameters to start from two fixed points) +'N803_single_2.m' (calls 'N803_model_2.m', but first solves for ICs and parameters to start from one fixed point) In 'Analyzer' folder: 'calibrator.m' (called by 'main.m' scripts; calibrates model parameters via multi-start local-search) - 'calibrator_plot.m' (called by 'main.m' scripts; plots results from 'calibrator.m') - 'copyfields.m' (called by 'gridplot.m'; copies fields from one scalar structure to another) - 'costFun_NLL.m' (called by 'main.m' scripts; model cost calculator (NLL,SSE,MSE w/additional options)) - 'gridplot.m' (called by 'N803_plotter_2.m'; creates a grid of plots (alternative to MATLAB's 'subplot')) - 'linemaker.m' (called by 'gridplot.m'; plots lines to current axis, with a variety of options) - 'looper.m' (called by 'calibrator.m'; loops through and operates on a structure array) - 'MCMCsampler.m' (called by 'main.m' scripts; performs uncertainty quantification via markov chain monte carlo) - 'parplotter.m' (called by 'N803_plotter_2_parameters.m'; plots parameter distributions) - 'performPT.m' (called by 'MCMCsampler.m'; parallel tempering MCMC algorithm) -Source: https://github.com/ICB-DCM/PESTO/blob/master/private/performPT.m - + Source: https://github.com/ICB-DCM/PESTO/blob/master/private/performPT.m 'prepper.m' (called by 'main.m' scripts; normalizes a data set and provides several useful outputs) - 'sampler.m' (called by 'calibrator.m'; samples a parameter space via latin hypercube sampling) - 'tickmaker.m' (called by 'N803_plotter_2.m'; creates axis tick labels) - 'violin.m' (called by 'parplotter.m'; creates violin plots) -Source: https://github.com/bastibe/Violinplot-Matlab/blob/master/Violin.m + Source: https://github.com/bastibe/Violinplot-Matlab/blob/master/Violin.m