Code and instructions to perform the parameter fitting for NFkB trajectories in 6 polarization states under Pam3CSK stimulation and subsequent downstream analyses as presented in "Stimulus-Response signaling dynamics characterize macrophage polarization states" (Singh et al, 2024).
- Polarization state shorthands and order used:
- P3K = M0 (naive) cell with Pam3CSK ligand
- P3Kib = M:IFNβ cell with Pam3CSK ligand
- P3Kig = M:IFNγ cell with Pam3CSK ligand
- P3Ki0 = M:IL10 cell with Pam3CSK ligand
- P3Ki3 = M:IL13 cell with Pam3CSK ligand
- P3Ki4 = M:IL4 cell with Pam3CSK ligand
- Biochemical parameters fit and order used:
- IκBα mRNA NFkB induced synthesis Km
- IκBα protein degradation rate
- TAK1 inactivation rate
- TLR2 synthesis rate
- ligand-receptor complex degradation rate
- IκBα transcriptional delay
- NFκB initial abundance
- RMSD = root-mean-square deviation
- ODE = ordinary differential equation
- Install MATLAB on your computer (version R2020b or later)
- Download the contents of this repository
- In MATLAB, navigate to the
param_fitting
folder that you downloaded from this repository - Run
parallel_runs_full
in the command line- NOTE: code set up to leverage parallelization with 50 cores. Change if needed.
- line graphs with the trajectories of the top 10 parameter-fit simulations vs. experimental data (1 graph per cell)
runtime.mat
with the total runtime per polarization stateresult_cell.mat
with 7 matrices:- Row numbers of the cells used
- Randomly sampled initial parameters
- All sets of parameter fits per cell
- RMSDs for all parameter fits per cell
- End objective values for all parameter fits per cell (weighted RMSD + penalty)
- Sorted top 10 RMSDs per cell
- Sorted top 10 parameter fits per cell (corresponding to #6)
- In MATLAB, navigate to the
param_fitting
folder that you downloaded from this repository - Run
unit_test
in the command line- NOTE: code set up to leverage parallelization with 4 cores. Change if needed.
- Code for calculating distance matrix from parameter distributions can be found in the
param_distance_calculation.m
file
params_3d.mat
: optimized parameter distributions in 3D format (1800 cells by 7 params by 10 best fits) - every 300 rows is a new polarization state. The order is as listed in Things to knowparams_2d.csv
: the same optimized parameter distributions, but in 2D format (18000 rows by 7 params) (every 10 rows are the best fits for 1 cell) - every 3000 rows is a new polarization state. The order is as listed in Things to knowparam_dist_matrix.csv
: distance matrix calculated based on average Jenson-Shannon distances for optimized param distributions between cells (1800 cells by 1800 cells) - every 300 rows is a new polarization state. the order is as listed in Things to knowfeat_dist_matrix.csv
: distance matrix calculated based on euclidean distances for 10 experimental trajectory features between cells (1800 cells by 1800 cells) - every 300 rows is a new polarization state. the order is as listed in Things to know