Newer
Older
{
"cells": [
{
"cell_type": "markdown",
"source": [
"# Create plots for panels used in figure 3"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%% md\n"
}
}
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true,
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"import os\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"from scipy.optimize import curve_fit\n",
"\n",
"import warnings\n",
"warnings.filterwarnings('ignore')"
]
},
{
"cell_type": "code",
"execution_count": 2,
"outputs": [],
"source": [
"# folder to save all panels for figure\n",
"savefolder = r\"plots\\fig3\"\n",
"\n",
"# file containing the data for the controls\n",
"results_ctrl_file = r\"data\\shape_analysis\\histograms_HealthyControl_deformed_undeformed.txt\""
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 3,
"outputs": [],
"source": [
"#define a color seed for each patient\n",
"color_dict = {'VS': 'C0', 'VL': 'C1', 'RS': 'C2',\n",
" 'KM': 'C3', 'LM': 'C4'}"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"def asymptotic_exponential_growth(x, lambda_):\n",
" \"\"\"(Inverted) exponential growth function with maximum at 1 for x->infinity:\n",
" f(x) = 1 - exp(-lambda * x)\"\"\"\n",
" return 1 - np.exp(-lambda_ * x)\n",
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
"\n",
"def deformed_probability_curve(df, v_min=0, v_max=3, binsize=.25):\n",
" \"\"\"Compute the values for the shape probability diagram to find a cell\n",
" in a deformed state for velocities between v_min and v_max in the DataFrame df\n",
"\n",
" returns: *tuple* (deformed_bins, deformed_hist_normal)\n",
" - deformed_bins: *array* limits for the bin ranges of the histogram\n",
" - normalized counts for each velocity range\n",
" \"\"\"\n",
"\n",
" bins = int(v_max/binsize) #number of Bins in histogram\n",
" #find index of cells in a deformed state. Class definitions are:\n",
" #1-parachute, 2-slipper, 3-asym. parachute, 5-multilobe, 7-undefined deformed\n",
" #4-discocyte/undeformed, 6-tumbler\n",
" deformed_index = ((df['shape'] == 1)\n",
" | (df['shape'] == 2)\n",
" | (df['shape'] == 3)\n",
" | (df['shape'] == 5)\n",
" | (df['shape'] == 7))\n",
"\n",
" #create new column in df that is True for deformed state\n",
" df['deformed'] = False\n",
" df['deformed'][deformed_index] = True\n",
"\n",
" df_deformed = df[deformed_index]\n",
"\n",
" deformed_hist, deformed_bins = np.histogram(np.array(df_deformed['velocity']),\n",
" range = (v_min,v_max),\n",
" bins = bins)\n",
" #get the counts for all events to use for normalization\n",
" all_hist, all_bins = np.histogram(np.array(df['velocity']),\n",
" range = (v_min,v_max),\n",
" bins = bins)\n",
"\n",
" #normalize the deformed histogram\n",
" deformed_hist_normal = deformed_hist/all_hist\n",
"\n",
" return deformed_bins, deformed_hist_normal"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"outputs": [],
"source": [
"#define dict to store fit values\n",
"dict_fitvalues = {}\n",
"\n",
"def dict_fit_values_patient(patient, dict_fitvalues):\n",
" result_summary_folder = r\"data\\shape_analysis\\result_summaries\"\n",
"\n",
" v_min = 0.\n",
" v_max = 3.\n",
" binsize = 0.25\n",
"\n",
" # bounds of the parameters in the exponential growth function\n",
" fit_bounds=(0, np.inf)\n",
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
"\n",
" result_file = os.path.join(result_summary_folder, patient + \"_results_MCFM.tsv\")\n",
" df_results = pd.read_csv(result_file, sep='\\t')\n",
"\n",
" dates = np.unique(df_results['date'])\n",
" dates = np.sort(dates)\n",
" day0 = pd.to_datetime(dates[0])\n",
"\n",
" #create dataframes to save fit parameters\n",
" df_fit_all = pd.DataFrame()\n",
" df_fit_healthy = pd.DataFrame()\n",
" df_fit_unhealthy = pd.DataFrame()\n",
"\n",
" for num, date in enumerate(dates):\n",
" df_date = df_results[df_results['date']==date]\n",
" #create new Dataframe to work with, leave out skipped cells\n",
" df = df_date[df_date['shape'] != 0]\n",
"\n",
" healthy_index = df['health'] == 0\n",
" df_healthy = df[healthy_index]\n",
" unhealthy_index = df['health'] == 1\n",
" df_unhealthy = df[unhealthy_index]\n",
"\n",
" #calculate percentage of healthy cells in sample\n",
" percentage_healthy = len(df_healthy)/len(df)\n",
"\n",
" bins, deformed_curve = deformed_probability_curve(df, v_min=v_min, v_max=v_max, binsize=binsize)\n",
" bins_healthy, deformed_curve_healthy = deformed_probability_curve(df_healthy,\n",
" v_min=v_min, v_max=v_max, binsize=binsize)\n",
" bins_unhealthy, deformed_curve_unhealthy = deformed_probability_curve(df_unhealthy,\n",
"\n",
" bins_plot = bins[:-1]+binsize/2\n",
"\n",
" #exclude nan values before fitting\n",
" ind_nonnan_all = ~np.isnan(deformed_curve)\n",
" ind_nonnan_healthy = ~np.isnan(deformed_curve_healthy)\n",
" ind_nonnan_unhealthy = ~np.isnan(deformed_curve_unhealthy)\n",
"\n",
" x_all = bins_plot[ind_nonnan_all]\n",
" y_all = deformed_curve[ind_nonnan_all]\n",
" x_healthy = bins_plot[ind_nonnan_healthy]\n",
" y_healthy = deformed_curve_healthy[ind_nonnan_healthy]\n",
" x_unhealthy = bins_plot[ind_nonnan_unhealthy]\n",
" y_unhealthy = deformed_curve_unhealthy[ind_nonnan_unhealthy]\n",
"\n",
" popt_all_exp, pcov_all_exp = curve_fit(asymptotic_exponential_growth,\n",
" x_all, y_all,\n",
" bounds=fit_bounds\n",
" )\n",
" popt_healthy_exp, pcov_healthy_exp = curve_fit(asymptotic_exponential_growth,\n",
" x_healthy, y_healthy,\n",
" bounds=fit_bounds\n",
" )\n",
" popt_unhealthy_exp, pcov_unhealthy_exp = curve_fit(asymptotic_exponential_growth,\n",
" x_unhealthy, y_unhealthy,\n",
" bounds=fit_bounds\n",
" )\n",
" #days since treatment start\n",
" treatment_days = (pd.to_datetime(date) - day0).days\n",
"\n",
" df_fit_all = df_fit_all.append({'lambda': popt_all_exp[0], 'lambda_err': np.sqrt(pcov_all_exp[0,0]),\n",
" 'days': treatment_days,\n",
" 'percent healthy': percentage_healthy\n",
" },\n",
" df_fit_healthy = df_fit_healthy.append({'lambda': popt_healthy_exp[0], 'lambda_err': np.sqrt(pcov_healthy_exp[0,0]),\n",
" 'days': treatment_days\n",
" },\n",
" ignore_index=True)\n",
" df_fit_unhealthy = df_fit_unhealthy.append({'lambda': popt_unhealthy_exp[0], 'lambda_err': np.sqrt(pcov_unhealthy_exp[0,0]),\n",
" 'days': treatment_days\n",
" },\n",
" ignore_index=True)\n",
"\n",
" dict_fitvalues[patient] = {'all': df_fit_all, 'healthy': df_fit_healthy, 'unhealthy': df_fit_unhealthy}\n",
"\n",
" return dict_fitvalues"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "markdown",
"source": [
"Fill dictionary with patient data"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"patients = ['LM', 'KM']\n",
"labels = [\"P4\", \"P5\"]\n",
"\n",
"for patient in patients:\n",
" dict_fitvalues = dict_fit_values_patient(patient, dict_fitvalues)"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"image/png": "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\n"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot variables\n",
"fontsize = 18\n",
"linewidth = 5\n",
"markersize = 12\n",
"errbar_width = 5\n",
"xlabel = 'Day since treatment start'\n",
"# color for the control interval\n",
"ctrl_clr = 'darkslategray'\n",
"# compute control fit values\n",
"results_ctrl = np.loadtxt(results_ctrl_file)\n",
"v_ctrl = results_ctrl[:,0]\n",
"probs_ctrl = results_ctrl[:,3]\n",
"probs_ctrl_err = results_ctrl[:,4]\n",
"\n",
"v_min = 0.\n",
"v_max = 3.\n",
"binsize = 0.25\n",
"bins = int(v_max / binsize)\n",
"\n",
"ind_vmax = v_ctrl <= v_max\n",
"v_ctrl = v_ctrl[ind_vmax]\n",
"probs_ctrl = probs_ctrl[ind_vmax]\n",
"probs_ctrl_err = probs_ctrl_err[ind_vmax]\n",
"\n",
"fit_bounds = [0, np.inf]\n",
"popt_ctrl, pcov_ctrl = curve_fit(asymptotic_exponential_growth, v_ctrl, probs_ctrl,\n",
" sigma = probs_ctrl_err, absolute_sigma=False,\n",
" bounds=fit_bounds\n",
" )\n",
"perr_ctrl = np.sqrt(np.diag(pcov_ctrl))\n",
"# limits of the 95% confidence interval\n",
"ci_lower = float(popt_ctrl - perr_ctrl)\n",
"ci_upper = float(popt_ctrl + perr_ctrl)\n",
"\n",
" plot_titles = ['Normocytes', 'Acanthocytes']\n",
" para = 'lambda'\n",
" para_label = r'$\\lambda$'\n",
"\n",
" for jj, patient in enumerate(patients):\n",
" data = dict_fitvalues[patient]\n",
" color = color_dict[patient]\n",
"\n",
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
" for n, health in enumerate(['healthy', 'unhealthy']):\n",
" ax=plt.subplot(1,2,n+1)\n",
"\n",
" df_plot = data[health]\n",
" xdata = df_plot['days']\n",
" ydata = df_plot[para]\n",
" yerr = df_plot[para + \"_err\"]\n",
"\n",
" if patient=='LM':\n",
" # plot data on treatment\n",
" plt.errorbar(xdata[:-2], ydata[:-2], yerr=yerr[:-2],\n",
" c=color, label=labels[jj],\n",
" ls='-', lw=linewidth, marker='X', markersize=markersize,\n",
" ecolor='gray', elinewidth=errbar_width)\n",
" # plot data off treatment\n",
" plt.errorbar(xdata[-3:], ydata[-3:], yerr=yerr[-3:],\n",
" c=color, #label=labels[jj],\n",
" ls='--', lw=linewidth, marker='X', markersize=markersize,\n",
" ecolor='gray', elinewidth=errbar_width)\n",
" else:\n",
" # plot data on treatment\n",
" plt.errorbar(xdata[:-1], ydata[:-1], yerr=yerr[:-1],\n",
" c=color, label=labels[jj],\n",
" ls='-', lw=linewidth, marker='X', markersize=markersize,\n",
" ecolor='gray', elinewidth=errbar_width)\n",
" # plot data off treatment\n",
" plt.errorbar(xdata[-2:], ydata[-2:], yerr=yerr[-2:],\n",
" c=color, #label=labels[jj],\n",
" ls='--', lw=linewidth, marker='X', markersize=markersize,\n",
" ecolor='gray', elinewidth=errbar_width)\n",
"\n",
" plt.ylim(ylim)\n",
" plt.xlabel(xlabel, fontsize=fontsize)\n",
" plt.tick_params(axis='both', which='both', labelsize=fontsize-2)\n",
" plt.title(r'{} - {}'.format(para_label, plot_titles[n]), fontsize=fontsize+2)\n",
"\n",
" # plot control region at end only\n",
" if patient==patients[-1]:\n",
" ax.axhline(ci_lower, ls='--', lw=.5, c=ctrl_clr, zorder=0)\n",
" ax.axhline(ci_upper, ls='--', lw=.5, c=ctrl_clr, zorder=0)\n",
" axis_limits = ax.get_xlim()\n",
" ax.add_patch(patches.Rectangle((axis_limits[0], ci_lower),\n",
" np.diff(axis_limits), ci_upper-ci_lower,\n",
" color=ctrl_clr, alpha=0.1, zorder=0,\n",
" label = 'CTRL'\n",
" )\n",
" )\n",
" # if health=='unhealthy':\n",
" # ax.get_yaxis().set_ticklabels([])\n",
"\n",
" # set alpha of errorbars\n",
" for collection in ax.collections:\n",
" ax1 = fig.axes[0]\n",
" ax2 = fig.axes[1]\n",
"\n",
" ax2.get_yaxis().set_ticklabels([])\n",
" ax1.legend(loc='lower left', ncol=1, fontsize=fontsize-2, title_fontsize=fontsize)\n",
" fig.supylabel(\"Growth rate [(mm/s)$^{-1}$]\", fontsize=fontsize)\n",
" savepath = os.path.join(savefolder,savename)\n",
" plt.savefig(savepath+\".pdf\", dpi=900, format='pdf')"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"outputs": [],
"source": [],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 0
}