====File Descriptions===

1. The files with extension : <filename>.ipynb are all Jupyter notebook files with numerical implementations of the CA, DP model, NC model and all their combinations including the unified model described in main manuscript and supplementary theory.

    1.1. Fit_Karoulia_*.ipynb contains jupyter notebook that implements the fitting to unified model and plots the best fit parameters to Karoulia et al 2016 data.
    1.2. Fit_Karoulia_SubModels_*.ipynb contains jupyter notebook that implements the fitting to individual sub-models and plots the best fit parameters to Karoulia et al 2016 data.
    1.3. PA_Mechanisms_*.ipynb contains plotting routines for example PA plots and dose-response curves for each of the mechanisms included in the manuscript.
    1.4. fitdata.py contains the python fitting algorithm for ALL models.
    1.5. modelfn.py contains the analytic expressions of the unified model for the numerical fits and illustrative plots.

<filename>.gz are zipped files which were generated by the fitting jupyter notebooks and contain 1500 fits from random inital conditions for each of the respective models. Karoulia_0 or ff0 represent the unified model with none of the parameters fixed. Karoulia_2 or ff2 represents RAF and Kdim fixed to 0.04uM and 0.1uM respectively. Normtp1 represents absolute mean error as the fitting estimator and where unspecified, shows a resacled L2 norm as fitting estimator.

<filename>.pdf files are copies of each of the codes which can be read without installing any of the software required to manipulate the actual jupyter notebook files with respective names.

RUNTIME Estimate: 24 hours or more per simulation with 5 cores at 3GhZ and 16GB RAM (memory is not limiting factor). Runtime may be reduced with more cores. Using the 1500 pre-fit datapoints, each code can be run within minutes.

===Installation Guide===

Running Jupyter Notebooks - <filename>.ipynb:

The source code was written in python 3.8.5 using Jupyter notebook format. 
The authors recommend installing Anaconda or similar package where the libraries required are conveniently obtained: https://www.anaconda.com/

Jupyter notebook is required to open the source code. This package is installed with Anaconda and can be started using Anaconda Navigator. 

If not using Anaconda, Jupyter can be independently installed at the following link. https://jupyter.org

To open the file, initiate Jupyter notebook from Anaconda Navigator. 
	The software opens up in the default browser application. Now, change the current working directory to the folder where the has been unzipped. 
	Once within the folder, clicking on the source code .ipynb file opens the main processing notebook. 
	The commands are divided into blocks which can be run independently by pressing the play button. 
	The whole notebook can be run by scrolling the notebook menu and clicking the tab 'Cell' and then 'Run All'.
	This file generates data and plots corresponding to figures and tables in the manuscript.
	Running time is within few mins for a processor with a >1Ghz clock.

Dependencies Required to run the source code:

The following libraries were used in compiling the source code.
1. NumPy 1.1210
2. scipy 1.7.0
3. matplotlib 3.4.2
4. pandas 1.3.0
5. seaborn 0.11.1

The libraries may be installed/updated using pip command or conda command or Anaconda navigator GUI. Anaconda by default installs the latest version of most of these libraries.