{ "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Case numberPrimary neuropathologic diagnosisOverall CERADBraakPMI (hr)Age of OnsetAge at DeathDuration (yr)2ApoE StatusRaceSex
0OS98-11AD 1366.056.0659.0E4/4wf
1OS00-11AD 2354.049.0556.0E3/3wm
2OS00-32AD 3363.555.0627.0E3/4wm
3OS03-163AD 4364.551.0554.0E3/4wf
4E04-186AD 5367.059.07213.0E3/4wf
\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[\"Condition\"] = pd.Series([\"AD\",\"AD\",\"Control\",\"Control\",\"PD\",\"PD\",\"ADPD\",\"ADPD\"]*5)\n", "pd.crosstab(samples.Condition, samples.Sex, margins=True).plot.bar()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.2 Age at death by condition" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 4, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AccessionQ5VT66-2D6RGC4Q969Z3Q9NX47Q9H992A6NNE9Q15019-2C9IY94Q9UH03-2Q9UH03...Q8TBC5-3Q96LW9A7E2V4-2S4R3B3O43264Q9C0D3Q15942O43149O43149-3Q8IYH5
AD11.1245800.6666670.9481621.067472NaNNaN1.0760741.1480940.9116170.0...1.4544450.8772731.3101051.5249270.9426561.1084740.8449161.0028731.2505970.0
AD20.8811340.6515150.7135160.932528NaNNaN1.3441811.3361440.8374350.0...0.9676410.7590911.0174220.8856300.9305840.9667620.9513521.0055341.1837710.0
CTL10.7958060.6212120.6751680.946626NaNNaN1.0274151.0549850.7361380.0...1.0120960.7909091.4866433.3000980.9808850.8317060.6227531.0295731.0310260.0
CTL20.9606371.1818181.0904380.958711NaNNaN0.8747090.8925951.0339730.0...1.1709081.2681821.0940770.8387101.0183600.9905851.2489801.0858471.1837710.0
PD11.1251911.4848481.1862001.105740NaNNaN0.8547640.8013200.9659950.0...0.5568655.9272731.2799071.0909091.0724351.0138821.3369090.9983951.0119330.0
\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": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AccessionQ5VT66-2Q969Z3Q15019-2C9IY94Q9UH03-2Q99719G3XAH0Q14141Q16181-2Q16181...Q14966Q9Y5V0Q8NHG8O75312Q8TBC5-3A7E2V4-2O43264Q9C0D3Q15942O43149
AD11.006041-0.3306600.5854190.814268-0.931852-0.891949-1.172335-0.3016880.123567-1.414264...0.498701-1.136658-0.355748-1.6541662.0352141.657337-0.6701851.475818-0.8766390.128153
AD2-0.975074-1.8856442.6009281.950324-1.731064-0.763846-1.704209-1.8850330.411533-0.762315...0.9343540.907615-0.608691-1.273378-0.1476620.146033-0.872731-0.271251-0.3081220.157057
CTL1-1.669458-2.1397780.2196250.251776-2.822402-1.984050-2.551838-2.368348-2.718866-1.922959...-1.468940-0.8658750.0166411.1340820.0516782.568918-0.028791-1.936258-2.0633020.418108
CTL2-0.3280970.612196-0.928350-0.7292630.3863780.7420560.8621011.2053740.8120450.573740...-0.371849-1.600656-0.608691-1.4740000.7638070.5418510.5999440.0224471.2816271.029217
PD11.0110081.246803-1.078290-1.280682-0.3459950.0563820.0348870.910110-0.9062970.063583...2.633783-0.188916-0.109831-1.117601-1.9896171.5014091.5071790.3096661.7512890.079521
\n", "

5 rows × 6230 columns

\n", "
" ], "text/plain": [ "Accession Q5VT66-2 Q969Z3 Q15019-2 C9IY94 Q9UH03-2 Q99719 \\\n", "AD1 1.006041 -0.330660 0.585419 0.814268 -0.931852 -0.891949 \n", "AD2 -0.975074 -1.885644 2.600928 1.950324 -1.731064 -0.763846 \n", "CTL1 -1.669458 -2.139778 0.219625 0.251776 -2.822402 -1.984050 \n", "CTL2 -0.328097 0.612196 -0.928350 -0.729263 0.386378 0.742056 \n", "PD1 1.011008 1.246803 -1.078290 -1.280682 -0.345995 0.056382 \n", "\n", "Accession G3XAH0 Q14141 Q16181-2 Q16181 ... Q14966 Q9Y5V0 \\\n", "AD1 -1.172335 -0.301688 0.123567 -1.414264 ... 0.498701 -1.136658 \n", "AD2 -1.704209 -1.885033 0.411533 -0.762315 ... 0.934354 0.907615 \n", "CTL1 -2.551838 -2.368348 -2.718866 -1.922959 ... -1.468940 -0.865875 \n", "CTL2 0.862101 1.205374 0.812045 0.573740 ... -0.371849 -1.600656 \n", "PD1 0.034887 0.910110 -0.906297 0.063583 ... 2.633783 -0.188916 \n", "\n", "Accession Q8NHG8 O75312 Q8TBC5-3 A7E2V4-2 O43264 Q9C0D3 \\\n", "AD1 -0.355748 -1.654166 2.035214 1.657337 -0.670185 1.475818 \n", "AD2 -0.608691 -1.273378 -0.147662 0.146033 -0.872731 -0.271251 \n", "CTL1 0.016641 1.134082 0.051678 2.568918 -0.028791 -1.936258 \n", "CTL2 -0.608691 -1.474000 0.763807 0.541851 0.599944 0.022447 \n", "PD1 -0.109831 -1.117601 -1.989617 1.501409 1.507179 0.309666 \n", "\n", "Accession Q15942 O43149 \n", "AD1 -0.876639 0.128153 \n", "AD2 -0.308122 0.157057 \n", "CTL1 -2.063302 0.418108 \n", "CTL2 1.281627 1.029217 \n", "PD1 1.751289 0.079521 \n", "\n", "[5 rows x 6230 columns]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "proteome = proteome.loc[:, (proteome>0).all()]\n", "proteome = (proteome - proteome.mean()) / proteome.std()\n", "proteome.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Distributions look more or less normal, don't seem to need log-transformation." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[,\n", " ,\n", " ,\n", " ],\n", " [,\n", " ,\n", " ,\n", " ],\n", " [,\n", " ,\n", " ,\n", " ],\n", " [,\n", " ,\n", " ,\n", " ]],\n", " dtype=object)" ] }, "execution_count": 9, "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.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": "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\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": "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\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": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Genecoefpval
Accession
Q9H4F8-2SMOC11.8027822.298555e-16
E9PLM6MDK1.6634409.533849e-12
P05067APP1.6257956.988686e-11
A0A087WWT2NRN1-1.5833745.054728e-10
Q99784OLFM1-1.5462952.363332e-09
Q8NAA5LRRC75A-1.5401593.006388e-09
Q96NI6LRFN5-1.5295364.519406e-09
Q14571ITPR21.5098819.337636e-09
Q96CG8CTHRC11.5067271.045667e-08
Q13490BIRC2-1.5046261.126973e-08
O75116ROCK2-1.4986401.392172e-08
A6NHX0GATSL2-1.4956991.542738e-08
P41240CSK1.4954761.554758e-08
P01111NRAS-1.4922181.740487e-08
P31431SDC41.4909261.819681e-08
Q15223PVRL1-1.4803792.603719e-08
H3BS89TMEM178B-1.4621024.745540e-08
F2Z2J1RPS6KA21.4597915.110624e-08
Q93009USP7-1.4578575.436078e-08
Q15435PPP1R7-1.4571135.566268e-08
\n", "
" ], "text/plain": [ " Gene coef pval\n", "Accession \n", "Q9H4F8-2 SMOC1 1.802782 2.298555e-16\n", "E9PLM6 MDK 1.663440 9.533849e-12\n", "P05067 APP 1.625795 6.988686e-11\n", "A0A087WWT2 NRN1 -1.583374 5.054728e-10\n", "Q99784 OLFM1 -1.546295 2.363332e-09\n", "Q8NAA5 LRRC75A -1.540159 3.006388e-09\n", "Q96NI6 LRFN5 -1.529536 4.519406e-09\n", "Q14571 ITPR2 1.509881 9.337636e-09\n", "Q96CG8 CTHRC1 1.506727 1.045667e-08\n", "Q13490 BIRC2 -1.504626 1.126973e-08\n", "O75116 ROCK2 -1.498640 1.392172e-08\n", "A6NHX0 GATSL2 -1.495699 1.542738e-08\n", "P41240 CSK 1.495476 1.554758e-08\n", "P01111 NRAS -1.492218 1.740487e-08\n", "P31431 SDC4 1.490926 1.819681e-08\n", "Q15223 PVRL1 -1.480379 2.603719e-08\n", "H3BS89 TMEM178B -1.462102 4.745540e-08\n", "F2Z2J1 RPS6KA2 1.459791 5.110624e-08\n", "Q93009 USP7 -1.457857 5.436078e-08\n", "Q15435 PPP1R7 -1.457113 5.566268e-08" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ADuniv.head(20)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 4.1.1 Significance tests and volcano plot\n", "\n", "132 proteins are significant after Bonferroni correction, and an additional 1491 after FDR correction. The volcano plot looks U-shaped because the input matrix is normalized to mean 0 and std 1. See [2_compare_univariate_results.ipynb](2_compare_univariate_results.ipynb) and [2_compare_univariate_results.html](2_compare_univariate_results.html) for interactive volcano plots." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "False 4607\n", "FDR 1491\n", "Bonferroni 132\n", "Name: Significant, dtype: int64" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ADuniv[\"Significant\"] = \"False\"\n", "ADuniv.loc[smm.multipletests(ADuniv.pval, method=\"fdr_bh\")[0], \"Significant\"] = \"FDR\"\n", "ADuniv.loc[smm.multipletests(ADuniv.pval, method=\"bonferroni\")[0], \"Significant\"] = \"Bonferroni\"\n", "ADuniv.loc[:,\"Significant\"].value_counts()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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R1JKRTgd6gmyxx/XJQeUUqFFe/xKKRVhtPArpVSE0cKvlFIRRgu/UkpFGC387eB0OsnIyGD06NEnTYrWFqtXr2bEiBFkZGRQXh7Yubeb89577/HII49Ydj6llP30rp52iI+PZ/PmzQAsW7aM+++/n08//bRNx3rllVe45557uP766/1qXzvZkuPf791utxun09mq806fPp3p06e36jlKqfAWMT3+dzblceYjHzPwvqWc+cjHvLMpL6DHLyoqomvXroC3KN97772MHDmS9PR0Fi9eDDQ9PfLChQt5/fXXefDBB7nmmmsAeOyxxxg/fjyjRo3igQceALxTNp9++unceuutjB07lu+//55OnToxf/58Jk6cyNq1a1mxYgVjxowhPT2dG264gcrKSgAGDBjAAw88wNixY0lPT2fnzp0AvPjii7VTRSulIkPQevwisgi4GDhijBlZb989wGNAT2NM0JdefGdTHve/tY3yau/cNXknyrn/rW0AzBjTr83HLS8vJyMjg4qKCg4ePMjHH38MwFtvvcXmzZvZsmULR48eZfz48Zx99tkAbNq0ie3bt5OSksKZZ57JZ599xo033siaNWu4+OKLmTVrFsuXL2fPnj2sW7cOYwzTp09n1apVpKWlsWvXLv7yl7/w7LPPAlBaWsrIkSN58MEHqaioYPDgwaxYsYIhQ4Ywe/ZsnnvuOX7xi18A3vUCNm7cyLPPPsvjjz/ergVjlFLhK5g9/heBC+tvFJFTgPOB/UE890keW7artujXKK9289iyXe06bs1Qz86dO/nggw+YPXs2xhjWrFnDVVddhdPppHfv3pxzzjm1E6r5Mz3y8uXLWb58OWPGjGHs2LHs3LmzdjK4/v37M2nSpNq2TqeTyy67DPBOGjdw4ECGDBkCwJw5c1i1alVt20svvRSAcePG6bTMSkWwYC69uEpEBjSy6wngv4B3g3Xu+uovXtzS9raYPHkyR48eJT8/v9kplv2ZHtkYw/3338/NN9980vacnJwGE6/FxcXVjuv7Ow20TsusVGSzdIxfRKYDecaYLX60nSsi60VkfX5+frvO29SyZYFczmznzp243W66d+/O2WefzeLFi3G73eTn57Nq1SomTJjg97EuuOACFi1aRElJCQB5eXkcOXKkxecNGzaMnJwcvv32WwBeeuklzjnnnLb9QEqpDsuyu3pEJAH4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\n", "text/plain": [ "
" ] }, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
GenecoefpvalSignificant
Accession
Q9H4F8-2SMOC11.8027822.298555e-16Bonferroni
P05067APP1.6257956.988686e-11Bonferroni
P10636MAPT1.3790715.446650e-07Bonferroni
P37840SNCA-0.4081842.006676e-01False
\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": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Genecoefpval
Accession
P05067APP3.6751930.000359
Q9H2M9RAB3GAP2-2.2822640.000484
Q8IV01SYT12-2.1749530.000493
O75116ROCK2-3.1477780.000508
Q9ULR3PPM1H-2.2471180.000516
P01111NRAS-2.7544460.000543
Q96HS1PGAM5-2.0034760.000549
Q15819UBE2V2-2.6768740.000554
P40121CAPG2.1706530.000554
Q9UL15-2BAG5-2.1999550.000606
O75078ADAM11-2.4236170.000640
Q14956GPNMB3.6813690.000640
Q15223PVRL1-3.7889550.000653
P45985-2MAP2K4-2.0687310.000654
Q8TDC3-2BRSK1-2.0696540.000691
P21796VDAC1-2.5454710.000696
Q8TDX7NEK72.4174590.000711
Q9UPR0PLCL2-2.5612400.000716
J3QRU1YES12.0098700.000737
P10586PTPRF-2.3051750.000760
\n", "
" ], "text/plain": [ " Gene coef pval\n", "Accession \n", "P05067 APP 3.675193 0.000359\n", "Q9H2M9 RAB3GAP2 -2.282264 0.000484\n", "Q8IV01 SYT12 -2.174953 0.000493\n", "O75116 ROCK2 -3.147778 0.000508\n", "Q9ULR3 PPM1H -2.247118 0.000516\n", "P01111 NRAS -2.754446 0.000543\n", "Q96HS1 PGAM5 -2.003476 0.000549\n", "Q15819 UBE2V2 -2.676874 0.000554\n", "P40121 CAPG 2.170653 0.000554\n", "Q9UL15-2 BAG5 -2.199955 0.000606\n", "O75078 ADAM11 -2.423617 0.000640\n", "Q14956 GPNMB 3.681369 0.000640\n", "Q15223 PVRL1 -3.788955 0.000653\n", "P45985-2 MAP2K4 -2.068731 0.000654\n", "Q8TDC3-2 BRSK1 -2.069654 0.000691\n", "P21796 VDAC1 -2.545471 0.000696\n", "Q8TDX7 NEK7 2.417459 0.000711\n", "Q9UPR0 PLCL2 -2.561240 0.000716\n", "J3QRU1 YES1 2.009870 0.000737\n", "P10586 PTPRF -2.305175 0.000760" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ADuniv_log.head(20)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 4.2.1 Significance tests and volcano plot\n", "\n", "No proteins are significant after Bonferroni correction, but 1016 after FDR correction. See [2_compare_univariate_results.ipynb](2_compare_univariate_results.ipynb) and [2_compare_univariate_results.html](2_compare_univariate_results.html) for interactive volcano plots." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "False 5214\n", "FDR 1016\n", "Name: Significant, dtype: int64" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ADuniv_log[\"Significant\"] = \"False\"\n", "ADuniv_log.loc[smm.multipletests(ADuniv_log.pval, method=\"fdr_bh\")[0], \"Significant\"] = \"FDR\"\n", "ADuniv_log.loc[smm.multipletests(ADuniv_log.pval, method=\"bonferroni\")[0], \"Significant\"] = \"Bonferroni\"\n", "ADuniv_log.loc[:,\"Significant\"].value_counts()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[(-10, 10)]" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "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": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
GenecoefpvalSignificant
Accession
Q9H4F8-2SMOC175.4378760.677965False
P05067APP3.6751930.000359FDR
P10636MAPT5.7514270.007119FDR
P37840SNCA-0.4337950.199033False
\n", "
" ], "text/plain": [ " Gene coef pval Significant\n", "Accession \n", "Q9H4F8-2 SMOC1 75.437876 0.677965 False\n", "P05067 APP 3.675193 0.000359 FDR\n", "P10636 MAPT 5.751427 0.007119 FDR\n", "P37840 SNCA -0.433795 0.199033 False" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ADuniv_log.loc[(\"Q9H4F8-2\", \"P05067\", \"P10636\", \"P37840\"),:]" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sns.stripplot(AD, proteome[\"Q9H4F8-2\"], hue=AD)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.3 Comparison of univariate linear- and logistic-regression results\n", "\n", "It already becomes obvious by comparing the numbers of significant variables that linear-regression seems to be more powerful on this dataset: 132 Bonferroni- and 1623 FDR-significant proteins for linear-regression vs 0 Bonferroni- and 1016 FDR-significant proteins for logistic-regression (at the 0.05 level).\n", "\n", "A more detailed interactive comparison of the two results are in the accompanying files [2_compare_univariate_results.ipynb](2_compare_univariate_results.ipynb) and [2_compare_univariate_results.html](2_compare_univariate_results.html)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 5 Multivariate LASSO logistic regression\n", "\n", "Remove SMOC1 (Q9H4F8-2) because of perfect separability. LASSO selects a subset of variables as predictors by penalizing on the L1-Norm of the beta-coefficients. SKLearn's [LogisticRegressionCV](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegressionCV.html) employs cross-validation to identify the optimal lambda (or C) hyperparameter. Below are the selected proteins and their beta coefficients. The training-set size is 30 samples and the test set size is 10 samples." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[('Q15019-2', 0.07475893865168265),\n", " ('O75078', -0.050325227951352365),\n", " ('P05067', 0.17694675093618312),\n", " ('V9GYM8', -0.07648340129495527),\n", " ('P00966', 0.191924439342754),\n", " ('Q9UL15-2', -0.510364224138429),\n", " ('Q13490', -0.5421988317437187),\n", " ('Q9P1Z2', -0.03638737562594481),\n", " ('Q6P1J9', 0.004524336572358402),\n", " ('P02741', 0.09237296335569202),\n", " ('H7BYT1', 0.06420940778665873),\n", " ('Q96CG8', 0.39981851677520247),\n", " ('Q9UDY4', -0.11248206786135964),\n", " ('P07099', 0.0007605163156639481),\n", " ('P13726', 0.04195137694704598),\n", " ('Q86UX7', 0.07357031570028937),\n", " ('P60520', -0.0644233709563225),\n", " ('A6NHX0', -0.3453335016480302),\n", " ('Q9NZ52', -0.00860676289560626),\n", " ('Q8NDH6', -0.23816834785355184),\n", " ('Q14571', 0.0382484527026758),\n", " ('Q5SVJ7', -0.0004414865014175081),\n", " ('P18428', 0.006796543792457058),\n", " ('Q96NI6', -0.30309139344409874),\n", " ('Q5VZK9', 0.22035565656560557),\n", " ('Q8NAA5', -0.10402188465951608),\n", " ('P10636-6', 0.013450968474848817),\n", " ('E9PLM6', 0.26298961658960146),\n", " ('Q8WUY8', -0.006599971944642447),\n", " ('Q9Y697', -0.0006719433704057629),\n", " ('P01303', 0.23428022737294701),\n", " ('P01111', -0.1864771747887415),\n", " ('Q96F24', -0.008795708075730577),\n", " ('A0A087WWT2', -0.037268070955115605),\n", " ('Q15120-2', -0.0027301018340764385),\n", " ('Q96CD2', 0.21705705577837567),\n", " ('O75335', -0.03866794657308174),\n", " ('Q15435', -0.1671110534941245),\n", " ('P10586', -0.024519264845207858),\n", " ('Q15223', -0.04129885700265995),\n", " ('O75116', -0.3738244403852573),\n", " ('Q99250', -0.022262810404079087),\n", " ('P31947', 0.002606843462763877),\n", " ('P60880', -0.07169426434161981),\n", " ('Q15526', -0.04561358214852488),\n", " ('Q96B77', -0.12307483290713232)]" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "proteome_reduced = proteome.drop(\"Q9H4F8-2\", axis=1)\n", "\n", "X_train, X_test, y_train, y_test = train_test_split(proteome_reduced, AD, test_size=0.25, random_state=1337)\n", "\n", "model = LogisticRegressionCV(cv=10, solver=\"liblinear\", penalty=\"l1\", random_state=1337).fit(X_train, y_train)\n", "\n", "list(zip(proteome_reduced.columns[(model.coef_!=0)[0]],\n", " model.coef_[model.coef_!=0]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5.1 Test-set performance" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training accuracy: 1.0\n", "Training F1 score: 1.0\n", "Test-set accuracy: 0.9\n", "Test-set F1 score: 0.8571428571428571\n" ] } ], "source": [ "# train accuracy + confusion matrix\n", "y_pred_class = model.predict(X_train)\n", "print(\"Training accuracy:\", metrics.accuracy_score(y_train, y_pred_class))\n", "print(\"Training F1 score:\", metrics.f1_score(y_train, y_pred_class))\n", "#print(\"Log loss:\", metrics.log_loss(y_train, y_pred_class))\n", "#print(metrics.confusion_matrix(y_train, y_pred_class).transpose())\n", "\n", "# test accuracy + confusion matrix\n", "y_pred_class = model.predict(X_test)\n", "print(\"Test-set accuracy:\", metrics.accuracy_score(y_test, y_pred_class))\n", "print(\"Test-set F1 score:\", metrics.f1_score(y_test, y_pred_class))\n", "#print(\"Log loss:\", metrics.log_loss(y_test, y_pred_class))\n", "#print(metrics.confusion_matrix(y_test, y_pred_class).transpose())" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 4 }