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": "iVBORw0KGgoAAAANSUhEUgAAAwsAAAGoCAYAAAAJsXnTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAACh7UlEQVR4nOzdd3hTZfsH8O/Japu26aALWihltGXvMgSRJTIFFZAhivo6kCmOV1T8qS/gRJmCCiiCyBIERZAhArJF9iqbLtpCd9pmnd8foYGQpG3SNE3b7+e6uGyf85xz7qepp7nzLEEURRFERERERET3kVR0AERERERE5J6YLBARERERkVVMFoiIiIiIyComC0REREREZBWTBSIiIiIisorJAhERERERWcVkgYiIiIiIrGKyQEREREREVjFZILe1evVqxMTEoH379pgxYwYMBkNFh0REVOXx2Vu+EhISEBMTg//+978VHQpRqTBZILcVHh6OZ599FjqdDt9//z3+/vtvl907JiYGMTEx6NatGwoLC63W6d69O2JiYqDT6VwWV1XCP5hE7qkin733+uqrr0zP4suXL1dIDI6oys+2qtw2so3JArmtBx54AG+++SZeeOEFAMDx48ddHkNSUhK+//57l9+XiKiiuMOzVxRFrFmzBoIgAADWrFnj8hiIyIjJArm9Fi1aAADOnTvn0vv6+fnB398fX3/9NW7fvu3SexMRVbSKevYCwN69e5GYmIjBgwcjODgY69evh0ajcXkcRMRkgSqBiIgIAMD58+ddel9PT0+8/PLLyMnJwfz58+06d/PmzRg5ciTatGmD5s2bY8CAAVi0aJHFH7t7u3SvXLmCSZMmoWPHjoiNjcXBgwct6ly/fh0TJkxA+/bt0apVKzz77LO4cOECAOD27dt499130blzZzRr1gyPP/44Dhw4UKb4ipw4cQKTJk1Cly5d0LRpU3Tu3BnPPvssNm/eDAC4dOkSYmJi8NRTT9n8mQwYMABNmjRBamoq5s6dix49egAA1q9fbxpqEBMTg59//tnsvOPHj2PChAl44IEH0LRpU3Tt2hXTpk3DzZs3Le6xY8cOPP300+jcubMpzlGjRmHFihU24yIi6yrq2Qvc7UkYMmQIBgwYgIyMDGzfvr3Yc0p6ThX5+eefMX78ePTo0QPNmzdH69at8eSTT+KXX36xuOa9z9+E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8CCuXr2K6OhoNG/e3Ga9J554AgsXLsS6deswfvx4yGQyu55TI0aMwM8//4yJEyeid+/eCAkJQXx8PPbs2YM+ffpYbODmiJKebfZy5O9KeT27+dyunpgskNuYPXs2rl69io8//ti0ys+9YmJiAMC0Y3FFGT16NH788UckJiZaPf7666+jcePGWL58OTZs2ACdToc6depg0qRJePbZZ0tc9ai82Rvf0KFD0bBhQyxZsgSHDh3Cjh074O/vj5iYGAwZMsTqPQYPHoyPP/4Ycrnc4lPKe33yySeYOXMm9u7di99++w2iKCIsLMz0B/XRRx9FbGwsli5dioMHD2Lv3r1QKpUICQlB79690adPH9O1pkyZgr179+L06dP466+/4OHhgVq1auG1117D8OHDzVZPIaK73OHZW9SrYOuZUiQiIgKdOnXC33//jT///BO9evUCUPrnVGxsLJYtW4Yvv/wSf/31F3Q6HWJjYzFv3jz4+vo6JVkASn622cuRvyvl9ezmc7v64Q7OROR0Bw8exOjRozFw4ECbvTBERORe+OwmazhngYic7ttvvwUAjBo1qoIjISKi0uKzm6zhMCQicorz589j165dOH36NHbv3o1u3bqhRYsWFR0WEREVg89uKgmTBSJyitOnT2PWrFnw8fHBI488gvfee6+iQyIiohLw2U0l4ZwFIiIiIiKyij0LdxgMBuj1judNUqlQpvMrC7azamE7q5bK0k65XFrqunw2l051aGd1aCPAdlY1lamdtp7NTBbu0OtFZGaqHT7f319ZpvMrC7azamE7q5bK0s7gYN9S1+WzuXSqQzurQxsBtrOqqUzttPVs5mpIRERERERkFZMFIiIiIiKyiskCERERERFZxWSBiIiIiIisYrJARERERERWMVkgIiIiIiKrmCwQEREREZFVTBaIiIiIiMgqJgtERERERGQVkwUiIiIiIrKKyQIREREREVnFZIGIiIiIiKySVXQA5Dznz5+xKIuJaVwBkRARERFRVcBkoQq5fv2qRRmTBSIiIiJyFIchERERERGRVUwWiIiIiIjIKiYLRERERERkFZMFIiIiIiKyiskCERERERFZ5VarIW3ZsgW//fYbTp06hVu3bqFmzZp4+OGH8eKLL8LHx6fYc2NiYqyWb9iwAY0aNSqPcImIiIiIqjS3ShaWLFmCmjVrYvLkyQgLC8OZM2cwb948HDx4ED/99BMkkuI7Qh577DEMGzbMrKxu3brlGDERERERUdXlVsnCwoULERgYaPo+Li4O/v7+ePPNN3Hw4EF07Nix2PNDQkLQsmXLco6SiIiIiKh6cKs5C/cmCkWaNWsGALh586arwyEiIiIiqtbcKlmw5tChQwCA+vXrl1j3p59+QtOmTdGiRQuMHj0aR44cKe/wiIiIiIiqLEEURbGig7Dl5s2bGDRoEGJjY7F06dJi677++uvo1q0bQkJCkJiYiMWLF+PSpUtYsmQJ2rdvX+K9DAYD9HrHfxRSqQR6vcHh853hl182WJQ9+uggp97DHdrpCmxn1cJ2uhe5XFrqulXh2ewK1aGd1aGNANtZ1VSmdtp6NrttspCXl4ennnoKqampWLt2LcLCwuw6Pzc3FwMGDEBYWBhWrlxZYn2tVo/MTLWj4cLfX1mm851h27bNFmW9evV16j3coZ2uwHZWLWynewkO9i113arwbHaF6tDO6tBGgO2saipTO209m91yGFJBQQFeeuklJCQkYPHixXYnCgDg4+ODrl274uTJk+UQIRERERFR1edWqyEBgFarxYQJE3Dq1CksXbrU5v4JpSUIgpMiIyIiIiKqXtwqWTAYDHjttddw4MABLFq0qEzLoObm5mLXrl1o3ry58wIkIiIiIqpG3CpZeP/997Flyxa89NJL8PLywrFjx0zHwsLCEBYWhsTERPTq1Qtjx47FuHHjAACLFy/GlStX0L59e4SEhCApKQlLlixBeno6PvvsswpqDRERERFR5eZWycKePXsAGDdnW7hwodmxcePGYfz48RBFEXq9HvfOy46KisK2bduwbds25ObmwsfHB61atcL06dPZs0BERERE5CC3ShZ27txZYp2IiAicP3/erKx79+7o3r17eYVFRERERFQtueVqSGSf83+nYM20w8hP8DIrz0/wwppph3H+75QKioyIiIiIKjO36lkg+53/OwXHt9wAABRc9gYAeEXkIz/By/R90fGYB+xfgpaIiIiIqi8mC5XYvYmCkYCCy97QZcihy1AAuLtsLBMGIiIiIrIXhyFVYie23rBSKlgkCsXXJyIiIiKyjslCJda8d20bR6xvRNf8EVv1iYiIiIgscRhSJVY0pMh8KJJ1LfrURkynu0OQUlNvWtQJCQl1XnBlcP78GYuymJjGFRAJERERUfXG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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",
" collection.set_alpha(.4)\n",
"\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
}