{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Brain proteome in Alzheimer's and Parkinson's disease\n",
"\n",
"By Tim Woelfle, 27/08/2019\n",
"\n",
"This is an exploratory analysis of the openly available brain proteome dataset by Ping et al., described in their 2018 article: [Ping, L., Duong, D.M., Yin, L., Gearing, M., et al. (2018) *Global quantitative analysis of the human brain proteome in Alzheimer’s and Parkinson’s Disease*. Scientific Data. [Online] 5, 180036. Available from: doi:10.1038/sdata.2018.36.](https://www.nature.com/articles/sdata201836)\n",
"\n",
"It contains mass-spectrometry based proteomes from 40 brain tissue donors: 10 controls, 10 Alzheimer's patients (AD), 10 Parkinson's patients (PD) and 10 patients with both (ADPD). Samples were analyzed from the frontal cortex (Brodmann area 9) and the cingulate gyrus (Brodmann area 24). This exploratory analysis focuses on Alzheimer's Disease and the cingulate gyrus but could be repeated in the same way for Parkinson's Disease and / or the frontal cortex. An overview of most methods used here is given in this [review-paper on statistical OMICS analysis (subscription only)](https://onlinelibrary.wiley.com/doi/abs/10.1002/em.21797).\n",
"\n",
"## Table of contents\n",
"\n",
"1. [Sample overview](#1.-Sample-overview)\n",
" 1. [Sex distribution by condition](#1.1-Sex-distribution-by-condition)\n",
" 2. [Age at death by condition](#1.2-Age-at-death-by-condition)\n",
"2. [Cingulate proteome preprocessing](#2.-Cingulate-proteome-preprocessing)\n",
" 1. [Investigate missing values](#2.1-Investigate-missing-values)\n",
" 2. [Remove proteins with NAs and normalize](#2.2-Remove-proteins-with-NAs-and-normalize)\n",
"3. [Dimensionality reduction](#3.-Dimensionality-reduction)\n",
" 1. [Principal component analysis](#3.1-Principal-component-analysis)\n",
" 2. [UMAP](#3.2.-UMAP)\n",
" 3. [Partial least squares](#3.3.-Partial-least-squares)\n",
"4. [Univariate analysis](#4.-Univariate-analysis)\n",
" 1. [Multiple univariate linear regression](#4.1-Multiple-univariate-linear-regression)\n",
" 1. [Significance tests and volcano plot](#4.1.1-Significance-tests-and-volcano-plot)\n",
" 2. [Biological interpretation](#4.1.2-Biological-interpretation)\n",
" 2. [Multiple univariate logistic regression](#4.2-Multiple-univariate-logistic-regression)\n",
" 1. [Significance tests and volcano plot](#4.2.1-Significance-tests-and-volcano-plot)\n",
" 2. [Biological interpretation](#4.2.2-Biological-interpretation)\n",
" 3. [Comparison of univariate linear- and logistic-regression results](#4.3-Comparison-of-univariate-linear--and-logistic-regression-results)\n",
"5. [Multivariate LASSO logistic regression](#5-Multivariate-LASSO-logistic-regression)\n",
" 1. [Test-set performance](#5.1-Test-set-performance)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"\n",
"import umap\n",
"\n",
"import statsmodels.formula.api as smf\n",
"import statsmodels.stats.multitest as smm\n",
"\n",
"from sklearn.decomposition import PCA\n",
"from sklearn.cross_decomposition import PLSRegression\n",
"from sklearn.linear_model import LogisticRegressionCV\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn import metrics"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1. Sample overview\n",
"\n",
"samples_trait_cingulate.csv is derived from the second sheet \"anterior cingulate gyrus\" of [samples trait.xlsx](https://dx.doi.org/10.7303/syn10225995.1)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
Case number
\n",
"
Primary neuropathologic diagnosis
\n",
"
Overall CERAD
\n",
"
Braak
\n",
"
PMI (hr)
\n",
"
Age of Onset
\n",
"
Age at Death
\n",
"
Duration (yr)2
\n",
"
ApoE Status
\n",
"
Race
\n",
"
Sex
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
OS98-11
\n",
"
AD 1
\n",
"
3
\n",
"
6
\n",
"
6.0
\n",
"
56.0
\n",
"
65
\n",
"
9.0
\n",
"
E4/4
\n",
"
w
\n",
"
f
\n",
"
\n",
"
\n",
"
1
\n",
"
OS00-11
\n",
"
AD 2
\n",
"
3
\n",
"
5
\n",
"
4.0
\n",
"
49.0
\n",
"
55
\n",
"
6.0
\n",
"
E3/3
\n",
"
w
\n",
"
m
\n",
"
\n",
"
\n",
"
2
\n",
"
OS00-32
\n",
"
AD 3
\n",
"
3
\n",
"
6
\n",
"
3.5
\n",
"
55.0
\n",
"
62
\n",
"
7.0
\n",
"
E3/4
\n",
"
w
\n",
"
m
\n",
"
\n",
"
\n",
"
3
\n",
"
OS03-163
\n",
"
AD 4
\n",
"
3
\n",
"
6
\n",
"
4.5
\n",
"
51.0
\n",
"
55
\n",
"
4.0
\n",
"
E3/4
\n",
"
w
\n",
"
f
\n",
"
\n",
"
\n",
"
4
\n",
"
E04-186
\n",
"
AD 5
\n",
"
3
\n",
"
6
\n",
"
7.0
\n",
"
59.0
\n",
"
72
\n",
"
13.0
\n",
"
E3/4
\n",
"
w
\n",
"
f
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Case number Primary neuropathologic diagnosis Overall CERAD Braak \\\n",
"0 OS98-11 AD 1 3 6 \n",
"1 OS00-11 AD 2 3 5 \n",
"2 OS00-32 AD 3 3 6 \n",
"3 OS03-163 AD 4 3 6 \n",
"4 E04-186 AD 5 3 6 \n",
"\n",
" PMI (hr) Age of Onset Age at Death Duration (yr)2 ApoE Status Race Sex \n",
"0 6.0 56.0 65 9.0 E4/4 w f \n",
"1 4.0 49.0 55 6.0 E3/3 w m \n",
"2 3.5 55.0 62 7.0 E3/4 w m \n",
"3 4.5 51.0 55 4.0 E3/4 w f \n",
"4 7.0 59.0 72 13.0 E3/4 w f "
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"samples = pd.read_csv(\"samples_trait_cingulate.csv\")\n",
"samples.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.1 Sex distribution by condition"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"samples.boxplot(\"Age at Death\", by=\"Condition\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2. Cingulate proteome preprocessing\n",
"\n",
"cingulate.csv is derived from the second sheet \"anterior cingulate gyrus\" of [TMT_Summary_Data.xlsx](https://www.synapse.org/#!Synapse:syn10239444) with the first two rows removed"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
Accession
\n",
"
Q5VT66-2
\n",
"
D6RGC4
\n",
"
Q969Z3
\n",
"
Q9NX47
\n",
"
Q9H992
\n",
"
A6NNE9
\n",
"
Q15019-2
\n",
"
C9IY94
\n",
"
Q9UH03-2
\n",
"
Q9UH03
\n",
"
...
\n",
"
Q8TBC5-3
\n",
"
Q96LW9
\n",
"
A7E2V4-2
\n",
"
S4R3B3
\n",
"
O43264
\n",
"
Q9C0D3
\n",
"
Q15942
\n",
"
O43149
\n",
"
O43149-3
\n",
"
Q8IYH5
\n",
"
\n",
" \n",
" \n",
"
\n",
"
AD1
\n",
"
1.124580
\n",
"
0.666667
\n",
"
0.948162
\n",
"
1.067472
\n",
"
NaN
\n",
"
NaN
\n",
"
1.076074
\n",
"
1.148094
\n",
"
0.911617
\n",
"
0.0
\n",
"
...
\n",
"
1.454445
\n",
"
0.877273
\n",
"
1.310105
\n",
"
1.524927
\n",
"
0.942656
\n",
"
1.108474
\n",
"
0.844916
\n",
"
1.002873
\n",
"
1.250597
\n",
"
0.0
\n",
"
\n",
"
\n",
"
AD2
\n",
"
0.881134
\n",
"
0.651515
\n",
"
0.713516
\n",
"
0.932528
\n",
"
NaN
\n",
"
NaN
\n",
"
1.344181
\n",
"
1.336144
\n",
"
0.837435
\n",
"
0.0
\n",
"
...
\n",
"
0.967641
\n",
"
0.759091
\n",
"
1.017422
\n",
"
0.885630
\n",
"
0.930584
\n",
"
0.966762
\n",
"
0.951352
\n",
"
1.005534
\n",
"
1.183771
\n",
"
0.0
\n",
"
\n",
"
\n",
"
CTL1
\n",
"
0.795806
\n",
"
0.621212
\n",
"
0.675168
\n",
"
0.946626
\n",
"
NaN
\n",
"
NaN
\n",
"
1.027415
\n",
"
1.054985
\n",
"
0.736138
\n",
"
0.0
\n",
"
...
\n",
"
1.012096
\n",
"
0.790909
\n",
"
1.486643
\n",
"
3.300098
\n",
"
0.980885
\n",
"
0.831706
\n",
"
0.622753
\n",
"
1.029573
\n",
"
1.031026
\n",
"
0.0
\n",
"
\n",
"
\n",
"
CTL2
\n",
"
0.960637
\n",
"
1.181818
\n",
"
1.090438
\n",
"
0.958711
\n",
"
NaN
\n",
"
NaN
\n",
"
0.874709
\n",
"
0.892595
\n",
"
1.033973
\n",
"
0.0
\n",
"
...
\n",
"
1.170908
\n",
"
1.268182
\n",
"
1.094077
\n",
"
0.838710
\n",
"
1.018360
\n",
"
0.990585
\n",
"
1.248980
\n",
"
1.085847
\n",
"
1.183771
\n",
"
0.0
\n",
"
\n",
"
\n",
"
PD1
\n",
"
1.125191
\n",
"
1.484848
\n",
"
1.186200
\n",
"
1.105740
\n",
"
NaN
\n",
"
NaN
\n",
"
0.854764
\n",
"
0.801320
\n",
"
0.965995
\n",
"
0.0
\n",
"
...
\n",
"
0.556865
\n",
"
5.927273
\n",
"
1.279907
\n",
"
1.090909
\n",
"
1.072435
\n",
"
1.013882
\n",
"
1.336909
\n",
"
0.998395
\n",
"
1.011933
\n",
"
0.0
\n",
"
\n",
" \n",
"
\n",
"
5 rows × 10695 columns
\n",
"
"
],
"text/plain": [
"Accession Q5VT66-2 D6RGC4 Q969Z3 Q9NX47 Q9H992 A6NNE9 Q15019-2 \\\n",
"AD1 1.124580 0.666667 0.948162 1.067472 NaN NaN 1.076074 \n",
"AD2 0.881134 0.651515 0.713516 0.932528 NaN NaN 1.344181 \n",
"CTL1 0.795806 0.621212 0.675168 0.946626 NaN NaN 1.027415 \n",
"CTL2 0.960637 1.181818 1.090438 0.958711 NaN NaN 0.874709 \n",
"PD1 1.125191 1.484848 1.186200 1.105740 NaN NaN 0.854764 \n",
"\n",
"Accession C9IY94 Q9UH03-2 Q9UH03 ... Q8TBC5-3 Q96LW9 A7E2V4-2 \\\n",
"AD1 1.148094 0.911617 0.0 ... 1.454445 0.877273 1.310105 \n",
"AD2 1.336144 0.837435 0.0 ... 0.967641 0.759091 1.017422 \n",
"CTL1 1.054985 0.736138 0.0 ... 1.012096 0.790909 1.486643 \n",
"CTL2 0.892595 1.033973 0.0 ... 1.170908 1.268182 1.094077 \n",
"PD1 0.801320 0.965995 0.0 ... 0.556865 5.927273 1.279907 \n",
"\n",
"Accession S4R3B3 O43264 Q9C0D3 Q15942 O43149 O43149-3 Q8IYH5 \n",
"AD1 1.524927 0.942656 1.108474 0.844916 1.002873 1.250597 0.0 \n",
"AD2 0.885630 0.930584 0.966762 0.951352 1.005534 1.183771 0.0 \n",
"CTL1 3.300098 0.980885 0.831706 0.622753 1.029573 1.031026 0.0 \n",
"CTL2 0.838710 1.018360 0.990585 1.248980 1.085847 1.183771 0.0 \n",
"PD1 1.090909 1.072435 1.013882 1.336909 0.998395 1.011933 0.0 \n",
"\n",
"[5 rows x 10695 columns]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"proteome = pd.read_csv(\"cingulate_.csv\").set_index(\"Accession\")\n",
"proteome_dict = proteome.loc[:,\"Gene\":\"Description\"]\n",
"proteome = proteome.loc[:,\"AD1\":\"ADPD10\"].transpose()\n",
"proteome.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2.1 Investigate missing values\n",
"\n",
"A single value of 0 means the protein was identified but not successfully quantified, if the whole batch is 0 it means that one of the GIS (global internal standards) was missing and the measurement is therefore considered unreliable, see sheet \"Key\" in [TMT_Summary_Data.xlsx](https://www.synapse.org/#!Synapse:syn10239444). There are 5 batches of 8 subjects each. In either case we consider them NA."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"(proteome.isna() | (proteome == 0)).sum().value_counts().plot.bar()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The barplot shows that most proteins with NA values are missing for at least one whole batch (8/16/24/32/40 subjects), so imputation is risky. We try a complete case analysis first, with nearly 60% of all proteins."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.5825151940158952"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(proteome>0).all().sum() / proteome.shape[1]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2.2 Remove proteins with NAs and normalize\n",
"\n",
"Normalization to mean 0 and standard deviation 1 per column is important for PCA."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"proteome.iloc[:,0:16].hist()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 3. Dimensionality reduction\n",
"\n",
"### 3.1 Principal component analysis\n",
"\n",
"The first PCA component of the cingulate proteome explains 22.3% of the variance and the second component 13.4%."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0.18717674 0.10779146]\n"
]
},
{
"data": {
"text/plain": [
""
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"pca_model = PCA()\n",
"pca = pca_model.fit_transform(proteome)[:,0:2]\n",
"print(pca_model.explained_variance_ratio_[0:2])\n",
"pd.Series(np.cumsum(pca_model.explained_variance_ratio_)).plot()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In the PCA plot we can already see that AD+ADPD cluster more to the right whereas Control+PD cluster more to the left. However, these two components only capture roughly 30% of the variance in the data, let's see if UMAP produces a different result."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYcAAAEGCAYAAACO8lkDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deXxU1fn48c8zM5lMVkI2togEBNmCBCNVwYK4UdfiVtQqLpVSBbStuLW1tLV+/Wp/itavWqxV6rdfiKIg1K0guIAbu+zKEiUQIIQkZJksM3N+f8wQEmaAhCx3Jnner1dezDz3zr1PhiTP3HPOPUeMMSillFL12axOQCmlVPjR4qCUUiqIFgellFJBtDgopZQKosVBKaVUEIfVCbSE1NRU06tXL6vTUEqpiLJq1aoDxpi0UNvaRXHo1asXK1eutDoNpZSKKCLy3bG2abOSUkqpIFoclFJKBdHioJRSKki76HNQSrU/tbW15OfnU1VVZXUqEc/lcpGRkUFUVFSjX6PFQSkVlvLz80lISKBXr16IiNXpRCxjDEVFReTn55OZmdno12mzklIqLFVVVZGSkoJgwFsD1eXgqQafx+rUIoqIkJKS0uQrML1yUEqFLRGBmkoo2gbG5w/Gd4H4dLDpn6/GOpkrL0uvHEQkSUTmisgWEdksIueISLKILBKRbwP/drYyR6WUhby1ULLrSGEAKN8HPt+xX6NahNXNSs8A7xtj+gNnAJuBB4EPjTF9gQ8Dz5VSHZW3JjhmvG12+r179zJ+/Hj69OnDwIEDufTSS/nmm2+adcyPPvqIyy+/HIAFCxbw+OOPAzB//nw2bdpUt98jjzzC4sWLm3Wuk2VZcRCRROCHwMsAxpgaY0wJcBUwK7DbLODH1mSolLKc2CDmqMYDm6PNmpSMMYwbN47Ro0ezfft2Nm3axGOPPca+ffta7BxXXnklDz7o/wx8dHH44x//yIUXXthi52oKK68cegOFwCsiskZE/i4icUAXY0wBQODfdAtzVEpZyWaHhK4Qlw52J0QnQGrfNisOS5cuJSoqikmTJtXFhg4dysiRI5k2bRqDBw8mKyuL3NxcwH9FMHr0aK699lr69+/PTTfdxOHVNt9//3369+/PyJEjeeutt+qO9+qrrzJ58mQ+++wzFixYwLRp0xg6dCjbt2/n1ltvZe7cuQB8+OGHZGdnk5WVxe233051dTXgnz7o97//PcOGDSMrK4stW7a0yPduZXFwAMOAF4wx2UAFTWhCEpGJIrJSRFYWFha2Vo5KKavZoyChG6T2g869wOGCNhraumHDBs4888yg+FtvvcXatWtZt24dixcvZtq0aRQUFACwZs0aZsyYwaZNm9ixYwfLly+nqqqKO++8k4ULF/Lpp5+yd+/eoGOee+65XHnllTz55JOsXbuWPn361G2rqqri1ltvJTc3l/Xr1+PxeHjhhRfqtqemprJ69Wp+8Ytf8Je//KVFvncri0M+kG+M+TLwfC7+YrFPRLoBBP7dH+rFxpiZxpgcY0xOWlrISQWVUu2FzeYvEmEyQmnZsmXccMMN2O12unTpwqhRo1ixYgUAw4cPJyMjA5vNxtChQ8nLy2PLli1kZmbSt29fRISf/vSnTTrf1q1byczMpF+/fgBMmDCBTz75pG771VdfDcCZZ55JXl5ei3yPlhUHY8xeYJeInB4IXQBsAhYAEwKxCcDbFqSnlFIMGjSIVatWBcUPNxWFEh0dXffYbrfj8fjvy2jOjXzHO1/9c9Y/X3NZPVppCvAvEfkaGAo8BjwOXCQi3wIXBZ4rpVSbGzNmDNXV1bz00kt1sRUrVtC5c2dyc3Pxer0UFhbyySefMHz48GMep3///uzcuZPt27cDMHv27JD7JSQkUFZWFvL1eXl5bNu2DYDXXnuNUaNGNedbOyFLr9GMMWuBnBCbLmjrXJRS6mgiwrx587j33nt5/PHHcblc9OrVixkzZlBeXs4ZZ5yBiPDEE0/QtWvXY3YGu1wuZs6cyWWXXUZqaiojR45kw4YNQfuNHz+eO++8k2effbauI/rw61955RWuu+46PB4PZ511VoNO8tYgJ7pciQQ5OTlGF/tRqn3ZvHkzAwYMsDqNdiPU+ykiq4wxoT6gW96spJRSKgxpcVBKKRVEi4NSSqkgWhyUUkoF0eKglFIqiBYHpZRSQbQ4KKXUccybNw8RqbuHIS8vj5iYGLKzsxkwYADDhw9n1qxZJzhK5NHioJRSxzF79mxGjhzJnDlz6mJ9+vRhzZo1bN68mTlz5vD000/zyiuvWJhly9PioJRqF+av2c2Ix5eQ+eA7jHh8CfPX7G72McvLy1m+fDkvv/xyg+JQX+/evXnqqad49tlnm32+cKLFQSkV8eav2c1Db61nd4kbA+wucfPQW+ubXSDmz5/P2LFj6devH8nJyaxevTrkfsOGDWuxdRTChRYHpVTEe/KDrbhrGy4d6q718uQHW5t13NmzZzN+/HjAP+/RsSbMaw/TEB0tPCZHV0qpZthT4m5SvDGKiopYsmQJGzZsQETwer2ICHfddVfQvmvWrGl380DplYNSKuJ1T4ppUrwx5s6dyy233MJ3331HXl4eu3btIjMzk/z8/Ab75eXlcd999zFlypSTPlc40uKglIp40y45nZgoe4NYTJSdaZecfoxXnNjs2bMZN25cg9g111zDY489xvbt2+uGsl5//fVMmTKF22677aTPFY60WUkpFfF+nN0D8Pc97Clx0z0phmmXnF4XPxkfffRRUGzq1KlMnTr1pI8ZSbQ4KKXahR9n92hWMVANabOSUkqpIFoclFJKBdHioJRSKogWB6WUUkG0OCillAqixUEppY5j7969jB8/nj59+jBw4EAuvfRSvvnmmyYfZ8aMGVRWVjb5daNHj2blypVNfl1zaXFQSqljMMYwbtw4Ro8ezfbt29m0aROPPfYY+/bta/KxjlccvF5vyLiVtDgodQJen5eKmgq8vvD7BVb1fP06PD0Ypif5//369WYfcunSpURFRTFp0qS62NChQxk5ciTTpk1j8ODBZGVlkZubC/hvnBs9ejTXXnst/fv356abbsIYw7PPPsuePXs4//zzOf/88wGIj4/nkUce4Qc/+AGff/45H374IdnZ2WRlZXH77bdTXV3d7PybQ4uDUsdR5C7i1Y2v8quPf8WcrXM4WHXQ6pRUKF+/DgunQukuwPj/XTi12QViw4YNnHnmmUHxt956i7Vr17Ju3ToWL17MtGnTKCgoAPyT8M2YMYNNmzaxY8cOli9fztSpU+nevTtLly5l6dKlAFRUVDB48GC+/PJLcnJyuPXWW8nNzWX9+vV4PB5eeOGFZuXeXFoclDqG0upSfrv8t8xYPYPP9nzG4189zpMrnqS8ptzq1NTRPvwj1B41A2ut2x9vBcuWLeOGG27AbrfTpUsXRo0axYoVKwAYPnw4GRkZ2Gw2hg4dSl5eXshj2O12rrnmGgC2bt1KZmYm/fr1A2DChAl88sknrZJ7Y2lxUOoY3B43y3YvaxB7b+d7VHqa3qmoWllpftPijTRo0CBWrVoVFD/e+g3R0dF1j+12Ox6PJ+R+LpcLu91+wuNZRYuDUsdgw4bD1nD6sWh79DH2VpbqlNG0eCONGTOG6upqXnrppbrYihUr6Ny5M7m5uXi9XgoLC/nkk08YPnz4cY+VkJBAWVlZyG39+/cnLy+Pbdu2AfDaa68xatSoZuXeXJYXBxGxi8gaEfl34HmmiHwpIt+KSK6IOK3OUXVMcc44bhvUcBrmu7PvppOzk0UZqWO64BGIOmrthqgYf7wZRIR58+axaNEi+vTpw6BBg5g+fTo33ngjQ4YM4YwzzmDMmDE88cQTdO3a9bjHmjhxIj/60Y/qOqTrc7lcvPLKK1x33XVkZWVhs9kadIJbQay+nBGRXwE5QKIx5nIReR14yxgzR0ReBNYZY47bM5OTk2OsGAes2r+S6hJ2l+1mXeE6crrk0CWuC52itTi0hc2bNzdtdbWvX/f3MZTm+68YLngEhlzfeglGmFDvp4isMsbkhNrf0im7RSQDuAz4M/ArERFgDHBjYJdZwHTA2m571WElRSeRFJ3EoNRBVqeiTmTI9VoMWpDVzUozgPsBX+B5ClBijDncg5MPhJygXUQmishKEVlZWFjY+pkqpVQHYllxEJHLgf3GmPpDASTEriHbvYwxM40xOcaYnLS0tFbJUSmlOiorm5VGAFeKyKWAC0jEfyWRJCKOwNVDBrDHwhyVUqpDsuzKwRjzkDEmwxjTCxgPLDHG3AQsBa4N7DYBeNuiFJVSqsOyus8hlAfwd05vw98H8bLF+SilVIdj6Wilw4wxHwEfBR7vAI5/N4lSSrUBu91OVlYWHo+HAQMGMGvWLGJjY+vitbW1OBwOJkyYwL333ovNFo6ft09O+/lOlFINlLprKChxU1DqptRda3U6ESkmJoa1a9eyYcMGnE4nL774YoP4xo0bWbRoEe+++y5/+MMfLM62ZWlxUKodKiqv5pH5Gzn3v5dw7uNLmL5wIwcrrJ0CurW9s+MdLp57MUNmDeHiuRfzzo53WvT45513Xt30FvWlp6czc+ZMnnvuubCcI+lkaXFQqh36bHsRb6/bgzFgDMxbvZsVecVWp9Vq3tnxDtM/m05BRQEGQ0FFAdM/m95iBcLj8fDee++RlZUVcnvv3r3x+Xzs37+/Rc4XDrQ4KNUOLd92ICi27NvgWHvxzOpnqPJWNYhVeat4ZvUzzTqu2+1m6NCh5OTk0LNnT+64445j7tuerhogTDqklVIt65JBXZmzYleD2MWDuliUTevbW7G3SfHGOty3cCI7duzAbreTnp7erPOFE71yUKodOuOUJCaN6k20w0a0w8bd5/dhcPf2O2Fg17jQM6IeK96SCgsLmTRpEpMnT8Y/PVz7oFcOSrVDyXFO7rmgL7eNyAQg0RVFjNNucVat555h9zD9s+kNmpZcdhf3DLunVc53uLnp8FDWm2++mV/96letci6raHFQqoWVVdVSXu2hutZHXLSDtARrFgiKcTqIcXaMX/HLel8G+Pse9lbspWtcV+4Zdk9d/GSVl4deEtbr9TbruJGgY/zkKNVGSiprmPnJDl74eDvGQM/kWGZPPJseSTEnfrFqlst6X9bsYqCO0D4HpVpQUUUNz3/kLwwA3x+s5C/vb6WiOvQ6wkqFKy0OSrWg74sqg2IbC0px17b/ZgjVvmhxUKoFnd41AYet4YiVSwZ1JdEVZVFGSp2cjlscKg9Cwdew5n/hwDdQVWp1Rqod6BwXxazbh3NqSiyuKBs3DD+FW8/thdPRcX/VVGTqmB3S1WXw+V/h06eOxK58Dob8BBxO6/JSES8mysG5fVKYO+kcDBAf7SDWwhFD7hovDpsQpcVJNVHH/ImpLoPlR91Wv+h34D5oTT6qXRER0hJcpCe4LCsMpe5avtxRxL25a/nTO5vYXezG52tf0zu0lXnz5iEibNmyBYC8vDxiYmLIzs5mwIABDB8+nFmzZtXt/+qrr5KWlsbQoUMZOHAgL730UoN4dnY2ffv25ZJLLuGzzz6z5HtqjI555eDzgO+oDsLqQxxjuWqlIs7aXcVM+MeKuucL1u3hg3t/SJdEl4VZRabZs2czcuRI5syZw/Tp0wHo06cPa9asAfxTZ1x99dX4fD5uu+02AH7yk5/w3HPPsX//fgYNGsSVV17ZIA6wdOlSrr76apYuXcqAAQPa/hs7gY555RAVCz3PbhjLuh6i4q3JR6kWVOqu5cWPdzSIlVTWsm5XiUUZtY3ShQv5dswFbB4wkG/HXEDpwoXNPmZ5eTnLly/n5ZdfZs6cOSH36d27N0899RTPPvts0Lb09HT69OnDd999F7Tt/PPPZ+LEicycObPZebaGjlkc4lLh+n/CD++DU0fARX+Cix8FV4LVmSnVbHYbxEcHT5URH91+GwpKFy6k4HeP4NmzB4zBs2cPBb97pNkFYv78+YwdO5Z+/fqRnJzM6tWrQ+43bNiwuman+nbs2MGOHTs47bTTmvS6cNAxiwNAfBf44QMw/v/g7Lv9BUOpdiA+OopfX3w60fU6oft1iadfl/b74Wf/0zMwVQ2n7DZVVex/ekazjjt79mzGjx8PwPjx45k9e3bI/Y6erjs3N5ehQ4dyww038Le//Y3k5ORGvS6ctN+PEo3hcOropFZS6/FR4q4lJspGfBuP8fd4fRRX1mAMJMU6O+Qw0szUOD789SiWbNlPl0QXw3p2JtWiOZ7agqegoEnxxigqKmLJkiVs2LABEcHr9SIi3HXXXUH7rlmzpkG/Qf2+heM5+nXhpGMXB9UsNd4aDlUfwmFzkORKqosXlVfzyvI83tuwl35d4nn40gFkdI5pk+mMS921/GfjXp78YCs1Xh93ntebG4f3pHNc234IqKzxUF7twWm3kRTb9h9Aoh12MjrHcss5vdr83FZwdOvmb1IKET9Zc+fO5ZZbbuFvf/tbXWzUqFHk5+c32C8vL4/77ruPKVOmNOn4H3/8MTNnzmTp0qUnnWNr0uKgTspB90Fe2fgK7+58l25x3fjtD35Ln6Q+eLzCjMXf8NoX3wOwvbCctbtKWDB5ZJvMTpp/sJJpc7+ue/7kB1s5vUsCFw5su4VuCsuqeeKDLSzZvJ++XeJ5bFwWvVLisNnaz1z/4Sb9l/dS8LtHGjQtictF+i/vPeljzp49mwcffLBB7JprruGxxx5j+/btZGdnU1VVRUJCAlOmTKkbqXQ8ubm5LFu2jMrKSjIzM3nzzTfD9spBwrnNq7FycnLMypUrrU6jw6j11vLi1y8y8+sjoyxiHDH8e9y/wZPIhU99zKGqhhPNffirUfRJb/3RYE8v+oZnPvy2QezyId146vqhbdK8VFZVy2/mrWfBuiPNGekJ0bwzdSRpCTqMtCk2b97cpD+cpQsXsv/pGXgKCnB060b6L++l0xVXtGKGkSXU+ykiq4wxOaH21ysH1WSlNaW8t/O9BjG3x82usl30ih9M104uDlUdmQdfhDZbaGZIRvBqZ9k9k4iyt82ndnetlw827msQ219WTXmVh7T22x8cFjpdcYUWgxbU8XrqVLM57U5OTTg1KJ4ak0pKXDSPjcvCaT/yozXxvN7EtdEwyqGnJHFJvbWSs3smcdUZPdps+UabCKemxDaIOWzSrldhU+2TXjmoJkt0JvLA8AfY8N4GSqr9N1b9dMBPSYr2d0oP7tGJT+4fzbb95XRPiiE5zkmnmLYZsZQSH83j1wzhd5d78Pkg3mUnOa7tRumkxkfz5LVncONLX1BR48Um8PBlA0jQWVlPijGmXa3LbJWT6T7QPgd1Urw+LwerDnLAfYAEZwIJzgQ6RbffBeybosbjpaSylv1l1STHOUlwObQ4nISdO3eSkJBASkqKFohmMMZQVFREWVkZmZmZDbZpn4NqcXabnbTYNNJi06xOJew4HXbSE+2k6zxGzZKRkUF+fj6FhYVWpxLxXC4XGRkZTXqNZcVBRE4B/gl0BXzATGPMMyKSDOQCvYA84HpjTLFVeYYlTw3UVoIzAezalq3ap6ioqKBPuqrtWNkh7QF+bYwZAJwN3C0iA4EHgQ+NMX2BDwPP1WHl++CT/4Y5N8KXz0PFAaszUkq1Q5ZdORhjCoCCwOMyEdkM9ACuAkYHdpsFfAQ8YEGK4aeiCF6fAN9/7n/+3XLYtxF+9KROGqjUSfDV1mLcbmxxcYhehTcQFkNZRaQXkA18CXQJFI7DBST9GK+ZKCIrRWRlh2mTrK08UhgOW/861JaH3l+FJU9hIRWffU7lypV4DuiVn1U8Bw5w4H+eJ3/yZA6+9hqeg7rYV32Wd0iLSDzwJnCvMeZQY0clGGNmAjPBP1qp9TIMIzY72Bz+xYoOi04EdCRHpKjdt4+863+CZ5//Rjln796c+s9ZOFJ1VuC25Dl4kPwpU3CvWQtA5VcrqN62jS4PPYQ9Ls7i7MKDpVcOIhKFvzD8yxjzViC8T0S6BbZ3A/ZblV/YiU6AEfc0jF30J4gJPR2wCi/G56P49dfrCgNAzY4dlC9bZmFWHZPP7a4rDIeVvr0AX0WFRRmFHytHKwnwMrDZGPNUvU0LgAnA44F/37YgvfAUnQDnTIZB46BgHZwy3L8uhU47HhGMz0ftUTN6AtTuDp5NVLUucTj8I/28R5YLtsfF6f0U9Vh55TACuBkYIyJrA1+X4i8KF4nIt8BFgefqsNhk6JoF2T+F1H7gar0bzw5VH2JfxT72V+7H7XG32nk6CpvDQfJNNzUM2u0kXnapNQl1YLa4OJJvvbVBLP3+adg6d7YmoTCkd0irkA5WHeTRzx9l8feLcdqdTBwykZ+c/hO9C7qZvGVluNet48ALLyJRUaT/8l6i+/bFFht74herFuUpKcGzpwD3pk3EDsvGkZaGPaFjjfrTO6RVk3h9XhZuX8ii7xcBUO2t5q9r/sp5Pc7T4tBM9oQE4keOxDV4MGKzYU9MtDqlDsuRlIQjKQnXwPBcT8FqYTGUVZ2kqkNwaA+U5kNly91E7va4Wb5neVB8zf41LXaOjs6RlKSFQYU1LQ6RqrIIlj4GMwbD04Ng3s+homXu94hxxDCi+4igeHZ6doscXykV/rQ4RKrCb+DLF8AXGG3x7Qew/k3w+Zp9aLvNzhV9ruDCnhciCNH2aKZkT6F7fPdmH1spFRm0zyFS7foiOLbzYzjzFrA1v3Mz2ZXMH879Aw8OfxARIcGZQIwjptnHVUpFBi0Okar36OBY/8ugBf+AJ0Ynkhit7eJKdUTarBSpknr57452xoM9Cs68DfqN9S/YrJRSzaRXDpEqtjMMnwhDrgdj/HdPR8dbnZVSqp3Q4hDJolwQ1dXqLJRS7ZAWB9VhFVcV4/F5cNgcdHbptAlK1XfCPgcRSRSRPiHiQ1onJaVa33el3/HzRT9nzBtjmLR4Et8f+t7qlJQKK8ctDiJyPbAFeFNENorIWfU2v9qaiSnVWorcRUxeMpnNBzcDsKloE1OWTKHIXWRxZqoxvJWV1OzeTdnixVRv346ntNTqlNqlEzUrPQycaYwpEJHhwGsi8nBg7QUdFqMiUrW3mrxDeQ1iO0p3UOOtsSYh1WjG66Xyiy/Jnzy57obPlEmTSPnZHdjjdUBGSzpRs5K93pKdXwHnA78RkalA5E/nqjqkKFsUKa6UBrH02HSi7FEWZaQay1tczN7p0xvMBFA0cya+cl0qt6WdqDiU1e9vCBSK0cBVwKBWzEupVpPsSuap0U+R6PTf4NcpuhP/b9T/o3O0dkqHO2MMnuKjJpn0+TC1tdYk1I6dqFnpFxzVfGSMKRORscD1rZaVUq3IbrOTlZrF/Kvm4/a4iXHE0Dm6M3ab3erU1AnYYmPpdPnllM6bVxfT9TBax4mKQwXQBdh2VPxsIMTkPkpFhih7FGmxaVanoZrIHhdH+n2/JqpHD8qXLME1eBCpd92FIyXlxC9WTXKi4jADf6f00dyBbVe0eEZKKXUcjpQUUn4+kc433oAtNhabyxW0zyF3Le5aLwKkxDmx23WmoKY6UXHoZYz5+uigMWaliPRqlYyUUuoEbFFR2JKTQ24rLKvmkbc38MHGvaTER/Nf47I4p08KcdF6z29TnKicBpfkI3T+ZqVUWKmq9fLix9t5b8NefMZfKCa+tpJSt3ZYN9WJisMKEbnz6KCI3AGsap2UlFLq5JRXefhoa8MVEX0Gvt1fZlFGketE11n3AvNE5CaOFIMcwAmMa83ElFKqqWKdds7I6MT2wob3PWSmxFmUUeQ6bnEwxuwDzhWR84HBgfA7xpglrZ6ZUko1UWy0g2ljT2dTwSG27C3DabcxbezpJMU6rU4t4hy3OIiIC5gEnAasB142xnjaIjGllDoZ3TrF8L8/+wGVNR4cNhtRdiExRu9+b6oTNSvNAmqBT4EfAQPwNzUp1WY8Pg+VnkriHHF6o5pqFJsIc77axRsr80lLiOaPVw1icI9OuKL056exTlQcBhpjsgBE5GXgq9ZPSakjitxFvPHNG3y19ytG9hjJj0/7Mcmu0EMYlQLweH28sWoXz3+0HYDC8mpueOkLPp52Pt2TdJBlY52oONSN/zLGeETXJ1ZtqKSqhIeXPcxnez4DYMXeFWwu2swj5zxCgjPB4uxUU3mKivwT5Dkc2OLicCQltcp5DlXVsnDdngaxWq9h455SLQ5NcKKhrGeIyKHAVxkw5PBjETnUFgmqjsvtddcVhsP+891/cHvcFmWkTpansJDvb7+D7ZeMZfsFF7L399PxHDzYKudyRdk5LS14+u5TknX+paY4bnEwxtiNMYmBrwRjjKPe48TWTExExorIVhHZJiIPtua5VHiyi50oW8OORJfdhehSIhHFeDwUz55D9datdbGyDz6getvRU7a1jFing/suOZ2uiUfu4R1/1il0STjePb3qaGF5P7mI2IH/AS4C8vHfjLfAGLPJ2sxUW4qPiufOrDt5ft3zdbF7ht1TN9W2igy+mhqqNgX/6lZv3kLc8OGtcs4eSTEsmDKC4opaYp12ElwOHc7aRGFZHIDhwDZjzA4AEZmDfw0JLQ4dSGxULDcOuJHze57PxgMbOSPtDNJj04l2RFudmmoCe2wsiZdfRvlHHzWIx40c0WrnFBHSE1yk69XCSQvX4tAD2FXveT7wg/o7iMhEYCJAz5492y4z1aY6RXeiU3Qn+if3tzoV1QxxI0aQOmUyxa/9L7a4WNLvvx9HerrVaanjCNfiEKpRucGypMaYmcBMgJycHF2yVKkw5ujcmZQ776Tz9deDCPbOnRG73nMQzsK1OOQDp9R7ngHsOca+Sh1fRSHs+gp2r4YBV0DnXhDTOsMo1bHZnE5sabrAUqQI1xUwVgB9RSRTRJzAeGCBxTmpSFRZBG9Phjk3wqd/gZmjYPNC8OosMEodT1gWh8D8TZOBD4DNwOvGmI3WZqUiUnU5fPN+w9jSR/1FQyl1TOHarIQx5l3gXavzUJEuRHeUtyZ0r5ZSqk5YXjko1WKc8ZBx1Fj6c6eCq7M1+SgVIcL2ykGpFhGXCuP/BRvmwe6vIOt6yDgLHHpDlFLHo8VBtX/x6fCDieC7Hew6r79SjaHNSqpjENHCoFQTaAdQd+UAABNdSURBVHFQSikVRIuDUkqpINrnoBrtYNVBNhdtZmPRRkZljKJbfLeWmyHVXQLFO2HjfOg+FHqNhDi9m1Ypq2hxUI1SUlXCo188yqLvFgHw1zV/5bGRj3Fp5qXNX9fZ64Wt78H8SUdimaPhun9AbErzjq2UOinarKQapdJTWVcYDpuxegbF1cXNP7j7ACz9c8PYzo+gShcbVMoqWhxUo3iNNyhW5akKeQNykxnAF2KuI+NrgYMrpU6GFgfVKHFRcQxOHdwgdsvAW0iMboE+h9gUGPnLhrEew8DVqfnHVkqdFO1zUI2S7Ermr2P+yoLtC1hfuJ7Lel9GTpccnPYWuNPY7oCs6yDtdFg3G3rkwMCr/Hc3K6UsIcZE/jo5OTk5ZuXKlVan0SH4jI9ab23rLdXp80JzO7iVUo0iIquMMTmhtmmzkmoSm9hadw1nLQxKhQUtDkoppYJocVBKKRVEi4NSSqkgWhxU5Ko3mKLGW0NpdSleX/D9GCq8Ga8Xz8FivJWVVqcScSqqPdR6Wud+IB3KqiJPbRUc2g1fvQSJPdh3xjW8vPFVthzcwiW9LuHSzEvprCu9RQRPcTGlCxZyaOFCnJmZpN0zlagePRDRdVyPp7SyhlXfF/OvL7/n1ORY7vxhb7omulr0fdPi0JLcxbBvU2Cs/pnQ/zL/QjOqZZXughfOBW8NRTflcueiSew8tBOANfvXsLdiL5OHTm7dUVWq2Xy1tRT/6/848NxzAFRt2EDll1+Q+eabONJ00sVjMcawZGshv8xdWxf799cF/HvqSNITXC12Hm1WaileD2ycB69eCmteg3/fC3NuhIoDVmfWvvg88Pnz4K0BEcrjUuoKw2FvfvMmZbVlFiWoGstbUkLJ3LkNYp79hXgK9XfmeA5W1PD3T3c0iO0vqybvQMs2y2lxaCmVRfDJXxrG8ldAVak1+bRnh++FMAanLfjiN8mV1MYJqZMhdjuO1OBZd23xcRZkEznsNiEuOvjnPtbZsvcIaXFoSRLi7dS205Zlc8A5d0NUDACxO5dxbe8rj2wWGw8Nf4hkV7JVGXZ4ngNFVK5eTcWKFXgOHPsqwJGcTJff/haJOrJ8a+JVV2FLbKE1QtqppFgnD/2oPw7bkb8tw05NolunlmtSAp0+o+V4vfD1HHj7riOxU0fA9f/UOYJamqcayvfB2v8DZwLFQ65mb3Ux20t2MDR9KMmuZGKjYq3OskPyHDjAdzffQs1Of1NfVI8enDp7NlHpofsQfFVVeEtKqNqwkage3XF07Yqjsw4mOBF3rYcDZTUs3bqfU5NjGdSjE6nxTe9jO970GVocWpK7BIq2w/o3oEc29D5fO6RVh1Kc+zp7f//7BrG0X/+a1Dt/ZlFG6niOVxx0tFJLikmCjDP9X0p1QLW7doWMGWN0eGqE0T4HpVSL6fTjq4L62ZJ+cr0WhgikxUEp1WIc3brR85+ziMnJISY7m1P+/necp55qdVrqJFjSrCQiTwJXADXAduA2Y0xJYNtDwB2AF5hqjPnAihyVUk1nj4sj7qyziH7urwA4knRYcaSy6sphETDYGDME+AZ4CEBEBgLjgUHAWOB5EdEJ/pWKMI6kJC0MEc6S4mCM+Y8x5vCK8l8AGYHHVwFzjDHVxpidwDZguBU5KqVURxYOo5VuB3IDj3vgLxaH5QdiQURkIjARoGfPnq2Zn1IRpayqlu+KKsld8T290+K5fEg30lpwzh3VMbRacRCRxUDXEJt+Y4x5O7DPbwAP8K/DLwuxf8gbMYwxM4GZ4L/PodkJK9VOrPqumFtfWVH3/J+ff8frPz+HtASdiDAS+Kqq8JaW4isrw5aYiL1TJ2zRbf9/12rFwRhz4fG2i8gE4HLgAnPkTrx84JR6u2UAe1onQ6Xan4MVNcxY/G2D2M4DFeQXV2pxiAC+2loqvvyK3VOnYqqrkZgYTnn+eWLPykEcbdvQY0mfg4iMBR4ArjTG1J9KcAEwXkSiRSQT6At8ZUWOSkUqvaMgcnlLSih44AFMdTUAxu1mz/334ykubvNcrBqt9ByQACwSkbUi8iKAMWYj8DqwCXgfuNsYo0t7KdVIyXFOfnlRvwaxPmlxnNJZ55qKBKamFm9JSYOYp7AQPJ5jvKL1WNIhbYw57Tjb/gz8uQ3TUSpieMvLMW43Bv+spmIPHumd3TOJd6eexxurdpGZGsePBnclVZuUIoLNFY3ztNOo2batLuYaPAixoM9BJ95TKkJ4iorY98STHHrnHRzJyXSd/ntizz4be6xeFbQnNfn5FPz2d7jXrSN2WDbd/vQnorp3b5Vz6aysSkU4X00NB154kaIXXjgStNnos2gRzh6t84dDWcdTWoqpqcHmdGLv1KnVzqOzsioV4XxlZZQvXXpU0Ef11i1aHNohRysWhMbSifeUigC22FhcgwcHxZ2ZmRZkozoCLQ5KRQBbTAxpk+8mum9ff8BuJ3XyZBzJuhyqah3arKRUhIjq2pWer76Cr7IScTqxxcVhj4+3Oi3VTmlxUCqCOFJSICXF6jRUB6DNSkoppYJocVBKKRVEi4NSSqkgWhyUUkoF0Q5pFT5qKqH6ENjsEJdmdTYtrriqmG+Lv2XlvpWc2/1cenXqRVK0LqWpwpMWBxUeKgrh4ydg/RvQKQMunwFdsiCqfUwYV15TzvNrn2fO1jkAvLDuBaZmT+XmgTfjcugqbSr8aLOSsp6nGj5/Hr6aCe5i2LseXr0Mqg5anVmLqait4PVvXm8Qe2n9S5TVlFmUkVLHp8VBWa+qFDbNbxjzVMGBbaH3j0AGg8/4GsRqfbWY0KvgKmU5LQ7Keg4XpJ4eHE9sPxPKxThiuOCUCxrEru17LXFRcRZlpNTxaZ+Dsp4rEcb+F+xZDeX7/LER90Js+5k3qFN0Jx455xFG9BjBFwVfMKbnGM7tfq4WBxW2dD0HFR6MgfL9/j4HZxxEJ0BM+xvJY4yh1leL0+60OhWldD0HFQFEIKGL/6sdExEtDCoiaJ+DUkqpIHrl0MEZYyh0F/L+zvc5WHWQcX3HkR6bTowjxurUlFIW0uLQwR1wH2D8v8dT6C4EYNbGWeRekUu/zv0szkwpZSVtVurgVu9fXVcYADzGw9/W/Q23x21hVkopq2lx6OCOvjGrLhb5g9iUUs2gzUodXE6XHFJcKRRVFQFgFzsTh0wkJqqN+hzK90HpbrA5ILFbu5xwT6lIpMWhg0uNSSX38lzmb5tPUVUR4/uPp2ts17Y5edle+MdYKN7pf959GNyYC/HpbXN+pdQxaXHo4ESELnFd+PkZP2/bE/u8sOrVI4UB/HdIf7ccBo1r21yUUkG0OChr+Lxw4JvgeBtNtuf1eSmqKmLNvjUkOBM4Pfl0UmJS2uTcSkUCS4uDiNwHPAmkGWMOiIgAzwCXApXArcaY1VbmqFqJwwln3gYb3jwSE4GBV7XJ6QsqCrhu4XWU15YDcFrSafz94r9rgVAqwLLRSiJyCnAR8H298I+AvoGvicALFqSm2krXLLjmZegyyN/fcPP8NpmJtdpbzcyvZ9YVBoBtJdtYf2B9q5+7LXmKi/EUFuItLbU6FRWBrLxyeBq4H3i7Xuwq4J/GPxvgFyKSJCLdjDEFlmSoWldMEgy+BnqPAmwQ1zaf2j0+DwdDLCQUKhaJjDHU5OWx58GHqNq4kbgfDKfbo48S1a2b1ampCGLJlYOIXAnsNsasO2pTD2BXvef5gVioY0wUkZUisrKwsDDULioSiPiHr7ZRYQCIi4rjloG3NIi57C7O7X5um+XQmrxFRez62c+oWrcOPB4qln/G7l/fh6e4xOrUVARptSsHEVkMhBoT+RvgYeDiUC8LEQt5O5YxZiYwE/xTdp9kmqqDGpAygJkXzeSVja/QydmJu4beRYqrffQ3+NxuanfvaRBzr16Nqam2KCMViVqtOBhjLgwVF5EsIBNY5+9/JgNYLSLD8V8pnFJv9wxgT9BBlGqmBGcC53Q/h8Gpg7GLndioWKtTajESHY0tLg5fRUVdLCojA7HbLcxKRZo2b1Yyxqw3xqQbY3oZY3rhLwjDjDF7gQXALeJ3NlCq/Q2qNSU4E9pVYQCwJyXR/Yn/RqKjAbAlJND9L3/BntI+roxU2wi3+xzexT+MdRv+oay3WZuOUpHH5nQSN2IEff7zAb7KSmxxcdg7dyZwpa5Uo1heHAJXD4cfG+Bu67JRqn2wuVzYXC6r01ARTGdlVRHNeL14y8sxXq/VqSjVrlh+5aDUyfIcPEjpggVULFtO3Hnn0emKy3EkJ1udllLtghYHFZG8paUUTP8D5f/5DwAVy5bhXrOabn/8I/bERIuzUyryabOSikg+t5vyRYsaxMo++A++Sl3BTqmWoMVBRSabDYmKahASpxNsOiJHqZagxUFFJFt8PCk/b7gGReovJmFPSLAoI6XaF+1zUBHJHhtL8k03Ej96FO5Vq4k580ycPbpji2mj5U2Vaue0OKiIZU9KIiYpiZhBg6xORal2R5uVlFJKBdHioJRSKogWB6WUUkG0OCillAqixUEppVQQLQ5KKaWCiH+W7MgmIoXAdxankQocsDiHxtJcW08k5RtJuUJk5RspuZ5qjEkLtaFdFIdwICIrjTE5VufRGJpr64mkfCMpV4isfCMp12PRZiWllFJBtDgopZQKosWh5cy0OoEm0FxbTyTlG0m5QmTlG0m5hqR9DkoppYLolYNSSqkgWhyUUkoF0eLQTCIyRUS2ishGEXmiXvwhEdkW2HaJlTkeTUTuExEjIqmB5yIizwby/VpEhoVBjk+KyJZAPvNEJKnetrB7b0VkbCCfbSLyoNX5HE1EThGRpSKyOfCzek8gniwii0Tk28C/na3O9TARsYvIGhH5d+B5poh8Gcg1V0ScVud4mIgkicjcwM/sZhE5J5zf28bQ4tAMInI+cBUwxBgzCPhLID4QGA8MAsYCz4uI3bJE6xGRU4CLgO/rhX8E9A18TQResCC1oy0CBhtjhgDfAA9BeL63gfP/D/73cSBwQyDPcOIBfm2MGQCcDdwdyPFB4ENjTF/gw8DzcHEPsLne8/8Gng7kWgzcYUlWoT0DvG+M6Q+cgT/vcH5vT0iLQ/P8AnjcGFMNYIzZH4hfBcwxxlQbY3YC24DhFuV4tKeB+4H6IxGuAv5p/L4AkkSkmyXZBRhj/mOM8QSefgFkBB6H43s7HNhmjNlhjKkB5uDPM2wYYwqMMasDj8vw//HqgT/PWYHdZgE/tibDhkQkA7gM+HvguQBjgLmBXcIp10Tgh8DLAMaYGmNMCWH63jaWFofm6QecF7jU/VhEzgrEewC76u2XH4hZSkSuBHYbY9YdtSks863nduC9wONwzDUcczomEekFZANfAl2MMQXgLyBAunWZNTAD/4cYX+B5ClBS7wNDOL3HvYFC4JVAM9jfRSSO8H1vG0WXCT0BEVkMdA2x6Tf437/O+C/TzwJeF5HegITYv03GDJ8g34eBi0O9LESs1fM9Xq7GmLcD+/wGf5PIvw6/LMT+Vo/HDsecQhKReOBN4F5jzCH/B/LwIiKXA/uNMatEZPThcIhdw+U9dgDDgCnGmC9F5BkirAkpFC0OJ2CMufBY20TkF8Bbxn+zyFci4sM/4VY+cEq9XTOAPa2aaMCx8hWRLCATWBf4g5ABrBaR4ViU7/HeWwARmQBcDlxgjtyQY9l7exzhmFMQEYnCXxj+ZYx5KxDeJyLdjDEFgabE/cc+QpsZAVwpIpcCLiAR/5VEkog4AlcP4fQe5wP5xpgvA8/n4i8O4fjeNpo2KzXPfPztoIhIP8CJfybGBcB4EYkWkUz8Hb1fWZYlYIxZb4xJN8b0Msb0wv8DPcwYsxd/vrcERi2dDZQevhy2ioiMBR4ArjTGVNbbFHbvLbAC6BsYTePE32G+wOKcGgi02b8MbDbGPFVv0wJgQuDxBODtts7taMaYh4wxGYGf0/HAEmPMTcBS4NrAbmGRK0Dgd2iXiJweCF0AbCIM39um0CuH5vkH8A8R2QDUABMCn3A3isjr+H9APMDdxhivhXmeyLvApfg7dyuB26xNB4DngGhgUeBK5wtjzCRjTNi9t8YYj4hMBj4A7MA/jDEbrcwphBHAzcB6EVkbiD0MPI6/OfQO/CPYrrMov8Z4AJgjIo8Cawh0AIeJKcC/Ah8OduD/HbIROe9tEJ0+QymlVBBtVlJKKRVEi4NSSqkgWhyUUkoF0eKglFIqiBYHpZRSQbQ4KNUMIuIVkbUiskFE3hCR2EC8q4jMEZHtIrJJRN4N3AuDiLwvIiWHZxtVKhxpcVCqedzGmKHGmMH473WZFLjhbB7wkTGmjzFmIP57CroEXvMk/nsOlApbWhyUajmfAqcB5wO1xpgXD28wxqw1xnwaePwhUGZNiko1jhYHpVqAiDjwr+ewHhgMrLI2I6WaR4uDUs0TE5iOYiX+KRLCaUoHpU6azq2kVPO4jTFD6wdEZCNHJohTKiLplYNSLW8JEC0idx4OiMhZIjLKwpyUahItDkq1sMDMvOOAiwJDWTcC0wmsPyAinwJvABeISL6IXGJZskodg87KqpRSKoheOSillAqixUEppVQQLQ5KKaWCaHFQSikVRIuDUkqpIFoclFJKBdHioJRSKsj/B/ArmUIFvkW3AAAAAElFTkSuQmCC\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# can't color categorically with pandas alone, so use seaborn\n",
"#pd.DataFrame(pca, columns=[\"PC1\", \"PC2\"]).plot.scatter(x=\"PC1\", y=\"PC2\")\n",
"sns.scatterplot(\"PC1\", \"PC2\", data=pd.DataFrame(pca, columns=[\"PC1\", \"PC2\"]),\n",
" hue=samples.Condition)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 3.2. UMAP\n",
"\n",
"UMAP is a modern dimensionality reduction technique similar to t-SNE, able to shrink all of the data to two components. See more details here: https://github.com/lmcinnes/umap\n",
"\n",
"Again, we can already appreciate that AD+ADPD seem to cluster together (top-right) whereas Control+PD seem to be clustered more in the bottom-left."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEHCAYAAACjh0HiAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deXhU5dn48e89SzLZF0IACcgiCLLIri0oi1YFrfuCSxW18mIFta1Yu7j2ra/VVkH9VUWtovUFFBHBrS8KqIBVEBARUAGDhC17yDZJZub5/TFDyE5CMnMmmftzXXMx5zlnzrkZmLnnPKsYY1BKKRW5bFYHoJRSylqaCJRSKsJpIlBKqQiniUAppSKcJgKllIpwmgiUUirCOYJ5chFJBl4ABgMGuMkY81mN/QLMBaYAZcA0Y8zGps6ZlpZmevXqFbSYlVKqI/ryyy9zjTGdG9oX1ESA/0v+A2PM5SISBcTW2T8Z6Bd4nAY8E/izUb169WLDhg3BiFUppTosEdnT2L6gVQ2JSCJwJvAigDGm0hhTWOewi4BXjN9/gGQR6RasmJRSStUXzDaCPkAO8JKIbBKRF0Qkrs4x3YG9NbazAmVKKaVCJJiJwAGMAJ4xxgwHSoF76hwjDbyu3pwXIjJdRDaIyIacnJy2j1QppSJYMNsIsoAsY8znge3F1E8EWUCPGtsZwP66JzLGzAPmAYwaNapeoqiqqiIrKwu3290WcUc0l8tFRkYGTqfT6lCUUiEStERgjDkoIntF5GRjzLfAWcC2OoctA2aKyEL8jcRFxpgDLb1WVlYWCQkJ9OrVC39HJHU8jDHk5eWRlZVF7969rQ5HKRUiwe41NAt4LdBjaDdwo4jMADDGPAu8h7/r6E783UdvPJ6LuN1uTQJtQETo1KkTWv2mVGQJaiIwxmwGRtUpfrbGfgPc1hbX0iTQNkLxPua789lduJs9h/dwWrfTSHWlEuus27NYKRUqwb4jUKqWAncBf1rzJz7d9ykAdrHz4jkvMrLrSIsjaz1jDLnluazauwq3x83PTvwZaTFpOO3a3qLCm04x0YYOHjzI1KlT6du3L6eccgpTpkzhu+++a9U5V69ezQUXXADAsmXLeOSRRwBYunQp27YdbXK57777+PDDD1t1rVAorCisTgIAXuPl0Q2PUuAusDCqtpFbnssVy6/gz//5M49teIyL3r6IQ2WHrA5LqWPSRNBGjDFccsklTJgwgV27drFt2zYefvhhDh1quy+CCy+8kHvu8Xe8qpsIHnroIc4+++w2u1awlHvK65UVVxbjNV4Lomlbn2R9Qp47r3q73FPO/G/m4/F5LIxKqWPTRNBGVq1ahdPpZMaMGdVlw4YNY9y4ccyePZvBgwczZMgQFi1aBPh/6U+YMIHLL7+cAQMGcO2113Jk2dAPPviAAQMGMG7cOJYsWVJ9vpdffpmZM2eybt06li1bxuzZsxk2bBi7du1i2rRpLF68GICPPvqI4cOHM2TIEG666SYqKioA//Qc999/PyNGjGDIkCHs2LEjVG9PtfTYdLrGda1Vds2Aa0iOTg55LG2toSTn9rjR5WBVuNNE0Ea2bt3KyJH167mXLFnC5s2b+eqrr/jwww+ZPXs2Bw74e8hu2rSJOXPmsG3bNnbv3s3atWtxu93ccsstLF++nE8//ZSDBw/WO+dPf/pTLrzwQh577DE2b95M3759q/e53W6mTZvGokWL+Prrr/F4PDzzzDPV+9PS0ti4cSO33norf/vb34LwTjQtLSaNVye/yrUDr+UnJ/yER894lAv6XIDD1v6bq84+8WxiHUcbve1i54bBN2gbgQp7mgiCbM2aNVx99dXY7Xa6dOnC+PHjWb9+PQBjxowhIyMDm83GsGHDyMzMZMeOHfTu3Zt+/fohIlx33XUtut63335L79696d+/PwA33HADn3zySfX+Sy+9FICRI0eSmZnZNn/JFuoa15XfjPwNfx//dyb3mUyyq/3fDQCkudJYcuESrh1wLZeedClvXvgm3eN1xhQV/tr/z7AwMWjQoOqqmZqaqhaIjo6ufm632/F4/HXJrenCeaxqiCPXrHk9K0TZo4iyR1l2/WBw2B10T+jOXaPv8m93gLscFRn0jqCNTJo0iYqKCp5//vnqsvXr15OSksKiRYvwer3k5OTwySefMGbMmEbPM2DAAH744Qd27doFwIIFCxo8LiEhgeLi4gZfn5mZyc6dOwF49dVXGT9+fGv+aqqFHDaHJgHVrmgiaCMiwltvvcWKFSvo27cvgwYN4oEHHuCaa65h6NChnHrqqUyaNIlHH32Url27Nnoel8vFvHnzOP/88xk3bhwnnnhig8dNnTqVxx57jOHDh1cnjSOvf+mll7jiiisYMmQINputVgO2UkrVJe2tR8OoUaNM3YVptm/fzsCBAy2KqOPR91OpjkdEvjTG1J3pAdA7AqWUiniaCJRSKsJpIlBKqQiniUAppSKcJgKllIpwmgiUUirCaSJoQ2+99RYiUj2ZW2ZmJjExMQwfPpyBAwcyZswY5s+fb3GUHYO3tJSqQ4eoOnQIb2mp1eEo1a7p8Mc2tGDBAsaNG8fChQt54IEHAOjbty+bNm0CYPfu3Vx66aX4fD5uvPG4VuUMuXx3Pj8e/pHc8lyGpA0h1ZVq+SRqnoIC8p6bR/5rrwGQevXVdLp1Bo6UFEvjUqq9isg7gqWb9jH2kZX0vuddxj6ykqWb9rX6nCUlJaxdu5YXX3yRhQsXNnhMnz59ePzxx3nyySdbfb1QyHfnM/vj2fzi/V/w69W/5udLf86PxT9aHRbuLV+T//LLUFUFVVXkv/IK5V99ZXVYSrVbEZcIlm7ax++XfM2+wnIMsK+wnN8v+brVyWDp0qWcd9559O/fn9TUVDZu3NjgcSNGjLBkHYDjsb9kP18c/KJ6u9xTzuMbHqekssTCqKB41ap6ZSUr65cppZon4hLBY//+lvKq2qthlVd5eezf37bqvAsWLGDq1KmAfx6gxiaLa09TehRWFNYry6/Ip8pXZUE0R8WPG1uvLG7cOAsiUapjCGobgYhkAsWAF/DUnedCRCYAbwM/BIqWGGMeCmZM+wvrryLVVHlz5OXlsXLlSrZu3YqI4PV6ERF+9atf1Tt206ZN7WYen/4p/UlwJlBcdXSW06knT7V8NbGYESNIuvxyigKrtyVdcjGxo+ovCqSUap5QNBZPNMbkNrH/U2PMBSGIA4ATkmPY18CX/gnJMcd9zsWLF3P99dfz3HPPVZeNHz+erKysWsdlZmZy1113MWvWrOO+Vih1cnViwQULeGrjU2SXZ3Nl/ys5I+OMVq2X0BYcqal0+d3ddJ41EwBbbCz2hARLY1KqPYu4XkOzzz2Z3y/5ulb1UIzTzuxzTz7ucy5YsKB6UfkjLrvsMh5++GF27drF8OHDcbvdJCQkMGvWrHbTY8hus3Ni4ok8NPYhqrxVJLmSrA6pmj0hQb/8j4fPCyUHYfNCqCqHEb+A+K7gjD72a1WHFdRpqEXkB6AAMMBzxph5dfZPAN4EsoD9wF3GmG8aOM90YDpAz549R+7Zs6fW/pZOm7x00z4e+/e37C8s54TkGGafezIXD9clBY/Qaag7sMP74ZmfQnmBf9vhglvXQae+Tb9OtXtNTUMd7DuCscaY/SKSDqwQkR3GmE9q7N8InGiMKRGRKcBSoF/dkwQSyDzwr0fQ2qAuHt5dv/hVZNr+ztEkAOBxw2f/gCl/BV1VLWIFtdeQMWZ/4M9s4C1gTJ39h40xJYHn7wFOEUkLZkxKRTTjbaDM579nVxEraIlAROJEJOHIc+AcYGudY7pKoOVRRMYE4skLVkxKhQX3YSjJBq8F3XBPuQhqtvXYo+Cnt4Fd7wYiWTD/9bsAbwW+5x3A/xpjPhCRGQDGmGeBy4FbRcQDlANTTXvqaK9US/i8UJAJ//4D5O+CwVfA6JshLoQ3wXFd/G0CX873NxaPvhkSu4Xu+iosBS0RGGN2A6c2UP5sjedPA08HKwalwkppLrx4NpTl+7dXPwyeCpjwO3CEqNeO3Q5JGTDpj6G5nmoXIm5ksVKWKT5wNAkcsWVh7cZbpSygiaANHTx4kKlTp9K3b19OOeUUpkyZwnfffdfi88yZM4eysrIWv27ChAls2LChxa9TIRLTwIjspO5g8WyuSmkiaCPGGC655BImTJjArl272LZtGw8//DCHDh1q8bmaSgRebwO9PlT74EqCUTcf3XbGwpS/QWwn62JSikhNBFtehycGwwPJ/j+3vN7qU65atQqn08mMGTOqy4YNG8a4ceOYPXs2gwcPZsiQISxatAiA1atXM2HCBC6//HIGDBjAtddeizGGJ598kv379zNx4kQmTpwIQHx8PPfddx+nnXYan332GR999BHDhw9nyJAh3HTTTVRUVLQ6/g7P6/UPptrwEmx6DYoPQqj7JcSkwKQ/wcz1cMNymLUROuvAveNSmgvf/Rs++jNkbYAyrV5rjcjrM7bldVh+u7/HBEDRXv82wNArj/u0W7duZeTI+hOfLVmyhM2bN/PVV1+Rm5vL6NGjOfPMMwH/BHTffPMNJ5xwAmPHjmXt2rXcfvvtPP7446xatYq0NH9vktLSUgYPHsxDDz2E2+2mX79+fPTRR/Tv35/rr7+eZ555hjvvvPO4Y48IxYERtRWH/dsJXWH6akgIcY+Z2FT/I61/aK/bkZQVwPt3w9Y3/duf/g0mPwojbwRHlLWxtVORd0fw0UNHk8ARVeX+8iBYs2YNV199NXa7nS5dujB+/HjWr18PwJgxY8jIyMBmszFs2DAyMzMbPIfdbueyyy4D4Ntvv6V379707+//Irnhhhv45JNPGnydCvD54PPnjiYB8N8R7HjXupjU8asqPZoEjlj1sDa6t0LkJYKirJaVN9OgQYP48ssv65U3NSwiOvpol0G73Y7H42nwOJfLhd1uP+b5VGN8tZPAERXF9ctU+DO++mUWr5HR3kVeIkjKaFl5M02aNImKigqef/756rL169eTkpLCokWL8Hq95OTk8MknnzBmzJgmzgQJCQkUFzf8JTVgwAAyMzPZuXMnAK+++irjx49vVewdns0Bp98KNvvRMocLBl9mXUzq+DnjoHed//On3wauRGvi6QAir43grPtqtxEAOGP85a0gIrz11lvceeedPPLII7hcLnr16sWcOXMoKSnh1FNPRUR49NFH6dq1a5PLVU6fPp3JkyfTrVs3VtVZltHlcvHSSy9xxRVX4PF4GD16dK0GatWI5J7wX5/C2rn+JDD2DojvYnVU6njEdYLLXoTtb8Oedf6E3vN0/+dYHZegTkMdDKNGjTJ1+8q3eNrkLa/72wSKsvx3Amfd16qG4o6mQ09DXVUBNvHPsaPaP2+VjsNoJiunoQ5PQ6/UL/5IpQuwdCyaBNpE5LURKKWUqkUTgVJKRThNBEopFeE0ESilVISLzMZipVRQ5JXnsW7/OnYX7mZyn8mcEHcC8VHxVoeljkETQRux2+0MGTIEj8fDwIEDmT9/PrGxsdXlVVVVOBwObrjhBu68805sNr0ZUx1LXnket354K9vztwPwwtYX+MdZ/+CMjDMsjkwdi34btZGYmBg2b97M1q1biYqK4tlnn61V/s0337BixQree+89HnzwQYujVart5ZbnVieBI57a9BT57vxGXqHCRUQmgnd3v8s5i89h6PyhnLP4HN7d3baTj51xxhnVU0DUlJ6ezrx583j66ad1ziDV4fgamAPIa7z6f70diLhE8O7ud3lg3QMcKD2AwXCg9AAPrHugzZKBx+Ph/fffZ8iQIQ3u79OnDz6fj+zs7Da5nlLhIj02nd6JvWuV3TLkFlJdqRZFpJorqG0EIpIJFANewFN3eLOICDAXmAKUAdOMMRuDGdPcjXNxe921ytxeN3M3zuX8Pucf93nLy8sZNmwY4L8juPnmmxs9Vn8hqY6oU0wn/nnuP3ln9zvsLNzJ5f0vp09SH/wfcxXOQtFYPNEYk9vIvslAv8DjNOCZwJ9Bc7D0YIvKm+tIW8Cx7N69G7vdTnp6equup1Q4SotNY9rgaXh9Xuw1Z3tVYc3qqqGLgFeM33+AZBEJ6pJRXeO6tqi8LeXk5DBjxgxmzpypv5JUh6ZJoH0JdiIwwP+JyJciMr2B/d2BvTW2swJltYjIdBHZICIbcnJyWhXQHSPuwGV31Spz2V3cMeKOVp23MUeqjAYNGsTZZ5/NOeecw/333x+Uayml1PEIdtXQWGPMfhFJB1aIyA5jTM11FRv6WVyvAt0YMw+YB/5pqFsT0JF2gLkb53Kw9CBd47pyx4g7WtU+AFBSUtJgudfrbdV5lVIq2IKaCIwx+wN/ZovIW8AYoGYiyAJ61NjOAPYHMybwJ4PWfvEr1SbK8vxr7VaWQUIXXSxHWSJoVUMiEiciCUeeA+cAW+sctgy4XvxOB4qMMQeCFZNSYaU0F96eCU+NhOfOgOfPgqJ9VkelIlAw2wi6AGtE5CvgC+BdY8wHIjJDRI6srfgesBvYCTwP/CqI8SgVXnK/h2/fO7pdtBfWzgFPhXUxqYgUtKohY8xu4NQGyp+t8dwAtwUrBqXCWl790efkfgceNzh0JTUVOlZ3H1UqcvU+E+p2szz1anAlWROPiliaCJSySlwaXL8Mup0KySfCOX+BfudYHZWKQJoI2tBbb72FiLBjxw4AMjMziYmJYfjw4QwcOJAxY8Ywf/786uNffvllOnfuzLBhwzjllFN4/vnna5UPHz6cfv36ce6557Ju3TpL/k4qiKLioNc4uO5NuHkFnDYDYnVeHhV6mgja0IIFCxg3bhwLFy6sLuvbty+bNm1i+/btLFy4kCeeeIKXXnqpev9VV13F5s2bWb16NX/4wx84dOhQdfmmTZv4/vvvueeee7j00kvZvn17vWuqDiCus7/rqF2XB1GNcB+G8qKgnT4iE0HR8uV8P+kstg88he8nnUXR8uWtPmdJSQlr167lxRdfrJUIaurTpw+PP/44Tz75ZL196enp9O3blz179tTbN3HiRKZPn868efNaHadSqh2pKIWsDfDGNHj9F5C5BiqK2/wyEZcIipYv58C99+HZvx+MwbN/Pwfuva/VyWDp0qWcd9559O/fn9TUVDZubHgS1REjRlRXHdW0e/dudu/ezUknndSi1ymlWsEYKMmG4kNQWWp1NPUVH4B/ngO7PoIfPoaXz4f8H9r8MhGXCLKfmINx156G2rjdZD8xp1XnXbBgAVOnTgVg6tSpLFiwoMHj6k5BvWjRIoYNG8bVV1/Nc889R2pqw3XEOnW1Um2ssgz2rIWXJsOTw+CDe6C0dXOZtbkti8BXZ5qaL+aBr/4iQK0RcZWSngMND1xurLw58vLyWLlyJVu3bkVE8Hq9iAi/+lX98XGbNm1i4MCB1dtXXXUVTz/99DGvUfd1SqlWchfAqxeDt8q/vfEViE2DCfeEzziOxHpzcEJyT2jjNc8j7o7A0a3hWa4bK2+OxYsXc/3117Nnzx4yMzPZu3cvvXv3Jisrq9ZxmZmZ3HXXXcyaNatF5//444+ZN28et9xyy3HHqJSqI+fbo0ngiB3vgDt4jbItNmAypPY5up3QDYb/os0vE3F3BOm/vpMD995Xq3pIXC7Sf33ncZ9zwYIF3HPPPbXKLrvsMh5++GF27drF8OHDcbvdJCQkMGvWLG688cZjnnPRokWsWbOGsrIyevfuzZtvvql3BEq1peSe9cvSB4EzJvSxNCa+C9z0b8jeBl4PdBsSlIkJpb3VPY8aNcps2LChVtn27dtb9CVZtHw52U/MwXPgAI5u3Uj/9Z0k/fznbR1qu9XS91Opdqm8ED57Cj59HIzPP6hv2jsNJ4gOQES+rLtc8BERd0cAkPTzn+sXv1KRLiYZfno7jLzJP79TdHzETgMekYkgXBifD+P1+nsA2GyI3Y60cSOQUqoJriSd24kOlAiMMe1qHWBjDKaigsrMTH8ysNmIysjAFh9vaTJob1WFSrU7JdlQfNA/kjyus/9hsQ6RCFwuF3l5eXTq1Kn9JAOPh8q9e/1JAMDnoyori6h+/SxLBMYY8vLycLlcxz5YKdVyxYfg5SlHpyDPGA1T/xfi0y0Nq0MkgoyMDLKysmjtwvahZLxePIF5hWpyeL2Iw7p/FpfLRUZGhmXXV6rDMgY2/6v2OhRZ6/2D2gZdYl1cdJBE4HQ66d27t9VhtIinoICsvzxM+aZN1WWOrl3pvfgNHGlpFkamlAoKn8ffDbSu7B0wKPTh1KQtkxZxpKTQ/e9/J/a0MSCCa9Ap9HzxBeyNTDGhlGrn7E4YMa1++aCLQx5KXR3ijqC9cp7Qje5PPomprETsdhyaBJTq2LoOhoufgTVP+KexmHQfJFlfFauJwGKOJGu7rnlLS/EVFeH+9juiep2IIzUVu8UxKdVhxaTA0Klw0tkgEhY9hiAEVUMiYheRTSLyTgP7polIjohsDjx+Gex41FHG66Xsi/XsPPtnZN16K7snTyH/tf/FW1JidWhKdVw2m7+XUJgkAQhNG8EdQFNLay0yxgwLPF4IQTwqwFNQwMH77681pW3uP/6BL8ITgTGG4spiqupOSKZUBxXURCAiGcD5gH7BhyExBk9+fu1CjwdTFblfgIXuQpbvWs5vV/+WORvnkF2WbXVIqpU8Pg8llSU6WLIJwb4jmAPcDTS1isJlIrJFRBaLSI8gx6NqkJgYEidPrlUW3a8ftthYiyKyVqW3kje+e4M/rv0jnx34jFe2vcKNH9xIbnmu1aGp45RTlsPTm57mtx//lmW7llHoLrQ6pLDUZGOxiAwAugOfG2NKapSfZ4z54BivvQDINsZ8KSITGjlsObDAGFMhIjOA+cCkBs41HZgO0LNnx5wZ0Ar2+Hi63PM7nCd0o2TValyDB9P59lk4OnWyOjRLFFUUsWBH7ZXlfiz+kaKKItJidGxHe5NXnsctK25hV+EuANbtX8eMU2fwy8G/JDpcFp4JE43eEYjI7cDbwCxgq4hcVGP3w80491jgQhHJBBYCk0TkXzUPMMbkGWMqApvPAyMbOpExZp4xZpQxZlTnzuHTwNIRODp1Iu222+j50j/peu+fcHbtanVIlrGJjYSohHrlUfYoC6JRrVVSVVKdBI5YuGMhhysPWxRR+GqqaugWYKQx5mJgAnCviNwR2HfMCX2MMb83xmQYY3oBU4GVxpjrah4jIjWXBbuQphuVVZDYoqJwdOqELSaMFuSwQKorld+N/h02Ofqx+NmJPyPBWT85qPDntDnrlcVHxdf691V+TVUN2Y9UBxljMgPVO4tF5ESakQgaIyIPARuMMcuA20XkQsAD5APTjve8SrWWiDAsfRjvXPIOnx/4nD5JfeiV1ItkV7LVoanjEOuIZXKvybyf+T4AgjB71GxSXCkWRxZ+Gl2hTERWAr8xxmyuUeYA/glca4yxhybE2hpaoUwppRpS4C7gh6If+K7gO37S7SekxaYR54yzOixLHO8KZdfj/6VezRjjAa4XkefaMD6llAqKFFcKKa4URnQZYXUoYa3RRGCMyWpi39rghKOUUirUtNVEKaUinE46p5RqE2VVZRyuPMyuwl1kJGSQEp1CYnSi1WGpZjjWgLKLgZOAr40x/w5NSEqp9sZnfGzK3sRtH92G1/iXX73t1Nu47pTriI+Ktzg6dSxNDSj7B/BroBPwZxG5N2RRKaXalQJ3AQ9+9mB1EgB4dsuzlFaVWhiVaq6m7gjOBE41xnhFJBb4FPhzaMJSSrUnBkNOee01w73GS6Wv0qKIVEs01VhcaYw/vRtjymjFIDKlVMcW44hhcq/aExj2SuxFrCMyJzBsb5q6IxggIlsCzwXoG9gWwBhjhgY9OqVUuxDnjOO3o35Lelw6q/euZmDqQO4YcQedYiJzAsP2pqmRxSc29UJjzJ6gRHQMOrJYqfBV6a2kuLKYGEcMsU69GwgnxzWyuLEvehEZC1wD3NY24SmlOoooe5TeBbRDzRpHICLD8H/5Xwn8ACwJZlBKKaVCp9FEICL98U8ffTWQByzCX5U0MUSxWcKTX4CpcIPdjj0pCVu0LmChlOrYmuo1tAM4C/i5MWacMeYpwNvE8e1eVXY2Wbf9ip0TJ7F78mQOv/se3ghfyF0p1fE1lQguAw4Cq0TkeRE5iw7chdRXXk7O3Ccp3+SfddtXWsaBP/4Rb1GRxZGFP3eVl/LKDv0bQakOranG4reAt0QkDrgY/yjjLiLyDPCWMeb/QhRjSPhKSyn/8svahcZQ+eOPRHXvbk1QYc5d5WVvQRlPr9xJldfHbRNPondaHLFROoVVmysvgIoSMD6IioM4XUNZtZ1jfmKNMaXAa8BrIpIKXAHcA3SoRGCLiyN2zGgqMzOPFooQfWKTvWgjWvbhCs6fu4ZKrw+AD7Ye5IM7z6R/F13asU2V5sK//wBbFvm3M0bD1P+F+HRr41IdRlNzDaXWfQR2vQFcHprwQscWE0PnmTOJPW2MfzsxkRMeexRbUpLFkYWvpZv3VScBAJ+Bl9f+gNfna+JVqsWytx1NAgBZ62Hza+DT6jjVNpq6I8gFsji6SlnN9gED9AlWUFZxpKfTfe5cjNsNNhv25GRsUVFWhxW2kmPrLw6eEhuFTTpsU5I19m2qX7b3C/BUQJQO2lKt11Rj8VNAAfABcAPQxxjTO/DocEngCEdyMs6uXXGmp2sSOIbzBnWla6Krejs51sm1p5+IaCJoW/3Orl82+DJNAqrNNNVYfIf4P9ETgF8AT4nI/wHPGGN+CFF8KoylJ7pYNmssn+/Ox+P18dOT0ugcr+Mu2lxid7joH/Dh/VBVDmP+C/p26OE8KsQanWuo1kEiyfgHl/0Z+IMx5vlmX0DEDmwA9hljLqizLxp4BRiJf9DaVcaYzKbOp3MNqYjkrYLyfP/z6CRwupo+XlkutzyXQ2WHiHXEkhydTIorxdJ4jmuuoUC30YuAq4DO+KeVGGGM2dvC698BbAcaWrPuZqDAGHOSiEwF/hq4nlKqJrsT4rtYHYVqpgOlB7juvevILssGYEKPCTz4kwdJjUk9xiut0VQbQTZwN7AO+DuwGxgtIpeKyKXNObmIZADnAy80cshFwPzA88XAWaIVzPuImNoAABbbSURBVEqFrUJ3Idll2eSW59Kc2oRIVOGpYN5X86qTAMDqvavZW9zS39Ch01SvoTfw9w4aEHjUZGjexHNz8CeTxjqWdwf2AhhjPCJShH9pzNyaB4nIdGA6QM+ePZtxWaVUWztQeoC7P76bzTmb6ZHQg7+e+VcGpgzEYdcBhDW5vW4yD2fWK99bvJdT008NfUDN0FRj8bTWnFhELgCyjTFfisiExg5r6NINxDIPmAf+NoLWxKWUarmiiiLuW3Mfm3P8U7DsLd7LjBUzWHrRUjrHdrY4uvCSGJXIxSddzIZDR9syHeJgRJcRFkbVtKbaCH5Tp8jg/6W+ppm9hsYCF4rIFMAFJIrIv4wx19U4JgvoAWSJiANIAvJb8hdQSgVfla+KLw59UavscOVhSj2ldEYTQU0iwviM8cweNZsF3y4gOTqZu0ffTaorPNsHoOmqoYaqc3oBfxSRB4wxC5s6sTHm98DvAQJ3BHfVSQIAy/CPUfgM/2jllUYrHpUKO3axMzB1IN/kfVNdFuOI0TWJG5HsSuaagdcwpc8U7GK3vMfQsTRVNfRgQ+WBqSY+BJpMBI0RkYeADcaYZcCLwKsishP/ncDU4zmnUiq4Ulwp/M8Z/8P0FdM5WHqQOGccj5zxCIlRDXUGVAAOm4O0mPYxOWCzxhHUe5HIJmPM8CDEc0w6jkApa/iMj3x3Pm6Pm2h7NEnRSUTZdfR9e3Fc4wiaONkk/FNPKKUiiE1s7eYXrmqZphqLv6Z+D55UYD9wfTCDUkopFTpN3RFcUGfbAHmB9QmUUkp1EE01Fu8JZSBKKaWs0dQUE0oppSKAJgKllIpwmggs4Kus1Am7lFJhQ2eLCiFPQQFl69dz+L33iR01ksTJk3F06mR1WEqpCKeJIER8FRXkv/Iqec88A0DxBx9QvOJDus95AkdKeA8/V0p1bFo1FCLew4fJnz+/VlnZ55/jKy2zKCKllPLTRBBCtqj6w/HFrv8ESilr6bdQiNiTk0m7fVatssTzz0didfZGpZS1tI0gRGxOJ4nnn0/M0KGUrFpNzLBhuAadgiMpyerQlFIRThNBCDmSknAkJREzeLDVoSilVDWtGlJKWc7r81kdQkTTOwKllGXySipY9W02a77P47zBXRjTuxOpcbrGQahpIlBKWaKorJJ7397Ke18fBGDp5n3cPLYXvz3nZGKj9asplLRqSCllidJKb3USOOJfn/9ISYXHoogilyYCpZQlRPyPmmx1C1RIaCJQSlkiLsrBlaMyapX91/g+JMQ4LYoocgWtIk5EXMAnQHTgOouNMffXOWYa8BiwL1D0tDHmhWDFpJQKH4kxTn533gAmD+7GZ7vyOGtgOv3SE4hx2q0OLeIEs0WmAphkjCkRESewRkTeN8b8p85xi4wxM4MYh1IqTKXGRTPh5HQmnJxudSgRLWiJwPgn3C8JbDoDD52EXymlwkxQ2whExC4im4FsYIUx5vMGDrtMRLaIyGIR6dHIeaaLyAYR2ZCTkxPMkJVSKuIENREYY7zGmGFABjBGROrOrbAc6GWMGQp8CMyve47AeeYZY0YZY0Z17tw5mCErpVTECUmvIWNMIbAaOK9OeZ4xpiKw+TwwMhTxKKWUOipoiUBEOotIcuB5DHA2sKPOMd1qbF4IbA9WPEoppRoWzF5D3YD5ImLHn3BeN8a8IyIPARuMMcuA20XkQsAD5APTghiPUko1Kb88n3JvOU6bk3hnPLHOyFgvRPyde9qPUaNGmQ0bNlgaw2F3FTYg3qUDX5TqKA6VHmLmypnsyN9BlC2KO0feycUnXUxCVILVobUJEfnSGDOqoX06srgFStxVfPFDPre9tpGZCzaxdV8RZZU6L4pS7V15VTlPbXqKHfn+2utKXyWPrn+UQnehxZGFhk7x1wKZeWVc+dxn1duffp/LR78ZT680fRuVas/KPGV8nft1vfI9xXvokdhgr/YORe8Imsnj8zF/XWatMq/P8PbmfQ2/QCnVbsRHxTP2hLG1ymxio29SX4siCi1NBM1kQ+iWHFOvvEuSy4JolFJtKdoezU1DbmJij4kIQidXJx4f/zhJ0ZGxpnhE1Wn4KivxFhUhgC0lBZuj+X99m024ZkxPFnzxIznF/qEPPVNjmTRA50hRqiNIi0njv8f+N26vGxs2kl3JOGyR8RUZGX9LwFNYSOHrb5D34ouI3U7n228nYfJ5OJKan/G7JEbz7u3j+DqrCKfdxsBuiXROiA5i1ErV5i0pwZSXI9Eu7Imh781S4q4COm6PucToRBJJtDqMkIuYRFC+ZQs5jz9evX3wgQdwnTIQx9ChzT6HiJCe4OKsgVodpEKv6tAhDj3yV8o+/xzX0CF0vfdeorp3D8m1Sys8fHeomLkffY9NhF+f3Y++neN1SckOIiL+FY3Xy+Hl79QrL17xITEtSARKWcVTWMj+u++m7PMvAChd/TF792Zx4vyXcaSlBf36WQXlXPrMOo4MO/r4uxz+79dn0rdzfNCvrYIvIhqLxW4ndvjweuUxp2oSUO2DqaioTgJHVO7ahc/tDsn1X/t8DzXHnnp9hjc27A3JtVXwRUQiAEg49xxiRh8dVBd/1iRiGkgOSoUjsdlwpNfumCCxsUhUVEiun95AW1iXRK0i7SgiomoIwNGpExlz5+IrKwOxYYuLxZGcbHVYSjWLPTWVbo/8D1kzbsVUVoLdTrcHH8CeGJrujVeM6sErn+0hO9Bj7oQkF+cP6XaMV6n2QucaUqqd8LndeA8fxpOdgyMtDVtiAvbY0E2Kll3s5qu9RdgEhmYk0TlB7wjak6bmGoqYOwJ1fHxuN96CAsq/2oKzRwbObt1wpKZaHVZEsrlc2FwunOnWjF1JT3Dxs1P0y78j0kSgmuTesYM9v7geqvz9xxPPn0KXe+/VajWlOpCIaSxur3JLKli2eR+PvL+drfuKKCqvCtm1Pfn5HPrvv1QnAYDD776Hr+hwyGJQSgWf3hGEsbySCm7915eszywA4NmPd/Pk1OFcMLQbNpsEPwCfD09+fv3i0tLgX1spFTJ6RxDGisqrqpPAEY+v+Ja80sqQXN+WlETKlVfWKnOkp+PoHPwBTEqp0NE7gjDma6BDl8dngND09LI5nSRfdSX2pESK3l5GVO9epM2chT0EI1mVUqGjiSCMJcc6GXRCIt/sP1onf9vEk0iNDc0gIgBHSgrJV11FwuTJ2KKjscXUn4pbKdW+aSIIY2nx0cy/cQzvbNnP1/uKuGJUDwZ0TcBuD22Nnths2ktIqQ4saIlARFzAJ0B04DqLjTH31zkmGngFGAnkAVcZYzKDFVN7lJYQzbSxvfH5TGgaiJVSESeYPy0rgEnGmFOBYcB5InJ6nWNuBgqMMScBTwB/DWI87ZomAaVUsAQtERi/ksCmM/Co28p5ETA/8HwxcJaI6DeeUqrN5JVWsHLHIf76wQ6+3JNPYVloet21J0FtIxARO/AlcBLw/4wxn9c5pDuwF8AY4xGRIqATkBvMuJRSkaGorIo/L9/G0s37AXhm9S5+P3kA08b2Itphtzi68BHUVkdjjNcYMwzIAMaIyOA6hzT0679e30gRmS4iG0RkQ05OTjBCVUp1QKWVnuokcMRTK3dSVBa6EfrtQUi6nxhjCoHVwHl1dmUBPQBExAEkAfWGshpj5hljRhljRnXu3DnI0SqlOoqGZlf2+HwWRBLegpYIRKSziCQHnscAZwM76hy2DLgh8PxyYKVpb/NitxPekhJ8lVo3qiJLbLSDSQNqz9Z649jeJMY4LYooPAWzjaAbMD/QTmADXjfGvCMiDwEbjDHLgBeBV0VkJ/47ganBCqagrJLD5VWUV3npFBdN5wZWXOqIPIWFlK3fQOHrr+Ps2ZO0X96Ms5suKKIiQ0psFI9dPpQV2w6xblce5w/txuheKbic2j5QU0QsTJNXWsH9b3/DO1sOANA9OYY3ZvyEE5I79ihZ4/NRtGQJB/50b3WZI70zvZcsCcmC50qFE4/XhyPEgzHDSVML00TEu7I3v7w6CQDsKyzn6ZXf467yWhhV8HkLCsif/0qtMk92DpV7syyKSCnrRHISOJaIeGcyc+tPm/x9dkmHTwTY7dji4+sV22I79p2QUqplIiIRjOqVgr3OyNxLhncn0dWxG4wcycmk/+5ucBxtCooZPRqH9rxSIVRQVkmxW7trhrOImHQuNS6K1355Gg8t30Z+aSXXntaT8waHaHEXi7lOPpm+//6A0rXriOqRQXT//rrmsAqJwrJK1u3K5YVPM0mKdfC7cwfQOy2OaG2oDTsR0Vh8RF5JBV5jSI6JIsoRETdDSlnmo+2HuHn+0c9qtMPGqrsmdPhOGuEq4huLj+gUH016gkuTgGpzFR4vhw67OVBUrnPZAMXuKuavy6xVVuHxsW6nzh4TjiKiakipYCp2V/HB1oM8tHwbxRUexvdP429XnErnBJfVoVnGabfRrYFf/l2TIvc9CWf601ipViooq2L24i0UV3gA+Pi7XJ77eDcVHb1XWhNcTjszJ55EUo0RvMN6JDGgW6KFUanG6B2BUq307cHD9crW7srl1oq+Ed0wekJyDCt+fSbbDhwm0eWkZ6dY0uIjY0R/e6OJQKlW6t8loV7Zab1SiYuO7I+X3SakJ7pIT9TqoHCnVUNKtVJKbBR/vmgQMYFf/2N6p/KriSfpfDaq3YjsnyxKtYHEGCeXj8rgnEFd8foMLqeN1DitAlHthyYCpdpAjNNBjFM/Tqp90qohpZSKcJoIlFIqwmkiUEqpCKeJQCmlIpwmAqWUinDazUG1TmkOeNxgc0JsJ7B37DUe2pOcYjclFV5cThvx0Q4SOvj6G+r4aSKwkPF68eTmcvidd/C53SRdfDGO9HRsznbygS38ERZeCwe3+JPAJc9Br3Hg1GmGrbY3v4yp8/7DvsJybAKzJvXjpnG9SIqJsjo0FYa0ashCntxcfrjoYrIf+xu5Tz3N7vMvwHPgwLFfGA7KC2H5nf4kAFCWB4uu85crS5W4q/jLu9vZV1gOgM/A3I++p6BUVwlTDQtaIhCRHiKySkS2i8g3InJHA8dMEJEiEdkceNwXrHjCUfGKD/EWHv3iNG43+fPnYzweC6NqJo8b9n5ev8xdYE08qlp5lY8dDUyEd6Co3IJoVHsQzDsCD/BbY8xA4HTgNhE5pYHjPjXGDAs8HgpiPGHHeOt/4RtPO5m62OGCHmPql7lSrIlHVUuMcXDuoK61yqLsNnqnxVkUkQp3QUsExpgDxpiNgefFwHage7Cu1x4lnnsutvj4owVOJ6nTbkAc7aDpJiYZfv4kdB3q347tBFf9y1+uLBXtsHPLmX24clQGMU47fTvH8a9fjiE5VtsHVMNCsmaxiPQCPgEGG2MO1yifALwJZAH7gbuMMd808PrpwHSAnj17jtyzZ0/QYw4F4/Hgyc6mYMFCfO5yUq+7DkeXLthc7WjaXu01FLZKKzyUVnqwieg6AKrJNYuDnghEJB74GPiLMWZJnX2JgM8YUyIiU4C5xph+TZ2vNYvXh6sj/wYiYnEkSqmOyrLF60XEif8X/2t1kwCAMeawMaYk8Pw9wCkiacGMKRyJiCYBpZRlgtlrSIAXge3GmMcbOaZr4DhEZEwgnrxgxaSUUqq+YLZKjgV+AXwtIpsDZX8AegIYY54FLgduFREPUA5MNaFotFBKKVUtaInAGLMGaLK+wxjzNPB0sGJQSil1bDqyWCmlIpwmAqWUinCaCJRSKsKFZEBZWxKRHKCxEWVpQG4Iw2kujav5wjEm0LhaSuNqmVDEdaIxpnNDO9pdImiKiGxobMCElTSu5gvHmEDjaimNq2WsjkurhpRSKsJpIlBKqQjX0RLBPKsDaITG1XzhGBNoXC2lcbWMpXF1qDYCpZRSLdfR7giUUkq1ULtOBCKSKiIrROT7wJ8NLo8lIt4ay2EuC1Is54nItyKyU0TuaWB/tIgsCuz/PLBGQ9A1I65pIpJT4/35ZYji+qeIZIvI1kb2i4g8GYh7i4iMCJO4Qr68ajOXfQ35+xWuy9GKiEtEvhCRrwJxPdjAMSH/PDYzLks+jxhj2u0DeBS4J/D8HuCvjRxXEuQ47MAuoA8QBXwFnFLnmF8BzwaeTwUWheD9aU5c04CnLfi3OxMYAWxtZP8U4H3881WdDnweJnFNAN4J8XvVDRgReJ4AfNfAv2PI369mxmXF+yVAfOC5E/gcOL3OMVZ8HpsTlyWfx3Z9RwBcBMwPPJ8PXGxRHGOAncaY3caYSmBhILaaasa6GDjryBTcFsdlCWPMJ0B+E4dcBLxi/P4DJItItzCIK+RM85Z9Dfn71cy4Qi7wHpQENp2BR93G0JB/HpsZlyXaeyLoYow5AP7/lEB6I8e5RGSDiPxHRIKRLLoDe2tsZ1H/A1F9jDHGAxQBnYIQS0vjArgsUJ2wWER6BDmm5mpu7Fb4SeD2/n0RGRTKCweqMIbj/zVZk6XvVxNxgQXvl4jYA9PfZwMrjDGNvl8h/Dw2Jy6w4PMY9olARD4Uka0NPFryy7an8Y/auwaYIyJ92zrMBsrqZvrmHNPWmnPN5UAvY8xQ4EOO/kqymhXvV3NsxD9U/1TgKWBpqC4s/mVf3wTuNDXW/j6yu4GXhOT9OkZclrxfxhivMWYYkAGMEZHBdQ6x5P1qRlyWfB7DPhEYY842xgxu4PE2cOjI7W/gz+xGzrE/8OduYDX+Xy5tKQuombkzgP2NHSMiDiCJ4FdBHDMuY0yeMaYisPk8MDLIMTVXc97TkDMWLa8qx1j2FYver2PFZdX7VeP6hfg/8+fV2WXF5/GYcVn1eQz7RHAMy4AbAs9vAN6ue4CIpIhIdOB5Gv6V07a1cRzrgX4i0ltEovA3PtXtnVQz1suBlSbQOhREx4yrTj3yhfjrecPBMuD6QG+Y04GiI9WAVhILllcNXK/JZV+x4P1qTlwWvV+dRSQ58DwGOBvYUeewkH8emxOXZZ/HULdOt+UDf53eR8D3gT9TA+WjgBcCz38KfI2/x8zXwM1BimUK/l4Tu4A/BsoeAi4MPHcBbwA7gS+APiF6j44V1/8A3wTen1XAgBDFtQA4AFTh/3V2MzADmBHYL8D/C8T9NTAqTOKaWeP9+g/w0xDENA5/tcUWYHPgMcXq96uZcVnxfg0FNgXi2grc18D/+5B/HpsZlyWfRx1ZrJRSEa69Vw0ppZRqJU0ESikV4TQRKKVUhNNEoJRSEU4TgVJKRThNBCqiiUgvqTPTqIg8ICJ3BZ6/LCJlIpJQY/9cETE1B0aJyCWBsgF1zl0emEVym4g8KyL1PnNyjBlPlQo2TQRKHdtOApP1Bb7IJwL76hxzNbAG/6C9mnYZ/5QCQ4FTaHhixJepP/JVqZDRRKDUsS0Argo8nwCsBTxHdgbm2hmLf/BZ3UQAVE9stg44qYF9YTfjqYosmgiUOrbvgc7iX/joavzTedd0MfCBMeY7IF8aWBRGRGKBs/CP+lUqrGgiUJGusaH1dcuX4P+1fxrwaZ19NZPDwsD2EX0D0w6vBd41xrzfunCVansOqwNQymJ5QN0lTlOBH+qULcQ/pfJ8Y4zvyBomItIJmAQMFhGDf1U4IyJ3B153pI1AqbCldwQqohn/FMkHROQs8K+Djb/hdk2d434E/gj8o84pLse/MtiJxphexpge+JPIuKAHr1Qb0USgFFwP/ClQhbMSeNAYs6vuQcaY5xoovxp4q07Zm/gXQWoWEVkAfAacLCJZInJzi6JXqpV09lGllIpwekeglFIRThOBUkpFOE0ESikV4TQRKKVUhNNEoJRSEU4TgVJKRThNBEopFeE0ESilVIT7/y6r2fJYtsjNAAAAAElFTkSuQmCC\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"embedding = umap.UMAP().fit_transform(proteome)\n",
"sns.scatterplot(\"UMAP 1\", \"UMAP 2\", data=pd.DataFrame(embedding, columns=[\"UMAP 1\", \"UMAP 2\"]),\n",
" hue=samples.Condition)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 3.3. Partial least squares\n",
"\n",
"PLS can be considered both a dimensionality reduction method and a supervised learning algorithm. Whereas PCA & UMAP are agnostic of the outcome variable, PLS is fitting components to maximize variance not just in the input space X (proteome) but also in the outcome space Y, which is a 40x4 binary (dummy) matrix representing Controls, AD, PD & ADPD.\n",
"\n",
"So this plot shows fairly good separability of the four classes when trained on the outcome data but we see that Alzheimer's (AD/ADPD) separates better from controls than does Parkinson's only (PD)."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"pls = PLSRegression(n_components=2).fit(proteome, pd.get_dummies(samples.Condition))\n",
"sns.scatterplot(\"PLS 1\", \"PLS 2\", data=pd.DataFrame(pls.x_scores_, columns=[\"PLS 1\", \"PLS 2\"]),\n",
" hue=samples.Condition)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 4. Univariate analysis\n",
"\n",
"This can be considered a \"PWAS\", a Proteome Wide Association Study\". There are two ways of modelling this: Linear Regression and Logistic Regression\n",
"\n",
"### 4.1 Multiple univariate linear regression\n",
"\n",
"Every protein-quantity is tested as dependent variable against the two binary phenotypes Alzheimer's (including AD and ADPD patients) and Parkinson's (including PD and ADPD patients) in two separate univariate models. Results are saved to AD_univariate_linreg.csv and PD_univariate_linreg.csv"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"AD = np.array([1,1,0,0,0,0,1,1]*5) # AD, ADPD: True; Control, PD: False\n",
"PD = np.array([0,0,0,0,1,1,1,1]*5) # PD, ADPD: True; Control, AD: False\n",
"\n",
"ADuniv = proteome_dict.loc[proteome.columns,:\"Gene\"]\n",
"PDuniv = proteome_dict.loc[proteome.columns,:\"Gene\"]\n",
"for protein in proteome.columns:\n",
" lr = smf.ols(\"Q('\" + protein + \"') ~ AD\", data=proteome).fit()\n",
" ADuniv.loc[protein, \"coef\"] = lr.params[1]\n",
" ADuniv.loc[protein, \"pval\"] = lr.pvalues[1]\n",
" lr = smf.ols(\"Q('\" + protein + \"') ~ PD\", data=proteome).fit()\n",
" PDuniv.loc[protein, \"coef\"] = lr.params[1]\n",
" PDuniv.loc[protein, \"pval\"] = lr.pvalues[1]\n",
"\n",
"# Sort outcome by p-value\n",
"ADuniv = ADuniv.sort_values(\"pval\")\n",
"PDuniv = PDuniv.sort_values(\"pval\")\n",
"\n",
"ADuniv.to_csv(\"AD_univariate_linreg.csv\")\n",
"PDuniv.to_csv(\"PD_univariate_linreg.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.scatterplot(ADuniv.coef, -np.log10(ADuniv.pval), hue=ADuniv[\"Significant\"], edgecolor=\"none\", alpha=0.3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4.1.2 Biological interpretation\n",
"\n",
"Among the Bonferroni significant top hits are two of Alzheimer's Disease hallmark proteins:\n",
"\n",
"* [Amyloid beta](https://en.wikipedia.org/wiki/Amyloid_beta), encoded by the gene APP, UniProt ID [P05067](https://www.uniprot.org/uniprot/P05067)\n",
"* [Tau protein](https://en.wikipedia.org/wiki/Amyloid_beta), encoded by the gene MAPT, UniProt ID [P10636](https://www.uniprot.org/uniprot/P10636)\n",
"\n",
"Another hallmark protein is not significant, probably because only its NAC fragment is associated with Alzheimer's:\n",
"\n",
"* [Alpha synucelin](https://en.wikipedia.org/wiki/Alpha-synuclein), encoded by gene SNCA, UniProt ID [P37840](https://www.uniprot.org/uniprot/P37840)\n",
"\n",
"The most significant protein however, encoded by the [SMOC1 gene, has only recently been associated with Alzheimer's in a proteomic analysis of cerebrospinal fluid](https://alzres.biomedcentral.com/articles/10.1186/s13195-018-0397-4):\n",
"\n",
"* SPARC-related modular calcium-binding protein 1, encoded by SMOC1 gene, UniProt ID [Q9H4F8-2](https://www.uniprot.org/uniprot/Q9H4F8-2)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
Gene
\n",
"
coef
\n",
"
pval
\n",
"
Significant
\n",
"
\n",
"
\n",
"
Accession
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
Q9H4F8-2
\n",
"
SMOC1
\n",
"
1.802782
\n",
"
2.298555e-16
\n",
"
Bonferroni
\n",
"
\n",
"
\n",
"
P05067
\n",
"
APP
\n",
"
1.625795
\n",
"
6.988686e-11
\n",
"
Bonferroni
\n",
"
\n",
"
\n",
"
P10636
\n",
"
MAPT
\n",
"
1.379071
\n",
"
5.446650e-07
\n",
"
Bonferroni
\n",
"
\n",
"
\n",
"
P37840
\n",
"
SNCA
\n",
"
-0.408184
\n",
"
2.006676e-01
\n",
"
False
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Gene coef pval Significant\n",
"Accession \n",
"Q9H4F8-2 SMOC1 1.802782 2.298555e-16 Bonferroni\n",
"P05067 APP 1.625795 6.988686e-11 Bonferroni\n",
"P10636 MAPT 1.379071 5.446650e-07 Bonferroni\n",
"P37840 SNCA -0.408184 2.006676e-01 False"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ADuniv.loc[(\"Q9H4F8-2\", \"P05067\", \"P10636\", \"P37840\"),:]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 4.2 Multiple univariate logistic regression\n",
"\n",
"For performing logistic regression, we need a binary dependent variable. Thus, this time we use AD / PD status as dependent (outcome) variable and protein-quantity as independent (input) variable in two separate univariate models per protein."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"ADuniv_log = proteome_dict.loc[proteome.columns,:\"Gene\"]\n",
"PDuniv_log = proteome_dict.loc[proteome.columns,:\"Gene\"]\n",
"\n",
"for protein in proteome.columns:\n",
"#protein = proteome.columns[1]\n",
" AD_logit = smf.logit(\"AD ~ Q('\" + protein + \"')\", data=proteome).fit(disp=False, method='lbfgs')\n",
" PD_logit = smf.logit(\"PD ~ Q('\" + protein + \"')\", data=proteome).fit(disp=False, method='lbfgs')\n",
" ADuniv_log.loc[protein, \"coef\"] = AD_logit.params[1]\n",
" PDuniv_log.loc[protein, \"coef\"] = PD_logit.params[1]\n",
" ADuniv_log.loc[protein, \"pval\"] = AD_logit.pvalues[1]\n",
" PDuniv_log.loc[protein, \"pval\"] = PD_logit.pvalues[1]\n",
"\n",
"# Sort outcome by p-value\n",
"ADuniv_log = ADuniv_log.sort_values(\"pval\")\n",
"PDuniv_log = PDuniv_log.sort_values(\"pval\")\n",
"\n",
"ADuniv_log.to_csv(\"AD_univariate_logreg.csv\")\n",
"PDuniv_log.to_csv(\"PD_univariate_logreg.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.scatterplot(ADuniv_log.coef, -np.log10(ADuniv_log.pval),\n",
" hue=ADuniv_log[\"Significant\"], edgecolor=\"none\", alpha=.3).set(xlim=(-10,10))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4.2.2 Biological interpretation\n",
"\n",
"Similar to the [biological interpretation of linear regression results](#4.1.2-Biological-interpretation), Alzheimer's hallmark proteins Amyloid beta and Tau protein are highly signficant. However, SMOC1 is not significant this time, despite its huge outlier beta-coefficient of 75 (in fact, it's the only outlier not shown in this volcano plot). Closer examination reveals that this is because of perfect separability, as demonstrated in the plot below. In perfect separability cases, logistic regression fails to give meaningful p-values."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"