Last active
April 11, 2022 12:24
-
-
Save lukauskas/5045b6c20ddfbe29c69cc70a3f3f099e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"id": "d2f7824b", | |
"metadata": {}, | |
"source": [ | |
"# Non-linear offsets for count data in `rpy2`\n", | |
"\n", | |
"This gist provides pythonic, `rpy2`-based code explaining the normalisation procedures using [`EDASeq`](https://bioconductor.org/packages/release/bioc/html/EDASeq.html) and [`CQN`](https://bioconductor.org/packages/release/bioc/html/cqn.html) bioconductor packages.\n", | |
"\n", | |
"These procedures can be used to normalise next-generation sequencing count data explaining away the biases in `GC` and/or `length` of genes, using the offsets provided in `DESeq2` or `EdgeR`.\n", | |
"\n", | |
"Quantile normalisation using [`qnorm`](https://github.com/Maarten-vd-Sande/qnorm) is added for comparison" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"id": "3c351889", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"%matplotlib inline" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"id": "979d7718", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import pandas as pd\n", | |
"import numpy as np\n", | |
"import seaborn as sns\n", | |
"\n", | |
"from matplotlib import pyplot as plt" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"id": "39209a51", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# R imports \n", | |
"from rpy2.robjects.packages import importr\n", | |
"import rpy2.robjects as ro\n", | |
"from rpy2.robjects import pandas2ri, numpy2ri\n", | |
"from rpy2.robjects.conversion import localconverter\n", | |
"\n", | |
"r_base = importr('base')\n", | |
"r_edaseq = importr('EDASeq')\n", | |
"r_cqn = importr('cqn')\n", | |
"r_deseq2 = importr('DESeq2')\n", | |
"r_edger = importr('edgeR')\n", | |
"\n", | |
"# R Helpers (optional)\n", | |
"\n", | |
"from contextlib import contextmanager\n", | |
"from rpy2.robjects.lib import grdevices\n", | |
"from IPython.display import Image, display\n", | |
"\n", | |
"r_graphics = importr('graphics')\n", | |
"\n", | |
"@contextmanager\n", | |
"def r_inline_plot(width=600, height=600, dpi=100):\n", | |
"\n", | |
" with grdevices.render_to_bytesio(grdevices.png, \n", | |
" width=width,\n", | |
" height=height, \n", | |
" res=dpi) as b:\n", | |
"\n", | |
" yield\n", | |
"\n", | |
" data = b.getvalue()\n", | |
" display(Image(data=data, format='png', embed=True))" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "9983297c", | |
"metadata": {}, | |
"source": [ | |
"# Data\n", | |
"\n", | |
"For this example we will exclusively use the data from R library `yeastRNASeq`, that I have extracted as `csv.gz` files in the directory." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "c2173fe6", | |
"metadata": {}, | |
"source": [ | |
"The actual read counts:\n", | |
"```R\n", | |
"library(yeastRNASeq); data(geneLevelData)\n", | |
"```" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"id": "3f2cf9f7", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"data = pd.read_csv('yeastRNASeq.geneLevelData.csv.gz', index_col=0)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"id": "d5f7f4f8", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>mut_1</th>\n", | |
" <th>mut_2</th>\n", | |
" <th>wt_1</th>\n", | |
" <th>wt_2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>YHR055C</th>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YPR161C</th>\n", | |
" <td>38</td>\n", | |
" <td>39</td>\n", | |
" <td>35</td>\n", | |
" <td>34</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YOL138C</th>\n", | |
" <td>31</td>\n", | |
" <td>33</td>\n", | |
" <td>40</td>\n", | |
" <td>26</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YDR395W</th>\n", | |
" <td>55</td>\n", | |
" <td>52</td>\n", | |
" <td>47</td>\n", | |
" <td>47</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YGR129W</th>\n", | |
" <td>29</td>\n", | |
" <td>26</td>\n", | |
" <td>5</td>\n", | |
" <td>5</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>...</th>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>tR(UCU)E</th>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>tS(AGA)B</th>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>snR43</th>\n", | |
" <td>189</td>\n", | |
" <td>185</td>\n", | |
" <td>9</td>\n", | |
" <td>8</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>tL(UAA)D</th>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>tV(AAC)G3</th>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>7065 rows × 4 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" mut_1 mut_2 wt_1 wt_2\n", | |
"YHR055C 0 0 0 0\n", | |
"YPR161C 38 39 35 34\n", | |
"YOL138C 31 33 40 26\n", | |
"YDR395W 55 52 47 47\n", | |
"YGR129W 29 26 5 5\n", | |
"... ... ... ... ...\n", | |
"tR(UCU)E 0 0 0 0\n", | |
"tS(AGA)B 0 0 0 1\n", | |
"snR43 189 185 9 8\n", | |
"tL(UAA)D 0 0 0 0\n", | |
"tV(AAC)G3 0 0 0 0\n", | |
"\n", | |
"[7065 rows x 4 columns]" | |
] | |
}, | |
"execution_count": 5, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "bdc5241e", | |
"metadata": {}, | |
"source": [ | |
"Additional features:\n", | |
"\n", | |
"```r\n", | |
"library(yeastRNASeq)\n", | |
"data(yeastGC)\n", | |
"data(yeastLength)\n", | |
"```" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"id": "7de347f8", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"yeast_gc = pd.read_csv('yeastRNASeq.yeastGC.csv.gz', index_col=0)['x']\n", | |
"yeast_gc.name = 'gc_content'" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"id": "895eadf7", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"YAL001C 0.371232\n", | |
"YAL002W 0.371765\n", | |
"YAL003W 0.446055\n", | |
"YAL004W 0.449074\n", | |
"YAL005C 0.440643\n", | |
"Name: gc_content, dtype: float64" | |
] | |
}, | |
"execution_count": 7, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"yeast_gc.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"id": "676be030", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"yeast_gc_quintiles = pd.qcut(yeast_gc, 5) # for plotting\n", | |
"yeast_gc_quintiles.name = 'gc_quintile'" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"id": "e5fe05d6", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"YAL001C (0.0808, 0.372]\n", | |
"YAL002W (0.0808, 0.372]\n", | |
"YAL003W (0.431, 0.591]\n", | |
"YAL004W (0.431, 0.591]\n", | |
"YAL005C (0.431, 0.591]\n", | |
"Name: gc_quintile, dtype: category\n", | |
"Categories (5, interval[float64, right]): [(0.0808, 0.372] < (0.372, 0.39] < (0.39, 0.407] < (0.407, 0.431] < (0.431, 0.591]]" | |
] | |
}, | |
"execution_count": 9, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"yeast_gc_quintiles.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"id": "3d10a071", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"yeast_length = pd.read_csv('yeastRNASeq.yeastLength.csv.gz', index_col=0)['x']\n", | |
"yeast_length.name = 'length'" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"id": "b7fb9a26", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"YAL001C 3483\n", | |
"YAL002W 3825\n", | |
"YAL003W 621\n", | |
"YAL004W 648\n", | |
"YAL005C 1929\n", | |
"Name: length, dtype: int64" | |
] | |
}, | |
"execution_count": 11, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"yeast_length.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"id": "1ad926ad", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"yeast_length_quintiles = pd.qcut(yeast_length, 5) # for plotting\n", | |
"yeast_length_quintiles.name = 'length_quintile'" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"id": "44a6ca6b", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"YAL001C (1986.0, 14733.0]\n", | |
"YAL002W (1986.0, 14733.0]\n", | |
"YAL003W (441.0, 861.0]\n", | |
"YAL004W (441.0, 861.0]\n", | |
"YAL005C (1323.0, 1986.0]\n", | |
"Name: length_quintile, dtype: category\n", | |
"Categories (5, interval[float64, right]): [(50.999, 441.0] < (441.0, 861.0] < (861.0, 1323.0] < (1323.0, 1986.0] < (1986.0, 14733.0]]" | |
] | |
}, | |
"execution_count": 13, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"yeast_length_quintiles.head()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "bb72de96", | |
"metadata": {}, | |
"source": [ | |
"Subset of data with GC content and length information:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"id": "1cb6d292", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"joint_index = yeast_gc.index.intersection(yeast_length.index)\n", | |
"joint_index = joint_index.intersection(data.index)\n", | |
"\n", | |
"yeast_length = yeast_length.loc[joint_index]\n", | |
"yeast_gc = yeast_gc.loc[joint_index]\n", | |
"\n", | |
"data_with_features = data.loc[joint_index]\n", | |
"log2_data_with_features = np.log2(data_with_features + 1)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"id": "fab6a071", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>mut_1</th>\n", | |
" <th>mut_2</th>\n", | |
" <th>wt_1</th>\n", | |
" <th>wt_2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>YAL001C</th>\n", | |
" <td>80</td>\n", | |
" <td>83</td>\n", | |
" <td>27</td>\n", | |
" <td>40</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL002W</th>\n", | |
" <td>33</td>\n", | |
" <td>38</td>\n", | |
" <td>53</td>\n", | |
" <td>66</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL003W</th>\n", | |
" <td>1887</td>\n", | |
" <td>1912</td>\n", | |
" <td>270</td>\n", | |
" <td>270</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL004W</th>\n", | |
" <td>90</td>\n", | |
" <td>110</td>\n", | |
" <td>276</td>\n", | |
" <td>295</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL005C</th>\n", | |
" <td>325</td>\n", | |
" <td>316</td>\n", | |
" <td>874</td>\n", | |
" <td>935</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" mut_1 mut_2 wt_1 wt_2\n", | |
"YAL001C 80 83 27 40\n", | |
"YAL002W 33 38 53 66\n", | |
"YAL003W 1887 1912 270 270\n", | |
"YAL004W 90 110 276 295\n", | |
"YAL005C 325 316 874 935" | |
] | |
}, | |
"execution_count": 15, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data_with_features.head()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "31dd68a4", | |
"metadata": {}, | |
"source": [ | |
"And compute library sizes (needed for `CQN`)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"id": "be3fcfed", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"mut_1 347507\n", | |
"mut_2 346042\n", | |
"wt_1 395677\n", | |
"wt_2 414784\n", | |
"dtype: int64" | |
] | |
}, | |
"execution_count": 16, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"yeast_library_sizes = data_with_features.sum()\n", | |
"yeast_library_sizes" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "9dc22630-42ac-4914-8698-0abeb7047dfa", | |
"metadata": {}, | |
"source": [ | |
"# Standard (non-offsets) normalisation" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "51697d62-91e5-4e10-bebd-6171c177c3c7", | |
"metadata": {}, | |
"source": [ | |
"First of all, let's normalise the data using a standard approach which does not take the quantiles into account.\n", | |
"\n", | |
"The two main count data packages in R have vastly different philosophies when it comes to the data normalisation. [`edgeR`](https://bioconductor.org/packages/release/bioc/html/edgeR.html) uses [TMM algorithm](https://dx.doi.org/10.1186/gb-2010-11-3-r25) for normalisation, while `DESeq2` uses geometric mean offset.\n", | |
"\n", | |
"Below is an explanation on how to compute both using python\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "c203e248-9c2e-4bc6-8749-1fbd5fd86eea", | |
"metadata": {}, | |
"source": [ | |
"### EdgeR" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"id": "d3042aef-a198-4cf2-8542-2ae13e7f7573", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"def normfactors_from_edger_using_r(data: pd.DataFrame, lib_sizes: pd.Series):\n", | |
" assert data.columns.equals(lib_sizes.index)\n", | |
" \n", | |
" with localconverter(ro.default_converter + numpy2ri.converter + pandas2ri.converter) as co:\n", | |
" r_data = co.py2rpy(data)\n", | |
" r_lib_sizes = co.py2rpy(np.asarray(lib_sizes))\n", | |
" \n", | |
" \n", | |
" y = r_edger.DGEList(r_data, **{'lib.size': r_lib_sizes})\n", | |
" y = r_edger.calcNormFactors(y)\n", | |
" \n", | |
" \n", | |
" r_answer = y.rx2('samples')\n", | |
" r_cpm = r_edger.cpm(y)\n", | |
" r_offset = r_edger.getOffset(y)\n", | |
" \n", | |
" with localconverter(ro.default_converter + numpy2ri.converter + pandas2ri.converter) as co:\n", | |
" answer = co.rpy2py(r_answer)\n", | |
" cpm = co.rpy2py(r_cpm)\n", | |
" cpm = pd.DataFrame(cpm, index=data.index, columns=data.columns)\n", | |
" \n", | |
" offset = pd.Series(co.rpy2py(r_offset), index=data.columns)\n", | |
" \n", | |
" return answer, cpm, offset" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"id": "5d25d6a8-8668-45dd-90df-2e59eb3d105d", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>group</th>\n", | |
" <th>lib.size</th>\n", | |
" <th>norm.factors</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>mut_1</th>\n", | |
" <td>1</td>\n", | |
" <td>347507</td>\n", | |
" <td>1.199590</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>mut_2</th>\n", | |
" <td>1</td>\n", | |
" <td>346042</td>\n", | |
" <td>1.197745</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>wt_1</th>\n", | |
" <td>1</td>\n", | |
" <td>395677</td>\n", | |
" <td>0.834038</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>wt_2</th>\n", | |
" <td>1</td>\n", | |
" <td>414784</td>\n", | |
" <td>0.834482</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" group lib.size norm.factors\n", | |
"mut_1 1 347507 1.199590\n", | |
"mut_2 1 346042 1.197745\n", | |
"wt_1 1 395677 0.834038\n", | |
"wt_2 1 414784 0.834482" | |
] | |
}, | |
"execution_count": 18, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"edger_normfactors, edger_cpm, edger_offset = normfactors_from_edger_using_r(data_with_features, yeast_library_sizes)\n", | |
"edger_normfactors" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "6f7398c6-58ca-41df-b30b-a7b872673413", | |
"metadata": {}, | |
"source": [ | |
"Unlike in DESeq2, the `norm.factors` do not directly factor in to the equation of the linear model. These factors serve as a correction factors to the `lib.size` and are meaningless without the latter." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "9c4ff05d-d52e-408d-b195-ae297f4d49ae", | |
"metadata": {}, | |
"source": [ | |
"These correction factors are computed using TMM algorithm, and can be computed directly in python using my package [`tmma`](https://github.com/lukauskas/tmma):" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"id": "0ef03d8a-023b-4e80-affb-c3633dd72342", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"/usr/local/Caskroom/miniconda/base/envs/non-linear-offsets-for-count-data-in-rpy2/lib/python3.9/site-packages/tmma/ma/stats.py:42: RuntimeWarning: divide by zero encountered in log2\n", | |
" log2_normed_obs = np.log2(obs) - np.log2(lib_size_obs)\n", | |
"/usr/local/Caskroom/miniconda/base/envs/non-linear-offsets-for-count-data-in-rpy2/lib/python3.9/site-packages/tmma/ma/stats.py:43: RuntimeWarning: divide by zero encountered in log2\n", | |
" log2_normed_ref = np.log2(ref) - np.log2(lib_size_ref)\n", | |
"/usr/local/Caskroom/miniconda/base/envs/non-linear-offsets-for-count-data-in-rpy2/lib/python3.9/site-packages/tmma/ma/stats.py:46: RuntimeWarning: invalid value encountered in subtract\n", | |
" m = log2_normed_obs - log2_normed_ref\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"mut_1 1.199799\n", | |
"mut_2 1.197774\n", | |
"wt_1 0.833852\n", | |
"wt_2 0.834502\n", | |
"dtype: float64" | |
] | |
}, | |
"execution_count": 19, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"import tmma\n", | |
"tmma.tmm_normalisation_factors(data_with_features)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "14894219-1feb-41da-92bd-da5fd183c629", | |
"metadata": {}, | |
"source": [ | |
"See more examples on how to use `tmma` [here](https://github.com/lukauskas/tmma/blob/master/examples/Arabidopsis%20dataset.ipynb)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "031a5eea-9d51-4a08-ac1a-f3e36eba7757", | |
"metadata": {}, | |
"source": [ | |
"In order to compute the normalised data in EdgeR, we need to introduce the concept of \"Effective library size\", which can be computed by multiplying the library size to the norm factors:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"id": "ec2e5e60-001c-4af0-962b-d640dcc6816b", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>group</th>\n", | |
" <th>lib.size</th>\n", | |
" <th>norm.factors</th>\n", | |
" <th>lib.size.effective</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>mut_1</th>\n", | |
" <td>1</td>\n", | |
" <td>347507</td>\n", | |
" <td>1.199590</td>\n", | |
" <td>416865.995071</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>mut_2</th>\n", | |
" <td>1</td>\n", | |
" <td>346042</td>\n", | |
" <td>1.197745</td>\n", | |
" <td>414470.131967</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>wt_1</th>\n", | |
" <td>1</td>\n", | |
" <td>395677</td>\n", | |
" <td>0.834038</td>\n", | |
" <td>330009.463387</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>wt_2</th>\n", | |
" <td>1</td>\n", | |
" <td>414784</td>\n", | |
" <td>0.834482</td>\n", | |
" <td>346129.861862</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" group lib.size norm.factors lib.size.effective\n", | |
"mut_1 1 347507 1.199590 416865.995071\n", | |
"mut_2 1 346042 1.197745 414470.131967\n", | |
"wt_1 1 395677 0.834038 330009.463387\n", | |
"wt_2 1 414784 0.834482 346129.861862" | |
] | |
}, | |
"execution_count": 20, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"edger_normfactors['lib.size.effective'] = edger_normfactors['lib.size'] * edger_normfactors['norm.factors']\n", | |
"edger_normfactors" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "2e69571b-4cdf-472f-b73f-99dfb915ffcb", | |
"metadata": {}, | |
"source": [ | |
"The normalised counts can then be recovered by divinding the actual counts by library size in milions, e.g.:\n", | |
"\n", | |
"```\n", | |
"normed = (count + pseudocount) / (effective lib size / 1_000_000) \n", | |
"```" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"id": "1bc50ef1-92d0-41cc-9f48-e16f6d8ed422", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>mut_1</th>\n", | |
" <th>mut_2</th>\n", | |
" <th>wt_1</th>\n", | |
" <th>wt_2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>YAL001C</th>\n", | |
" <td>191.908193</td>\n", | |
" <td>200.255685</td>\n", | |
" <td>81.815836</td>\n", | |
" <td>115.563563</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL002W</th>\n", | |
" <td>79.162130</td>\n", | |
" <td>91.683325</td>\n", | |
" <td>160.601455</td>\n", | |
" <td>190.679878</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL003W</th>\n", | |
" <td>4526.634512</td>\n", | |
" <td>4613.118902</td>\n", | |
" <td>818.158356</td>\n", | |
" <td>780.054048</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL004W</th>\n", | |
" <td>215.896718</td>\n", | |
" <td>265.399100</td>\n", | |
" <td>836.339653</td>\n", | |
" <td>852.281275</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL005C</th>\n", | |
" <td>779.627036</td>\n", | |
" <td>762.419233</td>\n", | |
" <td>2648.408900</td>\n", | |
" <td>2701.298279</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" mut_1 mut_2 wt_1 wt_2\n", | |
"YAL001C 191.908193 200.255685 81.815836 115.563563\n", | |
"YAL002W 79.162130 91.683325 160.601455 190.679878\n", | |
"YAL003W 4526.634512 4613.118902 818.158356 780.054048\n", | |
"YAL004W 215.896718 265.399100 836.339653 852.281275\n", | |
"YAL005C 779.627036 762.419233 2648.408900 2701.298279" | |
] | |
}, | |
"execution_count": 21, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# Pseudocount is not used in natural scale\n", | |
"normed = (data_with_features) / (edger_normfactors['lib.size.effective'] / 1_000_000)\n", | |
"normed.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"id": "8dac2282-b62d-4862-ad11-3bad769ec42e", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>mut_1</th>\n", | |
" <th>mut_2</th>\n", | |
" <th>wt_1</th>\n", | |
" <th>wt_2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>YAL001C</th>\n", | |
" <td>191.908193</td>\n", | |
" <td>200.255685</td>\n", | |
" <td>81.815836</td>\n", | |
" <td>115.563563</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL002W</th>\n", | |
" <td>79.162130</td>\n", | |
" <td>91.683325</td>\n", | |
" <td>160.601455</td>\n", | |
" <td>190.679878</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL003W</th>\n", | |
" <td>4526.634512</td>\n", | |
" <td>4613.118902</td>\n", | |
" <td>818.158356</td>\n", | |
" <td>780.054048</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL004W</th>\n", | |
" <td>215.896718</td>\n", | |
" <td>265.399100</td>\n", | |
" <td>836.339653</td>\n", | |
" <td>852.281275</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL005C</th>\n", | |
" <td>779.627036</td>\n", | |
" <td>762.419233</td>\n", | |
" <td>2648.408900</td>\n", | |
" <td>2701.298279</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" mut_1 mut_2 wt_1 wt_2\n", | |
"YAL001C 191.908193 200.255685 81.815836 115.563563\n", | |
"YAL002W 79.162130 91.683325 160.601455 190.679878\n", | |
"YAL003W 4526.634512 4613.118902 818.158356 780.054048\n", | |
"YAL004W 215.896718 265.399100 836.339653 852.281275\n", | |
"YAL005C 779.627036 762.419233 2648.408900 2701.298279" | |
] | |
}, | |
"execution_count": 22, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"edger_cpm.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 23, | |
"id": "e712db83-a609-407c-8049-83dc056cf9c3", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"3.637978807091713e-12" | |
] | |
}, | |
"execution_count": 23, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"(normed - edger_cpm).abs().max().max()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "bc56c684-96d2-4716-8420-f27d85084682", | |
"metadata": {}, | |
"source": [ | |
"Note that offsets are just log_n effective library sizes:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 24, | |
"id": "7a393f8f-2b90-4c27-96a5-d7ceb1443349", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"mut_1 12.940520\n", | |
"mut_2 12.934756\n", | |
"wt_1 12.706877\n", | |
"wt_2 12.754569\n", | |
"Name: lib.size.effective, dtype: float64" | |
] | |
}, | |
"execution_count": 24, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"np.log(edger_normfactors['lib.size.effective'])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 25, | |
"id": "915c67e7-6253-47bd-9e56-69c65b8901b8", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"mut_1 12.940520\n", | |
"mut_2 12.934756\n", | |
"wt_1 12.706877\n", | |
"wt_2 12.754569\n", | |
"dtype: float64" | |
] | |
}, | |
"execution_count": 25, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"edger_offset" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "dee049e5-f986-4267-93b2-dbca98075497", | |
"metadata": {}, | |
"source": [ | |
"When fitting the model, offset is added to the right side of equation:\n", | |
"\n", | |
"```\n", | |
"log(y) = Xw + offset\n", | |
"```\n", | |
"\n", | |
"Which can be rearranged as\n", | |
"\n", | |
"```\n", | |
"log(y) - offset = Xw\n", | |
"```\n", | |
"\n", | |
"As offset is `log(effective.library.size)` this is equivalent to transformation of `y -> log(y/effective.library.size)` ." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "71064b10-55b9-40d5-aeb1-b0064df7cc98", | |
"metadata": {}, | |
"source": [ | |
"## DESeq2\n", | |
"\n", | |
"DESeq2 uses a fundamentally different normalisation algorithm" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 26, | |
"id": "571ec06d-8683-4ce4-a721-ce15505fd013", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"def deseq2_normalisation_factors(data):\n", | |
" \n", | |
" coldata = data.columns.to_frame()\n", | |
" design = ro.Formula('~1')\n", | |
" \n", | |
" \n", | |
" with localconverter(ro.default_converter + numpy2ri.converter + pandas2ri.converter) as co:\n", | |
" r_data = co.py2rpy(data)\n", | |
" r_coldata = co.py2rpy(coldata)\n", | |
" \n", | |
" \n", | |
" dds = r_deseq2.DESeqDataSetFromMatrix(r_data, r_coldata, design=design)\n", | |
" dds = r_deseq2.estimateSizeFactors_DESeqDataSet(dds)\n", | |
" \n", | |
" r_size_factors = r_deseq2.sizeFactors_DESeqDataSet(dds)\n", | |
" \n", | |
" with localconverter(ro.default_converter + numpy2ri.converter + pandas2ri.converter) as co:\n", | |
" size_factors = pd.Series(co.rpy2py(r_size_factors), index=data.columns)\n", | |
" \n", | |
" return size_factors, dds\n", | |
" \n", | |
" " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 27, | |
"id": "04650582-aa50-4e33-ac29-03fe38f8b55a", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"deseq2_size_factors, deseq2_dds = deseq2_normalisation_factors(data_with_features)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "19199adf-a89d-4944-a110-41d32d6f5efc", | |
"metadata": {}, | |
"source": [ | |
"DESeq2 size factors are the counts after dividing out the geometric mean of the data:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 28, | |
"id": "a595fff5-265b-4581-8bf4-e6d0467817b9", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"mut_1 1.130654\n", | |
"mut_2 1.122137\n", | |
"wt_1 0.888619\n", | |
"wt_2 0.934276\n", | |
"dtype: float64" | |
] | |
}, | |
"execution_count": 28, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"deseq2_size_factors" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "9fe59bf8-e673-4252-868b-d5dac9a2bd45", | |
"metadata": {}, | |
"source": [ | |
"This is encoded in the function [`estimateSizeFactorsForMatrix`](https://rdrr.io/bioc/DESeq2/src/R/core.R) which does the following:\n", | |
"\n", | |
"First it computes the logarithm of geometric means for each row:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 29, | |
"id": "f9079eab-40fb-41cc-a36f-290c8466cbf9", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"YAL001C 3.946396\n", | |
"YAL002W 3.823510\n", | |
"YAL003W 6.573873\n", | |
"YAL004W 5.126917\n", | |
"YAL005C 6.288299\n", | |
" ... \n", | |
"YPR201W 2.229997\n", | |
"YPR202W NaN\n", | |
"YPR203W NaN\n", | |
"YPR204C-A NaN\n", | |
"YPR204W NaN\n", | |
"Length: 6685, dtype: float64" | |
] | |
}, | |
"execution_count": 29, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"_log_geo_means = data_with_features.apply(np.log).mean(axis=1).replace([np.inf, -np.inf], np.nan)\n", | |
"_log_geo_means" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "c376e574-4045-45a9-9e01-8825b9fca0aa", | |
"metadata": {}, | |
"source": [ | |
"And then computes a scaling factor for each column x computing median(log_count(c) - log_geo_mean) and taking the exponent. Additionally, the columns where either `c=0` or `log_geo_mean` is infinite are ignored" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 30, | |
"id": "4356da22-1f9a-45bd-8f97-006b869b9867", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"mut_1 1.130654\n", | |
"mut_2 1.122137\n", | |
"wt_1 0.888619\n", | |
"wt_2 0.934276\n", | |
"dtype: float64" | |
] | |
}, | |
"execution_count": 30, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"deseq2_sf = np.exp(data_with_features.mask(data_with_features <= 0).apply(np.log).sub(_log_geo_means, axis=0).median())\n", | |
"deseq2_sf" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "2c5630f1-a4cd-4c3c-a540-a2a62852042d", | |
"metadata": {}, | |
"source": [ | |
"If you ever want to set these manually from python interface, you need to use this function:\n", | |
"\n", | |
"```python\n", | |
"r_deseq2_set_size_factor = ro.r('''\n", | |
" function(obj, val) {\n", | |
" sizeFactors(obj) <- val\n", | |
" obj\n", | |
" }\n", | |
"''')\n", | |
"```" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "9ebc3560-0c47-4093-9e16-270feeb5cad2", | |
"metadata": {}, | |
"source": [ | |
"Note that these numbers are quite different from `edgeR` `norm.factors`:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 31, | |
"id": "39fab476-c035-47f8-8d64-0066fe502ea6", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>edger_norm_factors</th>\n", | |
" <th>deseq2_sf</th>\n", | |
" <th>abs_diff</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>mut_1</th>\n", | |
" <td>1.199590</td>\n", | |
" <td>1.130654</td>\n", | |
" <td>0.068936</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>mut_2</th>\n", | |
" <td>1.197745</td>\n", | |
" <td>1.122137</td>\n", | |
" <td>0.075608</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>wt_1</th>\n", | |
" <td>0.834038</td>\n", | |
" <td>0.888619</td>\n", | |
" <td>0.054582</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>wt_2</th>\n", | |
" <td>0.834482</td>\n", | |
" <td>0.934276</td>\n", | |
" <td>0.099794</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" edger_norm_factors deseq2_sf abs_diff\n", | |
"mut_1 1.199590 1.130654 0.068936\n", | |
"mut_2 1.197745 1.122137 0.075608\n", | |
"wt_1 0.834038 0.888619 0.054582\n", | |
"wt_2 0.834482 0.934276 0.099794" | |
] | |
}, | |
"execution_count": 31, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"_df = pd.DataFrame({'edger_norm_factors': edger_normfactors['norm.factors'], 'deseq2_sf': deseq2_sf})\n", | |
"_df['abs_diff'] = (_df['deseq2_sf'] - _df['edger_norm_factors']).abs()\n", | |
"_df" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "cb3bdbf9-7fde-4ef4-89f7-cba386072375", | |
"metadata": {}, | |
"source": [ | |
"They correspond much more to the effective library sizes with geometric mean normalised out:\n", | |
"\n", | |
"```\n", | |
"effective_library_sizes / exp(mean(log(effective_library_sizes)))\n", | |
"```" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 32, | |
"id": "e4842280-3ff5-486d-aa87-c25f4025af62", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>edger_effective_libsizes_normed</th>\n", | |
" <th>deseq2_sf</th>\n", | |
" <th>abs_diff</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>mut_1</th>\n", | |
" <td>1.112199</td>\n", | |
" <td>1.130654</td>\n", | |
" <td>0.018455</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>mut_2</th>\n", | |
" <td>1.105807</td>\n", | |
" <td>1.122137</td>\n", | |
" <td>0.016330</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>wt_1</th>\n", | |
" <td>0.880466</td>\n", | |
" <td>0.888619</td>\n", | |
" <td>0.008153</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>wt_2</th>\n", | |
" <td>0.923475</td>\n", | |
" <td>0.934276</td>\n", | |
" <td>0.010801</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" edger_effective_libsizes_normed deseq2_sf abs_diff\n", | |
"mut_1 1.112199 1.130654 0.018455\n", | |
"mut_2 1.105807 1.122137 0.016330\n", | |
"wt_1 0.880466 0.888619 0.008153\n", | |
"wt_2 0.923475 0.934276 0.010801" | |
] | |
}, | |
"execution_count": 32, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"_df = pd.DataFrame({\n", | |
" 'edger_effective_libsizes_normed': \n", | |
" edger_normfactors['lib.size.effective'] / np.exp(edger_normfactors['lib.size.effective'].apply(np.log).mean()),\n", | |
" 'deseq2_sf': deseq2_sf\n", | |
"})\n", | |
"_df['abs_diff'] = (_df['deseq2_sf'] - _df['edger_effective_libsizes_normed']).abs()\n", | |
"_df" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "9475b94c-4855-43d4-9b03-fa5a6f286bd3", | |
"metadata": {}, | |
"source": [ | |
"But not unnormalised lib sizes:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 33, | |
"id": "f83e7608-c800-4fe1-a775-f8e8927db6c2", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>edger_libsizes_normed</th>\n", | |
" <th>deseq2_sf</th>\n", | |
" <th>abs_diff</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>mut_1</th>\n", | |
" <td>0.927149</td>\n", | |
" <td>1.130654</td>\n", | |
" <td>0.203505</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>mut_2</th>\n", | |
" <td>0.923241</td>\n", | |
" <td>1.122137</td>\n", | |
" <td>0.198896</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>wt_1</th>\n", | |
" <td>1.055667</td>\n", | |
" <td>0.888619</td>\n", | |
" <td>0.167048</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>wt_2</th>\n", | |
" <td>1.106645</td>\n", | |
" <td>0.934276</td>\n", | |
" <td>0.172369</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" edger_libsizes_normed deseq2_sf abs_diff\n", | |
"mut_1 0.927149 1.130654 0.203505\n", | |
"mut_2 0.923241 1.122137 0.198896\n", | |
"wt_1 1.055667 0.888619 0.167048\n", | |
"wt_2 1.106645 0.934276 0.172369" | |
] | |
}, | |
"execution_count": 33, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"_df = pd.DataFrame({\n", | |
" 'edger_libsizes_normed': \n", | |
" edger_normfactors['lib.size'] / np.exp(edger_normfactors['lib.size'].apply(np.log).mean()),\n", | |
" 'deseq2_sf': deseq2_sf\n", | |
"})\n", | |
"_df['abs_diff'] = (_df['deseq2_sf'] - _df['edger_libsizes_normed']).abs()\n", | |
"_df" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "8c8c7e9c", | |
"metadata": {}, | |
"source": [ | |
"# Offset normalisation - Quantiles\n", | |
"\n", | |
"The non-standard normalisations in both `DESeq2` tend to be ovariants of quantile normalisation.\n", | |
"\n", | |
"Quantile normalisation simply equalises the quantiles of the data between the samples. \n", | |
"It implicitly corrects for the differences in library sizes, but does not attempt to do GC-content, nor length correction. " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "a36236ce", | |
"metadata": {}, | |
"source": [ | |
"## EDASeq based\n", | |
"\n", | |
"EDAseq function [`betweenLaneNormalization`](https://www.rdocumentation.org/packages/EDASeq/versions/2.6.2/topics/betweenLaneNormalization-methods) performs quantile normalisation when `which='full'`" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 34, | |
"id": "36a50f38", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"def quantile_norm_using_edaseq(data: pd.DataFrame, round=True) -> pd.DataFrame:\n", | |
" \"\"\"\n", | |
" Normalises counts in `data` using `EDASeq::betweenLaneNormalization`\n", | |
" \n", | |
" :params data: counts data to normalise\n", | |
" :params round: whether to round or not\n", | |
" \n", | |
" :return: normalised counts (dataframe)\n", | |
" \"\"\"\n", | |
"\n", | |
" # Convert pandas df into R matrix\n", | |
" with localconverter(ro.default_converter + pandas2ri.converter) as co:\n", | |
" r_data = co.py2rpy(data)\n", | |
" r_data_matrix = r_base.as_matrix(r_data)\n", | |
" \n", | |
" # Do the norm\n", | |
" r_normed = r_edaseq.betweenLaneNormalization(r_data_matrix, \n", | |
" which=\"full\",\n", | |
" round=round)\n", | |
" \n", | |
" # Convert back to pandas DF\n", | |
" with localconverter(ro.default_converter + pandas2ri.converter) as co:\n", | |
" normed = co.rpy2py(r_base.as_data_frame(r_normed))\n", | |
" \n", | |
" return normed\n", | |
" " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "bfa66849", | |
"metadata": {}, | |
"source": [ | |
"The following data:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 35, | |
"id": "18516511", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>mut_1</th>\n", | |
" <th>mut_2</th>\n", | |
" <th>wt_1</th>\n", | |
" <th>wt_2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>count</th>\n", | |
" <td>7065.000000</td>\n", | |
" <td>7065.000000</td>\n", | |
" <td>7065.000000</td>\n", | |
" <td>7065.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>mean</th>\n", | |
" <td>54.172824</td>\n", | |
" <td>53.841331</td>\n", | |
" <td>56.188818</td>\n", | |
" <td>58.911253</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>std</th>\n", | |
" <td>146.766476</td>\n", | |
" <td>146.750732</td>\n", | |
" <td>220.765671</td>\n", | |
" <td>230.623154</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>min</th>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>25%</th>\n", | |
" <td>10.000000</td>\n", | |
" <td>10.000000</td>\n", | |
" <td>5.000000</td>\n", | |
" <td>5.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>50%</th>\n", | |
" <td>26.000000</td>\n", | |
" <td>25.000000</td>\n", | |
" <td>16.000000</td>\n", | |
" <td>17.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>75%</th>\n", | |
" <td>51.000000</td>\n", | |
" <td>51.000000</td>\n", | |
" <td>42.000000</td>\n", | |
" <td>44.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>max</th>\n", | |
" <td>3671.000000</td>\n", | |
" <td>3843.000000</td>\n", | |
" <td>6999.000000</td>\n", | |
" <td>7230.000000</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" mut_1 mut_2 wt_1 wt_2\n", | |
"count 7065.000000 7065.000000 7065.000000 7065.000000\n", | |
"mean 54.172824 53.841331 56.188818 58.911253\n", | |
"std 146.766476 146.750732 220.765671 230.623154\n", | |
"min 0.000000 0.000000 0.000000 0.000000\n", | |
"25% 10.000000 10.000000 5.000000 5.000000\n", | |
"50% 26.000000 25.000000 16.000000 17.000000\n", | |
"75% 51.000000 51.000000 42.000000 44.000000\n", | |
"max 3671.000000 3843.000000 6999.000000 7230.000000" | |
] | |
}, | |
"execution_count": 35, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data.describe()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "f9f6961f", | |
"metadata": {}, | |
"source": [ | |
"Gets transformed to:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 36, | |
"id": "0a1ab592", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"edaseq_normed = quantile_norm_using_edaseq(data, round=True)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 37, | |
"id": "e49962f4", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>mut_1</th>\n", | |
" <th>mut_2</th>\n", | |
" <th>wt_1</th>\n", | |
" <th>wt_2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>count</th>\n", | |
" <td>7065.000000</td>\n", | |
" <td>7065.000000</td>\n", | |
" <td>7065.000000</td>\n", | |
" <td>7065.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>mean</th>\n", | |
" <td>55.554706</td>\n", | |
" <td>55.554706</td>\n", | |
" <td>55.554706</td>\n", | |
" <td>55.554706</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>std</th>\n", | |
" <td>183.989167</td>\n", | |
" <td>183.989167</td>\n", | |
" <td>183.989167</td>\n", | |
" <td>183.989167</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>min</th>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>25%</th>\n", | |
" <td>8.000000</td>\n", | |
" <td>8.000000</td>\n", | |
" <td>8.000000</td>\n", | |
" <td>8.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>50%</th>\n", | |
" <td>21.000000</td>\n", | |
" <td>21.000000</td>\n", | |
" <td>21.000000</td>\n", | |
" <td>21.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>75%</th>\n", | |
" <td>48.000000</td>\n", | |
" <td>48.000000</td>\n", | |
" <td>48.000000</td>\n", | |
" <td>48.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>max</th>\n", | |
" <td>5421.000000</td>\n", | |
" <td>5421.000000</td>\n", | |
" <td>5421.000000</td>\n", | |
" <td>5421.000000</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" mut_1 mut_2 wt_1 wt_2\n", | |
"count 7065.000000 7065.000000 7065.000000 7065.000000\n", | |
"mean 55.554706 55.554706 55.554706 55.554706\n", | |
"std 183.989167 183.989167 183.989167 183.989167\n", | |
"min 0.000000 0.000000 0.000000 0.000000\n", | |
"25% 8.000000 8.000000 8.000000 8.000000\n", | |
"50% 21.000000 21.000000 21.000000 21.000000\n", | |
"75% 48.000000 48.000000 48.000000 48.000000\n", | |
"max 5421.000000 5421.000000 5421.000000 5421.000000" | |
] | |
}, | |
"execution_count": 37, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"edaseq_normed.describe()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "b73a68c4", | |
"metadata": {}, | |
"source": [ | |
"What visually looks like:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 38, | |
"id": "ccf3736f", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 1080x360 with 4 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"fig = plt.figure(figsize=(15,5))\n", | |
"\n", | |
"ax = None\n", | |
"for i, col in enumerate(edaseq_normed.columns, start=1):\n", | |
" ax = fig.add_subplot(1, 4, i, sharex=ax, sharey=ax)\n", | |
" ax.set_title(col)\n", | |
" \n", | |
" sns.histplot(x=np.log2(data[col] + 1), y=np.log2(edaseq_normed[col] + 1), ax=ax, cmap='magma')\n", | |
" \n", | |
" ax.set_xlabel(\"log2(counts + 1)\")\n", | |
" ax.set_ylabel(\"log2(EDASeq quantile normed counts + 1)\")\n", | |
" \n", | |
"plt.tight_layout()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "0d206827", | |
"metadata": {}, | |
"source": [ | |
"### DESeq2 offsets" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "f5bcefad", | |
"metadata": {}, | |
"source": [ | |
"EDASeq uses the following equation to compute offsets (see a bit below for verification):\n", | |
"\n", | |
"$$\n", | |
"o = \\log(y_{\\text{norm}} + 0.1) - \\log(y_{\\text{raw}} + 0.1)\n", | |
"$$\n", | |
"\n", | |
"you can compute them directly (note the base of logarithm!):" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 39, | |
"id": "9423222b", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"edaseq_qnorm_offsets = np.log(edaseq_normed + 0.1) - np.log(data + 0.1)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 40, | |
"id": "f0f16d4b", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>mut_1</th>\n", | |
" <th>mut_2</th>\n", | |
" <th>wt_1</th>\n", | |
" <th>wt_2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>YHR055C</th>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YPR161C</th>\n", | |
" <td>-0.110917</td>\n", | |
" <td>-0.136825</td>\n", | |
" <td>0.133175</td>\n", | |
" <td>0.110917</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YOL138C</th>\n", | |
" <td>-0.175273</td>\n", | |
" <td>-0.128795</td>\n", | |
" <td>0.095083</td>\n", | |
" <td>0.142590</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YDR395W</th>\n", | |
" <td>-0.075365</td>\n", | |
" <td>-0.079883</td>\n", | |
" <td>0.100892</td>\n", | |
" <td>0.061748</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YGR129W</th>\n", | |
" <td>-0.188526</td>\n", | |
" <td>-0.166358</td>\n", | |
" <td>0.330854</td>\n", | |
" <td>0.330854</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" mut_1 mut_2 wt_1 wt_2\n", | |
"YHR055C 0.000000 0.000000 0.000000 0.000000\n", | |
"YPR161C -0.110917 -0.136825 0.133175 0.110917\n", | |
"YOL138C -0.175273 -0.128795 0.095083 0.142590\n", | |
"YDR395W -0.075365 -0.079883 0.100892 0.061748\n", | |
"YGR129W -0.188526 -0.166358 0.330854 0.330854" | |
] | |
}, | |
"execution_count": 40, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"edaseq_qnorm_offsets.head()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "386f992a", | |
"metadata": {}, | |
"source": [ | |
"To use them in `DESeq2` remember that the sign of offset has to be flipped (see [this Bioconductor question](https://support.bioconductor.org/p/9136986/)), and the offsets themselves need to be be exponentiated, and geometric means need to be divided out (see [EDASeq vignette](https://bioconductor.org/packages/devel/bioc/vignettes/EDASeq/inst/doc/EDASeq.html#deseq2), and [DESeq2](https://bioconductor.org/packages/release/bioc/vignettes/DESeq2/inst/doc/DESeq2.html) vignette):\n", | |
"\n", | |
"```R\n", | |
"\n", | |
"normFactors <- exp(-1 * offst(dataOffset))\n", | |
"normFactors <- normFactors / exp(rowMeans(log(normFactors)))\n", | |
"normalizationFactors(dds) <- normFactors\n", | |
"\n", | |
"```\n", | |
"\n", | |
"i.e." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 41, | |
"id": "1e185fce", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"edaseq_qnorm_offsets_deseq2 = np.exp(-edaseq_qnorm_offsets)\n", | |
"edaseq_qnorm_offsets_deseq2 = edaseq_qnorm_offsets_deseq2.div(np.exp(np.mean(np.log(edaseq_qnorm_offsets_deseq2), axis=1)), axis=0)\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 42, | |
"id": "b95db718", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>mut_1</th>\n", | |
" <th>mut_2</th>\n", | |
" <th>wt_1</th>\n", | |
" <th>wt_2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>YHR055C</th>\n", | |
" <td>1.000000</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>1.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YPR161C</th>\n", | |
" <td>1.116283</td>\n", | |
" <td>1.145582</td>\n", | |
" <td>0.874513</td>\n", | |
" <td>0.894197</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YOL138C</th>\n", | |
" <td>1.171956</td>\n", | |
" <td>1.118733</td>\n", | |
" <td>0.894329</td>\n", | |
" <td>0.852836</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YDR395W</th>\n", | |
" <td>1.080272</td>\n", | |
" <td>1.085164</td>\n", | |
" <td>0.905703</td>\n", | |
" <td>0.941859</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YGR129W</th>\n", | |
" <td>1.303734</td>\n", | |
" <td>1.275150</td>\n", | |
" <td>0.775577</td>\n", | |
" <td>0.775577</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" mut_1 mut_2 wt_1 wt_2\n", | |
"YHR055C 1.000000 1.000000 1.000000 1.000000\n", | |
"YPR161C 1.116283 1.145582 0.874513 0.894197\n", | |
"YOL138C 1.171956 1.118733 0.894329 0.852836\n", | |
"YDR395W 1.080272 1.085164 0.905703 0.941859\n", | |
"YGR129W 1.303734 1.275150 0.775577 0.775577" | |
] | |
}, | |
"execution_count": 42, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"edaseq_qnorm_offsets_deseq2.head()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "f9cec950", | |
"metadata": {}, | |
"source": [ | |
"The geometric mean of which is:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 43, | |
"id": "2e629bba", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"YHR055C 1.0\n", | |
"YPR161C 1.0\n", | |
"YOL138C 1.0\n", | |
"YDR395W 1.0\n", | |
"YGR129W 1.0\n", | |
" ... \n", | |
"tR(UCU)E 1.0\n", | |
"tS(AGA)B 1.0\n", | |
"snR43 1.0\n", | |
"tL(UAA)D 1.0\n", | |
"tV(AAC)G3 1.0\n", | |
"Length: 7065, dtype: float64" | |
] | |
}, | |
"execution_count": 43, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"from scipy.stats.mstats import gmean\n", | |
"edaseq_qnorm_offsets_deseq2.apply(gmean, axis=1)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "6241c678", | |
"metadata": {}, | |
"source": [ | |
"We can use `round=False` in order to compare to `quantile_normalize`" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 44, | |
"id": "acdd10bf", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"edaseq_normed = quantile_norm_using_edaseq(data, round=False)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 45, | |
"id": "bf4cc3cd", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>mut_1</th>\n", | |
" <th>mut_2</th>\n", | |
" <th>wt_1</th>\n", | |
" <th>wt_2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>YHR055C</th>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YPR161C</th>\n", | |
" <td>34.0</td>\n", | |
" <td>34.5</td>\n", | |
" <td>39.5</td>\n", | |
" <td>37.5</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YOL138C</th>\n", | |
" <td>26.0</td>\n", | |
" <td>29.0</td>\n", | |
" <td>44.0</td>\n", | |
" <td>29.5</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YDR395W</th>\n", | |
" <td>51.0</td>\n", | |
" <td>48.5</td>\n", | |
" <td>51.5</td>\n", | |
" <td>50.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YGR129W</th>\n", | |
" <td>24.0</td>\n", | |
" <td>22.0</td>\n", | |
" <td>7.0</td>\n", | |
" <td>7.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>...</th>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>tR(UCU)E</th>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.5</td>\n", | |
" <td>1.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>tS(AGA)B</th>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.5</td>\n", | |
" <td>2.5</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>snR43</th>\n", | |
" <td>199.0</td>\n", | |
" <td>194.5</td>\n", | |
" <td>13.5</td>\n", | |
" <td>11.5</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>tL(UAA)D</th>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.5</td>\n", | |
" <td>1.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>tV(AAC)G3</th>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.5</td>\n", | |
" <td>1.0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>7065 rows × 4 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" mut_1 mut_2 wt_1 wt_2\n", | |
"YHR055C 0.0 0.0 0.0 0.0\n", | |
"YPR161C 34.0 34.5 39.5 37.5\n", | |
"YOL138C 26.0 29.0 44.0 29.5\n", | |
"YDR395W 51.0 48.5 51.5 50.0\n", | |
"YGR129W 24.0 22.0 7.0 7.0\n", | |
"... ... ... ... ...\n", | |
"tR(UCU)E 0.0 0.0 0.5 1.0\n", | |
"tS(AGA)B 0.0 0.0 0.5 2.5\n", | |
"snR43 199.0 194.5 13.5 11.5\n", | |
"tL(UAA)D 0.0 0.0 0.5 1.0\n", | |
"tV(AAC)G3 0.0 0.0 0.5 1.0\n", | |
"\n", | |
"[7065 rows x 4 columns]" | |
] | |
}, | |
"execution_count": 45, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"edaseq_normed" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "bab0fe78", | |
"metadata": {}, | |
"source": [ | |
"## Qnorm based\n", | |
"\n", | |
"As an alternative to EDASeq, we could use the pythonic [`qnorm`](https://github.com/Maarten-vd-Sande/qnorm) to quantile normalise the data. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 46, | |
"id": "0395cc80", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"from qnorm import quantile_normalize" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 47, | |
"id": "4b39eb8c", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>mut_1</th>\n", | |
" <th>mut_2</th>\n", | |
" <th>wt_1</th>\n", | |
" <th>wt_2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>YHR055C</th>\n", | |
" <td>0.003173</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.083136</td>\n", | |
" <td>0.087941</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YPR161C</th>\n", | |
" <td>34.161538</td>\n", | |
" <td>34.865132</td>\n", | |
" <td>39.916667</td>\n", | |
" <td>37.199074</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YOL138C</th>\n", | |
" <td>26.591667</td>\n", | |
" <td>28.860119</td>\n", | |
" <td>44.608696</td>\n", | |
" <td>29.713235</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YDR395W</th>\n", | |
" <td>51.101351</td>\n", | |
" <td>48.352564</td>\n", | |
" <td>51.692308</td>\n", | |
" <td>49.387097</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YGR129W</th>\n", | |
" <td>24.513158</td>\n", | |
" <td>22.006696</td>\n", | |
" <td>7.614583</td>\n", | |
" <td>7.463889</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>...</th>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>tR(UCU)E</th>\n", | |
" <td>0.003173</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.083136</td>\n", | |
" <td>0.087941</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>tS(AGA)B</th>\n", | |
" <td>0.003173</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.083136</td>\n", | |
" <td>1.733402</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>snR43</th>\n", | |
" <td>201.750000</td>\n", | |
" <td>197.000000</td>\n", | |
" <td>12.624224</td>\n", | |
" <td>11.083871</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>tL(UAA)D</th>\n", | |
" <td>0.003173</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.083136</td>\n", | |
" <td>0.087941</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>tV(AAC)G3</th>\n", | |
" <td>0.003173</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.083136</td>\n", | |
" <td>0.087941</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>7065 rows × 4 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" mut_1 mut_2 wt_1 wt_2\n", | |
"YHR055C 0.003173 0.000000 0.083136 0.087941\n", | |
"YPR161C 34.161538 34.865132 39.916667 37.199074\n", | |
"YOL138C 26.591667 28.860119 44.608696 29.713235\n", | |
"YDR395W 51.101351 48.352564 51.692308 49.387097\n", | |
"YGR129W 24.513158 22.006696 7.614583 7.463889\n", | |
"... ... ... ... ...\n", | |
"tR(UCU)E 0.003173 0.000000 0.083136 0.087941\n", | |
"tS(AGA)B 0.003173 0.000000 0.083136 1.733402\n", | |
"snR43 201.750000 197.000000 12.624224 11.083871\n", | |
"tL(UAA)D 0.003173 0.000000 0.083136 0.087941\n", | |
"tV(AAC)G3 0.003173 0.000000 0.083136 0.087941\n", | |
"\n", | |
"[7065 rows x 4 columns]" | |
] | |
}, | |
"execution_count": 47, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"qnorm_normed = quantile_normalize(data)\n", | |
"qnorm_normed" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 48, | |
"id": "78dad47e", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 1080x360 with 4 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"fig = plt.figure(figsize=(15,5))\n", | |
"\n", | |
"ax = None\n", | |
"for i, col in enumerate(qnorm_normed.columns, start=1):\n", | |
" ax = fig.add_subplot(1, 4, i, sharex=ax, sharey=ax)\n", | |
" ax.set_title(col)\n", | |
" \n", | |
" sns.histplot(x=np.log2(data[col] + 1), y=np.log2(qnorm_normed[col] + 1), ax=ax, cmap='magma')\n", | |
" \n", | |
" ax.set_xlabel(\"log2(counts + 1)\")\n", | |
" ax.set_ylabel(\"log2(qnorm normalised counts + 1)\")\n", | |
" \n", | |
"plt.tight_layout()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "69b2f6b4", | |
"metadata": {}, | |
"source": [ | |
"### Difference between `qnorm` and `EDASeq` \n", | |
"\n", | |
"There should be little practical difference between `EDASeq` and `qnorm`.\n", | |
"To match `EDASeq` behaviour we would need to round the qnorm results though:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 49, | |
"id": "a4e4e802", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"qnorm_normed_round = qnorm_normed.round()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "09e00d4b", | |
"metadata": {}, | |
"source": [ | |
"We can now compute the differences" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 50, | |
"id": "eb09be71", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>mut_1</th>\n", | |
" <th>mut_2</th>\n", | |
" <th>wt_1</th>\n", | |
" <th>wt_2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>YHR055C</th>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YPR161C</th>\n", | |
" <td>0.0</td>\n", | |
" <td>0.5</td>\n", | |
" <td>0.5</td>\n", | |
" <td>-0.5</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YOL138C</th>\n", | |
" <td>1.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0.5</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YDR395W</th>\n", | |
" <td>0.0</td>\n", | |
" <td>-0.5</td>\n", | |
" <td>0.5</td>\n", | |
" <td>-1.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YGR129W</th>\n", | |
" <td>1.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>...</th>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>tR(UCU)E</th>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>-0.5</td>\n", | |
" <td>-1.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>tS(AGA)B</th>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>-0.5</td>\n", | |
" <td>-0.5</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>snR43</th>\n", | |
" <td>3.0</td>\n", | |
" <td>2.5</td>\n", | |
" <td>-0.5</td>\n", | |
" <td>-0.5</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>tL(UAA)D</th>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>-0.5</td>\n", | |
" <td>-1.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>tV(AAC)G3</th>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>-0.5</td>\n", | |
" <td>-1.0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>7065 rows × 4 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" mut_1 mut_2 wt_1 wt_2\n", | |
"YHR055C 0.0 0.0 0.0 0.0\n", | |
"YPR161C 0.0 0.5 0.5 -0.5\n", | |
"YOL138C 1.0 0.0 1.0 0.5\n", | |
"YDR395W 0.0 -0.5 0.5 -1.0\n", | |
"YGR129W 1.0 0.0 1.0 0.0\n", | |
"... ... ... ... ...\n", | |
"tR(UCU)E 0.0 0.0 -0.5 -1.0\n", | |
"tS(AGA)B 0.0 0.0 -0.5 -0.5\n", | |
"snR43 3.0 2.5 -0.5 -0.5\n", | |
"tL(UAA)D 0.0 0.0 -0.5 -1.0\n", | |
"tV(AAC)G3 0.0 0.0 -0.5 -1.0\n", | |
"\n", | |
"[7065 rows x 4 columns]" | |
] | |
}, | |
"execution_count": 50, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"diff_qnorm_minus_edaseq = qnorm_normed_round-edaseq_normed\n", | |
"diff_qnorm_minus_edaseq" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "8176470a", | |
"metadata": {}, | |
"source": [ | |
"We see that the returned results are not identical, although majority of results are similar.\n", | |
"qnorm tends to assign larger counts to most numbers (compared to `EDASeq`).\n", | |
"\n", | |
"This could be due to te fact that `qnorm` \"correctly resolve[s] collisions/ties in the ranks\" (from Github Readme)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 51, | |
"id": "e4a9baf2", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Text(0, 0.5, 'Count')" | |
] | |
}, | |
"execution_count": 51, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"vcs = diff_qnorm_minus_edaseq.stack().value_counts()\n", | |
"\n", | |
"ax = plt.gca()\n", | |
"ax.bar(vcs.index, vcs)\n", | |
"ax.set_yscale('log')\n", | |
"ax.set_xlabel('Difference qnorm(count) - edaseq(count)')\n", | |
"ax.set_ylabel('Count')" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "2ffaa3e4", | |
"metadata": {}, | |
"source": [ | |
"### DESeq2 offsets\n", | |
"\n", | |
"The offsets for `qnorm` normalised counts should be computed like the ones for `EDASeq` normalised data." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "ee13a23d", | |
"metadata": {}, | |
"source": [ | |
"# Normalisation of GC content and/or Length" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "abed3840", | |
"metadata": {}, | |
"source": [ | |
"## EDASeq-based" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "3a2f53f5", | |
"metadata": {}, | |
"source": [ | |
"EDASeq can normalie [only one covariate](https://support.bioconductor.org/p/55405/) at a time (usually GC content).\n", | |
"\n", | |
"The funciton below implements this in python" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 52, | |
"id": "e8fb3c8c", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"def normalise_by_covariate_and_quantiles_edaseq(data: pd.DataFrame, covariate: pd.Series, round: bool = False) -> tuple[pd.DataFrame, pd.DataFrame]:\n", | |
" \"\"\"\n", | |
" Normalises counts in `data` by explaining away the covariate `covariate` (usually GC content)\n", | |
" Returns the covariate-corrected data, which as also been quantile normalised\n", | |
" \n", | |
" :param data: counts to normalise\n", | |
" :param covariate: the covariate (e.g. GC content)\n", | |
" :param round: whether round the result\n", | |
" \n", | |
" :return: tuple (normalised_data, offsets) where\n", | |
" normalised_data is the data after normalisation\n", | |
" offsets is the offset s.t. offset = log(normalised + 0.1) - log(raw + 0.1)\n", | |
" \"\"\"\n", | |
" \n", | |
" assert data.index.equals(covariate.index)\n", | |
" \n", | |
" feature_data = pd.concat({'covariate': covariate}, axis=1)\n", | |
" \n", | |
" with localconverter(ro.default_converter + pandas2ri.converter) as co:\n", | |
" r_data = co.py2rpy(data)\n", | |
" r_feature_data = co.py2rpy(feature_data)\n", | |
" \n", | |
" r_data_matrix = r_base.as_matrix(r_data)\n", | |
" \n", | |
" r_seq_expression_set = r_edaseq.newSeqExpressionSet(counts=r_data_matrix,\n", | |
" featureData=r_feature_data)\n", | |
" \n", | |
" \n", | |
" r_normed_within = r_edaseq.withinLaneNormalization(r_seq_expression_set, 'covariate',\n", | |
" round=round,\n", | |
" which='full', offset=True)\n", | |
" r_normed = r_edaseq.betweenLaneNormalization(r_normed_within, which='full',\n", | |
" offset=True, round=round)\n", | |
" \n", | |
" r_offsets = r_edaseq.offst(r_normed)\n", | |
" r_normcounts = r_edaseq.normCounts(r_normed)\n", | |
" \n", | |
" \n", | |
" # Convert back to pandas DF\n", | |
" with localconverter(ro.default_converter + pandas2ri.converter) as co:\n", | |
" offsets = co.rpy2py(r_base.as_data_frame(r_offsets))\n", | |
" normed = co.rpy2py(r_base.as_data_frame(r_normcounts))\n", | |
" \n", | |
" if round == True:\n", | |
" print('Rounding was used, offset counts might not be accurate')\n", | |
" \n", | |
" return normed, offsets\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 53, | |
"id": "93a1eab5", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Rounding was used, offset counts might not be accurate\n" | |
] | |
} | |
], | |
"source": [ | |
"edaseq_normed_gc_corrected, offsets_edaseq_gc_corrected = normalise_by_covariate_and_quantiles_edaseq(\n", | |
" data_with_features, \n", | |
" covariate=yeast_gc,\n", | |
" round=True,\n", | |
")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 54, | |
"id": "5d99d89c", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>mut_1</th>\n", | |
" <th>mut_2</th>\n", | |
" <th>wt_1</th>\n", | |
" <th>wt_2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>YAL001C</th>\n", | |
" <td>114.0</td>\n", | |
" <td>122.0</td>\n", | |
" <td>49.0</td>\n", | |
" <td>70.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL002W</th>\n", | |
" <td>32.0</td>\n", | |
" <td>40.0</td>\n", | |
" <td>106.0</td>\n", | |
" <td>124.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL003W</th>\n", | |
" <td>886.0</td>\n", | |
" <td>885.0</td>\n", | |
" <td>128.0</td>\n", | |
" <td>126.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL004W</th>\n", | |
" <td>60.0</td>\n", | |
" <td>73.0</td>\n", | |
" <td>132.0</td>\n", | |
" <td>136.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL005C</th>\n", | |
" <td>190.0</td>\n", | |
" <td>190.0</td>\n", | |
" <td>286.0</td>\n", | |
" <td>304.0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" mut_1 mut_2 wt_1 wt_2\n", | |
"YAL001C 114.0 122.0 49.0 70.0\n", | |
"YAL002W 32.0 40.0 106.0 124.0\n", | |
"YAL003W 886.0 885.0 128.0 126.0\n", | |
"YAL004W 60.0 73.0 132.0 136.0\n", | |
"YAL005C 190.0 190.0 286.0 304.0" | |
] | |
}, | |
"execution_count": 54, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"edaseq_normed_gc_corrected.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 55, | |
"id": "c5cce9d0", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 1080x360 with 4 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"fig = plt.figure(figsize=(15,5))\n", | |
"\n", | |
"ax = None\n", | |
"for i, col in enumerate(data_with_features.columns, start=1):\n", | |
" ax = fig.add_subplot(1, 4, i, sharex=ax, sharey=ax)\n", | |
" ax.set_title(col)\n", | |
" \n", | |
" sns.histplot(x=np.log2(data_with_features[col] + 1), y=np.log2(edaseq_normed_gc_corrected[col] + 1), ax=ax, cmap='magma')\n", | |
" \n", | |
" ax.set_xlabel(\"log2(counts + 1)\")\n", | |
" ax.set_ylabel(\"log2(EDASeq normalised counts, with GC correction + 1)\")\n", | |
" \n", | |
"plt.tight_layout()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "a674419e", | |
"metadata": {}, | |
"source": [ | |
"### Effect of GC correction\n", | |
"\n", | |
"Plot comparing the data before and after normalisation" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 56, | |
"id": "92268cbd", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 1080x360 with 4 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"fig = plt.figure(figsize=(15,5))\n", | |
"\n", | |
"ax = None\n", | |
"for i, col in enumerate(data_with_features.columns, start=1):\n", | |
" ax = fig.add_subplot(1, 4, i, sharex=ax, sharey=ax)\n", | |
" ax.set_title(col)\n", | |
" \n", | |
" sns.histplot(x=np.log2(edaseq_normed.loc[edaseq_normed_gc_corrected.index, col] + 1), y=np.log2(edaseq_normed_gc_corrected[col] + 1), ax=ax, cmap='magma')\n", | |
" \n", | |
" ax.set_xlabel(\"log2(EDASeq normalised counts,\\nwithout GC correction + 1)\")\n", | |
" ax.set_ylabel(\"log2(EDASeq normalised counts,\\nwith GC correction + 1)\")\n", | |
" \n", | |
"plt.tight_layout()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "01331161", | |
"metadata": {}, | |
"source": [ | |
"We can see that GC content effect has been normalised away" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 57, | |
"id": "05624f42", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Text(0.5, 1.0, 'With GC Correction')" | |
] | |
}, | |
"execution_count": 57, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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6KPauHFjoN7ehQsXZvW4Pvjgg2V5jx100EG67777OtOHHHJIyfcJIB7mzJmjVatWSVLnLRId1q1b19nw6E3Q+4Ez99u1cf36669r9uzZmjBhQo/77shfSN4wMsvd9RjfeOONnPvOdcyvvfZawcccJO9rr70WOG8Ymce8fPnyrMceffTRvPedOdNz375985r5uRj11fH8rvnz/VwElbnfzEm/OtJxf3/1tO9y1FeY80ghn4sw75Go3l/YWcU2esMI02BGdZg7d27WRGlz587V5Zdfnnf+0aNHa/Xq1VnpfO26665ZJ/wgeW+88cas9Le+9a3OSdsAVI+6urqsWUyDDNc1s6z1S4P09IbZb5i8YUVV7qTW1/Dhw7Nu2xk+vKfb31O6fum/4IILtGrVKs2dOzfQcnFhjzmqOqupqen8TtGRzleU75Go6iupxxzlZxIBGr1mNtzdN5WyMMXU3TqqQRolQC4PPfRQVnrx4sWB3l8d9/P2lM6lux6HfG3ZsiVnGkBhkhAjMxsWL730ki644ILO9K233pp34+KYY47RI4880pk+9thjS7rfjvxhylyIMOWO8pjjUF9NTU36+Mc/LndXXV2dbr/99kCjoYKuj16M+io0f6Ey9/v000/rS1/6Umf6hhtu0JQpU/LKG9X7q9D8hUrqMUdVX9hZkHt6H+r9KfExY8aMznuFgq7T212DGciUeUW2u3RvwkxaEcagQYNypgEULFExctKkSZ29DOPHj+/1i1fmPZddl9l48803877nMuh+i5U3rKjKndT6qq+v74xrM2fOLNus+2GPOao6mzZtWmfv7uDBg3M2eLuK8j0SVX0l9Zij/EwiWKM3UesZNDQ0dJ5AamtrA63TG6bBjOowZsyYnOnedHdfR76OOuqorHSQ4feTJ0/OSh900EF55wWQU6JipCSNGzdONTU1uvLKKwPl69u3r2prayWlJngKOhFMofsNmzesqMqd1PoaM2aMBg0aFOj7VzGEPeao6mz8+PGSpK9//euB80b5HomqvpJ6zFF+JqtdzuHNZnZOx5+Shmek5e4/LGXBwqqvr9fMmTM1b968wFcZGxoatGDBAknBG8woTFNTk6655hpdffXViViHteuQ4iBDjKP0zDPPZKWXLVsWUUmA5EtyjJSCDSHtes/lZz7zGa1evVp33XVX4HN20KGrxcobVlTlTmp9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vVq7uGgv1Z2NGzfW3nHHHbv21uj90pe+tH7r1q013//+90cVsp987um9WVLHOPEaSQdLer6QnQEAUEmIkQCAardixYp+J5988sRp06ZteeaZZwbvv//+284777yma6+9do+NGzf2ueuuu16eP3/+sMGDB7dde+21b0jSxIkTP3D//fev/OIXvzh27dq1dfvtt98BxxxzzDtz585d190+Tj/99Hfvv//+giePzKend2nG362S7nH33xe6QwAAKggxEgBQ9dauXdv/Zz/72ctTpkxZM3ny5P3vvvvukUuXLv3rT37yk2Hf+MY3dps8efL27vLdcMMN60499dQBf/3rX/9cyvL1uoCxuzdKukepiTmel/R0KQsEAEBSECMBAJD22GOP5mnTpm2vra3VpEmTtk+fPv2dmpoaHXroodvWrVtXF3X58hnefKykRkmrJZmkPc2sgeUYAADVjhgJAIDUr1+/zmWTampq1L9/f5ek2tpatbW1WZ8+fby9vb3z+c3NzVbO8uUzvPkGSSe6+wpJMrNJSl3VnlLKggEAkADESAAAejF+/PjmBx54YJgkPf744wNfffXVOknaZZdd2rZu3drr6OOw8mn09u0I5pLk7i+ZWd8SlgkAgKQgRgIAYmPk8F12FHPG5ZHDd9lRjNc555xzNt19990j99tvvwMOPvjgrePGjXtPksaMGdM2ZcqULRMnTvzA9OnT3+5pIqspU6bs+/LLL/ffvn177ejRoyd/97vfXf3xj3/8nXz3n9dEVmZ2h6QfpdNnK3XvEgAA1Y4YCQCIjVKuqduTfffdd8fKlStf7Ejfe++9q7t77Pe///3K7vLPnz//773tY9myZaGOK59G72ck/Yek2Urdr7RE0nfD7BQAgApBjAQAIObyafT2kfS/7n6jJJlZraTIZ+ACACAGiJEAABTB008/PeCcc87ZO3Nbv3792pcvX/7XsK+dT6P3IUknSNqSTg+QtFDSEWF3DgBAwhEjAQAogmnTpm0v1Xq9+cyU1d/dO4K50n8PLEVhAABIGGIkAAAxl0+jd6uZHdqRMLMpkraXrkgAACQGMRIAgJjLZ3jz5yX9wsxeS6d3k/TJkpUIAIDk+LyIkQAAxFqvjV53/6OZ7SdpX6Vmpvyru7eUvGQAAMQcMRIAgPjLp6dX6QD+QonLAgBA4hAjAQBxcelnz993y+amfsV6vcHD6nfc+N07Srb2b1NTU+3tt98+4rLLLtvQ03P+8Ic/DPjsZz87bsuWLbU1NTX+5S9/+fVPf/rTm4LsJ69GLwAAAAAg3rZsbup3xX4vF63Re13oxYJy27hxY+0dd9yxa65G7+DBg9t/9KMf/f2DH/xg8+rVq/t+6EMf2v+MM854p76+vi3f/eQzkRUAAAAAADtZsWJFv7333vsDn/zkJ8dNnDjxA6eddtrev/nNb4Yceuih+40bN+7Ahx9+eOCll166+5VXXjm6I8/EiRM/sGLFin5f/OIXx65du7Zuv/32O+Ciiy4a293rT548ufmDH/xgsySNHz++ZcSIEa2vv/56oM7bHp+cORtld9z9mSA7AgCgUhAjAQB439q1a/v/7Gc/e3nKlClrJk+evP/dd989cunSpX/9yU9+Muwb3/jGbpMnT+52ZYMbbrhh3amnnjog3/V5H3744YEtLS12wAEHNAcpX64W8g3p3/0lTZX0vFKTdEyW9JSkI4PsCACACkKMBAAgbY899mieNm3adkmaNGnS9unTp79TU1OjQw89dNt11123e0+N3iDWrFnT99xzz/2HO+644++1tbWB8vY4vNndj3P34yStkXSou0919ymSDpG0KlSJAQBIMGIkAADv69evn3f8XVNTo/79+7sk1dbWqq2tzfr06ePt7e2dz29ubrYgr//WW2/VzJw5c8KVV1756vHHH781aPnyuad3P3f/U0fC3V+QdHDQHQEAUIGIkQAA9GL8+PHNzz333CBJevzxxwe++uqrdZK0yy67tG3dujVnm/S9996zj370oxPOOuusjeedd16gWZs75HMD8F/M7HZJP5bkkv5V0l8K2RkAABWGGAkAiI3Bw+p3FHPG5cHD6ncU43XOOeecTXfffffI/fbb74CDDz5467hx496TpDFjxrRNmTJly8SJEz8wffr0t+fOnbuua94777xz+B//+MfBmzZt6vOTn/ykPr3t70cccUTeQ6bzafSeK+kzki5Jp5dIujXfHQAA4mfOnDlatar7UbgrV66UJM2ePbvbx7ds2aLBgwcXlFeSJkyYkPPxhCFGAgBio5Rr6vZk33333bFy5coXO9L33nvv6u4e+/3vf7+yu/zz58//e67X/+xnP/vWZz/72bfClLHXRq+7v2dm35P0gLuXvRIBAMW3atUqPfvis9Kwbh5M33Lz7KvP7vzYZmlwv8Fq27pVY7rJ2jE+afNzz3W73/WBSxpvxEgAAOKv10avmZ0m6VuS+kna28wOlnStu59W4rIBAEppmNR+bHuvT8tU80iNtE0aI+l8BZqDQpJ0h7z3JyUIMRIAgOJ4+umnB5xzzjl7Z27r169f+/Lly0MP2M5nePNVkqZJekSS3P05MxsfdscAAFQAYiQAAEUwbdq07fmu1xtUPrM3t7r728XcqZkNM7NfmtlfzewvZvbhYr4+AABlQowEACDm8unpfcHM/kVSrZlNlDRb0h9C7vd/Jf3O3c80s36SBoZ8PQBVLNekTBITM6GkiJEAAMRcPo3eiyV9VVKzpHskPSjp64Xu0MyGSjpa0r9JkrvvkFSUqbABVKeckzJJTMyEUiJGAgAQc/nM3rxNqYD+VTOrlTTI3d8Lsc9/kLRB0g/M7CBJyyRd4u5bQ7wmgGo3LPikTBITMyEcYiQAAPGXz+zNP5H075LalAq+u5jZje7+rRD7PFTSxe7+lJn9r6TLJH2ty34vlHShJO21114F7gpAOYVZ+3XdutRa5GPHjg2cf+XKlVU3ADTskO5169apgDY+uogiRhIfAQA9ueA/Lth349sb+xXr9UbuMnLH7bfcXvCSfJdddtmY66+/PufAuE984hPjH3rooV1GjhzZmrnebzHlM7z5AHd/x8zOlvSApK8oFdgLDejrJK1z96fS6V8qFdCzuPttkm6TpKlTp9KVAiTAqlWr9Oyf/qz2gSN2esx2pD7Gy/7W/Xmv5t2NGtSnTe+1vt7t4/1aUgON31v9x50e2761TyIbvWEaritXrpQ3v6u9Brd1mzdXfb2ypVZWNySRdRZDZY+RxEcAQE82vr2x35uHvVm0Rq+e6v0pucyZM2e33hq95513XtMll1zy5rnnnrt3rueFkU+jt6+Z9ZX0j5K+4+4tZlZwkHX39Wa21sz2dfcVko6XVJKpqQGUX/vAEXrvgFMD5xu4tFF7Dd6hK6ZuCZz30w/vom0J7LbMdZFAyn2hoGbrNu0/rK2g+rpu6WCtbQmcDd0jRgIAqtYVV1wxun///n7FFVe8ef755+/54osvDnjyySdfuu+++4bceuuto5qbm2v222+/AyZNmrR93rx5f+/uNWbOnLllxYoVxWuodyOfRu9cSaslPS9piZmNk/ROyP1eLOnu9KyUL0s6N+TrASURZriuxKy+6F2YiwTMbxQLxEgAQNU67rjjtnz7298eLenN5557buCOHTtqmpubbcmSJYOPP/74d5YsWbJLqdbeDSKfiazmSJqTsWmNmR0XZqfu/pykqWFeAyiHUMN1t7yplStXFtRoDnN/qxRuCR4a6kD+4hwjw973HeZcUKr7+0t5sTHKpc/C5K3G+gpzzGHja1SfC+or2H6jOuYo6ysqRx555LaGhoZBmzZtqqmrq/PJkydveeyxxwY+8cQTQ26++eZXrrrqqqiLKClHo9fM/tXdf2xml/bwlBtLVCYgVsL0xHnzu93eUynlvufyrc191NZX2mAbeihU6lexl+Bh+R0gP0mIkaGGz4e4aCelvvhteHtD98uI5Tp/SdJGaYCbNjc17Vyu9O9SLCEWqr62vaXB/fv2eJ99PvfYb9mxhfpKy1VfUi8xMkR9SaWNkYVeSKe+ijtPSKj6knLXWYT1FZW6ujofO3Zs8y233FI/bdq0LQcddND2xYsXD1mzZk3dIYccEmY1g6LK1dM7KP17SDkKAlSivQYXds/lpx/eRduGWdmX4GH5HSBviYiRUVy065wobViBy4j9pkZjWqJZQqzQ+ur/5/ul9ncLOud33mM/jPrKV6gYGWF9SYXVGfUVwTwhCa2vqBxxxBFbbrnlltG33nrr6ilTpmy//PLLxx544IHbampq1KdPH29ubra6urpID7DHRq+7z03/vqZ8xQEAIP6qIUYW+gWbidIAIDojdxm5I+yMyzu9Xi+OOeaYd+fMmTNm+vTpW4cOHdpeV1fnH/nIR7ZI0tlnn71h//33P+DAAw/c1tNEVrNmzdr7ySefHLJp06Y+o0ePnnzZZZe99oUvfKH77vIC5RrePKenxyTJ3ZM14BwAgCIhRgIA4ijMmrqFOv30099tbW19piO9evXqFzr+vvXWW1+V9Gqu/PPnz++2MVxMuYY3Lyv1zgEASChiJAAACZFreHNjOQuC8kjijJoAEDfESAAA8rd+/fraY489dt+u2x955JEVY8aM2XmGtiLrdckiMxsl6SuSDpDUv2O7u08vYblQIlHNhPfKltpCiwwAsUWMBACgd2PGjGmLcr3eXhu9ku6W9DNJH5X075IaJPUwhzeSIIqZ8C5eMlQrV67ssaeXNc8AJBQxEgCAmMun0TvS3e8ws0vc/VFJj5rZo6UuGCrLe22mbb6l53XgWPMMQDIRIwEAiLl8Gr0dCw+8bmYflfSapO673IBchiVvDUIA6AUxEgCAmMun0Xudme0i6YuSbpY0VNIXSloqAACSgRgJAIiNSy749L7vbmzqV6zXGzKyfsf/3v79gpdBuuyyy8Zcf/31PQ6+XLVqVd+zzz577w0bNvStqalRQ0PDhq997WtvFrq/nvTa6HX3+9N/vi3puGIXAACApCJGAgDi5N2NTf0aNr5VtEZv2KUK5syZs1uuRm/fvn11ww03rDvyyCO3bdq0qeaQQw454JRTTnlnypQp74XcdZaa3p5gZnub2Y1m9iszm9fxU8xCAACQRMRIAEA1u+KKK0Zfd911u0rS+eefv+fhhx8+SZLuu+++ISeffPI/NDc31+y3334HnHbaaXt3l3/cuHEtRx555DZJGj58ePs+++yz/ZVXXilao71DPsObfyPpDknz1TndUHyw7iwAIEK/UYxjJAAApXTcccdt+fa3vz1a0pvPPffcwB07dtQ0NzfbkiVLBh9//PHvLFmyZJd8lypasWJFvz//+c8DjznmmOBLxfQin0bve+4+p9g7LhbWnQWwo92kzVLNI70OXtnZZmlb6za9rsImPntd0pb0BbQkaW5ulnYUUGebpWZvLkmZEirWMRIAgFI68sgjtzU0NAzatGlTTV1dnU+ePHnLY489NvCJJ54YcvPNN79y1VVX5fU6b7/9ds3HPvaxfa6//vq1I0aMKPpF5Hwavf9rZldJWiip85uOuz9T7MIUKop1Z69bOjhwHgCoBG1tbVV3kSCH2MdIAABKpa6uzseOHdt8yy231E+bNm3LQQcdtH3x4sVD1qxZU3fIIYfkdV9uc3OzffSjH93nE5/4xFsNDQ2bS1HOfBq9H5T0KUnT9f7QLU+nASBy/WpcrcOssCWxHqnRwG0DNWrr1oKXxRrWzS0ScVdXV6eWgS2B66zmkRrVbqqVWltLVLLEIUYCAKraEUccseWWW24Zfeutt66eMmXK9ssvv3zsgQceuK2mpkZ9+vTx5uZmq6ur6/ZKeXt7u84666xxkyZNeu/qq69+o1RlzKfRe4akf3D3HaUqBIDiam5uLqgnLtJeuPY2rXm3tqBRFM1tJhX97g/0pK6uTqNaW6vqIkEOxEgAQGwMGVm/I+yMy11fr7fnHHPMMe/OmTNnzPTp07cOHTq0va6uzj/ykY9skaSzzz57w/7773/AgQceuG3evHl/75p30aJFg3/zm9+MnDhx4vb99tvvAEm65pprXv3kJz/5dhEPI69G7/OShkkq+npJQNytW7dONdveVv8/39/7k7tqa9Gqt/sU1Ijb3mbSxsLvUW1ra1MUd52Hqi9vV0t78EYUEDFiJAAgNsKsqVuo008//d3W1tbO23pWr179Qsfft95666uSXu0p70knnbTF3ZeVuIh5NXpHS/qrmf1R2fcrnVayUiXAG9tqtGPlyh5nb841+3OuWaN7yysxazR6V1tbq90K6ImLthfONKRvW0H32H/64V20bTANZkSCGAkAQMzl0+jNb8qtKvNem2mbb9Gzrz7b/RPSd3Z1+/hGaYCbNjc1dZu1o29v83PP7fRYjys7oyTGjh2rN5r7FDxR2oQh2wpvxI0o/B7Vum11kdxzGba+Rg9khCgShxgJAEAv1q9fX3vsscfu23X7I488smLMmDFtpd5/zkavmdVIusXdDyx1QRJpmAprlPymRmNaVPD9cACA6MU9RkZ1e8aad2v1Xvu2wpbEkqQWaa3KPzt4mPqq2bZR29pbtaYm+LwE1FeZbwGKqL6kwuuM+krQLWYR1lfcjRkzpi3f9XpLIWej193bzex5M9vL3V8pV6FQOuFOIK16Y1sBJwAAqEDESABADLS3t7dbTU1NVfeMtbe3m95fRWEn+Qxv3k3Si2b2tKStHRu5X6kaud5tqWF2XQB4X2xjZFS3Z1y3dLDWtgzRloFbCh4NtWeI0VCFzksQpr76//l+DW5/V3v23Ry4zqivMt8CFFF9SYXXGfWVoFvMoqmvFzZs2HDAqFGj3q7Whm97e7tt2LBhF0kv9PScfBq91xSvSIhaqBPI03eqbw1rcwJABmIkACAyra2tF6xfv/729evXH6j3pwaqNu2SXmhtbb2gpyf02uh190fNbLSkD6U3Pe3uLM1QjWpqNW5IM7PrAkUS5T2XLdYsDQy+W2QjRgIAojRlypQ3JUU+uijuem30mtk/SfqWpEckmaSbzezL7v7LEpcNFWRHu0mbmRQAQGUhRgIAEH/5DG/+qqQPdVy5NrNRkhZLIqADQAjR3nNZpxa1BM6LnRAjAQCIuXwavTVdhmptVPWOF0eB+tW4WoclalIAAMgHMRIAgJjLp9H7OzN7UNI96fQnJT1QuiIBAJAYxEgAAGIun4msvmxmH5f0EaXuV7rN3X9d8pIBABBzxEgAAOIvn55eufu9ku4t5o7NrFbSUkmvunvwG9oAAIgBYiQAAPHW631HZvYxM1tpZm+b2Ttm9q6ZvVOEfV8i6S9FeB0AACJBjAQAIP7y6en9pqRZ7l604GtmYyV9VNI3JF0a5rWiWueyuc2k4JOmAgAqS6xjJAAAyG+GyTeKGczTbpL0n5KCT+ULAEB8ECMBAIi5fHp6l5rZzyT9RlJzx0Z3/1UhOzSzUyW96e7LzOzYHM+7UNKFkrTXXnv1+HpRrXP56Yd30bbBwZfQAQBUlLLHyHzjIwAASMmn0TtU0jZJJ2Zsc0kFBXSlZrg8zcxOkdRf0lAz+7G7/2vmk9z9Nkm3SdLUqVO9wH0BAFBKZY+RxEcAAILJZ8mic4u5Q3f/L0n/JUnpq9hf6trgBSBps1TzSA93IHQMTujudvTNkvpJ6yXdoZ2/D29M/x7ZTdb1koYFKiRQ3YiRAADEX4+NXjO7QtJ33f2tHh6fLmmguxcwgxSAXPrXumr6DtHEPSZ2+/jKlSslqfvH95C2bNmiwYO7n6BtQzrvsIk75x0macKECQWVGagmxEgAAJIjV0/vnyTNN7P3JD0jaYNSQ60mSjpY0mJJ/y/Mzt39EUmPhHmNqOxot9w9cbm0SGvVfS9cb16XtGXduuD7RMFqtr3V7ezg9l5qVRLvP7T7jG2temVLbY+zg7+xLfXeGT1w57lqmttNkyZO1Jw5c7rNO3v2bEnq8fFcwuSNtc3l7xmX6B2vYsRIAAASosdGr7vfJ+k+M5uo1D1Gu0l6R9KPJV3o7tvLU0QgOrl6PVeufFeSNHGfMd0+vm5dqySp/9ix3T6+I93j2n/8zj2uk3rZN7JF1TMu0TterYiRAAAkRz739K6UtLIMZUmUfjWu1mGm9mODryhR85sa7dkina/gsz/fIdewHhpRKL6OXtFcjxXaY1qxPa4RGD2wXf3H0zOO8iNGAgAQf7nu6a2VdIGksZJ+5+6/z3jsCne/rgzlA5AwUQwHf2VLrSYVWF4UptqHgxMjAQBIjlw9vXMlDZT0tKQ5Zvaou1+afuxjkgjoALIwHLw6DBgwQGN7GO5dRcPBiZEAACRErkbvNHefLElm9h1J3zWzX0n6Z6mAcbkAKh7DwavD2LFjSzKUPGGIkQAAJESuRm+/jj/cvVXShWZ2paT/U/dzoCIhSjH8NNfQU0lqbuM7IBA7m3uY8bq32a73KFmJkiQRMbKn873Uyzk/5O0GVqfC3l+S1Brd8PlC66tm21tS/74FxUjqq8DvFJuLX19S6deyL+Q7GPUVwXfWzQWuCBFxfaFnuRq9S83sZHf/XccGd7/WzF6TdGvpi4ZSKNXw01xDTyVpwMqV2tJ5lgAQtQEDBmhiD0OQe5vtukKGJ4cV+xjZ2/8p1zk/7O0GuWZEz/n+krTOU8vydTdpYymHz4epL2lM+pi7Lxf11VXh9SVJI9JLN47dY+djDlNfUmnXsi/8Oxj11VUpv7Pmqq/UvnuusyjrC7nlWrLoX3vYfruk20tWIpRUqYaf9pZ39uzZevbFZ7lqBsQEQ5TDSUKMzHW+z3y83LOax3U2deqrsNcuxb6jPOao6oz66vm1i73fKI+Z+BqdXpcsMrOPdbP5bUl/cvc3i18kVKLerwhz1QxA8hAjAQCIv14bvZLOl/RhSQ+n08dKelLSJDO71t1/VKKyoYLE9YowAIREjAQAIObyafS2S9rf3d+QJDMbrdT9SodJWiKJgA4AqFbESAAAYq6HGyyzjO8I5mlvSprk7m9JailNsQAASARiJAAAMZdPT+9jZna/pF+k02dKWmJmg5RavAIAgGpFjAQAIObyafT+h6SPSTpSkklqlHSvu7uk40pYNgAA4o4YCQBAzPXa6HV3N7PHJe2Q5JKeTgdzAACqGjESAID46/WeXjP7J0lPKzVk658kPWVmZ5a6YAAAxB0xEgCA+MtnePNXJX2oY71BMxslabGkX5ayYAAAJAAxEgCAmMtn9uaajmCetjHPfAAAVDpiJAAAMZdPT+/vzOxBSfek05+U9EDpigQA1aNm21vq/+f7u33M3ntHkuT9h+78YFurXtlSq+uWDu427xvbUu2u0QPbd3rslS21mlRgebETYiQAADGXz0RWXzazj0v6iFIzU97m7r8ueckAoMJNmDAh5+MrV74rSZq4z5idHlu3rlWS1H/s2G7z7li5MvX4+Ik7PTYpj30jP8RIAADiL5+eXrn7vZLuLXFZCtZTT0nOXhJJamstZbEAIKfZs2fn9ficOXMKfu1C8iKYuMdIAACqXY+NXjN7V6nlF3Z6SKlVGnpoSZZXrt6KXL0k7z++oxTFAgBUsKTESAAAkKPR6+5DylmQQuXqKemtp2P27Nl66YVnur0nLtf9cJLU3GZBiwoAqBBJiZEAACDP4c2VKlcvca774SRpwMqV2qItJSkXAAAAAKA4qrrRG7aX+NlXny1JuQAAAAAAxVHVjd4orZd0R7e3g6UWeZSkkT3kG1aaIgEAAABAxaHRG4U+Um2/QRo2sfuh0xvSQ6u7e3yYWGoEAAAAAPJFozcKg6WJe0zMOXRaYqkRAAAAAAiLRm8Ym6WaR2q6f6xjjqudJ4aWNkvaoyQlAgAAAABkoNFboN6GGK9MD1GeuEc3Q5j3YIgyAAAAAJQDjd4C5Zr5OfNxhigDAAAAQHR6GJtbOma2p5k9bGZ/MbMXzeyScpcBAIA4IkYCAFB8UfT0tkr6ors/Y2ZDJC0zs0Xu/ucIygIAQJwQIwEAKLKy9/S6++vu/kz673cl/UVM6wQAADESAIASKHujN5OZjZd0iKSnoiwHAABxQ4wEAKA4Imv0mtlgSfdK+ry7v9PN4xea2VIzW7phw4byFxAAgIjkipHERwAAgomk0WtmfZUK5ne7+6+6e4673+buU9196qhRo8pbQAAAItJbjCQ+AgAQTBSzN5ukOyT9xd1vLPf+AQCIK2IkAADFF0VP70ckfUrSdDN7Lv1zSgTlAAAgboiRAAAUWdmXLHL3xyVZufcLAEDcESMBACi+SGdvBgAAAACglGj0AgAAAAAqVtmHNwMAAABAvubMmaNVq1Z1pleuXClJmj17due2CRMmZKWBTDR6AQAAACTGgAEDoi4CEoZGLwAAAIDYogcXYXFPLwAAAACgYtHoBQAAAABULIY3AwFkTqRQzkkUwkzgwOQPAAAAqGY0eoECRTmJQph9M/kDAAAAqgmNXiCAqHpDw+yXHlwAAABUM+7pBQAAAABULBq9QAI1NTXp4osv1saNGwPn/fWvf62jjz5a8+bNK0HJAAAAgHih0QskUGNjo5YvX67GxsbAeW+66SZJ0g033FDkUgEAAADxQ6MXSJimpiYtWLBA7q4FCxYE6u399a9/LXeXJLk7vb0AAACoeExkBZRJb0sH5btsUGNjY2fDtb29XY2Njbr00kvzKkNHL2+HG264QaeddlpeeQEkW5hzUJTLplXjUnFhjpn6Kjxvd/mpr2D7jusSiFEdc1LrqxLR6AUiUujSQYsWLVJLS4skqaWlRQsXLsy70dvRWO4pDaB6RLX0WVKXXEviMVNf5c8fxX6rsb7CiPKYk1hflYJGL1AmxbqSN2PGDD3wwANqaWlR3759deKJJ+ad18yyGrpmVpQyAYi/qJY+C3vuq8al4pK4TB31Vb79VmN9hZXU8x+Kh3t6gYRpaGjobKzW1NSooaEh77yf//zns9Jf/OIXi1k0AAAAIHZo9AIJU19fr5kzZ8rMNHPmTI0cOTLvvGeccUZng9nMuJ8XAAAAFY9GL1Cgc845R0cffbTOO++8suefNWuWBg4cWFCjtaO3l15eAAAAVAMavUCBVq9eLUlZs/KVK//8+fO1bdu2gpYcOuOMM7RkyRJ6eQEAAFAVaPQCBTjnnHOy0kF7a8PkD7NOLwAAAFBtmL25ykW1FmBU60UWS0cvbYegvbVh8odZp7fckvgeicP7CwAAAMVDTy86DRgwoOD1w8LkjXrfSdPdOr1JkNT3SLW9vwAAACoNPb1VLonrllV7D1uYdXrLLYnvkWp/fwEAAFQaenqBAowfPz4rPWHChLLlD7NOLwAAAFBtaPQCBfjhD3+Ylb7zzjvLlj/MOr0AAABAtaHRCxSoo7c2aC9vMfI3NDRo8uTJ9PICAAAAveCeXqBAXXtry5m/vr5eN998c6j9AwAAANWAnl4AAAAAQMWi0QsAAAAAqFiRDG82s5Ml/a+kWkm3u/v1UZQD2Y4++ujOv5csWVK2vFHvu1BJPWbqKxn1hepVrhiZxM9UlJ/HJB4z9VXeWBMG9VW+/Sb1+wjCKXtPr5nVSrpF0kxJB0j6ZzM7oNzlAAAgboiRAAAUXxTDm6dJWuXuL7v7Dkk/lXR6BOVAhswrT92lS5U36n0XKqnHTH0lo75Q1coSI5P4mYry85jEY6a+yhtrwqC+gknqMfOdIlpRDG/eQ9LajPQ6SYcV44XnzJmjVatWdaZXrlwpSZo9e3bntgkTJmSle8ofJm93+cPk7S0/gMpQyvNIqc5BnL+KrmQxEgCAahVFo9e62eY7PcnsQkkXStJee+1V0I4GDBhQUL6weaPeN4DKENV5hPNXpHqNkcWIjwAAVJMoGr3rJO2ZkR4r6bWuT3L32yTdJklTp07dqVHcnbA9CWHyR5UXQOVI4jmI81fR9RojC4mPAABUsyju6f2jpIlmtreZ9ZN0lqR5EZQDAIC4IUYCAFBkZW/0unurpM9JelDSXyT93N1fLHc5kK3rtOlBplEPkzfqfRcqqcdMfSWjvlC9yhUjk/iZivLzmMRjpr7KG2vCoL6CSeox850iWpGs0+vuD0h6IIp9AwAQZ8RIAACKy9zjfzvQ1KlTfenSpVEXAwBQYma2zN2nRl2OpCA+AkD1IEYWLop7egEAAAAAKAsavQAAAACAikWjFwAAAABQsWj0AgAAAAAqFo1eAAAAAEDFotELAAAAAKhYiViyyMw2SFoTdTm6US+pKepCJAj1FQz1FQz1FUxc62ucu4+KuhBJEeP4KMX3PRZX1Fcw1Fcw1Fcwca0vYmSBEtHojSszW8paWfmjvoKhvoKhvoKhvlBqvMeCob6Cob6Cob6Cob4qD8ObAQAAAAAVi0YvAAAAAKBi0egN57aoC5Aw1Fcw1Fcw1Fcw1BdKjfdYMNRXMNRXMNRXMNRXheGeXgAAAABAxaKnFwAAAABQsWj0AgAAAAAqVp+oC5AUZjYij6e1u/vmUpclCczsY3k87T13f6DkhUkA6isYM5uXx9Pecvd/K3VZkoD6QikRH4PjnB8M9RUM5/xgqK/qwD29eTKz9yS9JslyPK3W3fcqU5Fizcw2SrpPuevraHffp0xFijXqKxgzWynpglxPkXSLu3+gTEWKNeoLpUR8DI5zfjDUVzCc84OhvqoDPb35+4u7H5LrCWb2bLkKkwAL3P28XE8wsx+XqzAJQH0F81V3fzTXE8zsmnIVJgGoL5QS8TE4zvnBUF/BcM4PhvqqAvT05snM+rv7e2GfAwBAJSE+AgDijoms8pRPsCagZzOzwWZ2ppl9wcwuNrOTzYz3XDfM7DQz6x91OSqBmbG2XgDUF8IiPhaGGJk/YmTxcM4PhvqqHPT05snMJiu1UPUekhZI+oq7b0o/9rS7T4uyfHFjZv8k6cuSnpd0nKQ/KHWR5YOSznb3P0VYvNgxs+2Stir13rpH0oPu3hZtqeIrx8Q5Jul5dx9bzvLEHfWFUiI+BkeMDIYYGQzn/GCor+pAozdPZva4pOskPanUze7nSjrN3f9mZs/2dj9TtTGz5ZIOd/dtZlYv6W53Pyn95eh77n5ExEWMlfT9btMlnSnpLEkHSvq1pHt6u8+kGplZm6Q1yp7UxNPpPdy9XyQFiynqC6VEfAyOGBkMMTIYzvnBUF/VgYms8jfY3X+X/vvbZrZM0u/M7FNKfTCQzSRtT/+9VdKukuTuy81saGSlii9P94x8X9L3zWyMpH+SdL2ZjXX3PaMtXuy8LOl4d3+l6wNmtjaC8sQd9YVSIj4GR4wMhhgZDOf8YKivKsC9I/kzM9ulI+HuD0v6uKQfSRoXWani6wGlvvRcLmmhpF9InUNIci05UK2y6sTd17v7HHf/sKQjIypTnN0kaXgPj32zjOVIiptEfaF0iI/BESODIUYGc5M45wdxk6ivisfw5jyZ2b9Ietndn+yyfS9JX3P3T0dTsvgys1MkHaDU/RCL0ttqJPV19+ZICxczZnasuz8SdTkAICjiY2GIkfkjRgIIi0YvEDPpK/0dQ7nQg/TwNrn7ejMbJekoSSvc/cVoSxZPZjZY0smS9pTUKmmlpIXu3h5pwQAgAGJkfoiRwRAjKx/Dm/NkZr8ys7PTHwr0wsz2M7MFZvZbM9vHzO4ys81m9rSZ7R91+eLGzPYys5+a2QZJT0n6o5m9md42PuLixY6ZXSTpCUlPmtlnJN0v6VRJvzKz8yMtXAylZ4p9WKmA/jlJ0yR9StJz6YlzgIIRH4MjRgZDjAyGGBkMMbI60NObJzN7VakTyHRJi5WaMv+37r4j0oLFlJktkfQtSYMlXS/pK5J+ptRJ9/PufnyExYsdM3tCqXtKftmxDIOZ1Ur6hFL1dXiExYsdM/uTpMMkDVBqxsUJ6avZwyU97O4HR1m+uGGmWJQS8TE4YmQwxMhgiJHBECOrAz29+XvT3c9UalKO+ZI+LelVM/uBmZ0YbdFiaYi7z3f3eyS1uPtPPWW+ep4soJrVu/vPMtcddPc2d/+ppJERliuuWtx9m7tvlPQ3d18vSenhblzJ21mPM8VKYqZYhEV8DI4YGQwxMhhiZDDEyCpAozd/Lknu/q67/8jdT5G0r1LDbC6LtGTxVJvx941dHmO9s50tM7PvmtlhZrZ7+ucwM/uupGejLlwMtZtZ3/TfH+3YaGb9xXmtO8wUi1IiPgZHjAyGGBkMMTIYYmQVYHhznsxsibsfHXU5kiJ9P8nd7r6ly/YJkj7n7p+PpGAxZWb9JJ0v6XRJeyh1kl0naZ6kO5jJM1t6VtjX3L21y/Y9JO3v7oujKVl8MVMsSoX4GBwxMhhiZDDEyOCIkZWPRi+AimBmh7r7M1GXAwCAuCFGotoxxCEAMxvTMQW8mY0ys4+Z2QeiLlfSmNmpUZchCczs/6IuQ1yZ2aFdfqZImmdmh5jZoVGXL27M7LyMv8ea2UPpmWL/YGaToiwbKgPxsXiIkfkhRvaMGBkMMbI60NObp/RQpMuUGlLzP5L+TdKLkj4i6Zvufkd0pUsWM7vG3a+Kuhxxkp45MGuTpEmSVkiSuzNlfgYza5f0pKTMIUeHp7e5u0+PpGAxZWbPuPuh6b9/LukhSd9Xaqjg55gpFmEQH4uLGLkzYmQwxMhgiJHVgUZvnpj+HaVkZvMkvSPpOqVmEDRJj0k6UpLcfU10pYsfMztT0sWS/sfdH0hv+7u77x1tyeKpS0B/LvN8ZWbPuvshkRUOiUd8RKkRI4MhRgZDjKwOfaIuQIK0uPs2SdvMLGv6dzPjykE3zGwXpRb63kOp2T1fk/Sgu2+Oslxx5O6nmdkZkm6T9G13n2dmLQTy7rn7L83sd5K+bmbnSvqiWIYhl7FmNkepL4qjzKyvu7ekH+ubIx+QD+JjAYiR+SNGBkOMDIwYWQW4pzd/TP8egJmdI+kZScdKGihpkKTjlFp24JwIixZb7v5rSTMlHZu+qs2yFTm4+xZ3/4Kkb0hqlDQ44iLF2ZclLZO0VNLlStdV+h7MeRGWC5WB+BgQMTI4YmQwxMhAiJFVgOHNeWL692DMbIWkw7pesU4Pd3vK3ZkYIAczO0jSh939e1GXJQnMzCQNcfd3oi4LUG2Ij8ERI8MhRgZDjAS4Aps3d3+la0BPb3+VgN4tU/dDadrFQt+9cvfnCeb585R3JGY+DYr6QljEx4IQI0MgRgZDjCwc9VU5uKe3CMzsNne/MOpyxMw3JD1jZgslrU1v20vSDElfj6xUCZQ5wQLy8iFJ90ddiAShvlAyxMceESOLhBgZGOf8YKivCsHw5iIwsynuvizqcsRNepjWSUpN0mGS1ik1ScemSAsGACgL4mPPiJEAUD40eoGYMbMRSo1G4otPDsx8Ggz1BaASECPzwzk/GOqr8nFPb57MrI+ZXWRmvzOz5Wb2vJktMLN/z5i1EiiIme1lZj81sw2SnpL0RzN7M71tfMTFix1mPg2G+kIpER9RasTIYDjnB0N9VQd6evNkZvdI2qzUtO/r0pvHSmqQNMLdPxlR0VABzOwJSTdJ+qW7t6W31Ur6hKTPu/vhERYvdpj5NBjqC6VEfESpESOD4ZwfDPVVHZjIKn+Huvu+Xbatk/Skmb0URYFQUerd/WeZG9KB/admxqQmO2Pm02CoL5QS8RGlRowMhnN+MNRXFaDRm79NZvYJSfe6e7skmVmNUlcZua8kT2bWKGmbpFvc/YWoyxMjy8zsu0r1lHTM5LmnUj0lz0ZWqvhi5tNgqC+UEvGxSIiRPSJGBsM5PxjqqwowvDlP6XtG/kfSdL0fxIdJeljSZe7+92hKlixm9iGlTiTT3P0rUZcnLsysn6TzJZ2u92fyXCtpvqQ73L05wuLFEjOfBkN9oVSIj8VDjOweMTI4zvnBUF+Vj0ZvAcxspFJ11xR1WQAAiAviIwAgjpi9uQDuvpGAnpuZ1aZn8/y6mX2ky2NXRFUuAEDpEB/zQ4wEgPKi0YtSmSvpGEkbJc0xsxszHvtYNEUCACAWiJEAUEY0elEq09z9X9z9JkmHSRpsZr8yszoxEx4AoLoRIwGgjGj0hmRmu6WDFLL16/jD3Vvd/UJJz0n6P0mDoypU0pjZ6WZ2WNTlSAozazSzW83swKjLkgTUF0qJ+JgTMbIIiJHBcM4PhvqqLDR6w/uRpL+a2bejLkjMLDWzkzM3uPu1kn4gaXwkJUqmwyRdYWYLoi5IQnxH0mJJn4q6IAlBfaGUiI89I0YWBzEyGM75wVBfFYTZm4vAzEzSAe7+YtRlAQAgLoiPAIA4oKc3ADPrk/H3YDObamYjPIWAnsHMTjOz/lGXI0nS76kzzewLZnaxmZ1sZnxGu5G+9+1fzYxhgCGZ2W1RlwHJR3wMhhgZHDEyf8TI4iFGVg5OFnkys3+T9IaZvWRmMyUtl/Q/kp43s3+OtHDx9DNJ68zsR2Z2ipnVRl2gODOzf5L0sKSTJX1O0jSlhtM8Z2aToyxbTB0m6R8lvWJmPzezM8ysXy95qpaZjejhZ6SkU6IuH5KN+FgQYmQAxMjAiJEBECOrA8Ob82Rmf5J0nKQhkp6XdIi7/83MRkta5O6cdDOY2bOSpks6U9JZkg6U9GtJ97j7o1GWLY7MbLmkw919m5nVS7rb3U9KB/PvufsRERcxVszsWXc/xMyGKBXY/1nShyTdr9R7bGGU5YsbM2uTtEbZs8J6Or2Hu/NlCAUjPgZHjAyGGBkMMTIYYmR1oKc3f23u3uTuf5e0xd3/Jknu/kbE5Yord/dN7v59dz9e0kGS/izpejNbG3HZ4sgkbU//vVXSrpLk7sslDY2qUDHmkuTu77r7j9z9FEn7SnpK0mWRliyeXpZ0rLvvnfHzD+6+tyTOYQiL+BgcMTIYYmQwxMhgiJFVoE/vT0HaK2b230pdyf6rmd0g6VeSTpD0eqQli6esdQbdfb2kOZLmmNm4aIoUaw9I+p2ZPSpppqRfSKkhN2LNxu5s6brB3d+S9L30D7LdJGm4pFe6eeyb5S0KKhDxMThiZDDEyGCIkcHcJGJkxWN4c57MbKik/1Dq6tl3lLqv5N+U+oB83d0J7BnM7Fh3fyTqciSJmZ0i6QBJz7v7ovS2Gkl93b050sIBQA+Ij8ERI4MjRgIIg0YvgEQys12U+nK9h1Jftl+T9KC7b46yXHFlZmOkVI+SmY2SdJSkFcysCwCVhxgZDDGy8nFPb57MrI+ZXWRmC8xsuZk9n/77382sb9Tlixsz2y9dP781s33M7C4z22xmT5vZ/lGXL26or2DM7BxJz0g6VtJASYOUmkhnWfoxZDCziyQ9IelJM/uMUpOZnCrpV2Z2fqSFQ+IRH4PjnB8M9RUMMTIYYmR1oKc3T2Z2j6TNkholrUtvHiupQdIId/9kREWLJTNbIulbkgZLul7SV5RaouFUSZ9PT9yBNOorGDNbIemwrleszWy4pKfcfVIkBYup9Oy6h0kaoNQMlRPSV7OHS3rY3Q+OsnxINuJjcJzzg6G+giFGBkOMrA40evNkZivcfd8eHnuJE0i2juny03+vcvcJGY894+6HRle6+KG+gjGzlyR9yN3f7rJ9F0lL3X1iNCWLp8z3kJk97+4HZTzW+d4DCkF8DI5zfjDUVzDEyGCIkdWB2Zvzt8nMPiHpXndvlzonUPiEpE2RliyeajP+vrHLY6x3tjPqK5hvSHrGzBZK6ljeYy9JMyR9PbJSxVe7mfV19xZJH+3YaGb9xW0uCI/4GBzn/GCor2CIkcEQI6sA/8j8naXUIvJvmNlLZrZSqbW7PpZ+DNluMbPBkuTu3+3YaGYTJC2OrFTxRX0F4O6NkqZKelRSs6Qdkh6RNNXd74quZLH1Mb2/buO6jO0jJX0xkhKhkhAfg+OcHwz1FQAxMjBiZBVgeHMBzGykUnXXFHVZAKSY2aHu/kzU5UgK6gulQHwE4olzfjDUV+Wh0RuAmR0t6Q13X2FmR0o6XNJf3P23ERctUczsVHe/P+pyJAX1tTMz6+7+rXmSZil1XiNQZeimvkzSfaK+UCTEx+LhnB8M9bUzYmQwxMjqwD29eTKzmyRNk9THzB6UdLykBZK+YKlF5r8cZfkS5kNKTQeP/FBfO1sq6Umlhm11GKnUvV4uaXoUhYox6gslQ3wsOs75wVBfO+OcHwz1VQXo6c2Tmb0o6UClpjN/VdIe7r4tvQbhs+5+YKQFBKqImZ0p6WJJ/+PuD6S3/d3d9462ZPFEfaGUiI9AvHDOD4b6qg709ObP3d3NrL0jnf7dLiYE61Z6avyTJe2hVH29JunBruvGIYX6yp+7/9LMfifp62Z2rlITTXAFrwfUF0qM+FgAzvnBUF/545wfDPVVHQhG+futmT0m6TFJt0v6uZl9VakhXEsiLVkMmdk5kp6RdKykgZIGSTpO0rL0Y8hAfQXn7lvc/QtKLc3QKGlwxEWKNeoLJUR8DIhzfjDUV3Cc84Ohviofw5sDMLMPK3VF+0kz20fSGZJekfTLjrUJkWJmKyQd1vUKrJkNl/SUu0+KpGAxRX2FY2YmaYi7vxN1WZKA+kKxER+D4ZwfDPUVDuf8YKivysTw5gDc/QlJMrMRkt5y929HXKQ4M3U/NKQ9/RiyUV8heOrq3TsSM3nmg/pCsREfA+OcHwz1FQLn/GCor8pEozdPZraXpG8qNYPb26lNNlTS/0m6zN1XR1i8OPqGpGfMbKGktelte0maIenrkZUqvqiv4mEmz2CoL4RCfCwI5/xgqK/i4ZwfDPVVIRjenCcze0LSTUoN1WpLb6uV9AlJn3f3wyMsXiylhx2dpNSkEyZpnVKTTmyKtGAxRX0BSCLiY2E45wdDfQEIg0ZvnsxspbtPDPpYtTIz817eXPk8p1pQX8Exk2cw1BdKhfgYHOf8YKiv4DjnB0N9VT5mb87fMjP7rpkdZma7p38OM7PvSno26sLF0MNmdnF62FsnM+tnZtPNrFFSQ0RliyPqKwBm8gyG+kKJER+D45wfDPUVAOf8YKiv6kBPb57MrJ+k8yWdrveH1qyVNF/SHe7eHGHxYsfM+ks6T9LZkvaWtFnSAKUutCyUdIu7PxdV+eKG+gqGmTyDob5QSsTH4DjnB0N9BcM5PxjqqzrQ6EXJmVlfSfWStjNMpHfUV+/M7CVJH3L3t7ts30XSUoZTZqO+gPjinB8M9dU7zvnBUF/Vgdmbi4DpzHNz9xZJr0ddjqSgvvLCTJ7BUF+IBPGxd5zzg6G+8sI5PxjqqwrQ01sEZnaNu18VdTmAasJMnsFQX4gC8RGIBuf8YKivykejF0DiMJNnMNQXAFQPzvnBUF/VgeHNATCdORAbD5vZvZLuc/dXOjamJ9Q5UqlZPB+WdFc0xYsd6gslRXwEYoVzfjDUVxWgpzdP6SnLr1JqlsBX05vHKjXe/xp3/2FUZQOqDTN5BkN9oZSIj0C8cM4PhvqqDjR688R05kA8MZNnMNQXio34CMQX5/xgqK/KxfDm/JlSQ7a6ak8/BiACzOQZDPWFEiA+AjHFOT8Y6qty0ejNH9OZAwCwM+IjACDWGN4cANOZAwCwM+IjACDOaPTmienMAQDYGfERABB3NVEXIEEeNrOLzWyvzI1m1s/MpptZo1JTmgMAUE2IjwCAWKOnN09MZw4AwM6IjwCAuKPRWwCmMwcAYGfERwBAHNHoBQAAAABULO7pBQAAAABULBq9AAAAAICKRaMXFc3MRpvZT8zsZTNbZmZPmNkZGY9PM7MlZrbCzP5qZreb2cASleVYMzsiRP5hZvbZIpZnqpnNCbJPM9vdzH6Z/vtYM7u/WOUBAJQP8THn6xEfgQpDoxcVy8xM0m8kLXH3f3D3KZLOkjQ2/fhoSb+Q9BV331fS/pJ+J2lIiYp0rKSCg7qkYZKKFtTdfam7zw6yT3d/zd3PLFYZAADlR3zMjfgIVB4avahk0yXtcPfvdWxw9zXufnM6+R+SGt39ifRj7u6/dPc3Ml/EzGrN7Ntm9iczW25mF6e3H29mz6a332lmdentq83sGjN7Jv3YfmY2XtK/S/qCmT1nZkeZ2Sgzu9fM/pj++Ug6/9Xp13skfQW+I/BeL2mfdP5vdT1YM/tq+or8YjO7x8y+lN7+iJlNTf9db2ar0393XonOd59mNt7MXuhm34PS+f+YrpPTA/6vAADlQ3wU8RGoJn2iLgBQQh+Q9EyOxw+U1JjH61yo1NqTh7h7q5mNsNS6lHdJOt7dXzKzH0r6jKSb0nma3P3Q9NCnL7n7BWb2PUlb3P3bkmRmP5H0/7n742a2l6QHlbqaLkn7STpOqavqK8zsVkmXSTrQ3Q/uWkAz67hKf4hSn+tnJC3L49gy9brP9JeT7nxV0v+5+3lmNkzS02a22N23BiwDAKD0iI/BEB+BhKOnF1XDzG4xs+fN7I8Bs54g6Xvu3ipJ7v6WpH0l/d3dX0o/p1HS0Rl5fpX+vUzS+Byv+x0ze07SPElDzaxj6Nhv3b3Z3ZskvSlpdC9lPErSr919m7u/k369oILuM9OJki5LH8sjkvpL2quAMgAAyoz42CviI5Bw9PSikr0o6eMdCXf/DzOrl7Q04/Epku7r5XVMUtcFra2XPM3p323q+XNWI+nD7r4964XNMvP39hqZelp0u1XvX+DqnyN/IfvsYJI+7u4rAuQBAESD+JhCfASqBD29qGT/J6m/mX0mY1vmzJPfkdRgZod1bDCzfzWzMV1eZ6GkfzezPunnjJD0V0njzWxC+jmfkvRoL+V5V9mTgCyU9LmMfR8cMH+mJZLOMLMB6avhszIeW63UlxdJCjrJRq59ZnpQ0sWW/kZiZocE3A8AoHyIjymrRXwEqgKNXlQsd3dJ/yjpGDP7u5k9rdQwq6+kH39Dqft8vp2e4OIvSg2DeqfLS90u6RVJy83seUn/4u7vSTpX0i/M7E+S2iV9T7nNVyrwPmdmR0maLWmqpSb/+LNSE3nkOp6Nkn5vZi90najD3Z+R9DNJz0m6V9JjGQ9/W9JnzOwPkup7KWPe++zi65L6KlVHL6TTAIAYIj52Ij4CVcJS5z0AlcTMrlbGpCAAAID4CFQrenoBAAAAABWLnl4AAAAAQMWipxcAAAAAULFo9AIAAAAAKhaNXgAAAABAxaLRCwAAAACoWDR6AQAAAAAVi0YvAAAAAKBi/f/L1Ic3tDl4swAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<Figure size 1080x360 with 2 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"fig = plt.figure(figsize=(15, 5))\n", | |
"\n", | |
"ax = fig.add_subplot(1,2,1)\n", | |
"_df = np.log2(edaseq_normed+ 1).stack().reset_index()\n", | |
"_df.columns = ['gene', 'condition', 'log2_edaseq_normalised_count_plus_one']\n", | |
"_df = _df.join(yeast_gc_quintiles, on='gene')\n", | |
"\n", | |
"sns.boxplot(x='gc_quintile', y='log2_edaseq_normalised_count_plus_one', hue='condition', data=_df, ax=ax)\n", | |
"\n", | |
"ax.set_xlabel('GC content quintile')\n", | |
"ax.set_ylabel(\"log2(normalised counts + 1)\")\n", | |
"ax.xaxis.set_tick_params(rotation=90)\n", | |
"\n", | |
"ax.set_title(\"Without GC Correction\")\n", | |
"ax.legend_.set_visible(False)\n", | |
"\n", | |
"ax = fig.add_subplot(1,2,2, sharex=ax, sharey=ax)\n", | |
"\n", | |
"_df = np.log2(edaseq_normed_gc_corrected+ 1).stack().reset_index()\n", | |
"_df.columns = ['gene', 'condition', 'log2_edaseq_normalised_count_with_gc_plus_one']\n", | |
"_df = _df.join(yeast_gc_quintiles, on='gene')\n", | |
"\n", | |
"sns.boxplot(x='gc_quintile', y='log2_edaseq_normalised_count_with_gc_plus_one', hue='condition', data=_df, ax=ax)\n", | |
"ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))\n", | |
"\n", | |
"ax.set_xlabel('GC content quintile')\n", | |
"ax.set_ylabel(\"log2(normalised counts + 1)\")\n", | |
"ax.xaxis.set_tick_params(rotation=90)\n", | |
"\n", | |
"ax.set_title(\"With GC Correction\")\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "878588c0", | |
"metadata": {}, | |
"source": [ | |
"### Offsets" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "68823811", | |
"metadata": {}, | |
"source": [ | |
"EDASeq uses the following equation to compute offsets (see [vignette](https://www.bioconductor.org/packages/devel/bioc/vignettes/EDASeq/inst/doc/EDASeq.html#offset-1)):\n", | |
"\n", | |
"$$\n", | |
"o = \\log(y_{\\text{norm}} + 0.1) - \\log(y_{\\text{raw}} + 0.1)\n", | |
"$$\n", | |
"\n", | |
"We already used this result in the quantile normalisation step, but as the function above returns normalised offset from `EDASeq` directly, we can quickly verify whether this is indeed the case.\n", | |
"\n", | |
"Note however that offsets are more accurately recovered from non-rounded data:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 58, | |
"id": "d6a51675", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"edaseq_normed_gc_corrected_not_round, offsets_edaseq_gc_corrected_not_round = normalise_by_covariate_and_quantiles_edaseq(\n", | |
" data_with_features, \n", | |
" covariate=yeast_gc,\n", | |
" round=False\n", | |
")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 59, | |
"id": "a475ddc2", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"manual_offsets = np.log(edaseq_normed_gc_corrected_not_round + 0.1) - np.log(data_with_features + 0.1)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 60, | |
"id": "8b37e834", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"mut_1 4.440892e-16\n", | |
"mut_2 4.440892e-16\n", | |
"wt_1 4.440892e-16\n", | |
"wt_2 8.881784e-16\n", | |
"dtype: float64" | |
] | |
}, | |
"execution_count": 60, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"(manual_offsets - offsets_edaseq_gc_corrected_not_round).abs().max()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "57e4eaf5", | |
"metadata": {}, | |
"source": [ | |
"# CQN\n", | |
"\n", | |
"Cqn can normalise by length and GC content simultaneously. The function below will take care of that, and add some debug plots" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 61, | |
"id": "fc9ae183", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"from typing import Optional\n", | |
"\n", | |
"def normalise_by_covariate_and_length_cqn(\n", | |
" data: pd.DataFrame, \n", | |
" library_sizes: pd.Series, \n", | |
" covariate: pd.Series, \n", | |
" lengths: Optional[pd.Series] = None, \n", | |
" min_count: float = 50.0, \n", | |
" length_method: Optional[str] = None,\n", | |
" plot: bool = True,\n", | |
" verbose: bool = True,\n", | |
" covariate_name: Optional[str] = None\n", | |
"):\n", | |
" \"\"\"\n", | |
" :param data: pd.DataFrame of data\n", | |
" :param library_sizes: pd.Series of library sizes, index should match data.columns\n", | |
" :param covariate: pd.Series of covariate to eliminate, such as GC content, index should match data.index\n", | |
" :param lengths: pd.Series of lengths, index should match data.index, can be none if no norm by length wanted\n", | |
" :param min_count: `cqn` only uses data with mean counts greater than this threshold to estimate norm functions\n", | |
" :param length_method: same as `lengthMethod` in R, can either be `fixed`, or `smooth`. \n", | |
" if no `lengths` are provided, only `fixed` can be used\n", | |
" if None will select `smooth` when lengths provided and `fixed` when they're not.\n", | |
" :param plot: whether to plot the normalisation functions or not \n", | |
" :param verbose: `verbose` whether to use verbose mode or not\n", | |
" :param covariate_name: optional name for covariate, only used if `plot=True`\n", | |
" Returns a 3-tuple with elements:\n", | |
" - `log2_offset` the `log2` offset for normalisation (use this to calculate normalised counts)\n", | |
" - `glm_offset` the offset for normalisation for GLM models (use this for EdgeR, exponentiate this for DESeq2)\n", | |
" - `r_result` the actual R result, use this for plotting\n", | |
" \"\"\"\n", | |
" \n", | |
" \n", | |
" # Super important because `cqn` doesn't check...\n", | |
" assert data.index.equals(covariate.index)\n", | |
" \n", | |
" if lengths is not None:\n", | |
" assert data.index.equals(lengths.index)\n", | |
" \n", | |
" if length_method is None:\n", | |
" length_method = 'smooth'\n", | |
" if verbose:\n", | |
" print(f'Using {length_method} method for length normalisation')\n", | |
" else:\n", | |
" if length_method not in ['smooth', 'fixed']:\n", | |
" raise ValueError(\"Length method can be either `smooth` or `fixed`, if lenghts provided\")\n", | |
" else:\n", | |
" if length_method is None:\n", | |
" length_method = 'fixed'\n", | |
" if verbose:\n", | |
" print(f'Using {length_method} method for length normalisation')\n", | |
" else:\n", | |
" if length_method != 'fixed':\n", | |
" raise ValueError(\"As no length information is provided, only 'fixed' is acceptable for length_method\")\n", | |
" \n", | |
" assert data.columns.equals(library_sizes.index)\n", | |
" \n", | |
" # cqn does not provide a good way to specify min_count, we need to do this in a weird way\n", | |
" mean_above_min_count = data.mean(axis=1) > min_count\n", | |
" r_indices = np.arange(1, len(data)+1) # R indices start with one!\n", | |
" \n", | |
" # This will make a vector with indices that match to genes we want to keep\n", | |
" subindex = r_indices[mean_above_min_count]\n", | |
" \n", | |
" r_lengths = None\n", | |
" \n", | |
" with localconverter(ro.default_converter + pandas2ri.converter) as co:\n", | |
" r_data = co.py2rpy(data)\n", | |
" r_covariate = co.py2rpy(covariate)\n", | |
" \n", | |
" if lengths is not None:\n", | |
" r_lengths = co.py2rpy(lengths)\n", | |
" else:\n", | |
" # We need to specify lenghts to be all equal to `1000` \n", | |
" # so `log2(1000/1000) = 0` and thus they're not used in model\n", | |
" if verbose:\n", | |
" print(\"Setting all gene lengths to be equal to 1000 bp\")\n", | |
" r_lengths = co.py2rpy(pd.Series(1000, index=data.index))\n", | |
" \n", | |
" r_library_sizes = co.py2rpy(library_sizes)\n", | |
" \n", | |
" with localconverter(ro.default_converter + numpy2ri.converter) as co:\n", | |
" r_subindex = co.py2rpy(subindex)\n", | |
" \n", | |
" r_result = r_cqn.cqn(r_data, \n", | |
" x=r_covariate, \n", | |
" sizeFactors=r_library_sizes, \n", | |
" verbose=verbose, \n", | |
" subindex=r_subindex,\n", | |
" lengths=r_lengths,\n", | |
" lengthMethod=length_method)\n", | |
" \n", | |
" # Outputs \n", | |
" r_log2_offset = r_result.rx2('offset')\n", | |
" r_logn_offset = r_result.rx2('glm.offset')\n", | |
" r_log2_tpm = r_result.rx2('y')\n", | |
" \n", | |
" # Convert to python\n", | |
" with localconverter(ro.default_converter + pandas2ri.converter) as co:\n", | |
" log2_offset = co.rpy2py(r_log2_offset)\n", | |
" logn_offset = co.rpy2py(r_logn_offset)\n", | |
" log2_tpm = co.rpy2py(r_log2_tpm)\n", | |
" \n", | |
" # Add indices back\n", | |
" \n", | |
" log2_offset = pd.DataFrame(log2_offset, index=data.index, columns=data.columns)\n", | |
" glm_offset = pd.DataFrame(logn_offset, index=data.index, columns=data.columns)\n", | |
" log2_tpm = pd.DataFrame(log2_tpm, index=data.index, columns=data.columns)\n", | |
" \n", | |
" if plot:\n", | |
" if covariate_name is None:\n", | |
" if covariate.name is not None:\n", | |
" covariate_name = covariate.name\n", | |
" else:\n", | |
" covariate_name = 'Covariate'\n", | |
" \n", | |
" subplots = [\n", | |
" ('func1', 'grid1', 'knots1', covariate_name),\n", | |
" ]\n", | |
" if lengths is not None and length_method != 'fixed':\n", | |
" subplots.append(\n", | |
" ('func2', 'grid2', 'knots2', '$\\log_2$(length/1000)'), \n", | |
" )\n", | |
" \n", | |
" \n", | |
" fig = plt.figure(figsize=(5*len(subplots), 5))\n", | |
" ax = None\n", | |
" for i, (func_name, grid_name, knots_name, label) in enumerate(subplots, start=1):\n", | |
" ax = fig.add_subplot(1, len(subplots), i, sharey=ax)\n", | |
" ax.set_xlabel(label)\n", | |
" ax.set_ylabel('QR fit')\n", | |
" ax.set_title(f\"{label} normalisation curve\")\n", | |
" \n", | |
" with localconverter(ro.default_converter + pandas2ri.converter) as co:\n", | |
" func_ = co.rpy2py(r_result.rx2(func_name))\n", | |
" grid = co.rpy2py(r_result.rx2(grid_name))\n", | |
" knots = co.rpy2py(r_result.rx2(knots_name))\n", | |
" \n", | |
" \n", | |
" func_ = pd.DataFrame(func_, columns=data.columns)\n", | |
" \n", | |
" for col in func_.columns:\n", | |
" ax.plot(grid, func_[col], label=col)\n", | |
" \n", | |
" for k, knot in enumerate(knots):\n", | |
" ax.axvline(knot, linestyle=':', color='k', \n", | |
" label='Knots' if k == 0 else '')\n", | |
" ax.legend()\n", | |
" \n", | |
" \n", | |
" plt.tight_layout()\n", | |
" \n", | |
" return log2_offset, glm_offset, log2_tpm, r_result\n", | |
" " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "1f12b40a", | |
"metadata": {}, | |
"source": [ | |
"Let's first compute TPM and RPKM counts naively:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 62, | |
"id": "99077b55", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>mut_1</th>\n", | |
" <th>mut_2</th>\n", | |
" <th>wt_1</th>\n", | |
" <th>wt_2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>YAL001C</th>\n", | |
" <td>7.853067</td>\n", | |
" <td>7.912023</td>\n", | |
" <td>6.113481</td>\n", | |
" <td>6.606379</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL002W</th>\n", | |
" <td>6.584393</td>\n", | |
" <td>6.791987</td>\n", | |
" <td>7.076256</td>\n", | |
" <td>7.323000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL003W</th>\n", | |
" <td>12.407030</td>\n", | |
" <td>12.432109</td>\n", | |
" <td>9.416533</td>\n", | |
" <td>9.348598</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL004W</th>\n", | |
" <td>8.022299</td>\n", | |
" <td>8.316872</td>\n", | |
" <td>9.448196</td>\n", | |
" <td>9.476166</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL005C</th>\n", | |
" <td>9.870724</td>\n", | |
" <td>9.836341</td>\n", | |
" <td>11.109747</td>\n", | |
" <td>11.139030</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" mut_1 mut_2 wt_1 wt_2\n", | |
"YAL001C 7.853067 7.912023 6.113481 6.606379\n", | |
"YAL002W 6.584393 6.791987 7.076256 7.323000\n", | |
"YAL003W 12.407030 12.432109 9.416533 9.348598\n", | |
"YAL004W 8.022299 8.316872 9.448196 9.476166\n", | |
"YAL005C 9.870724 9.836341 11.109747 11.139030" | |
] | |
}, | |
"execution_count": 62, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"yeast_naive_tpm = data_with_features / (yeast_library_sizes / 1_000_000)\n", | |
"yeast_naive_log2_tpm = np.log2(yeast_naive_tpm + 1)\n", | |
"yeast_naive_log2_tpm.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 63, | |
"id": "b1459c93", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>mut_1</th>\n", | |
" <th>mut_2</th>\n", | |
" <th>wt_1</th>\n", | |
" <th>wt_2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>YAL001C</th>\n", | |
" <td>6.068148</td>\n", | |
" <td>6.126489</td>\n", | |
" <td>4.363983</td>\n", | |
" <td>4.842353</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL002W</th>\n", | |
" <td>4.690791</td>\n", | |
" <td>4.892845</td>\n", | |
" <td>5.170686</td>\n", | |
" <td>5.412772</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL003W</th>\n", | |
" <td>13.094265</td>\n", | |
" <td>13.119345</td>\n", | |
" <td>10.103068</td>\n", | |
" <td>10.035094</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL004W</th>\n", | |
" <td>8.646279</td>\n", | |
" <td>8.941213</td>\n", | |
" <td>10.073403</td>\n", | |
" <td>10.101387</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL005C</th>\n", | |
" <td>8.924301</td>\n", | |
" <td>8.889953</td>\n", | |
" <td>10.162501</td>\n", | |
" <td>10.191771</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" mut_1 mut_2 wt_1 wt_2\n", | |
"YAL001C 6.068148 6.126489 4.363983 4.842353\n", | |
"YAL002W 4.690791 4.892845 5.170686 5.412772\n", | |
"YAL003W 13.094265 13.119345 10.103068 10.035094\n", | |
"YAL004W 8.646279 8.941213 10.073403 10.101387\n", | |
"YAL005C 8.924301 8.889953 10.162501 10.191771" | |
] | |
}, | |
"execution_count": 63, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"yeast_naive_rpkm = yeast_naive_tpm.divide(yeast_length / 1000, axis=0)\n", | |
"yeast_naive_log2_rpkm = np.log2(yeast_naive_rpkm + 1)\n", | |
"yeast_naive_log2_rpkm.head()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "88dc696e", | |
"metadata": {}, | |
"source": [ | |
"Running CQN results in the following outputs:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 64, | |
"id": "ffebc45f", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Using smooth method for length normalisation\n", | |
"RQ fit ....\n", | |
"SQN fitting ...\n", | |
" |======================================================================| 100%\n", | |
".\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 720x360 with 2 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"log2_offset, glm_offset, log2_tpm, r_result = normalise_by_covariate_and_length_cqn(\n", | |
" data_with_features, \n", | |
" covariate=yeast_gc, \n", | |
" lengths=yeast_length, \n", | |
" library_sizes=yeast_library_sizes,\n", | |
" covariate_name='GC Content'\n", | |
")\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "d21547ff", | |
"metadata": {}, | |
"source": [ | |
"The plots above are just `matplotlib` versions of the same plots that can be produced by R using `cqnplot`.\n", | |
"They plot the non-linear dependencies on GC content and length that were estimated by the model." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 65, | |
"id": "a16ddd25", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQCAYAAACAvzbMAAAEDmlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPpu5syskzoPUpqaSDv41lLRsUtGE2uj+ZbNt3CyTbLRBkMns3Z1pJjPj/KRpKT4UQRDBqOCT4P9bwSchaqvtiy2itFCiBIMo+ND6R6HSFwnruTOzu5O4a73L3PnmnO9+595z7t4LkLgsW5beJQIsGq4t5dPis8fmxMQ6dMF90A190C0rjpUqlSYBG+PCv9rt7yDG3tf2t/f/Z+uuUEcBiN2F2Kw4yiLiZQD+FcWyXYAEQfvICddi+AnEO2ycIOISw7UAVxieD/Cyz5mRMohfRSwoqoz+xNuIB+cj9loEB3Pw2448NaitKSLLRck2q5pOI9O9g/t/tkXda8Tbg0+PszB9FN8DuPaXKnKW4YcQn1Xk3HSIry5ps8UQ/2W5aQnxIwBdu7yFcgrxPsRjVXu8HOh0qao30cArp9SZZxDfg3h1wTzKxu5E/LUxX5wKdX5SnAzmDx4A4OIqLbB69yMesE1pKojLjVdoNsfyiPi45hZmAn3uLWdpOtfQOaVmikEs7ovj8hFWpz7EV6mel0L9Xy23FMYlPYZenAx0yDB1/PX6dledmQjikjkXCxqMJS9WtfFCyH9XtSekEF+2dH+P4tzITduTygGfv58a5VCTH5PtXD7EFZiNyUDBhHnsFTBgE0SQIA9pfFtgo6cKGuhooeilaKH41eDs38Ip+f4At1Rq/sjr6NEwQqb/I/DQqsLvaFUjvAx+eWirddAJZnAj1DFJL0mSg/gcIpPkMBkhoyCSJ8lTZIxk0TpKDjXHliJzZPO50dR5ASNSnzeLvIvod0HG/mdkmOC0z8VKnzcQ2M/Yz2vKldduXjp9bleLu0ZWn7vWc+l0JGcaai10yNrUnXLP/8Jf59ewX+c3Wgz+B34Df+vbVrc16zTMVgp9um9bxEfzPU5kPqUtVWxhs6OiWTVW+gIfywB9uXi7CGcGW/zk98k/kmvJ95IfJn/j3uQ+4c5zn3Kfcd+AyF3gLnJfcl9xH3OfR2rUee80a+6vo7EK5mmXUdyfQlrYLTwoZIU9wsPCZEtP6BWGhAlhL3p2N6sTjRdduwbHsG9kq32sgBepc+xurLPW4T9URpYGJ3ym4+8zA05u44QjST8ZIoVtu3qE7fWmdn5LPdqvgcZz8Ww8BWJ8X3w0PhQ/wnCDGd+LvlHs8dRy6bLLDuKMaZ20tZrqisPJ5ONiCq8yKhYM5cCgKOu66Lsc0aYOtZdo5QCwezI4wm9J/v0X23mlZXOfBjj8Jzv3WrY5D+CsA9D7aMs2gGfjve8ArD6mePZSeCfEYt8CONWDw8FXTxrPqx/r9Vt4biXeANh8vV7/+/16ffMD1N8AuKD/A/8leAvFY9bLAAAAOGVYSWZNTQAqAAAACAABh2kABAAAAAEAAAAaAAAAAAACoAIABAAAAAEAAAGQoAMABAAAAAEAAAGQAAAAADj5TfYAAEAASURBVHgB7Z0J/FVz/v8/kRJCosXSYks0kWwVKkIoSUWUJSU/zCDE0PhbZjBhmGFqDCVrWRIlshSJUkghFUVliVatUpbzP8/PzLlzv/d77/fe77nrOef1eTzu93vvuWf5fJ6fc8/783lvnyqOW4yKCIiACIiACFSSwFaV3F+7i4AIiIAIiIAlIAGiG0EEREAERMAXAQkQX9h0kAiIgAiIgASI7gEREAEREAFfBCRAfGHTQSIgAiIgAhIgugdEQAREQAR8EZAA8YVNB4mACIiACEiA6B4QAREQARHwRUACxBc2HSQCIiACIiABontABERABETAFwEJEF/YdJAIiIAIiIAEiO4BERABERABXwQkQHxh00EiIAIiIAISILoHREAEREAEfBGQAPGFTQeJgAiIgAhIgOgeEAEREAER8EVAAsQXNh0kAiIgAiIgAaJ7QAREQAREwBcBCRBf2HSQCIiACIiABIjuAREQAREQAV8EJEB8YdNBIiACIiACEiC6B0RABERABHwRkADxhU0HiYAIiIAISIDoHhABERABEfBFQALEFzYdJAIiIAIiIAGie0AEREAERMAXAQkQX9h0kAiIgAiIgASI7gEREAEREAFfBCRAfGHTQSIgAiIgAhIgugdEQAREQAR8EZAA8YVNB4mACIiACEiA6B4QAREQARHwRUACxBc2HSQCIiACIiABontABERABETAFwEJEF/YdJAIiIAIiIAEiO4BERABERABXwQkQHxh00EiIAIiIAISILoHREAEREAEfBGQAPGFTQeJgAiIgAhIgOgeEAEREAER8EVAAsQXNh0kAiIgAiIgAaJ7QAREQAREwBcBCRBf2HSQCIiACIiABIjuAREQAREQAV8EJEB8YdNBIiACIiACEiC6B0RABERABHwRkADxhU0HiYAIiIAISIDoHhABERABEfBFQALEFzYdJAIiIAIiIAGie0AEREAERMAXAQkQX9h0kAiIgAiIgASI7gEREAEREAFfBCRAfGHTQSIgAiIgAhIgugdEQAREQAR8EZAA8YVNB4mACIiACEiA6B4QAREQARHwRUACxBc2HSQCIiACIiABontABERABETAFwEJEF/YdJAIiIAIiIAEiO4BERABERABXwQkQHxh00EiIAIiIAISILoHREAEREAEfBGQAPGFTQeJgAiIgAhIgOgeEAEREAER8EVAAsQXNh0kAiIgAiIgAaJ7QAREQAREwBcBCRBf2HSQCIiACIiABIjuAREQAREQAV8EJEB8YdNBIiACIiACEiC6B0RABERABHwRkADxhU0HiYAIiIAISIDoHhABERABEfBFQALEFzYdJAIiIAIiIAGie0AEREAERMAXAQkQX9h0kAiIgAiIgASI7gEREAEREAFfBCRAfGHTQSIgAiIgAhIgugdEQAREQAR8EZAA8YVNB4mACIiACEiA6B4QAREQARHwRaCqr6N0UBkCs2bNMqNHjy6zTR9EQAREwC+B7t27mxYtWvg9vGDHaQaSA9QIj8mTJ+fgTDqFCIhA1AnwLAnKgFQzkBzdre3atTO33XZbjs6m04iACESVwKBBgwLTdM1AAtNVqqgIiIAIlBYBCZDS6g/VRgREQAQCQ0ACJDBdpYqKgAiIQGkRCKwNZPPmzaZKlSqmWrVqZYiOHTvWvPfee/a7I4880nTq1Mm+L7OTPoiACIiACGRNILAC5Pjjjzf77LOPefTRRy2ELVu2mM6dO5vXXnvNfka4OI5jWrdubV599VWzww47ZA1LJxABERABEfgfgcAKkP814T/v7rjjDis8/vjHP5rzzjvP7LTTTubpp582gwcPNhdddJEZNWpU4iH6LAIi4BJYt26dWb58udmwYYP58ccfza+//mq23nprs80229jfUa1atcwuu+xitwmYCMQTCI0AGT9+vGnVqpVBkHhlwIABZquttjIDBw40qLyqV6/ufaX/IhBZAj/99JNZuHChWbBggfn666+twKhTp46dpW+//famatWq9vfy888/2/1++OEHK1j23HNP07BhQ3PAAQcYhIqKCIRGgDBaOv30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QN988435/vvv7eItO+64o9l7770NC90zUlbJDQGExssvv2yX7MQGcvDBB+fmxDqLCIhAIAkEWoA89thj5pZbbjFffvllUvg77bSTueuuu0y/fv2kp09KqHIb3333XVO1alXDLESzj8qx094iEEYCgVVhjRw50lxwwQUGF1LyMH3++edm5cqVNp04AoUAt4svvtgMGDDAXHfddWHsu4K2idnd+++/bw455BC7YFTz5s0Len1dTAREoPQIBHYGMnToUHPllVeae+65pxxVZh6sAta6dWurxrr88svN4MGDNQspRyqzDb/88osZP368adu2rfnwww8tV9k+MmOnvUQgzAQCOwNBB59Jfv3jjjvOLF261LC/ij8Cb7zxhsGuhNsuaztr9uGPo44SgbARCKwAOemkk+w6w+k65PHHHzfbbrutadSoUbpd9X0SAvPmzTMLFiwwJ598spk8ebJp3769YXEcFREQAREIrAqrb9++9qFGKvFzzjnHel2xEt4222xjVq9ebb777jszbtw489JLL5nbb7/dGn/V3ZUjsGrVKvPqq6+aHj16mPnz59tZyH777Ve5k2hvERCB0BIIrAA55phjDMLj0ksvtUZyXEwTy+GHH25GjRplzjzzzMSv9DkNAVRVY8aMMW3atDG1a9c2o0ePNmeddVaao/S1CIhAlAgEVoDQSRjKWYd7/fr1BlULS6qSVoN1KXiRJVal8gRIz47w2GOPPQxCGC+3ffbZx653Xvmz6QgREIGwEgi0APE6pWbNmtbbyvsc/3/JkiVWsPgx/G7ZssV89dVX8adL+n7Tpk02qWDSLwO2kcBM1H54WXXs2NEGaH722WfmoosuClhLVF0REIF8EwiFAKkI0sCBA82zzz5reDBWtjzzzDPm2muvTXsYNpcDDjggo/3ee+89a4gmi20pFlK0Y/vo1auXZcYMD0+27bbbrhSrqzqJgAgUkUDoBQh6ez+zD/qkd+/e9pWufwYNGpRuF/s9rrBksn3kkUdM165d7TKwGR1YgJ0QsGTYJUV7z5497TofJE1kdve73/2uADXQJURABIJGIPQCpFu3biXTJ6QB6dy5s5k1a5Yhkp44llJ4OOOAgJ2DFCVnn322jfdAkJBj7Pzzzy8ZfqqICIhAaREIrAB56KGHrN3hvPPOKy2iGdSmRYsW1iD9wgsvmK+//tqccMIJ1v04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FXwpFVZlp2x53v/TTz+10934y1StWtU0aNDAfPPNN/GbY+/53h2Nxo5btWqVueeee4z7IzP9+vWL7Tdr1iz73n04mR49elj7CioB92Eb26cQb/y00avX3LlzzXXXXWcefvhha+vxtnv/ObfHy9vG/8aNGxt3JGjVIfHb8/U+m3r88ssvVlVz1llnmdNOO61cFd0ZlbXpoAbBPoatDJvX+PHjy+2bzw1+25hJ/efPn2/cWYbZe++9yzTB+5zqt1Bm5xx8yKYe7szY/m75LfL7dAeG5pZbbiljzyyV36RfVBIgfsnl6Th3xGN23XXXcmfHWPzdd9+V2564wR2h2WVtsZ24031rF/H24YamoLd2VQN2adjnnnvOuLMUs2TJEm+3vP/320YcCbAP9enTx5x00klJ67lmzRprWI/XMbMj/NyZmkG4FqJkUw+MqitWrDB///vfk1b1448/tg9XDMruKN107drVzJs3z3Tu3Nk89NBDSY/Jx0a/bcyk/twjlMTfAv1IwQZWiJJNPfi9uWpn+8KRY5tttjE333yz7Sev7qXym/TqU9n/WhO9ssTyvD8PPm60xMKoet26dYmby31mNPrGG28YvKoefPBB06lTJ+PaUAznPfHEE62R9YorrjDVqlWzx3744YdWkOD19cQTT5Q7Xz42+G2jqxIwjF5dtUbKavFATcWPgxKN0SlPlOUXfusxffp0c8cdd9g+xPiarLDWtmvjsU4STZo0sbvgcHHggQeaa665xg4cXFtXskNzus1vGzOpvzcASOxLfgeUQvWj33q4Wh/bFzizdOvWzdYZD7nrr7/e/PWvf7Uekl26dCmZ36StoI8/moH4gJbPQ1zdvvUaSrwGnkQ77bRT4uZynxs2bGhcw7m9SXngvvTSS1aVxY6M2l07Skx4sO3QQw+1rr8zZszgY0GKnza+88475u677zZXXnmlHW3jgYQqjoJaC1UDBbddWCUWvLUoO+64Y+JXefnspx4//fSTVV0h9LfddlvrZUU7UeUw++Q9szDUODyIPOFBA7beems7O2OQwWykEMVPG6lXJvXnHqEk9qX3uVD96LceCJ7LL788JjxsY9w/aAUoqJcppfKbtJXx8UcCxAe0fB7CDZtMVcU2T/+beP0NGzaYN99806o94r9DpUHh4UvhIes9dO2G//7ZeeedrSokfls+3/tpIyNzHqSXXnqpOeyww+zLNSLbap5zzjnm3HPPte85N6NTT/XgtYO4E+JjMhHC3jHZ/PdTj2XLlpkvvvjCuN47sTbS1o0bN1qbD++x46C+QTWSWOhHCjODQhQ/baRemdSfc1MSfwve51S/BXtQDv/4rQczZewbnsDzqsT9h3DxZjal8pv06lfp/xUY2PVVEQjceeed1m3T1S/Hro77rtuxjmuviG2Lf4PHEd+7I574zdZdl+148lBwiXSn1I4bxBTb76uvvnLcm9lxjemxbfl+46eN7gzCujbjneS9XEO6bbcbM+PQDor7ALbeO27sTJlmuEZ0B9fRQhU/9cCbzmtb/P/tt9/eueSSS+x37OOquGy73UFDmea0atXKcR9QjitAy2zP1wc/baQumdYfb0R3Nlam+rhi08b169eX2Z7PD37qgUckvz13wFOmaq5BPXbP8kWp/CbLVLISH+TGWwlYhdgVwYHbpqsfddzAN8dVz9ibzPWyiV0ev/Lu3bs7o0aNim1zvXWcGjVqOI888oiDf75rKHdcFYPjjlodV+1h9yOugJu6f//+9mHkBh86bdq0cbbbbjvns88+i50r328yaSN1cB0BygnF+Lp5Lp2uITJ+s+PqnK2gdGdezvLlyx3X5mOZekKmzM55/JBJPUaPHm37kkFAqpLoxus6PDjubMNx1Y+OG6jmuKNY+6Cib3lAFbL4aWOm9X/66aftYOAf//iH447kHVghTF3bXiGb6GRSj2S/Sdfm6LiqSIffHd+7ThFO3bp1bfyOF8dSKr9Jv0AlQPySy+NxbpoHx7Vl2Ic9NyDCJP4BwwODh8Wf/vSnWC0YobuqHDub4DtmFfy43Sl/bB/euHYE+zBlH14HHXSQ4061y+xTiA/p2kgdCI7cf//9U1YnlQDhYeNGocdYtGzZ0iGoq9Alk3q4xm/bDx999FHK6iUKEHZEOLpGc3ss/Uic0JAhQ1KeI19f+G1jpvUfPHiwfQjTRledZGOhvIdvvtqU7Lzp6pHsN+lmfHBcV+xYH7kOAXYWnDh7KpXfZLJ2p9tWhR3czlEpQQLuiNm6n6byxklWZffmNBzXqFEj447Wku1iiDNwBZJxHzpJYymSHpSnjX7amGlVMCjDA0+YYpZ81gN7Avr2QtkEUnH028ZM6u/dr6Rq8WwHqeqRz+1+64GNkrgVYpFSecd55y6F32RlGEqAVIaW9hUBERABEYgRKIy7RuxyeiMCIiACIhAWAhIgYelJtUMEREAECkxAAqTAwHU5ERABEQgLAQmQsPSk2iECIiACBSYgAVJg4LqcCIiACISFgARIWHpS7RABERCBAhOQACkwcF1OBERABMJCQAIkLD2pdoiACIhAgQlIgBQYuC4nAiIgAmEhIAESlp5UO0RABESgwAQkQAoMXJcTAREQgbAQkAAJS0+qHSIgAiJQYAISIAUGrsuJgAiIQFgISICEpSfVDhEQAREoMAEJkAID1+VEQAREICwEJEDC0pNqhwiIgAgUmIAESIGB63IiIAIiEBYCEiBh6Um1QwREQAQKTEACpMDAdTkREAERCAsBCZCw9KTaIQIiIAIFJiABUmDgupwIiIAIhIWABEhYelLtEAEREIECE5AAKTBwXU4EREAEwkJAAiQsPal2iIAIiECBCUiAFBi4LicCIiACYSEgARKWnlQ7khJYuXKlcRwn6XfJNv7888+GY1REQATSE5AASc9IewSMwGOPPWbOOusss+eee5rddtvN7LjjjqZ169bm9ddfT9qSX3/91dx1113mxBNPNLVq1bLH8H/gwIFm/fr1SY8p1saJEyea77//Pi+Xz+e581JhnbToBCRAit4FqkAuCQwePNicf/75ZsuWLeb//b//Z3go/u1vfzNbb721Oemkk8zf//73Mpf77bffTJ8+fcxNN91kBc0//vEP89RTT5lOnTqZ+++/31xxxRVl9i/mhzfeeMOccMIJZs2aNTmvRj7PnfPK6oSlQ8Cd3quIQCgIPPTQQ+iqnAceeKBce3755RenR48ezs477+ysW7cu9v3ll19uj3n66adj27w3f/nLX+x3EyZM8DYV9f+LL75o6zNv3ryc1yOf5855ZXXCkiGAflhFBEJBYO+993Y6dOiQsi08eHv27Ol89tlndh+Eyvbbb+/06tUr6THuLMa59NJLnWeffTbp995GV6Xk3H777Y47O3Bc1ZkzcuRIZ+PGjd7XjmtXcf75z386J598snPkkUc6F154ofPpp5/GvufNZZdd5rgqNntsly5dnDZt2jjXXXeds2HDBrvflClTnHbt2lkB0rlz5zJC8uGHH3ZOP/10e+6+ffs68+fPz9m5y5xIH0QggYBUWKUzGVRNsiCwbNky8+WXXxpXgKQ8ywEHHGBGjRpl9t9/f7vPnDlzjPug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\n", | |
"text/plain": [ | |
"<IPython.core.display.Image object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"data": { | |
"image/png": "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IiACIiABontABERABETAFwEJEF/YdJAIiIAIiIAEiO4BERABERABXwQkQHxh00EiIAIiIAISILoHREAEREAEfBGQAPGFTQeJgAiIgAhIgOgeEAEREAER8EVAAsQXNh0kAiIgAiIgAaJ7QAREQAREwBcBCRBf2HSQCIiACIiABIjuAREQAREQAV8EJEB8YdNBIiACIiACEiC6B0RABERABHwRkADxhU0HiYAIiIAISIDoHhABERABEfBFQALEFzYdJAIiIAIiIAGie0AEREAERMAXAQkQX9h0kAiIgAiIgASI7gEREAEREAFfBCRAfGHTQSIgAiIgAhIgugdEQAREQAR8EZAA8YVNB4mACIiACEiA6B4QAREQARHwRUACxBc2HSQCIiACIiABontABERABETAFwEJEF/YdJAIiIAIiIAEiO4BERABERABXwQq+DoqQAfl5eWZd99916xfv9588803Zvfu3aZ69eqmefPm5sQTTzTVqlULUG1VFREQAREIDwGnBcgjjzxixo8fb9asWRO3R2rUqGGmTJliBg8ebMqVKxd3H20UAREQARHwR8BZFdbMmTPNVVddZbp06WJefPFF89lnn5lNmzaZrVu3WoGydOlSc+2115oRI0aYMWPG+KOjo0RABERABBISKJevAspL+G2Av0BwoKKaOnVqibV86qmnzPXXX29VXJqFlIhKX4qACIhAqQg4OwP5/PPPzRlnnJG0saeffrrZsGGDYX8VERABERCB9BFwVoCcddZZZs6cOUlJPProo6Zy5cqmadOmSffVDiIgAiIgAqkTcNaIPmjQIHP22WebDz/80AwYMMB6XdWtW9dUrFjRbN682WzcuNE888wz5vnnnzcTJ040FSo429TUe1N7ioAIiEAWCThrA4HRF198YYYNG2YWLlxofvnll2LYOnToYEaOHGkuueSSYt9pgwiIgAiIQNkIOC1AvKZv377dfPLJJ+bHH3+07rqHHnqo4VWzZk1vF/0XAREQARFIM4FQCJA0M9HpREAEREAEUiAQesPAunXr7Mzk2GOPTQGHv11WrFhhnnzySX8H6ygREAERKEKgb9++pm3btkW2Bu+js15YqaIcNWqUOe6441Ld3dd+CI9Fixb5OlYHiYAIiEAsAZ4lrgxIQz8D6devn8nk7MPr+G7dupkJEyZ4H/VfBERABHwRGDdunK/j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du3aeaNHjy7YFpU3AwYMyDvwwAPztmzZUtDkVatW5ZUrVy4vf2ZasC1qb9atW5dXo0aNvEaNGuX96le/crb5moG4K/sDV/Nt27aZYcOGmRtvvLFQ3Tp37mw/f/3114W2h/HDggULzI4dO0z+g7OgeVWqVLEzsDlz5hRsi8qbjh07mj/+8Y8GdaZXjjjiCFO/fn0ThfvBa3Psf9S8V1xxhckfaJkePXrEfuXce61I6FyXBbfCderUMVOmTClWQabq+SNO065du2LfhW0Duv0KFSqYxo0bF2pas2bN7AMzf6hpWRT6MsQfrr/++mKte/XVV823335rTjjhhGLfRWHDHXfcYdasWWPmzZtXbLDlWvslQFzrMcfqu3jxYvPXv/7V2kWaNGniWO1LX92tW7eafHVVMSHBtn379pkffvjB1K1bt/QnDskR6PuxDzVv3txce+21IWlV6s1YsWKF+f3vf2/mz59v8lVYqR8Y0D0lQALaMUGuFqNo1DSxBTUNI+/YwkgT4/mJJ55o1Rix34X1ffny5U3FihWLNc9js3v37mLfRWXD999/b8477zzz5ZdfmldeecVUrVo1Kk237aTvL7vsMqvmPe2000LRdtlAQtGN2W0E0+/q1asXes2ePbtQJR577DHrutmlSxc72so3rhf6PqwfcNvF66poyTci201wi2L5/PPPrecVnmivvfZaJNSZRft57Nixdgbap08f895779kX3ml79uyx71HruVYKDxldq73qmxMC9erVM3fffXehazPL8ApurLjyDh061O7njb6978P8nzgHRpqoamJVFPneWQYbUey2MHOIbdtHH31kunfvblV3zEqL2odi9w3z+zfeeMN89913hkFV0YI9aNKkSSbfU6/oV4H+XA7/sUDXUJVzisADDzxgBg8ebIgHGTdunFN1T0dlmZ3lu2Vau8/AgQMLTonOH4+kWbNmFWyLwpu1a9ea9u3bm9atW5vnnnvOzlqj0O54bVy/fr356aefCn3FrGTZsmXmpZdesgOMWrVqFfo+6B80Awl6DzlUP6bguPDysGS0TUR6bOnWrZsNMIzdFrb3tB27z80332w5HHnkkWbChAk2kG7y5Mlha27S9uCFhWMBkeh448WW/BgIG2wZuy3M7w8//PBizUOlic2sRYsWxb5zYYMEiAu95Egd586da1U3qG+uu+66YrUm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\n", | |
"text/plain": [ | |
"<IPython.core.display.Image object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"with r_inline_plot(width=400, height=400):\n", | |
" \n", | |
" # n=1 is always GC\n", | |
" r_cqn.cqnplot(r_result, n=1, xlab=\"GC content\")\n", | |
" \n", | |
"with r_inline_plot(400, 400):\n", | |
" \n", | |
" # n=2 is always length\n", | |
" r_cqn.cqnplot(r_result, n=2, xlab=\"Length\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "97de543e", | |
"metadata": {}, | |
"source": [ | |
"To get `log2` normalised counts we need to add `log2_tpm` to `log2_offst`.\n", | |
"\n", | |
"This comes from the identity on p.4 of [vignette](https://bioconductor.org/packages/release/bioc/vignettes/cqn/inst/doc/cqn.pdf):\n", | |
"\n", | |
"```R\n", | |
"RPKM.cqn <- cqn.subset$y + cqn.subset$offset\n", | |
"```\n", | |
"\n", | |
"Here `RPKM.cqn` are the normalised counts (log2), `cqn.subset$y` is the `log2` transformed reads per million,\n", | |
"and `cqn.subset$offset` is the offset in `log2` scale." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 66, | |
"id": "61d6d268", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>mut_1</th>\n", | |
" <th>mut_2</th>\n", | |
" <th>wt_1</th>\n", | |
" <th>wt_2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>YAL001C</th>\n", | |
" <td>8.044912</td>\n", | |
" <td>8.068695</td>\n", | |
" <td>6.719759</td>\n", | |
" <td>7.152507</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL002W</th>\n", | |
" <td>6.636573</td>\n", | |
" <td>6.827605</td>\n", | |
" <td>7.520501</td>\n", | |
" <td>7.708715</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL003W</th>\n", | |
" <td>12.128912</td>\n", | |
" <td>12.128912</td>\n", | |
" <td>9.084828</td>\n", | |
" <td>9.065681</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL004W</th>\n", | |
" <td>7.741705</td>\n", | |
" <td>8.057528</td>\n", | |
" <td>9.062010</td>\n", | |
" <td>9.152264</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL005C</th>\n", | |
" <td>10.032228</td>\n", | |
" <td>9.991601</td>\n", | |
" <td>10.504280</td>\n", | |
" <td>10.463133</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" mut_1 mut_2 wt_1 wt_2\n", | |
"YAL001C 8.044912 8.068695 6.719759 7.152507\n", | |
"YAL002W 6.636573 6.827605 7.520501 7.708715\n", | |
"YAL003W 12.128912 12.128912 9.084828 9.065681\n", | |
"YAL004W 7.741705 8.057528 9.062010 9.152264\n", | |
"YAL005C 10.032228 9.991601 10.504280 10.463133" | |
] | |
}, | |
"execution_count": 66, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"normed_cqn = log2_tpm + log2_offset\n", | |
"normed_cqn.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 67, | |
"id": "fdfa6121", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 1080x360 with 4 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"fig = plt.figure(figsize=(15,5))\n", | |
"\n", | |
"ax = None\n", | |
"for i, col in enumerate(data_with_features.columns, start=1):\n", | |
" ax = fig.add_subplot(1, 4, i, sharex=ax, sharey=ax)\n", | |
" ax.set_title(col)\n", | |
" \n", | |
" sns.histplot(x=yeast_naive_log2_rpkm[col], y=normed_cqn[col], ax=ax, cmap='magma')\n", | |
" \n", | |
" ax.set_xlabel(\"log2(RPKM, computed naively)\")\n", | |
" ax.set_ylabel(\"log2(RPKM, computed by CQN)\")\n", | |
" \n", | |
"plt.tight_layout()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "e559bae5", | |
"metadata": {}, | |
"source": [ | |
"Let's see how the data looks like before and after correction (see below)\n", | |
"While the median RPKM signals have equalised across all of the quintiles of GC content,\n", | |
"the IQR of mutant samples has increased significantly, compared to thhe naive (unnormalised) data" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 68, | |
"id": "5626b6a6", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Text(0.5, 1.0, 'With GC Correction')" | |
] | |
}, | |
"execution_count": 68, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA70AAAGRCAYAAACpLNTIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAACKlUlEQVR4nO3deZxT1d0/8M83zMIOQhCEQUZlBrU+uGDBuoIyKK3go62trW2nVSvdxGq1VUtFFPvYRZ92qAsW/Tlau2srKCijD4ituICCVisM6ijDJmFRZwZm/f7+uElMQnJzT26Sm+Xzfr3mxZwkJ/fMneF+c+4553tEVUFERERERERUiHxeN4CIiIiIiIgoU9jpJSIiIiIiooLFTi8REREREREVLHZ6iYiIiIiIqGCx00tEREREREQFi51eIiIiIiIiKljs9FJeE5HTRGSDzfOVIqIiUpLNdtEnRGSZiNR63Q4iIjoQ42j6icjFIrLc63YQ0SfY6aWcIiLXi8jSmMcaEzx2kao+p6rjIh5vEpGpWWrrAyIyP8lrRES+LyKviUibiGwXkZUiclHM684WkVUi8rGI7BSRZ0Vkps37VovIX0UkICIfBt//ahHpla6fLxUicpOI/D7yMVWdrqr1XrWJiKiY5EIcFZETReRxEdkjIntF5E0RuVVEDop4zSEicp+IbAvGvrdEZJ6I9EvwnmXBGNMoIq3Bdt4vIpVu2upWvJsCqvqwqk7zsl1EFI2dXso1qwCcEuq8icgIAKUAToh5bGzwtbmuDsAPAPwQwFAAowDMAXBO6AUi8gUAfwXwIIAKAMMB3AhgRrw3FJEjALwIYDOA/1LVQQAuBHAigAEmjYt3555384mI8pqncVRETgawEsC/ABypqoNhxbwuAMcGXzMEwGoAfQB8RlUHAKgBMBjAEQne+m8AZgL4CoBBwfdaC+CsFNpYElMWEeFnYqJCpqr84lfOfAEoA9AGYEKw/EUA/w/AszGPbQp+PxlAc/D7hwD0ANgHoAXAjwBUAlAAtQDeBxAA8JOI45UD+DWArcGvXwMoDz73DQD/jGmfwvqgcDmATgAdwWMtifOzVAPoBnCizc8rwXZda3COfg/giSSvmQngDQB7YX34OCriuSYAPwbwGoD24M+jAC4NtmVV8HWXAPgPgD0AngIwJuI9PgWgAcBuADsA3ADrQ01H8Ly0AFgffO1KAJcFv/fB6vS/B+ADWB39QcHnbH9X/OIXv/jFr+Rf2Y6jcY7/TwALkrRxPoDXAfgc/kxTg20abfOakQAWB+PSJgDfinjuJlid5t8D+AjAZcHYdCuszvm+YCw8MiK2bQDwxYj36APg9mD8+jD4c/YJnhMNnq8WAJ9BzOcHACcDeDlY72UAJ0c8txLALcF2fAxgOQC/139H/OJXoX3xrhblFFXtgDWKeXrwodMBPAcruEQ+dsDdaVX9GqzgM0NV+6vqLyKePhXAOFh3hG8UkaOCj/8EwEkAjoN113girE5ZsnbeC+BhAL8IHiveqOyZADar6hqbtxoHYDSsYOzUVLvXi0g1gD/CGmEeBmApgCUiUhbxsi8D+Bysu+pdwcfOAHAUgLNF5L9hdWQvCL7Hc8H3hIgMAPA0gCdhfcgYC+AZVX0SwM8A/Dl4To6N07xvBL+mADgcQH8Av415TaLfFRERJeFBHA0LTk3+DIBHkjRzKoBHVbXH4Y81FcBLqrrZ5jV/BNAMKy59AcDPRCRyFPg8WLFzMKz4DQBfg3UTewCAnbA6vH8AcDCsOHmXiHwq+NpfAZgAqwM7BNYNgR58ck4HB8/Z6shGBUe1n4A182sogDsAPCEiQyNe9hUA3wwetwzANfang4hMsdNLuehZfBJEToMVrJ+LeexZw/ecp6r7VHU9gPUITrECcDGAm1X1A1XdCWAerCCYDn4A2yMfEJHm4Pqm/SIyBlYABIBtBu87NMnrvwRrJLhBVTthBeo+sAJ1SJ2qblbVfRGP3aSqrcHHZgH4H1X9j6p2werMHhds87kAtqvq7aq6X1U/VtUXHbb9YgB3qOo7qtoC4HoAF8VMNUv0uyIiImeyGUcjHQTrs2U49onIL4Jxr1VEQjeVk8WxWLavF5HRsDrlPw7GpXUAFiE6nq9W1X+oak9E7HtAVd8IxrlzADSp6v9T1S5VfQVW5/0LwanPlwC4UlW3qGq3qj6vqu0O2v45AI2q+lDwff8I4C1EL2H6f6q6Mdiuv8C6EU9EacROL+WiVQBODSa8GKaqjQCeB3By8LFjYL4OKbLz2QZrhBGw7gi/F/Hce8HH0mEXgEMiH1DVClid4XJYU5t3BZ86BM4d8L4xon6m4J30zbDWE4fEu1se+dgYAL8JflDZC2uqlwTfYzSAtw3am7Btwe9LYK1jDkn0uyIiImeyGUcj7YE1+hmOUar6I7XW9f4d1vUeSB7HYjmJe7tV9eOIx96DedybFIp7wdh3MYARsOJ2b6QW+2LjXry2Me4RZRg7vZSLVsNKUnE5rDUuUNWPYK25vRzAVlV9N0FdNTzWVliBLuTQ4GMA0Aqgb+iJYOIPk2P9H4AKETnR5jUbYAXdzztqreXpJK+P+plERGB1VLdEvCZe2yMf2wxglqoOjvjqo6rPB59LlGgk2TmJd767YK0LJiKi9MhmHP2komorrKnVFyR56dMAzjdIHvU0gIkiUpHg+a0AhgSX34QcCvO492xM3Ouvqt+BtY55P+LHPtO4F69tRJRh7PRSzglO71kD4GpY07FC/hl8zO7u9A5Ya0Wd+iOAOSIyTET8sLImh7bcWQ/gUyJynIj0hpUIw/GxVHUDgIUA/iQiNSLSJ5g58+SI12jwZ/qpiHxTRAaKiE9EThWRexO89VxYd+t/GeqIi8hYEfm9iAyGNTXqcyJyloiUwsoc3Q7rLr9T9wC4PrSWSUQGiciFweceBzBCRH4gIuUiMkBEJkWck0qbDzJ/BHCViBwmIv3xyRrgrgSvJyIiQ1mOo7F+BOASEblORA4GgGBn9bCI19wBYCCA+uCyGYjIKBG5Q0TGx/l5noa13vbvIjJBREqCsefbInJJcK3v8wD+R0R6B9/jUnyydteJxwFUi8jXRKQ0+PVpETkqOGPqfgB3iMhIEeklIp8RkXJYa4F7kPicLQ2+71eC7f4SgKODxyOiLGGnl3LVs7ASOvwz4rHngo/ZBev/gdWJ3SsiThJBzIf1weA1WJkkXwk+BlXdCOBmWHeYG2PaAgD3ATg6eKx/JHj/78FKXnEHrCnCzbCyNH4JVrIQqOrfguVLYN0R3hFsw2Px3lBV34aVKKQSwBsi8iGsdUdrAHwc7Gx/FcACWHenZ8BKStLh4HyEjvF3AD+H1WH/CMC/AUwPPvcxrK0lZsCaktUIKzEVYG29BAC7ROSVOG99P6zsoKsAvAvrzvkVTttFRESOZSuORlHVf8JK5Hg6gI3BacJPwspSvCD4mt2wbgB3AnhRRD4G8Ays7MabErz1F2B1IP8cfN2/YW3V93Tw+S/DiotbYU2lnquqDQbt/hjANAAXBd9jO6w4WB58yTWwPie8DCue/xxW9uk2BLNAB8/ZSTHvuwtWLowfwpqm/SMA56pqwGnbiMg9sQaaiIiIiIiIiAoPR3qJiIiIiIioYLHTS0RERERERAWLnV4iIiIiIiIqWOz0EhERERERUcFip5eIiIiIiIgKVonXDXDC7/drZWWl180gIqIMW7t2bUBVh3ndjnzB+EhEVDwYI1OXF53eyspKrFmzxutmEBFRhonIe163IZ8wPhIRFQ/GyNRxejMREREREREVLHZ6iYiIiIiIqGCx00tEREREREQFi51eIiIiIiIiKljs9BIREREREVHBYqeXiIiIiIiIChY7vUREBSgQCOCKK67Arl27vG4KERERkafY6SUiylFuOq719fV47bXXUF9fn4GWEREREeUPdnqJiHJUqh3XQCCAZcuWQVWxbNkyjvYSERFRUWOnl4goB7npuNbX10NVAQA9PT0c7SUiIqKixk4vEVEOctNxbWhoQGdnJwCgs7MTy5cvz0gbiYiIiPIBO71ERDnITce1pqYGpaWlAIDS0lJMmzbN6Nhu1hIzgRYRERHlmoLu9PKDGxHlKzcd19ra2vD3IhJVdsJNEiwm0CIiIqJcU9CdXn5wI6J85abj6vf7MWrUKADAyJEjMXToUMd13awlZgItIiIiykUF2+nlBzciymduO65bt24FAGzdujVrSbCYQIuIiIhyUcF2evnBjYjyWbo6rqqatSRYTKBFREREuahgO7384EZE+cyrjqubtcRuE2gRERERZULBdnr5wY2I8plXHdfa2lqICADA5/MZrSV2U5eIiIgoUwq208sPbkSUz7zquPr9fkyfPh0igunTpxutJXZTl4iIiChTCrbTyw9uRJTPvOq4ho49fvz4lG74ualLRERElAkZ6/SKyP0i8oGI/DvOc9eIiIqIP1PHB/jBjYjyl5cdV8q8XIiRRERExSKTI70PADgn9kERGQ2gBsD7GTw2AOtD44IFC1IaqXVTl4goHdx0XN1cw7jHeVY8AI9jJBERUbHIWKdXVVcB2B3nqf8F8CMAmqljExEVAi9uvkXuU7506VLucZ4hjJFERETZk9U1vSIyE8AWVV2fjeMFAgFcccUVKX3wclOXiChf1dfXR2WNNt3jvKenBwDQ3d3N0V5D2Y6RRERExSJrnV4R6QvgJwBudPj6y0VkjYis2blzZ0rH5BQ9IiIzy5cvj9of+KmnnnJct6GhAV1dXQCArq4u7nFuwCRGpiM+EhERFZNsjvQeAeAwAOtF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\n", | |
"text/plain": [ | |
"<Figure size 1080x360 with 2 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"fig = plt.figure(figsize=(15, 5))\n", | |
"\n", | |
"ax = fig.add_subplot(1,2,1)\n", | |
"_df = yeast_naive_log2_rpkm.stack().reset_index()\n", | |
"_df.columns = ['gene', 'condition', 'yeast_naive_log2_rpkm']\n", | |
"_df = _df.join(yeast_gc_quintiles, on='gene')\n", | |
"\n", | |
"sns.boxplot(x='gc_quintile', y='yeast_naive_log2_rpkm', hue='condition', data=_df, ax=ax)\n", | |
"\n", | |
"ax.set_xlabel('GC content quintile')\n", | |
"ax.set_ylabel(\"log2(RPKM, computed naively)\")\n", | |
"ax.xaxis.set_tick_params(rotation=90)\n", | |
"\n", | |
"ax.set_title(\"Without GC Correction\")\n", | |
"ax.legend_.set_visible(False)\n", | |
"\n", | |
"ax = fig.add_subplot(1,2,2, sharex=ax, sharey=ax)\n", | |
"\n", | |
"_df = normed_cqn.stack().reset_index()\n", | |
"_df.columns = ['gene', 'condition', 'normed_cqn']\n", | |
"_df = _df.join(yeast_gc_quintiles, on='gene')\n", | |
"\n", | |
"sns.boxplot(x='gc_quintile', y='normed_cqn', hue='condition', data=_df, ax=ax)\n", | |
"ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))\n", | |
"\n", | |
"ax.set_xlabel('GC content quintile')\n", | |
"ax.set_ylabel(\"log2(RPKM, computed by CQN)\")\n", | |
"ax.xaxis.set_tick_params(rotation=90)\n", | |
"\n", | |
"ax.set_title(\"With GC Correction\")\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "deaea6e0", | |
"metadata": {}, | |
"source": [ | |
"The normalisation has somehow reversed the trend in length bias in the data, equalising it a little bit.\n", | |
"It is hard to conclude from this plot alone whether this is a net gain or loss." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 69, | |
"id": "e4cebe10", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Text(0.5, 1.0, 'With length Correction')" | |
] | |
}, | |
"execution_count": 69, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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A8BmEelyPVV9EsBNAB5GqON8CJw5QogoTRKaDCKifCAivwBQrar1KR9MRERU4MLZov8DoCLNfbBERClxppfIRyJymIiMCi+PGotQtuP/53e7iIiIskVEzhaR7uHkW78AMI8dXiLKJnZ6ifzVB6F9vbsQ2ud0Oz5dekxERFSMpiCUzPEdAB0Avutvc4io2HF5MxERERERERUtzvQSERERERFR0Up0hljeqaqq0mHDhvndDCIiyrIVK1YEVXWg3+0oFIyPRESlgzEyfQXR6R02bBiWL1/udzOIiCjLRGS9320oJIyPRESlgzEyfVzeTEREREREREWLnV4iIiIiIiIqWuz0EhERERERUdFip5eIiIiIiIiKFju9REREREREVLTY6SUiIiIiIqKixU4vERERERERFa2i7vQGg0FcccUV2Lp1a07rEhERERERUX4o6k5vY2MjVq1ahcbGxpzWJSIiIiIiovxQtJ3eYDCIBQsWQFWxYMECoxlbm7pERERERESUP4q209vY2AhVBQB0dnYazdja1CUiIiIiIqL8UbSd3sWLF6OtrQ0A0NbWhkWLFuWkbiZwPzEREREREVFmFG2nt66uDmVlZQCAsrIyTJw40ahut27dAADdunUzqhth03HlfmIiIiIiIqLMKNpOb319PTo6OgCElijX19enVbejo8OobkS6HVfuJyYiIiIiIsqcou30xorsz/Vq27ZtjvL27duN6tt0XLmfmIiIiIiIKHOKttPb0NAQ7TyqKhoaGjzXnTlzpqM8Y8YMo2vbdFz93k9MRERERERUTIq20/vkk086yk888YTnuuvWrXMtp2LTca2rq0N5eTkAoLy8PK39xERERERERBRStJ3e+CXNJkuchw0b5lpOxabjWl9fDxEBAAQCgbT2ExMREREREVFI0XZ6J0yY4CjX1dV5rjt16lRH+eabbza6tk3HtaqqCpMmTYKIYNKkSRgwYIDRtYmIiIiIiOhTRdvpnTJlCgKB0K8XCAQwZcoUz3Vra2ujs7vDhg3D8OHDja5t23Gtr6/HqFGjOMtLRERERERkqWg7vVVVVdHZ3YkTJxp3PKdOnYpevXoZz/JGTJ48GZWVlTjzzDPTqk9ERERERET2stbpFZHfi8hHIvKfBPddKyIqIlXZuj4Qmu0dPXq00SxvRG1tLRYsWGA8yxsxb948tLS0YO7cucZ1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s7wRJrO9kZnaCJMZW5u6RGnKWowkouInIn43gSgv+dHpPQDAxpjyJgDHxj9IRC4HcDkADB06NK0L9ezZM616tnX9vjYRERWslDEyE/GRKNMyNYA/fvx4LFmyJFqOXylETjfffDNmzJgRLccfHUdEIX50ehMNQWmXG1TvA3AfABx99NFd7k/EdibUpr5fdYmIqKikjJHpxEeiXEt3AH/69OmOTu9NN92UqSYVpQkTJkQ7vSKC8ePH+9wiovzkR6d3E4AhMeUaAO/70A4iypGKigrHEucePXoY1e/Tp49jibPJmXwi4limHAh4T2VgU5coTYyRRaAUty1l8neJzPaWyixv79690dzcHC336dPHqH5ktpezvETJ+fEN7mUAI0TkIBHpDuDrAOb60A6KEX+0iMlRIzZ1/b52ugr1d/br9Vq8eLGjbHpk0WOPPeYomxxZtHTpUkfZ5Nghm7q2CvE94tf7q8gwRhahnj17cuuSgenTp2PZsmUlM8t7xx13OMp33nmnUf0JEyZg2bJlnOX1oKKiwrVMxSvnM72q2i4iPwCwEEA3AL9X1Tdy3Q4iyq3IbK/pLG9EZLbXZJY3IjJjm85MrU1dIlOMkfnDZra2mGZwKftqa2ujs719+vTB8OHD/W5S0br11luj58kDwG233eZjayiX/FjeDFWdD2C+H9em5GxmZWxndPy8tl/X9et39uv1ip/tNRU/22sifsY2V3VtFeJ7hLO79hgj8xNnaimb7rjjDlx11VXGs7ylKH7LlMls7dixY6P1KyoqMGbMmGw0kfKQL51eIiIionzG2VrKpdraWixYsMDvZhQE29naW2+9FT/+8Y85y1ti2OklIiIiV6WYmImI8pPtbO3YsWNzmqOD8gM3qREREZERJmYiIj/deuutCAQCnK0lzzjTS0RERK44g0tE+YSztWSKnV4iIqISkGqJMpcnExFRsWKnl4iIqARxeTIREZUKdnqJiIhKAGdxiYioVDGRFRERERERERUtdnqJiIiIiIioaLHTS0REREREREWLnV4iIiIiIiIqWuz0EhERERERUdFip5eIiIiIiIiKFju9REREREREVLTY6SUiIiIiIqKixU4vERERERERFS12eomIiIiIiKhoiar63YaURGQLgPV+tyOBKgBBvxtRQPh6meHrZYavl5l8fb0OVNWBfjeiUORxfATy9z2W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\n", | |
"text/plain": [ | |
"<Figure size 1080x360 with 2 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"fig = plt.figure(figsize=(15, 5))\n", | |
"\n", | |
"ax = fig.add_subplot(1,2,1)\n", | |
"_df = yeast_naive_log2_rpkm.stack().reset_index()\n", | |
"_df.columns = ['gene', 'condition', 'yeast_naive_log2_rpkm']\n", | |
"_df = _df.join(yeast_length_quintiles, on='gene')\n", | |
"\n", | |
"sns.boxplot(x='length_quintile', y='yeast_naive_log2_rpkm', hue='condition', data=_df, ax=ax)\n", | |
"\n", | |
"ax.set_xlabel('Length content quintile')\n", | |
"ax.set_ylabel(\"log2(RPKM, computed naively)\")\n", | |
"ax.xaxis.set_tick_params(rotation=90)\n", | |
"\n", | |
"ax.set_title(\"Without length Correction\")\n", | |
"ax.legend_.set_visible(False)\n", | |
"\n", | |
"ax = fig.add_subplot(1,2,2, sharex=ax, sharey=ax)\n", | |
"\n", | |
"_df = normed_cqn.stack().reset_index()\n", | |
"_df.columns = ['gene', 'condition', 'normed_cqn']\n", | |
"_df = _df.join(yeast_length_quintiles, on='gene')\n", | |
"\n", | |
"sns.boxplot(x='length_quintile', y='normed_cqn', hue='condition', data=_df, ax=ax)\n", | |
"ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))\n", | |
"\n", | |
"ax.set_xlabel('Length quintile')\n", | |
"ax.set_ylabel(\"log2(RPKM, computed by CQN)\")\n", | |
"ax.xaxis.set_tick_params(rotation=90)\n", | |
"\n", | |
"ax.set_title(\"With length Correction\")\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "1c78c875", | |
"metadata": {}, | |
"source": [ | |
"### Use with DESeq2\n", | |
"\n", | |
"To use the `cqn` normalisation factors in DESeq2, \n", | |
"one needs to use `glm.offset` value instead of the `offset` values." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "fa3374b1", | |
"metadata": {}, | |
"source": [ | |
"We can also derive the `glm_offset` ourselves:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 70, | |
"id": "b0af2ec0", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>mut_1</th>\n", | |
" <th>mut_2</th>\n", | |
" <th>wt_1</th>\n", | |
" <th>wt_2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>YAL001C</th>\n", | |
" <td>0.180176</td>\n", | |
" <td>0.145397</td>\n", | |
" <td>0.574799</td>\n", | |
" <td>0.525387</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL002W</th>\n", | |
" <td>0.024224</td>\n", | |
" <td>0.011222</td>\n", | |
" <td>0.428009</td>\n", | |
" <td>0.373058</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL003W</th>\n", | |
" <td>-0.278617</td>\n", | |
" <td>-0.303690</td>\n", | |
" <td>-0.334926</td>\n", | |
" <td>-0.286036</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL004W</th>\n", | |
" <td>-0.290976</td>\n", | |
" <td>-0.267869</td>\n", | |
" <td>-0.389337</td>\n", | |
" <td>-0.326757</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL005C</th>\n", | |
" <td>0.158614</td>\n", | |
" <td>0.152281</td>\n", | |
" <td>-0.606464</td>\n", | |
" <td>-0.676799</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" mut_1 mut_2 wt_1 wt_2\n", | |
"YAL001C 0.180176 0.145397 0.574799 0.525387\n", | |
"YAL002W 0.024224 0.011222 0.428009 0.373058\n", | |
"YAL003W -0.278617 -0.303690 -0.334926 -0.286036\n", | |
"YAL004W -0.290976 -0.267869 -0.389337 -0.326757\n", | |
"YAL005C 0.158614 0.152281 -0.606464 -0.676799" | |
] | |
}, | |
"execution_count": 70, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"log2_offset.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 71, | |
"id": "a67d39a7", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>mut_1</th>\n", | |
" <th>mut_2</th>\n", | |
" <th>wt_1</th>\n", | |
" <th>wt_2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>YAL001C</th>\n", | |
" <td>-1.181859</td>\n", | |
" <td>-1.161977</td>\n", | |
" <td>-1.325577</td>\n", | |
" <td>-1.244168</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL002W</th>\n", | |
" <td>-1.073761</td>\n", | |
" <td>-1.068974</td>\n", | |
" <td>-1.223830</td>\n", | |
" <td>-1.138582</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL003W</th>\n", | |
" <td>-0.863848</td>\n", | |
" <td>-0.850693</td>\n", | |
" <td>-0.695004</td>\n", | |
" <td>-0.681733</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL004W</th>\n", | |
" <td>-0.855281</td>\n", | |
" <td>-0.875522</td>\n", | |
" <td>-0.657289</td>\n", | |
" <td>-0.653507</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL005C</th>\n", | |
" <td>-1.166913</td>\n", | |
" <td>-1.166748</td>\n", | |
" <td>-0.506788</td>\n", | |
" <td>-0.410876</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" mut_1 mut_2 wt_1 wt_2\n", | |
"YAL001C -1.181859 -1.161977 -1.325577 -1.244168\n", | |
"YAL002W -1.073761 -1.068974 -1.223830 -1.138582\n", | |
"YAL003W -0.863848 -0.850693 -0.695004 -0.681733\n", | |
"YAL004W -0.855281 -0.875522 -0.657289 -0.653507\n", | |
"YAL005C -1.166913 -1.166748 -0.506788 -0.410876" | |
] | |
}, | |
"execution_count": 71, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"glm_offset.head()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "8891b97b-e1c3-4d74-8f66-33b65bc93f02", | |
"metadata": {}, | |
"source": [ | |
"The GLM offset is simply the negated `offset`, with the size factor information included in it,\n", | |
"converted to `logn` scale. See [this thread](https://support.bioconductor.org/p/9136986/#9137004)." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 72, | |
"id": "db223303", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>mut_1</th>\n", | |
" <th>mut_2</th>\n", | |
" <th>wt_1</th>\n", | |
" <th>wt_2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>YAL001C</th>\n", | |
" <td>-1.181859</td>\n", | |
" <td>-1.161977</td>\n", | |
" <td>-1.325577</td>\n", | |
" <td>-1.244168</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL002W</th>\n", | |
" <td>-1.073761</td>\n", | |
" <td>-1.068974</td>\n", | |
" <td>-1.223830</td>\n", | |
" <td>-1.138582</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL003W</th>\n", | |
" <td>-0.863848</td>\n", | |
" <td>-0.850693</td>\n", | |
" <td>-0.695004</td>\n", | |
" <td>-0.681733</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL004W</th>\n", | |
" <td>-0.855281</td>\n", | |
" <td>-0.875522</td>\n", | |
" <td>-0.657289</td>\n", | |
" <td>-0.653507</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL005C</th>\n", | |
" <td>-1.166913</td>\n", | |
" <td>-1.166748</td>\n", | |
" <td>-0.506788</td>\n", | |
" <td>-0.410876</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" mut_1 mut_2 wt_1 wt_2\n", | |
"YAL001C -1.181859 -1.161977 -1.325577 -1.244168\n", | |
"YAL002W -1.073761 -1.068974 -1.223830 -1.138582\n", | |
"YAL003W -0.863848 -0.850693 -0.695004 -0.681733\n", | |
"YAL004W -0.855281 -0.875522 -0.657289 -0.653507\n", | |
"YAL005C -1.166913 -1.166748 -0.506788 -0.410876" | |
] | |
}, | |
"execution_count": 72, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"glm_offset_recomputed = np.log(2) * (-log2_offset + np.log2(yeast_library_sizes / 1_000_000))\n", | |
"glm_offset_recomputed.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 73, | |
"id": "91901b65", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"mut_1 0.0\n", | |
"mut_2 0.0\n", | |
"wt_1 0.0\n", | |
"wt_2 0.0\n", | |
"dtype: float64" | |
] | |
}, | |
"execution_count": 73, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"(glm_offset_recomputed - glm_offset).abs().max()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "fe3ef602-9968-4e2f-babb-2d3615aa1ba9", | |
"metadata": {}, | |
"source": [ | |
"Note that GLM offsets roughly to edger offsets per million:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 74, | |
"id": "24b3e734-a6fe-42e3-b47d-1c5baaf8eae3", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"mut_1 -0.677987\n", | |
"mut_2 -0.644520\n", | |
"wt_1 -1.337295\n", | |
"wt_2 -1.336069\n", | |
"dtype: float64" | |
] | |
}, | |
"execution_count": 74, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"glm_offset.median()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 75, | |
"id": "ec153ad7-200d-470c-a055-40c7cfd1721a", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"mut_1 -0.874990\n", | |
"mut_2 -0.880754\n", | |
"wt_1 -1.108634\n", | |
"wt_2 -1.060941\n", | |
"dtype: float64" | |
] | |
}, | |
"execution_count": 75, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"edger_offset_per_million = edger_offset - np.log(1_000_000)\n", | |
"edger_offset_per_million" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 76, | |
"id": "3d2b726b-91d5-44c1-b04a-ff23a2b45aa3", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"/usr/local/Caskroom/miniconda/base/envs/non-linear-offsets-for-count-data-in-rpy2/lib/python3.9/site-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", | |
" warnings.warn(msg, FutureWarning)\n", | |
"/usr/local/Caskroom/miniconda/base/envs/non-linear-offsets-for-count-data-in-rpy2/lib/python3.9/site-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", | |
" warnings.warn(msg, FutureWarning)\n", | |
"/usr/local/Caskroom/miniconda/base/envs/non-linear-offsets-for-count-data-in-rpy2/lib/python3.9/site-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", | |
" warnings.warn(msg, FutureWarning)\n", | |
"/usr/local/Caskroom/miniconda/base/envs/non-linear-offsets-for-count-data-in-rpy2/lib/python3.9/site-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", | |
" warnings.warn(msg, FutureWarning)\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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q6moqOC+++7rcZ5Vb1asWEF0dDTnnHOOH6v1XklJCd/73vd45ZVXWLFiBb/+9a956623ePrpp9m4cSOPPfYYixcvJi4ujttuu21Ia9MGllJKKaWUUmHqiSee4J133mHMmDGsXbuW9vb2MzYk9saKFStISEiwvIFljMEYg802sIF1I0eO5JVXXunzmLvvvnswpflMhwgqpZRSSikV4n7zm98wZcoUpkyZwm9/+1vA3cA4dOgQ1157Lb/61a+49dZb2bp1KzNmzODgwYPce++9XLFwNldfMJ8f/vCHAJSXl3PDDTcwZ84c5syZw6effsqRI0dYvHgxjzzyCDNmzGDVqlWnfPaDDz7IV7/6VS6++GLy8/P5U7cFMx5++GHmzJnDtGnTeOCBBwA4cuQIkyZN4lvf+hYzZ86kqKjolPfLy8vjxz/+MQsWLGD27Nls3ryZK664gnHjxrF48eKT7zFlypQ+/04efPBBfv3rXwOwdetW5s+fz7Rp07juuutO7vt14YUX8h//8R/MnTuXCRMmnPG9+UJ7sJRSyo+6rygIuqqgUkop623atIm//OUvrFu3DmMM8+bN44ILLmDx4sUsX76cjz/+mIyMDObNm3dyKF1VVRXLli1j+aqNiAjpjg4Avv/973PPPfewcOFCCgsLueKKK9izZw933303CQkJJxtip9u+fTtr166lsbGRs88+m6uvvpqdO3dy4MAB1q9fjzGGa6+9lpUrVzJ69Gj27dvHX/7yF5544oke32/UqFGsWbOGe+65hzvuuINPP/2UlpYWzjrrLJ96pm677TYeffRRLrjgAu6//34eeuihkw3Rjo4O1q9fz9tvv81DDz3EBx98MOD3704bWEoppZRSSoWw1atXc9111xEfHw/A9ddfz6pVqzj77LN7fU1SUhJOp5P77vk2F116BXfechMAH3zwAbt37z55XF1dHfX19f3WsGjRImJjY4mNjeWiiy5i/fr1rF69mvfee+9kHQ0NDRw4cIDRo0eTm5vL/Pnze32/a6+9FoCpU6fS0NBAYmIiiYmJOJ1Oampq+q2nu9raWmpqarjgggsAuP3227nppptOPn/99dcDMGvWLI4cOTKg9+6JNrCUUkoppZQKYe69mgcmKiqK9evX8+yrb/HWsr/zyjN/5qOPPsLlcrFmzRpiY2MH9H4icsZ9Ywz33Xcf3/zmN095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\n", | |
"text/plain": [ | |
"<Figure size 864x216 with 4 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"fig = plt.figure(figsize=(12,3))\n", | |
"_offsets = glm_offset\n", | |
"_sfs = edger_offset_per_million \n", | |
"\n", | |
"xlabel = 'Estimated Offset'\n", | |
"line_label = 'Edger\\noffset per million'\n", | |
"ax = None\n", | |
"for i, col in enumerate(_offsets.columns, start=1):\n", | |
" ax = plt.subplot(1, len(_offsets.columns), i, sharex=ax, sharey=ax)\n", | |
"\n", | |
" sns.distplot(_offsets[col])\n", | |
" ax.set_title(col)\n", | |
" ax.set_xlabel(xlabel)\n", | |
" ax.axvline(_sfs[col], label=line_label)\n", | |
" \n", | |
" if i == len(_offsets.columns):\n", | |
" ax.legend()\n", | |
"plt.tight_layout()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "3891768a-d1c9-4c37-a1ef-c92bc241a674", | |
"metadata": {}, | |
"source": [ | |
"To use it in DESeq2, do not forget to exponentiate and divide out the goemetric mean\n", | |
"\n", | |
"Don't forget to exponentiate it and divide out the geometric mean though (see the equivalent section above about EDASeq).\n", | |
"No need to flip a sign though:\n", | |
"\n", | |
"```R\n", | |
"normFactors <- exp(ans$glm.offset)\n", | |
"normFactors <- normFactors / exp(rowMeans(log(normFactors)))\n", | |
"normalizationFactors(dds) <- normFactors\n", | |
"```" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 77, | |
"id": "5bca3535-85b1-4985-bd5b-e65f9fb39ab5", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>mut_1</th>\n", | |
" <th>mut_2</th>\n", | |
" <th>wt_1</th>\n", | |
" <th>wt_2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>YAL001C</th>\n", | |
" <td>1.047636</td>\n", | |
" <td>1.068674</td>\n", | |
" <td>0.907391</td>\n", | |
" <td>0.984351</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL002W</th>\n", | |
" <td>1.053930</td>\n", | |
" <td>1.058987</td>\n", | |
" <td>0.907063</td>\n", | |
" <td>0.987780</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL003W</th>\n", | |
" <td>0.912992</td>\n", | |
" <td>0.925081</td>\n", | |
" <td>1.080923</td>\n", | |
" <td>1.095364</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL004W</th>\n", | |
" <td>0.909481</td>\n", | |
" <td>0.891257</td>\n", | |
" <td>1.108614</td>\n", | |
" <td>1.112815</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL005C</th>\n", | |
" <td>0.701818</td>\n", | |
" <td>0.701933</td>\n", | |
" <td>1.358041</td>\n", | |
" <td>1.494745</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" mut_1 mut_2 wt_1 wt_2\n", | |
"YAL001C 1.047636 1.068674 0.907391 0.984351\n", | |
"YAL002W 1.053930 1.058987 0.907063 0.987780\n", | |
"YAL003W 0.912992 0.925081 1.080923 1.095364\n", | |
"YAL004W 0.909481 0.891257 1.108614 1.112815\n", | |
"YAL005C 0.701818 0.701933 1.358041 1.494745" | |
] | |
}, | |
"execution_count": 77, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"glm_offset_for_deseq2 = np.exp(glm_offset)\n", | |
"glm_offset_for_deseq2 = glm_offset_for_deseq2.div(np.exp(glm_offset_for_deseq2.apply(np.log).mean(axis=1)), axis=0)\n", | |
"glm_offset_for_deseq2.head()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "2e8a0c02-9c94-4aa1-a1cc-9af95a6c1d3c", | |
"metadata": {}, | |
"source": [ | |
"Which brings it to the similar scale of DESeq2 size factors" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 78, | |
"id": "7abcc1f5-f4df-4812-af55-51dea25497c4", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"mut_1 1.387364\n", | |
"mut_2 1.407472\n", | |
"wt_1 0.702456\n", | |
"wt_2 0.723189\n", | |
"dtype: float64" | |
] | |
}, | |
"execution_count": 78, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"glm_offset_for_deseq2.median()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 79, | |
"id": "73aec497-6089-4041-9c61-5a635a3d103e", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"mut_1 1.130654\n", | |
"mut_2 1.122137\n", | |
"wt_1 0.888619\n", | |
"wt_2 0.934276\n", | |
"dtype: float64" | |
] | |
}, | |
"execution_count": 79, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"deseq2_size_factors" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 80, | |
"id": "5ffada1f-5827-4b2b-b2be-310a59875cac", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"/usr/local/Caskroom/miniconda/base/envs/non-linear-offsets-for-count-data-in-rpy2/lib/python3.9/site-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", | |
" warnings.warn(msg, FutureWarning)\n", | |
"/usr/local/Caskroom/miniconda/base/envs/non-linear-offsets-for-count-data-in-rpy2/lib/python3.9/site-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", | |
" warnings.warn(msg, FutureWarning)\n", | |
"/usr/local/Caskroom/miniconda/base/envs/non-linear-offsets-for-count-data-in-rpy2/lib/python3.9/site-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", | |
" warnings.warn(msg, FutureWarning)\n", | |
"/usr/local/Caskroom/miniconda/base/envs/non-linear-offsets-for-count-data-in-rpy2/lib/python3.9/site-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", | |
" warnings.warn(msg, FutureWarning)\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA18AAADQCAYAAAD4SNv5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABUcElEQVR4nO3deXxb1Z3//9dHsmR5353EzuLsIQmJQ0JYwhL2pSxl2inLAAMtQ+lCy3S6ThlK937b/rpCoWlLKW2BUGgphbDTQCAhK0nIShIncRw78b5vsnR+f0h2ncSOZVvSvZI+z8dDD6wrXenjoLd8zz3nniPGGJRSSimllFJKRZbD6gKUUkoppZRSKhFo40sppZRSSimlokAbX0oppZRSSikVBdr4UkoppZRSSqko0MaXUkoppZRSSkWBNr6UUkoppZRSKgq08aWUUkoppZRSUaCNL6WUUkoppZSKAm18qQGJyP0i8qcQn/sxEVktIu0isjLCpSkVk4aZqR+LyB4RaRGRXSJya6TrU8ruRMSIyLQQnucWkadF5EBwn6WRr06p2DSMXJ0pIq+KSL2I1IjIX0RkXDRqjDfa+FLhUA/8DPiBxXUoFS/agKuBLOA/gZ+LyNnWlqRUTHkbuBk4YnUhSsWJHGAZUAJMAlqA31tZUKzSxlecCZ7p+5KIbBWRNhH5nYiMEZEXg2fRXxORHBFZKiIVA+x7sYhcDvwvcL2ItIrIlpO9pzHmNWPMU0BlBH81pSxhUaa+YYzZZYzxG2PWAquAsyL3WyplHRG5XUT+0e/+XhF5qt/9QyLSHLy7JZih6wd7PWNMtzHmZ8aYtwFf5CpXyr4ikKsXjTF/McY0G2PagQeAJRH7BeKYNr7i00eAS4AZBM6ev0jgwC+fwP/zz51sZ2PMS8D3gOXGmHRjzPzIlquU7VmWKRFJAU4Hto+sdKVs703gXBFxBIcxuQge1InIFCAdyA4+d34wQ8stqVSp2BHpXJ2H/l0akSSrC1AR8UtjzFEAEVkFVBtj3gve/xtwEYFQKqVCY2WmHga2AC9H6PWVspQxpkxEWoBSAic4XgZKRWQWgR7fVcYYv4hYWKVSsSWSuRKRecB9wLXhqzhxaOMrPh3t93PHAPfTo1uOUjHPkkyJyI+AucAFxhgTifdQyibeBJYC04I/NwLnEzhI1JOFSo1M2HMVnJzjReDzxphVYakyweiww8TVBqT23hERJ1DQ73E90FNqeMKaKRH5JnAFcKkxpnmo5ysV43oPEs8N/vwmgYPE89HGl1IjFdZcicgk4DXg28aYP4avzMSija/E9QHgEZEPiYgLuBdI7vf4UaBERIb8jIiIU0Q8BHpSHSLiCb6mUokknJn6GnATcIkxpi4i1SplL28CFwApxpgKApPMXA7kAe8Fn3MUmBLKi4lIcvDvEoA7+HdJxy2qRBO2XIlIMfAG8KAx5uHIlJsYtPGVoIwxTcCngd8Chwmcte8/U9tfgv+tE5FNQ7zcLQSGXj1E4OxKB/CbsBaslM2FOVPfAyYCe4IzULWKyP+Gu2al7MIY8wHQSuDgkGBvbxnwjjGmd8bC+4E/iEijiHxsiJfcTeBvUTGBa106CEyPrVTCCHOu7iDQSPtGv79LrZGrPn6JXkaglFJKKaWUUpGnPV9KKaWUUkopFQXa+FIh6d/FfNztXKtrUyoWaaaUGjkR+d9B8vOi1bUpFas0V9ERscaXiDwiItUism2Qx5eKSJOIbA7e7uv32OUisju4GvdXI1WjCl1w8b2BbjrNaBRpruKHZsoeNFOxyRjzvUHyc4XVtSU6zVTs0lxFR8Su+RKR8whc5PeYMWbuAI8vBb5ojLnquO1OArOGXULgYvX1wI3GmB1DvWd+fr4pKSkZde3RUFbTBsCUgjSLK1GRtHHjxlpjTMHQzwxNtHOlmVJ2o5kKH82M6hXOXCVypnppttTJMhWxRZaNMW+JSMkIdl0M7DXGlAGIyJMEVtAesvFVUlLChg0bRvCW0Xf9r9cAsPyTZ1lciYokETkYzteLdq40U8puNFPho5lRvcKZq0TOVC/NljpZpqy+5ussEdkiIi+KyJzgtmLgUL/nVAS3DUhE7hSRDSKyoaamJpK1KhUrRpUrzZRSJ9BMKRVemimVsKxsfG0CJhlj5gO/BJ4Nbh9oEcRBx0YaY5YZYxYZYxYVFIRtJIpSsWrUudJMKXUMzZRS4aWZUgnNssaXMabZGNMa/HkF4BKRfAJnOib0e+p4oNKCEpWKOZorpcJLM6VUeGmmVKKL2DVfQxGRscBRY4wRkcUEGoJ1QCMwXUQmA4eBG4CbrKpTqViiuVIqvDRTSoWXZir6vF4vFRUVdHZ2Wl1K3PF4PIwfPx6XyxXyPhFrfInIE8BSIF9EKoBvAC4AY8zDwEeBT4lID9AB3GACUy/2iMhngZcBJ/CIMWZ7pOpUKpZorpQKL82UUuGlmbKfiooKMjIyKCkpQWSg0Z1qJIwx1NXVUVFRweTJk0PeL5KzHd44xOMPAA8M8tgKYEUk6lIqlmmulAqveMzU42vLuemMiVaXoRJUPGYq1nV2dmrDKwJEhLy8PIY76YvVsx0qpZRSSimlIkgbXpExkn9XbXwppZRSSimlVBRo40sppZRSSikVMU6nk9LSUubMmcP8+fP5yU9+gt/vB2DlypVkZWVRWlrad3vttdcA+O53v8ucOXOYN28epaWlrF27dkTv/+qrr7Jw4UJOPfVUFi5cyBtvvBG23224LJvtUCmllFJKKRX/UlJS2Lx5MwDV1dXcdNNNNDU18c1vfhOAc889l+eff/6YfdasWcPzzz/Ppk2bSE5Opra2lu7u7hG9f35+Pv/4xz8oKipi27ZtXHbZZRw+fHhUv9NIac+XUkopFSdau3po6fRaXYZSSg2qsLCQZcuW8cADDxCY6HJgVVVV5Ofnk5ycDAQaUEVFRQBs3LiR888/n4ULF3LZZZdRVVXVt33+/PmcddZZfOlLX2Lu3LkALFiwoG/fOXPm0NnZSVdXVyR/zUFp40sppZSKA00dXv7tV+/wo5d3s7Oq2epylFJqUFOmTMHv91NdXQ3AqlWrjhl2uG/fPi699FIOHTrEjBkz+PSnP82bb74JBNYtu/vuu3n66afZuHEjH//4x/n6178OwO23384vfvEL1qxZM+h7P/PMMyxYsKCvURdtOuxQKaWUinGtXT3c+dgGPjjaCsAf3z3I96471eKqlFJqcP17vQYadgiBnqxVq1bxz3/+k+uvv54f/OAHLFq0iG3btnHJJZcA4PP5GDduHE1NTTQ2NnL++ecDcMstt/Diiy8e83rbt2/nK1/5Cq+88koEf7OT08aXUkopFcMO1rXx0YfWUNfWxc9vKOWhlftYt7/e6rKUUmpQZWVlOJ1OCgsL2blz56DPczqdLF26lKVLl3Lqqafyhz/8gYULFzJnzpwTercaGxtPOvV7RUUF1113HY899hhTp04N2+8yXDrsUCmllIpRfr/h03/eRGtXD3+64wyuLS2mODuFfTWttHf3WF2eUkqdoKamhrvuuovPfvazJ20s7d69mz179vTd37x5M5MmTWLmzJnU1NT0Nb68Xi/bt28nOzubrKws3n77bQD+/Oc/9+3b2NjIhz70Ib7//e+zZMmSCP1modGeL6WUUipGvbmnhu2Vzfz7wvGcPTUfgKLsFIyBnVXNLJyUa3GFSikFHR0dlJaW4vV6SUpK4pZbbuELX/hC3+O913z1uvfee5k8eTJ33303jY2NJCUlMW3aNJYtW4bb7ebpp5/mc5/7HE1NTfT09HDPPfcwZ84cfv/73/Pxj3+c1NRULrvssr7Xe+CBB9i7dy/f/va3+fa3vw3AK6+8QmFhYdT+DXpp40sppZSKUa/tOEqq28mpxVk8vrYcgDGZHgD+/G65Nr6UUrbg8/kGfWzp0qU0NTUN+Njq1asH3F5aWspbb711wvaFCxeyZcsWAA4cOMDTTz8NBBpz995773DLjggddqiUUkrFqFV7ajl7aj5Jzn/9Oc9KceEQaGgf2Xo4SimlIkd7vpRSSqkY1NThpby+nVPGZhyz3ekQMlNcNLTrel9KjVRvT/JNZ0y0uJLw+uY/trOjMrxLUcwuyuQbV88J62uGQ0lJCdu2bbO6jBNoz5dSSikVg3oPoMZlp5zwWE6qm4Y27flSSim70Z4vpZRSKgb1LqQ8LstzwmM5qW72VrdEuySllM3ZqYfqjjvu4Atf+AKzZ88e8WvU1NRw1VVX0d3dzS9+8QvOPffckPfdvHkzlZWVXHnllSN+/5GIWM+XiDwiItUiMmB/n4j8h4hsDd5Wi8j8fo8dEJH3RWSziGyIVI1KxRrNlVLhFcuZOlDXhsflIMPjOuGxnDQXzZ09dHoHv8hdqUiI5Uyp6Prtb387qoYXwOuvv86sWbN47733htXwgkDja8WKFcPap6dn9Et4RHLY4aPA5Sd5fD9wvjFmHvBtYNlxj19gjCk1xiyKUH1KxaJH0VwpFU6PEqOZWltWT06qe8DHcoPbKxs7olmSUhDDmVKR0dbWxoc+9CHmz5/P3LlzWb58ORCY5XDDhg0899xzlJaWUlpaysyZM5k8eTIAGzdu5Pzzz2fhwoVcdtllVFVVHfO6mzdv5stf/jIrVqygtLSUjo4OPvWpT7Fo0SLmzJnDN77xjb7nrl+/nrPPPpv58+ezePFimpqauO+++1i+fDmlpaUsX76c+vp6PvzhDzNv3jzOPPNMtm7dCsD999/PnXfeyaWXXsqtt9466n+PiA07NMa8JSIlJ3m8/9yR7wLjI1WLUvFCc6VUeMVyphrau8lPTx7wsexg4+tQQwdTCtKjWZZKcLGcKRUZL730EkVFRbzwwgsAJ0wrf80113DNNdcA8LGPfYzzzz8fr9fL3Xffzd///ncKCgpYvnw5X//613nkkUf69istLeVb3/oWGzZs4IEHHgDgu9/9Lrm5ufh8Pi666CK2bt3KrFmzuP7661m+fDmnn346zc3NpKamnrDv3XffzYIFC3j22Wd54403uPXWW9m8eTMQaAi+/fbbpKSceI3tcNnlmq9PAC/2u2+AV0TEAL82xhx/VqSPiNwJ3AkwcWJ8zUij1CiNKFeaKaUGZZtMGWNoaO9meuHADauc1MBQxMMN2vOlbM02mVKRc+qpp/LFL36Rr3zlK1x11VWDDg/84Q9/SEpKCp/5zGfYtm0b27Zt45JLLgEC64SNGzduyPd66qmnWLZsGT09PVRVVbFjxw5EhHHjxnH66acDkJmZOeC+b7/9Ns888wwAF154IXV1dX0NxWuuuSYsDS+wQeNLRC4gEL5z+m1eYoypFJFC4FUR2WWMOXElNSAYzGUAixYtMhEvWKkYMJpcaaaUOpHdMlXf1o3XZ8hJG3jYYWaKC6cIhxraQ3q9eJ1WW9mX3TKlImfGjBls3LiRFStW8LWvfY1LL72U++6775jnvP766/zlL3/pWzjZGMOcOXNYs2ZNyO+zf/9+fvzjH7N+/XpycnK47bbb6OzsxBiDiAy5vzEnfpR690tLSwu5jqFYOtW8iMwDfgtca4yp691ujKkM/rca+Buw2JoKlYo9miulwsuOmapp7QIgPXngc6gOEbJSXVRoz5eyITtmqtfja8v545qD+Ac4EFcjU1lZSWpqKjfffDNf/OIX2bRp0zGPHzx4kE9/+tM89dRTfb1LM2fOpKampq/x5fV62b59+0nfp7m5mbS0NLKysjh69CgvvhjoVJ01axaVlZWsX78egJaWFnp6esjIyKCl5V+zwp533nn8+c9/BmDlypXk5+cP2ks2Gpb1fInIROCvwC3GmA/6bU8DHMaYluDPlwLfsqhMpWKK5kqp8LJrpupaA2t4pXsG/zOek+qiIsSeL6Wixa6Z6uXzGx5+cx/t3T3cfeH0aL99XHr//ff50pe+hMPhwOVy8dBDDx3z+KOPPkpdXR3XXXcdAEVFRaxYsYKnn36az33uczQ1NdHT08M999zDnDmDT5U/f/58FixYwJw5c5gyZQpLliwBwO12s3z5cu6++246OjpISUnhtdde44ILLuAHP/gBpaWlfO1rX+P+++/n9ttvZ968eaSmpvKHP/whIv8eEWt8icgTwFIgX0QqgG8ALgBjzMPAfUAe8Ktgl15PcGabMcDfgtuSgMeNMS9Fqk6lYonmSqnwitVM1Q7R8wWBtb4O1mvjS0VXrGaq197qVg4HZwndfKgx2m8fly677DIuu+yyE7avXLkSgEWLFh0zM2Gv0tLSvmGIg7ntttu47bbb+u4/+uijAz7v9NNP59133z1he29vWK+///3vJzzn/vvvP2kNwxXJ2Q5vHOLxO4A7BtheBsw/cQ+llOZKqfCK1UzV9vZ8naTxlZ3qZsPBBjq9PjwuZ7RKUwkuVjPVa19NK0kOIcXlZF9Nq9XlqDhk6TVfSimllBqex9eW89YHNTgEUk7SqOqb8bDfWl+Pry3vm1yjuqWL6pauyBarVIypbOxgbJaHyQVpuk6eightfCmllFIxprWrh/TkpJPO4NW7APPxk270n9HLGMORpk6dXEApAnmobOqgKCuFMZkeGtq9tHb1WF1WWAw0k58avZH8u2rjSymllIoxbV09pJ1kyCHQNw19eb/rvrYcauR7K3Yy6/9e5GBdGwfq2jnz+6/z21X78fn14EwltoqGDjq9fsZlexiT4QHgg6MtQ+x1rMfXltuuR9nj8VBXV6cNsDAzxlBXV4fH4xnWfpav86WUUkqp4en0+oe8jivTk0SGJ4ndR5qBwEHkXzYeoig7hSvmjuXJdYdwOoUbTp/Iw2/uY2tFIzAp8sUrZVP7a9sAKMzwkJUSGLa7+0gLp03MsbKsURs/fjwVFRXU1NRYXUrc8Xg8jB8/flj7aONLKaWUijFdPT6ygweHgxER5hRlsu1woPH1P09tIcnp4LazSrjjvCm8trMagK9cPpMn1pWzo6o54nUrZWe9s4PmprnJ8CSR5BD2Vsf+pBsul4vJkydbXYYK0mGHSimlVIzpCHEGwySHg51VzeyobGbb4SbOmpJH6nHDFUWEibmpOrmASniH6ttJcggZniQcIuSnJ/f1hikVLtr4UkoppWJMp9dHcgiNr5K8NLp6/Fz74Nu4khycMy0foG/Gw17F2Sk0tHtpaOuOSL1KxYLyunZy0tw4ghPZ5Ke7KRvmdPMd3T7qWruosdl1X8o+tPGllFJKxRBjDF1ePx7X0H/CZ4xJpzg7Ba/PcMGMgkEn6SjKTgHggX/uDWutSsWS8vp2coOzhALkZyRzqKGD7h5/yK/xyo4jNHf2UFbbxup9tZEoU8U4bXwppZRSMaS7x48BPEkhDDt0Onj6U2fxh48v5twZBYM+Lzc4M2JjuzdcZSoVU4wxgcZXWr/GV3oyPr85ZsbQk2lo62bjwQbSk504BP707sFIlatimDa+lFJKqRjSGTwLH8o1XwDjslI4f0ZB31CqgWR6khCgsUOHHarE1LumV//GV0F6MkDI1329s6+WHr8hw+MiLTmJV7Yf5ZG390ekXhW7dLZDpVTM6X+9yk1nTLSwEqWir9PrAwhp2GEoHl9bTpLTQboniSbt+VIJqrzfTIe98oONr8B1X2OGfI139taRnOQgOcmBMUm0dPZwQCfsUMfRxlcUHX+Bs1JKKTVc/2p8hdbzFarsFBeNHdr4UolpoMZXittJXpo79J6vvbVMyU+js8dPssuBU4QDdaENWVSJQ4cdKqWUUjGk0xscdpgU2p/wx9eWh3TyLyvFpdd8qYT1jy2VAOT0m3ADYEpBGmU1Qze+DtW3U17fztTCdAAcIhRlezhQpz1f6lja+FJKKaViSGdPoOcrlKnmhyPd46Ktqyesr6lUrKhv6yYjOQn3cSc1phVmsOtIM8aYk+7fO7Ph1IL0vm3jc1OpaurA7z/5viqxaONLKaWUiiGRGnaYluykw+vD6wt9Wm2l4kV9Wzc5ae4TtpdOyKK5s+eY4YMD9Sa/vbeOwoxkCjOS+7aNzfTg9RkONejQQ/UvEWt8icgjIlItItsGeVxE5BcisldEtorIaf0eu1xEdgcf+2qkalQq1miulAqvWMxUV++wwzBNuNErPbgGmC60rEYjFjMFgc993gCNr/kTsgHYcqhx0H19fsPqvbWcPTUP6Ter6NhMDwC7j7SEtVYV2yLZ8/UocPlJHr8CmB683Qk8BCAiTuDB4OOzgRtFZHYE61QqljyK5kqpcHqUGMtUp9eHQ8DtDO+f8DR3oPFV26qNLzUqjxJjmfL6/DR1eMlOdZ3w2IYDDaQnJ7FmX92g+2+paKSurZsLZhUes723F0wbX6q/iDW+jDFvAfUnecq1wGMm4F0gW0TGAYuBvcaYMmNMN/Bk8LlKJTzNlVLhFYuZ6uzxkZzkPOYMezikBXu+6tq6wvq6KrHEYqaONndigOzUE3u+HCJcOmcMK7ZV9Q35Pd6rO47iEDj/uIXMk11OslJcIc+WqBKDlVPNFwOH+t2vCG4baPsZUaxLqVimuVIqvGyXqe4e/wmTAoRDWnLgGrJ6HXaoIst2mTrc0AEwYM8XwL8vnMBfNx3mE39YT2uXj4r6dmYXZXLlqWPxuJwsX3+IC2cVDth4y01z901jrxRY2/ga6JSdOcn2gV9E5E4C3dZMnKiLraqEN+pcaaaUOobtMtXtM2Efcgj/uuZLhx2qCLNdpiqbgo2vlBMbTwD7a9u4YGYBWyuamFKQRkFGMm/vqeWCH69kdlEm9W3dlOSnDbikQ26qNr7UsaxsfFUAE/rdHw9UAu5Btg/IGLMMWAawaNEinctTJbpR50ozpdQxbJcpb4R6vjwuJwI0tWvjS0WU7TJV2dgJBNa6G8wls8fy+9sXA4HZDquaOth4sIFNBxv5n0tmkJeePOB+OWluNpY30NHtI8Ud3hlKVWyycqr554Bbg7PenAk0GWOqgPXAdBGZLCJu4Ibgc5VSQ0u4XPVO+Vvd0kV1i16rosLOdpnq9vlxRaDnyyFCsstBU4cutKwiynaZOtzYQarbOayTGuOyUrhqXhE7v305d180fdDn5QZnUKzQ6eZVUMR6vkTkCWApkC8iFcA3ABeAMeZhYAVwJbAXaAduDz7WIyKfBV4GnMAjxpjtkapTqViiuVIqvGIxU909/r7rs8ItxeXUxpcalVjM1OGGDnIGuF4rHHobX+X17UwfkxGR91CxJWKNL2PMjUM8boDPDPLYCgLhVEr1o7lSKrxiMVNenx+Xc/DhUaOR4tbGlxqdWMzUzqpm8gcZNtjfQNd0DbStv/6NL6XA2mu+4t5QgVRKKaWGq9vnj8iEG6A9XyrxGGNo7PAyrTA9Iq+f5nbidjp4dcdRbl8yOSLvoWKLldd8KaWUUmqYIjXVPGjjSyWepg4v3T1+sk8y2cZoiAjZqS4a2zVXKiCkb28ReUZEPiQi2lhTKkw0V6NjjOHdsjoeXb2fD462WF2OsoFEyZQ3QhNuQO+ww56IvLaKPYmQqcONvWt8ReaaLwjMotjcqY0vFRBqmB4CbgL2iMgPRGRWBGtSKlForkZhZ1Uzz22p5IOjrfzx3YN09/itLklZL+4z5fcbvD4T0Z6v5g4vgctylIr/TIUyzfxoZaW4tEdZ9Qnp29sY85ox5j+A04ADwKsislpEbheRyH1a48yqPTX8v5d28ZcNh/DrH7aEp7kandd3VZOfnszXrpiFyynUt+naRIkuETLV2eMDiOg1X90+P51ePZmhEiNTR5sDja/MCDa+MlNctHb24PVprtQwrvkSkTzgNuAO4D3g5wTC+GpEKoszu6qaeXHbETwuB+8dauRgnc56ozRXI3W0uZOqpk7OmppHhsfF2VPz6fD69A+bivtMtXcHGl+uCPV8eYKLwOpZetUr3jNV09KFAOnJkZuDLsvjwoCuRamA0K/5+iuwCkgFrjbGXGOMWW6MuRuIzPQwccQYw6s7j1KQnsxnLpjGkql5VLd00eH1WV2aspDmauS2VzYjwJyiTABOL8kFoLVTr1VJZImQqY7uyPd8gTa+VEAiZKqmtYtUtxOnQyL2Hr29akeaOiL2Hip2hNrM/21w7YU+IpJsjOkyxiyKQF1xpaKhg6qmTq4tLSLJ4eD8mYWsKaujKjjOWCUszdUIldW0Mi7LQ6Yn8ActK8VFcpKDtm5tfCW4uM9U70k7lzMyB4op2vOljhX3mapu7iLDE9kRlFl9jS/t+VKhDzv8zgDb1oSzkHj2/uEmnA5h/vhsINC1nZvmpq6ti3Y9WExkmqsR6O7xU17fzuT8tGO2pyUn4fUZDta1WVSZsoG4z1TvsMNITrgB2vhSfeI+UzWtXWR4IrvsbW/jq0p7vhRD9HyJyFigGEgRkQVA76m2TAJd0CoEu460MCU/DU/wjxpAQUYyta3dvL6zmqvnF1lYnYo2zdXobK9sosdvmJR3bOMr1e2kvg1e2X6U/zpvikXVKSskUqZ6T9jpsEMVSYmUqZrmTsZkeiL6Hh6XA5dTONKkI57U0MMOLyNwkeV44Cf9trcA/xuhmuJKQ1s3ta1dnDkl95jtmR4XSQ7hjV3a+EpAmqtR2HUksKZXUXbKMdtdTgdup/DqDm18JaCEyVSnN8I9XzrsUAUkRKaMMdS0djGtMCOi7yMiZKW4qGrWxpcaovFljPkD8AcR+Ygx5pko1RRXDgSHQB0/RKq6pQuPy8FL245w2sSD3HLWJCvKUxbQXI3OrqpmkpMcZKeeOEY/xZ3EpvIG2rp6SIvgzFXKXhIpU32zHUao58ujPV+KxMlUY7sXr89EfNghBCbd0J4vBUMPO7zZGPMnoEREvnD848aYnwywm+rnYF07HpdjwC7tVHcS1S1dlNfrtPOJRHM1OjuPtDAm04NDTpxwIMXlpKnDy7r99Vwwq9CC6pQVEilT7RGe7dAhQoYniWZtfCW0RMlUTWtgAoxoNL6yPNr4UgFDfdp6u2viYjpRKxysb2NibuqgB4oOgV1Hmi2oTFlIczVCxhh2H2lh5piBh4h4XA7cSQ7e2Vurja/EkjCZ6ojwOl8QmBxAe74SXkJkqro50PhKj0bjK8XF+4eb8PlNRKe1V/Y31LDDXwf/+83olBNfunv8VDd3Macoa8DHHQ6hJD+NPUdbo1yZspLmauSONHfS1OFlbNbAF0eLCIsm5fD23tooV6aslEiZ6p1qPlI9XwDZqdr4SnSJkqma1kBPVEZyZKeah8Cwwx6/oa61i8IIT/Ch7C3URZZ/KCKZIuISkddFpFZEbo50cbHuSFMHBig+bmKA/qYWpHOkuZO6Vl37IdForoZvV1Vgso2xJ/nDtWRaPruOtFDToplKNImQqd5hh0kRWucLtOdL/Uu8Z6qpPfA5T3U7h3jm6P1runkdepjoQj11dqkxphm4CqgAZgBfGmonEblcRHaLyF4R+eoAj39JRDYHb9tExCciucHHDojI+8HHNgzjd7KNw8GAHT8rW39TghNxrN1fH5WalK0MO1eJnKnH15bz5PpDACedFvicafkArN6nvV8JKO4z1dHdg8spAw5lD5emjh7K6/RaZAXE+fFfc2dg6Yb+SwFFSqau9aWCQm189fbHXgk8YYwZsqUgIk7gQeAKYDZwo4jM7v8cY8yPjDGlxphS4GvAm8e99gXBx2NyFfWqxg5S3U4yTzKWeHxOKm6ng3fL6qJYmbKJYeVKMwX1bV2kJSf1TYc9kLnFWWR6kli9VzOVgOI+U+3dvogOOQRIdTlpDw5vVAkvro//1u2vx+10ROUarN6eL510Q4X6Df4PEdkFLAJeF5ECYKhPz2JgrzGmzBjTDTwJXHuS598IPBFiPTGhprWLwoxk5CRnKJ0OYVJeKmv26YFiAhpurhI+U/Vt3eQOMMV8f8vXH2J8Tiovbz+CMSZKlSmbiPtMdXh9EVvjq1eK20lnt0/zoyDOj/86vD48rsjmqVeq24lThCPNOiQ+0YX0iTPGfBU4C1hkjPECbZw8SBBYGf1Qv/sVwW0nEJFU4HKg/1oSBnhFRDaKyJ2DvYmI3CkiG0RkQ01NzdC/TBTVtnSRn5485POmFKSzp7pVr1FJMCPIVcJnqr6tm9w095DPm1aYTmOHl4M6dCqhJEKmOrp9EVvjq1eKy4nPmL7ry1TisuvxX7gy1en1RWXIIQSWcchMSeKoLrSc8IYzt+YpBNZ76L/PYyd5/kDdPYOdRrsaeOe4LuclxphKESkEXhWRXcaYt054QWOWAcsAFi1aZJvTdE3tXtq6faE1voLXfb1bVsfV84siXZqyl+HkKqEz5fMbmjq85ITS+CoIzI68am8tJcctcK7iXlxnqr078j1fvZMPNHZ4dbFyBTY8/gtXpjq8PlKi1PgCyPS49JovFfJsh38EfgycA5wevA01DrcCmNDv/nigcpDn3sBxXc7GmMrgf6uBvxHoxo4ZZbWB6eNDaXwVZaeQnpyk130lmBHkKqEz1dThxW8gN3XoxldeupvsVBerPrBXz52KrETIVDR6vnp7AnpnglOJK96P/6LZ8wWBSTeO6rDDhBfqKa1FwGwzvAHg64HpIjIZOEwgYDcd/yQRyQLOB27uty0NcBhjWoI/Xwp8axjvbbn9tW0A5GcMfaDodAinl+SwRhtfiWa4uUroTNW3dQOENOxQRJhemM6afXV4ff6IH6wq24j7THV4ozDhRl/PV3dE30fFhLg+/uv0+inMiF7jKyvFxZ7qFowxJ50PQMW3UL/BtwFjh/PCxpge4LPAy8BO4CljzHYRuUtE7ur31OuAV4wxbf22jQHeFpEtwDrgBWPMS8N5f6uV1bThkNAOFAHOmppHWU2bjgVOLMPKVaJnqmEYjS+A6YUZtHT1sPlQYwSrUjYT95lq7+6JyoQboD1fCojz47+O7uhNuAGQ6Umi0+unuaMnau+p7CfUnq98YIeIrAP6+kuNMdecbCdjzApgxXHbHj7u/qPAo8dtKwPmh1ibLZXVtpKT6ibJEVqoz5ySBwSu+7q2dMDrUlX8GXauEjlT9e3dOEX61koZytSCdBwCqz6o4fSS3AhXp2wi7jPV6fWTlRL5CTcAXWhZQRwf/xljLBl2CFDV3EHWEDP3qvgVauPr/kgWEY/KatpCut6r15yiLDI8SazZp42vBHK/1QXEkvq2brJTXSEvLpvidlI6IZs399TyhUtnRrg6ZRP3W11ApAV6viI7XCnVHTg0aNTGl4rjTLV1+zAQ1Qk3+q/1NWtsZtTeV9lLqFPNvwkcAFzBn9cDmyJYV0zz+w0H6trITw9teBQErvs6Y3Ieq3W9r4ShuRqehvbQppnv77wZBWytaKSxXa9dSQSJkKn2KEy44XIKThEaddhhwovnTDUHTy5Y0fOll5gktlBnO/wv4Gng18FNxcCzEaop5lU1d9Lp9ZOfEXrPF8C50/Mpr2+nXNcmSgiaq+Gpb+smJ4SZDvvr9PoxBn7w4q4IVaXsJN4z5fcbunr8EZ9wQ0RIcTt12KGK60w1d0a/8ZXhCfQqVzVp4yuRhfoN/hlgCdAMYIzZAxRGqqhYV1YTmGa+YBjDDgGWTMsH4O29tWGvSdmS5ipELZ1e2rt9w+75Ks5OweNysLe6NUKVKZuJ60x1eAOLHkdj9s5A40t7jFX8Zqp30otoDjtMcjjIT3drz1eCC/UbvMsY0/ctHFxozzaLr9pN3zTzw2x8TS1IY1yWh7f36tpECUJzFaJD9YFFKUNZYLk/p0OYVpDOB0cDU/uquBfXmeptfEV6tkMIHJDqsENFHGeqpa/nK7pLkYzN8mjPV4IL9RP3poj8L5AiIpcAfwH+EbmyYltZTRtpbmdf93KoRIQl0/JZva8Onz8uvtvUyWmuQlReHxiKO9yeL4BZYzNp7uxha0VTuMtS9hPXmeroDja+otDzlarDDlVA3Gaqd9hhNHu+AMZmejiija+EFuo3+FeBGuB94JMEpg+9N1JFxbqy2jYmF6QNawG9x9eW8/jachzBi5y3V+qBYgLQXIWooiHY+BrmNV8Ap4zLxCHw4rYj4S5L2U9cZ6o92PhyRaHnK9Xt7FtbTyW0uM1U77DDaF7zBYGeryM67DChhdQ1Y4zxi8izwLPGGB0TN4SymlZOm5gzon2nFqQBgeu+5o3PDmNVym40V6Err2/H43L0Lf46HCluJ1ML0nlpWxVfuXzmsE6KqNgS75nqG3bojPxnOC05idq2bowxmpkEFs+ZsmK2Qwj0fDW2e6O+xpiyj5OePpOA+0WkFtgF7BaRGhG5LzrlxZ5Or4/DjR1Mzk8b0f4ZHhdjMz28vUcn3YhXmqvhK69vH9GQw15zirI4UNfOzqqWMFal7CJRMtXeHThTH40JN9KTk+ju8dPS1RPx91L2kwiZau70BpZVcET35MLYrBRAp5tPZEN9g99DYJab040xecaYXOAMYImI/Heki4tFB+vaMQamFIys8QUwrTCdDQcaaNU/evHqHjRXw1Je3z6iIYe9ZhcFhh6+tK0qjFUpG7mHBMhUZxQn3EhPDgyMqWvVoYcJ6h7iPFPNHT1Rv94LAj1foNPNJ7KhvsFvBW40xuzv3WCMKQNuDj6mjtM7zfzUgvQRv8Yp4zLp9vl5c3dc9fCrf9FcDYPfb6ho6Bj2TIf9pScncXpJLi+8X6WzHsanhMhU3zVfUej5Sgs2vmpbuyL+XsqW4j5TzZ1eS4b9bThYD2jPVyIb6hvcZYw5YfxbcNyvKzIlxbay4DTzJSMcdggwMTeVnFQXr+7QCQLilOZqGKpbuuju8Y9q2CHAdQuK2VfTxnuHGsNTmLKThMhUexRnO+zt+apt0cZXgor7TFnV+MryBP75tOcrcQ31DX6y8QY6FmEAZTVtjMlM7vvDNRJOh3DhrDG8sasar88fxuqUTWiuhqFvmvlRDDsEuGp+EaluJ8vXHQpHWcpeEiJTvcMOozHbYXpwqZRanfEwUcV9pqwadpjscpKc5NDp5hPYUN/g80WkeYBbC3BqNAqMNftrW0c82UZ/l8weQ3NnD+v214ehKmUzmqth6G18jWbYIQTO5F89r4h/bK3sW1xTxY2EyFQ0e77S3NrzleDiPlOBnq/oLrDcKzPFpcMOE9hJP3XGGKcxJnOAW4YxJi66ncOtrLaNKaO43qvXeTPySXE5eX6rThAQbzRXw3Oovh0RyE4d/T/NTWdMpL3bx5Pa+xVXEiVTvYssJ0VhqnmnQ8hJdVHXpo2vRJQImWrusGbYIQSGHuqww8QV0Sa/iFwuIrtFZK+IfHWAx5eKSJOIbA7e7gt1XztqaOumsd3LlDD0fKW6k7hszhhe2FpJV48vDNWpeJBomYJA46soK4Ukx+i/ruZPyGbJtDx+s6pMc6WA2MpUh9dHisuJI0rrbuWlJ1PbEhcjzFSU2T1XxhiaO60Zdgja85XoItb4EhEn8CBwBTAbuFFEZg/w1FXGmNLg7VvD3NdWymoDMx2OZpr5/j68oJjmzh5W6qyHisTMFASGHU7ITQnb631m6TSqW7q090vFXKbau3uI5nrHPr+hRmc7VMMUC7lq7/bh8xvLer4yU5KobunC59fZdxNRJHu+FgN7jTFlxphu4Eng2ijsa5mymsBMh1PyRz/sEOCcafnkp7v526bDYXk9FfMSLlMAhxramZCTGrbXO2tqHmdPzeMnr35AnR5YJrqYylRHtz8qa3z1ykpx6aQAaiRsn6vH1hwEsKznKyvFhc9vdCmHBBXJb/FioP+p5YrgtuOdJSJbRORFEZkzzH0RkTtFZIOIbKipsbaHqKy2DZdTGJ8TnrP0SU4H18wv5vVdR6nRi55VAmaq0+vjaHMXE3NH3/h6fG05j68t54l1h1hckktLp5c7/rCBx9eWh6FSFaNiKlMd3p6orPHVKys4NErPzqthiniuRpupjuDMoR63RT1fOt18Qovkt/hAgyOO/wbfBEwyxswHfgk8O4x9AxuNWWaMWWSMWVRQUDDSWsNif00bE3NTSQrDH8feA8WsFBden2H5ej1AVImXqYqGwEyHE/PC1/MFUJjpYenMQt471Kgziia2mMpUR7cvKjMd9spKcdGjZ+fV8EU8V6PNVGdw8horZzsEtGc5QUXyU1cBTOh3fzxQ2f8JxphmY0xr8OcVgEtE8kPZ1442lTfgdjr6Gk7hUJCRzLSCdP68tpweXfMr0SVcpnqnmZ8Qhp6v4104q5AZY9J5bsthXtBZRRNVTGWqvdsX9WGHoGfn1bDZPle9a+ZZOewQ0Ek3ElQkv8XXA9NFZLKIuIEbgOf6P0FExooELh8WkcXBeupC2ddufH5DfVs3+RnJYX/tM6fkUtXUyas7job9tVVMSahMARyq7wAI6zVfvRwi3HD6RCbkpnL3E5v42Wsf6KLmiSemMtXp9eGKwjTzvfoaX40dUXtPFRdsn6u+YYcWNb5S3U5cTtETGwkqKVIvbIzpEZHPAi8DTuARY8x2Ebkr+PjDwEeBT4lID9AB3GCMMcCA+0aq1nCobOygx28oSA9/42vWuExK8lL51cp9XD53LBLN6a6UbSRapiDQ85XicpKfProFlgfjcTm5/ezJbKlo5Gev7eHZ9w5z+5LJXDF3LIWZnoi8p7KPWMtUe7ePZAt6vp7fWsUVp46L2vuq2BYLueq0uPHlEGFMpkd7vhJUxBpf0NeVvOK4bQ/3+/kB4IFQ97WzfTWBaebzItD4cojwqaVT+coz7/PmBzUsnVkY9vdQsSGRMgWBxtfE3NSInnBwJzn46fWlXD1/HD97bQ/feG4733huO8XZKcwuymT++CwWT86jdEI2T2+s6NvvpjMmRqwmFT2xlKn2bh/pyRH9s32MVLeTJIfQ1OGN2nuq+GD3XHV4A6McrLrmC2BspoeqJu1VTkTR+xaPc/trA9PMF0Rg2CHAdQvG8/PX9vCL1/dw/owC7f1SCeFQmNf4OpkLZ43hgpmFfHC0lZW7q9lW2cz2yqa+4b756W5Om5jDOdPywzKpjlLD1emN7jVfIkJWiksbXyru9A7hTXJY2PjK8rDtcJNl76+so0cQYVJW04bH5SAtQtOWPr2xgsWT89hU3sjX/7YtIu+hlJ0YY4KNr/Bf7zUYEWHjwQYyPC7OmpLHHedM4d4rT+GmxRPJTXPzyo6j/GrlPp39TVmiPcqzHQLa+FJxqdPrs2yyjV4TclM53NihSzkkIG18hcn+2jby05Mj2iO1cFIOhRnJvLT9CN09OjGAim+1rd20dfvCssbXUHpnKB1oltLU5CTmFmdx29mTufXMSTR3evn1W2Vsr9Qzlip6/H5Dh9eHK4o9X6CNLxWfOrw+y6736jUxNxWvz+jQwwSkja8w2VfTGpHJNvpzOoQrTx1HfVs3j605ENH3UspqB+sCQ3lL8tMsruRfZo3L5JPnTSXJIfznI+s5FJwKX6lIaw9OEBDNCTcAslNdNHd4dSZQFVe6vH7LG197qwNzBZTr35GEo42vMGjt6qGqqTNi13v1N2NMBtML0/nF63uoadGhTyp+9V5HOTnPPo0vCFzXefvZJbR2efm3h1bzu1X7rS5JJYDWzh4APEnRPWDMTXNjCMzoq1S86LDBsMPc1MAsvuV12vhKNNr4CoOy4EyH0Wh8AXzo1HF0ev3c/w/bzxSu1IgdrGvH6RCKc6Iz4cZwFGZ6uPmMSdS3dvPEel0AXUVea1dg6J87yrOz5aYF/q7p2XkVTzq9PktnOgTITHHhEM1WItLGVxj0dh1Hq/FVmOnhcxdN44WtVby8/UhU3lOpaNtf18b4nBRcNp1ZcEpBOteWFrG3upUfvrzb6nJUnGvtCq5LFOVhh7lpgbPzB/XsvIojdrjmy+kQclLdHNTGV8Kx51FNjNlX00qSQ8hLi07jC+CT509l9rhM7n12G43t3VF7X6Wi5WBdGyU2G3J4vEUluZwxOZdlb5Xx982HrS5HxbHeYYfuKA87zPAkkeQQvb5RxQ1jjC1mO4TAyQ3NVuLRxlcY7K1uZVJeKk5H9Nbe+suGCi6cVUh9azc3LHsXv05VquKIMYYDte2U5EVvmvmRumpeEYsn5/Llp7fqmi0qYlq7gtd8RXmolEOCZ+e150vFiQ6vD7/B8p4vgJw0tw47TEDa+AqDvdWtTC1Ij/r7FmWncOW8cew60sJDb+6L+vsrFSl1bd20dvVQ29o96BTwduF0CBefMgaPy8l//HYty94qs7okFYd6G1/JUe75gsDZeT1AVPGiuaP3RIb1ja+8NDeN7V5dziHBaONrlLw+Pwfr2plWGP3GF8CZk3OZNz6L/++V3azcXW1JDUqFW+808/npbosrCU16chI3nzGJtq4eHl9brtNyq7Br7QwcnEV7qnn419l5Y3SEhYp9zcEsWT3hBkCOzniYkKz/5MW4g3Xt9PiNJT1fACLCdQuKmTk2k7v+tJF1++stqUOpcNpXHWh85UV47bxwKs5J4d9OG8+Buja+/fwOq8tRcaat25p1viBwdr61q4eGdj07r2Jfc7CXyQ7XfPVO1PbHdw9YW4iKKm18jdKeoy0AlvV8QWAYymMfX0xRdgq3/X4dz2+tPOnze4dx2X04l0pce6pbSHJI30xrsaJ0QjbnTsvnsTUHWb5es6XCp6WzB7fTQZIFs3/mBXPYu6yKUrHsXz1f1je+8tLdOEU42qzrtiYSbXyN0s6qZhwCM8dmWFrHqzuO8rFFE8hPT+azj7/HZ/68iU3lDXT3BIY/tXf3sOdoC//cXc3a/XW8tvMoa/bVsr+2TdcoUrazp7qVgoxkHBK9SWzC5dI5Yzl3ej73PruN1ftqrS5HxYm2rh7SPUmWvPeYTA8AHxzVxpeKfb3XfNmh5yvJ4SA/w83R5k6rS1FRZM03eRzZeaSFyflptjiDkulxcce5k1m5u4Y3P6jhhferSHIIDhG6T9LAenrjIW5cPJHbl0yO2lplSp3MnqOtMftZdDqEpTMK2X2khY8/up6/f+Ycy0/OqNjX2tVDerI1f7KzUl24nQ4+CI70UCqW9fV8ua0/boPAyQ2d0CaxRPSbXEQuB34OOIHfGmN+cNzj/wF8JXi3FfiUMWZL8LEDQAvgA3qMMYsiWetI7axqpnRCttVl9ElyOLj4lDH89GOlvLWnhl1HmvH5A8NFslPd5KS6yE51k56cRHt3Dwfr2qlv6+ahN/fx2JqD3HPxdP7z7BLbLmyb6BIhU21dPRxu7OCUcZlWlzJiKW4nt51dwkNv7uO236/jb59ewtgsj9VlqQHESqZaOntIs6jx5RChMDNZG18qZHbOVe81X9FesHwwYzM9bK1ooqXTS4bHZXU5Kgoi9k0uIk7gQeASoAJYLyLPGWP6X4m+HzjfGNMgIlcAy4Az+j1+gTHGtuN2mju9VDR0cOPiiVaXcoKsVBdXzy/i6vlFAANe25XhcTG3OIubzpjIvppWvvP8Dr7zwk6WvVXGvy+aQHF2CgA3nWG/3y8RJUKmILBoOUBhjPZ89cpOdfOfZ5Xw6OoD3Pb7dTx111lk6h9WW4mlTLV19ZBhUeMLAmfnddihCoXdc9XU4cXlFEuunxxI/2G9CyflWFyNioZIfvIWA3uNMWXGmG7gSeDa/k8wxqw2xjQE774LjI9gPWG3qypwFnB2DJ+hh0DDbG1ZPRefMoZbzpxEp9fHQyv38sauany6eLOdxH2mIDDkEKAwM7YbXxBYi++hm09jb3Urn/rTxr5rMJVtxEymWrt6SEu2bpjUmEwPta1dVLfotSlqSLbOVWO7l1S3fa66KQqe6H6/otHaQlTURLLxVQwc6ne/IrhtMJ8AXux33wCviMhGEblzsJ1E5E4R2SAiG2pqakZV8HDtOtIMENPDo/oTEU4Zl8nnLprO3OIsXtt5lF+/tU9nuLKPuM8UBCbbcDmFvLTYb3wBHKrv4MMLinlnbx1feWYrfj2hYScxk6nWrh7SLew5nZibCsCGAw1DPFOpyOdqNJlq6vDaYrKNXlkpLrJSXGwsb7S6FBUlkWz6DzRN2YBHHSJyAYHwndNv8xJjTKWIFAKvisguY8xbJ7ygMcsIdFezaNGiqB7V7KxqJjvVxRgbnqEfzRTyqe4kbjh9IrPHNfL3zZVc+YtVfP1Ds7n5jIlIDM4+F0fiPlMQyNXUgnScjvj5rJ02MYemDi9/e+8wHpeD7374VBxx9PvFsJjJVEundRNuABRle/C4HKzbX8+Vp46zrA4VEyKeq9FkqrHDS4pNJtvoNTE3lY0H6jHG6HFWAohkz1cFMKHf/fHACQtQicg84LfAtcaYut7txpjK4H+rgb8R6Ma2lfcPNzGnKDNugzJvfDafv2g6p5fk8n/PbuPjj67XISfWivtMGWPYdriJU4uzrC4l7JbOKOCCmQU8se4QH3loNY+tOWB1SSpGMmWMoamjm+xU63q+khwOFkzIYf2BestqUDHD1rlqardXzxfA5Pw0Kps62VfTZnUpKgoi2fhaD0wXkcki4gZuAJ7r/wQRmQj8FbjFGPNBv+1pIpLR+zNwKbAtgrUOW0e3j51VLSyYEN8XR2amuLhszliumjeOVXtqWfqjlby8/YjVZSWquM4UQFVTJ3Vt3Zw6Pv4aXyLCJbPHcsnsMbx3qJHfrtrPkSY9mWGxmMhUW7cPr89woNbaA7Ozpuaxo6pZP7dqKLbOVWNHN6k26/maFVyO5PWdRy2uREVDxBpfxpge4LPAy8BO4CljzHYRuUtE7go+7T4gD/iViGwWkQ3B7WOAt0VkC7AOeMEY81Kkah2JrRWN+PyG5k4vj68tH9UwP7tziHD21Hw+e8E0slNcfPKPG/ny01to7eqxurSEEu+ZAth2uAmAOUXx1/jqdcHMQm44fQJHmju54udv8cd3D+pC5xaJlUw1tncD1i8Ke9W8cRgDz205bGkdyt7snqvGdvsNO8xOdTO3OJPntlRijF4XHO8iOoDcGLMCWHHctof7/XwHcMcA+5UB8yNZ22htCl4YOSEn1dpCoqgw08NdS6dytLmTh1bu492yer517RyWziy0urSEEc+ZgkDjyyGBGUR3H4nfNYXmjc9mbJaHNfvq+L9nt/HI2/v5jzMm8pHTxpOT5ra6vIQSC5lqbA+sS2T12fp3y+oZn5PCMxsP81/nTonbIfdq9Oyaq06vj64ev+UnMgZy/aIJ/N/ft7OloslW68eq8LPHIgcxaFN5A3lpbssWvbRKksPBly6bxVOfPAunQ7jt9+u5/ffr+noslBqNbZXNTCtMt91ZyUgozPDw5J1nsuyWhWSnuvjOCztZ9N3X+PCD7/BeeYOe/VR9ehtfKTaYHvv0klx2H23hOy/sjOsRHyo+/StL9vsb8+EFxWQkJ/Gbt8qsLkVFmDa+RsAYw3vlDX1T7yaax9eW88HRVm5fUsIVc8ey4UADV/3ybT726zX87b2KviEySg2HMYa1++tJcyclzEGdiHDpnLH87dNLuPvCaZxeksPOqmau+9Vqrn3wHVbtif5U/8p+GjsC36lW93wBlE7IJi/NzTt7bb1Wu1IDauro7UW2/kTG8TI8Lm49exIrtlWxT5f4iWv2+/TFgEP1HdS2drNkWr7VpVgqyeHg3OkF/OAj83hq/SEeXX2A/16+BYcEptY+a2oeZ07J47SJObY8y6TsZV9NG21dPZTkpVldiiXGZaVwzfxiLps9lvcONbJqTw23/G4dF80q5JvXzmF8Ag1xVseyy7BDAJfTwfwJ2byxq5rali6ry1FqWOraAp9ZO2TpeI+vLScrxU2SQ/jyX7bykYXjuemMiVaXpSJAG18jsGpv4Gz05AQ9SDzeC1urSEtO4lNLp3K4oYOdR5rZW93Kg//cyy/f2Ivb6aB0QjZnTsnlzCl5LNDGmBrA2v2BmYYnFyROrgbq4Ut2OTlzSh6LJuWwel8dq/bUcOlP3+Irl8/iljMn6fpgCcguE270OmNyLm9+UMM7+2r53MXTrS5HqZDVBE8YZNj0kpH05CQWleSytqyOC0/R6+njlT0/fTa3cncNxdkpFGTYb3FlKzlEmJCbyoTcVC6dHbiw9WBdO/trWymrbeOXb+zlF2/sxekQZo3NYOHEHO67ejZJTh39qmBtWT0ZniTydMIJAJKcDs6bUcCp47N49r3DfOO57Tzyzn5+f9vpTClIt7o8FUU1LV14XA7bfFdmeFyUTshmU3kDje3dZKdqZlVs6Gt8eaxbM28o507LZ11ZPav21PKZC6ZZXY6KAG18DVN3j5/Ve2v58IJinelpCB6Xk5ljM5gZXL8i0Bhr44PqVrYeamR7ZTMrth3hugVFXH/6RKYV6gFlogpc71XH5Pw0zdVxclLd3HZ2CZvKG3nh/Uou//kq/vviGfzXuZNDPhjv38Omw1hiz9HmLtsdLC6Zms/Ggw08se4Qn1o61epylApJTWsX7iQHHpc9TmQMJDvVzYKJ2Ww4UE9NS5ee6I9D9v302dSGA/W0dft0evURCDTGMrl6XhFfuWIWN58xidMmZvP7dw5w8U/e5N8fXs3TGyvo6PZZXaqKsgN17Rxt7mJyfuIMORwOEWHhpBzuuXgGF8ws4P+9tIurfvk2T60/REObTnAT76pbOsn02Otc6dgsDyV5qTy98ZDOzKliRk1zFwXpybY/yXfejAJ8fsOjq/dbXYqKAHt9m8eAlR/U4HIKZ0/N4++bK60uJ2YlORzMLspkNpksnJTDe+WNbDhYzxf/soVvPredC08pZOnMAk4vyaU4O2XQL8rjr5nRs/qx6ZXtRwCYUZhhcSX2lulxcd70AnLTknl951G+/MxW5K9QlJVCcU4KLqfg9Rl6fH56/AaHCGMyk3GKMLc4S4eHxaijzfY8+71gQg5/23yYbYebOXV8/C6MruJHTas9s3S8/PRkThmXyRPrDnH3hdPx2OR6TxUe2vgaBmMML26r4swpeQm3vlckZXhcnDejgHOn53Ogrp1NBxt4bWd1X+PW43KQ4XGRnpyE0yE4JHB9mcflRIApBWmcMjaTVP1/ErNe2n6EU4uzdIHhEIgIpxZnMbcok9lFmazaU8u+mla2HGrEb8DpEJwijM9Nwec37D7SwoG6dl7efpRFJTlcPX+c7YawqcEZY6hp6WKKDSeimVucxQvvV/G39w5r40vFhJqWLibEyDJBZ03N43dv7+cfWyr590UTrC5HhZEerQ7DpvIGDtV38PmLZlhdSlwSESbnpzE5Pw2/MVQ1dlKU42F/TRutXT20dfvYX9uGMQZjoKXTy9HmLt471EiSo5LTJuawdGYBRdkpVv8qahiONHXyXnkjX7psptWlxBQRYWdVC/npyeSnJ3PG5LxjHu/fC/zL1/fw9t5a1u2v5/KfreLhmxfqwXKMaGz30u3z27LBnOJ2Mn1MOs9tqeR/r5xlmwlBlBrM0eZOFk7KsbqMkEzJT2PGmHT+sOYAH1043vZDJVXotPE1DE+uO0Sq28llc8ZYXUrcc4hQnBNoRPWf2e2sKcceYBpjqGzsZN2BejaWN3DxT97knounc/uSybj0QCAmrHi/CoDL5oxl3f56i6uJH/2H5OalJ3NtaTELJuYEzqL+ejU/u76Uy+eOs7BCFYqD9e0A5Np0yGjphGz+vLacd/bVcf6MAqvLUWpQje3dNLR7Y2YtSRHh1rNKuPfZbazdX8+Zxx3/qNilR6chqm/r5rktlVy3oNiWZyATlQQbadctKOYLF8/grCl5fG/FLq554B22HW6yujw1BL/f8Md3DzJ/QrbOdhkFE3NTefYzS5g1NpO7/rSJ37xVppMl2Nz+2lYA8tPt2fiaOSYDj8vBT1/9wOpSlDqp/bVtADE1sVOPz5DpSeJHL+/W7+o4oo2vEC17q4xun5/bl5RYXYoaRE6am4tOGcPNZ0ykoqGdax98hx++tItOr86eaFf/3F3N/to2PnHOZKtLSRiv7jjKdQuKmVuUyXdX7OSb/9iBz69/1O1qf207DoFcm14PmeR0cGpxNtsrm3TmTWVrvY2vkhhqfLmTHFw0awwbDzbw/NYqq8tRYaKNrxBUNLTz6Or9XD2viGk6G5vtzS7K4p6LZvCR04r51cp9fOgXq9h4sMHqstRxjDE8/OY+xmV5uGLuWKvLSSgup4MbFk/knGn5PLr6AHf9aSPt3T1Wl6UGUFbTSnFOiq2vpzp7ah5en+GRd3RabGVf+2vbcEhgBEAsOW1SDuNzUvjGc9v7FolWsc2+3+Y24fcbvvbX9xGEr1wxy+pyVIhS3E5KJ+Rw+9kl1LV289GHVvONv2+jrlW/uOziuS2VrD/QwGcumKbX51nAIcKVp47jqnnjeG3HUc774T95v0KH6trNe+WNzBln78lRxmR6mFuUye/e3s/Bujary1FqQDurminJS8OdFFt/b5wO4SOnjaetq4dP/nGDjuaJA7H1CYwyYwzff3Enq/bUcu9Vp/Dm7hoeX1ved1P2N31MBp+/aDpnTMnlj+8e5PwfreSnr35ArTbCLLW3upX/e3YbpROyuXGxrs1mpbOn5vOJcybT3ePn3x56h+88v0OHj9nE4cYODjd2cMaUXKtLGdKVp47D6RDu+tMmjjZ3Wl2OUsfw+Q0bDjZwWozMdHi8MZkePnLaeN4rb+TG37xLeV271SWpUYho40tELheR3SKyV0S+OsDjIiK/CD6+VUROC3XfSKtu6eTzT27mN6v2859nTeImPUCMWckuJ9fML+aV/z6PJdPy+Pnrezj7+2/w+Sff45XtR2JquFUsZ6rX6n21XP/rNbiTHPzyxgUsX39IT2hYbEpBOp+7aDrXLSjmkXf2c94P/8l9f9/G1opG/HF+PZidM/XytsDi42dNtf8sZ9mpbj5y2ngO1LZx3g//ycceXsOHH3yHH728i7c+qNGz9QnGbrlaW1ZHY7uXpTNjd0bOucVZ3Lh4IruPtHDB/7eSWx9Zx7K39rFuf31MHceoCE41LyJO4EHgEqACWC8izxljdvR72hXA9ODtDOAh4IwQ9x01v9/Q7fPT7fPT5fVT2djB/to23t5by4vvV9Ht8/M/l8zgsxdO0/UV4sC6/Q2cP6OQU8ZlsnZ/PW/sCizk7E5yMLcok7nFWUwrTGdMpoexmR5yUt2kuJ2kup2kuJw4HNZ+BmIhU/35/Qav309rZw9VTZ3sqGpmxftVrNxdw9SCNJbduihmFrtMBKnuJH740fl84pwpPPjPvTy5/hCPrTlIXpqb00tymTEmnamF6RRlp5CT6iI71U16chJJDsHpkJj8jrRrpowx7Ktp5ddv7WPRpBxmjc1k08HG0b5sxM0Yk8Fd509lTVkdfr/hYF0bWysaefCf+/C4HCyYkMNpk7KZMSaD6YUZTClIw+NyWl22CjM75coYw+HGDn7w0i5y09xcNCu2lwqaW5zFxNxUVu+rZUdlM299UAOAAIWZyZw3vYB5E7KZU5RJTqqbVLcTt9OBK8mByym4nY6Y/K6ON5Fc52sxsNcYUwYgIk8C1wL9A3Qt8JgJzJ/5rohki8g4oCSEfUdk2+Em/v3hNXh9fnoGOaOb6Uni8rnj+OyF02JqSlIVmsIMD1fPK+KKuWM5WNfO7iMtVDS088zGCtq6Bz8765DAdTIOEZB/3X/wptO4YFZhNEq3Zab6e2JdOd/8x3a8PjPgDHoFGcn8zyUzuP2cyaQn6zKDdtPb+3jmlDzmj89mR1UzZTWtrDtQzys7jnCyTjBnsBHmFGHx5Fz+8PHFUap6VGyXqU6vj0XfeY3Wrh7S3E7uv2bOaF4u6goykrlmflHf/e4eP/trW9lb3cr+ujbW7q875nPkdAQOCH954wIunh3bB8aqj21yddNv1rKmrA6308EvbiwlxR37jf3MFBeXzx3H5XPH0drVw7TCNP70bjkVDe28vquav2ysOOn+Lqfgcjp47OOLWVRi/yHN8SiSRz/FwKF+9ysInN0Y6jnFIe4LgIjcCdwZvNsqIruPe0o+UDusyoH3gZ8Md6ehnVDLyvC/x4jqsJBdahlxHRd++6QPTxrJaw4ipjMFcBDYAHxuJDsPTDN1Istr2QU89omI1RKPmYJB/q1OPfn3S1isDKGOSLvkOwNutvyzHGSXOiBytcRUrkaSqSu+F2L1YbRykFos1FfH6VH4bhmC7f5NwmzQTEWy8TVQv+bx500He04o+wY2GrMMWDZoESIbjDGLBns8muxSi13qAPvUYpc6hqCZOo5darFLHaC1DJMtMgX2+beySx1gn1rsUgfYq5aTiHiuYilTYJ9a7FIH2KcWK+qIZOOrApjQ7/54oDLE57hD2FepRKOZUiq8NFNKhZ/mSqmTiORsh+uB6SIyWUTcwA3Ac8c95zng1uCsN2cCTcaYqhD3VSrRaKaUCi/NlFLhp7lS6iQi1vNljOkRkc8CLwNO4BFjzHYRuSv4+MPACuBKYC/QDtx+sn1HWMpJu6WjzC612KUOsE8tdqljUJqpAdmlFrvUAVpLyGyUKbDPv5Vd6gD71GKXOsBetQzIRrmy07+VXWqxSx1gn1qiXocEJppRSimllFJKKRVJEV1kWSmllFJKKaVUgDa+lFJKKaWUUioK4rbxJSKXi8huEdkrIl+1uJZHRKRaRLZZXMcEEfmniOwUke0i8nmL6vCIyDoR2RKs45tW1HFcTU4ReU9Enre6FjuzS640UwPWYqtcaaZCo5k6oQ7N1OD1aKZCoJkasBZb5MpumQrWFPVcxWXjS0ScwIPAFcBs4EYRmW1hSY8Cl1v4/r16gP8xxpwCnAl8xqJ/ly7gQmPMfKAUuDw425GVPg/stLgGW7NZrh5FM3U8u+VKMzUEzdSANFOD00wNQTM1KLvkym6ZAgtyFZeNL2AxsNcYU2aM6QaeBK61qhhjzFtAvVXv36+OKmPMpuDPLQQ+bMUW1GGMMa3Bu67gzbKZX0RkPPAh4LdW1RAjbJMrzdSAtdgmV5qpkGmmTqxDMzUAzVTINFMDsEuu7JQpsC5X8dr4KgYO9btfgUVf3nYlIiXAAmCtRe/vFJHNQDXwqjHGkjqCfgZ8GfBbWEMs0FydhNWZCtZgl1z9DM1UKDRTJ6GZOsbP0EyFQjM1BKtzZaNMgUW5itfGlwywTefUDxKRdOAZ4B5jTLMVNRhjfMaYUgKr1y8WkblW1CEiVwHVxpiNVrx/jNFcDcIOmQJ75EozNSyaqUFopv5FMzUsmqmTsEOu7JApsDZX8dr4qgAm9Ls/Hqi0qBZbEREXgeD92RjzV6vrMcY0Aiuxblz0EuAaETlAYHjChSLyJ4tqsTvN1QDslimwPFeaqdBppgagmTqBZip0mqlB2C1XiXz8F6+Nr/XAdBGZLCJu4AbgOYtrspyICPA7YKcx5icW1lEgItnBn1OAi4FdVtRijPmaMWa8MaaEwOfkDWPMzVbUEgM0V8exS6aCtdgiV5qpYdFMHUczdSLN1LBopgZgl1zZJVNgba7isvFljOkBPgu8TOCiwqeMMdutqkdEngDWADNFpEJEPmFRKUuAWwi07jcHb1daUMc44J8ispXAF+WrxhidOtfm7JQrzdSANFcxRjM1IM2UGjHN1KDskivNFCDG6FBYpZRSSimllIq0uOz5UkoppZRSSim70caXUkoppZRSSkWBNr6UUkoppZRSKgq08aWUUkoppZRSUaCNL6WUUkoppZSKAm18RZmI+PpN87lZRL56kud+WERm97v/LRG5OAw1ZIvIp0ew3/0i8sVBHrtTRHYFb+tE5Jx+j50rItuDv2+KiPwoeP9Hw3z/EhG5abh1q/inudJcqfDSTGmmVHhppjRTfYwxeoviDWgdxnMfBT4agRpKgG0j2O9+4IsDbL8K2AjkB++fBpQDY4P3HwZu7/f8ZiB5BO+/FHje6v+HerPfTXOludJbeG+aKc2U3sJ700xppvp+H6sLSLTbYOEDfgDsALYCPwbOBuqB/cBmYGr/MAIHgO8RWMBvQ/AD/zKwD7gr+Jx04HVgE/A+cG1w+5NAR/B1fxTc9iUCC95tBb7Zr66vA7uB14AnBgnfKuDC47Z9O3i7o9/v8WcCK837gu99PfDvwDZgC/BWcF8n8KN+9XwyuP1doCm4739b/f9Sb/a5aa40V3oL700zpZnSW3hvminNVN+/kdUFJNqt3wdvc78PYG7wA9676HV28L99YTv+fjB8nwr+/NPghzQDKACqg9uTgMzgz/nAXkA47swHcCmwLPiYA3geOA9YGAxtKpAZ3H+g8NUDWcdtuxb46yC/R2u/n98Hio/7ve8E7g3+nEzgy2UycXbmQ2/hu2muNFd6C+9NM6WZ0lt4b5opzVTvLQkVbR3GmNL+G0QkCegEfisiLxD48IfiueB/3wfSjTEtQIuIdIpINtAGfE9EzgP8QDEwZoDXuTR4ey94Px2YTiDMfzPGtAfrfG6AfQcjgAnhee8Aj4rIU8Bf+9UzT0Q+GryfFaynexjvrxKL5upYmis1WpqpY2mm1Ghppo6VsJnSCTdswBjTAywGngE+DLwU4q5dwf/6+/3cez8J+A8CZ0IWBgN/FPAM8DoCfN8YUxq8TTPG/K63vBDq2EHgLEl/pwW3n5Qx5i7gXmACsFlE8oL13N2vnsnGmFdCqEOpPporzZUKL82UZkqFl2YqMTOljS8bEJF0At22K4B7gNLgQy0Ezj6MVBaBLmiviFwATBrkdV8GPh6sAxEpFpFC4C3guuAMNRnA1YO8zw+B/xcMDiJSCtwG/GqoAkVkqjFmrTHmPqCWQAhfBj4lIq7gc2aISNoAdSs1KM2V5kqFl2ZKM6XCSzOVmJnSYYfRlyIim/vdfwn4OfB3EfEQaPX/d/CxJ4HfiMjngI8yfH8G/iEiGwiML94FYIypE5F3RGQb8KIx5ksicgqwRkQAWoGbjTGbRGR5cN+DBC6sPIEx5jkRKQZWi4ghEJKbjTFVIdT4IxGZHvy9Xydw4eVWAuOSN0mgoBoCZ4S2Aj0isgV41Bjz0+H+g6i4pbk6luZKjZZm6liaKTVamqljJWymei/wU0oppZRSSikVQTrsUCmllFJKKaWiQBtfSimllFJKKRUF2vhSSimllFJKqSjQxpdSSimllFJKRYE2vpRSSimllFIqCrTxpZRSSimllFJRoI0vpZRSSimllIqC/x/ZgkulDss1QgAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<Figure size 864x216 with 4 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"fig = plt.figure(figsize=(12,3))\n", | |
"_offsets = glm_offset_for_deseq2\n", | |
"_sfs = deseq2_size_factors \n", | |
"\n", | |
"xlabel = 'Estimated Offset'\n", | |
"line_label = 'DESeq2\\nsize factor'\n", | |
"ax = None\n", | |
"for i, col in enumerate(_offsets.columns, start=1):\n", | |
" ax = plt.subplot(1, len(_offsets.columns), i, sharex=ax, sharey=ax)\n", | |
"\n", | |
" sns.distplot(_offsets[col])\n", | |
" ax.set_title(col)\n", | |
" ax.set_xlabel(xlabel)\n", | |
" ax.axvline(_sfs[col], label=line_label)\n", | |
" \n", | |
" if i == len(_offsets.columns):\n", | |
" ax.legend()\n", | |
"plt.tight_layout()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "4e661242-4de9-4db6-b5ff-ca43dd15e610", | |
"metadata": {}, | |
"source": [ | |
"NB if you actually want to set these normalisation factors in DESeq2 you should use this function:\n", | |
"\n", | |
"```\n", | |
"r_dds = r_deseq2.__dict__['normalizationFactors<-'](r_dds, value=r_as_matrix(r_norm_factors))\n", | |
"```" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "913a61fd", | |
"metadata": {}, | |
"source": [ | |
"## GC scaling: EDASeq to CQN" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "8f26453d", | |
"metadata": {}, | |
"source": [ | |
"To compare EDASeq to cqn it's only fair to not use the length information in cqn,\n", | |
"so only the GC content is corrected" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 81, | |
"id": "3a1b5d16", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Using fixed method for length normalisation\n", | |
"Setting all gene lengths to be equal to 1000 bp\n", | |
"RQ fit ....\n", | |
"SQN fitting ...\n", | |
" |======================================================================| 100%\n", | |
".\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 360x360 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"log2_offset_no_length_cqn, __, log2_tpm_no_length_cqn, __ = normalise_by_covariate_and_length_cqn(\n", | |
" data_with_features, \n", | |
" covariate=yeast_gc, \n", | |
" lengths=None,\n", | |
" library_sizes=yeast_library_sizes,\n", | |
" covariate_name='GC Content'\n", | |
")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 82, | |
"id": "7e00768e", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"log2_cqn_normed_no_length = log2_tpm_no_length_cqn + log2_offset_no_length_cqn" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 83, | |
"id": "e91e41bb", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>mut_1</th>\n", | |
" <th>mut_2</th>\n", | |
" <th>wt_1</th>\n", | |
" <th>wt_2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>YAL001C</th>\n", | |
" <td>7.940957</td>\n", | |
" <td>7.969197</td>\n", | |
" <td>6.794863</td>\n", | |
" <td>7.217051</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL002W</th>\n", | |
" <td>6.528836</td>\n", | |
" <td>6.677310</td>\n", | |
" <td>7.636040</td>\n", | |
" <td>7.829449</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL003W</th>\n", | |
" <td>12.147441</td>\n", | |
" <td>12.147441</td>\n", | |
" <td>8.956284</td>\n", | |
" <td>8.837778</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL004W</th>\n", | |
" <td>7.691303</td>\n", | |
" <td>8.070751</td>\n", | |
" <td>8.935505</td>\n", | |
" <td>8.892046</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL005C</th>\n", | |
" <td>9.783005</td>\n", | |
" <td>9.773090</td>\n", | |
" <td>10.646297</td>\n", | |
" <td>10.677193</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" mut_1 mut_2 wt_1 wt_2\n", | |
"YAL001C 7.940957 7.969197 6.794863 7.217051\n", | |
"YAL002W 6.528836 6.677310 7.636040 7.829449\n", | |
"YAL003W 12.147441 12.147441 8.956284 8.837778\n", | |
"YAL004W 7.691303 8.070751 8.935505 8.892046\n", | |
"YAL005C 9.783005 9.773090 10.646297 10.677193" | |
] | |
}, | |
"execution_count": 83, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"log2_cqn_normed_no_length.head()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "d925466a", | |
"metadata": {}, | |
"source": [ | |
"Convert edaseq normed values to transcripts per million" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 84, | |
"id": "0fa72ecb", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>mut_1</th>\n", | |
" <th>mut_2</th>\n", | |
" <th>wt_1</th>\n", | |
" <th>wt_2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>YAL001C</th>\n", | |
" <td>8.370376</td>\n", | |
" <td>8.473495</td>\n", | |
" <td>6.981461</td>\n", | |
" <td>7.419315</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL002W</th>\n", | |
" <td>6.569280</td>\n", | |
" <td>6.888533</td>\n", | |
" <td>8.079072</td>\n", | |
" <td>8.235352</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL003W</th>\n", | |
" <td>11.317676</td>\n", | |
" <td>11.322144</td>\n", | |
" <td>8.348832</td>\n", | |
" <td>8.258253</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL004W</th>\n", | |
" <td>7.455623</td>\n", | |
" <td>7.740434</td>\n", | |
" <td>8.392887</td>\n", | |
" <td>8.367600</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>YAL005C</th>\n", | |
" <td>9.102315</td>\n", | |
" <td>9.108410</td>\n", | |
" <td>9.502512</td>\n", | |
" <td>9.522233</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" mut_1 mut_2 wt_1 wt_2\n", | |
"YAL001C 8.370376 8.473495 6.981461 7.419315\n", | |
"YAL002W 6.569280 6.888533 8.079072 8.235352\n", | |
"YAL003W 11.317676 11.322144 8.348832 8.258253\n", | |
"YAL004W 7.455623 7.740434 8.392887 8.367600\n", | |
"YAL005C 9.102315 9.108410 9.502512 9.522233" | |
] | |
}, | |
"execution_count": 84, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"log2_edaseq_normed_per_million = np.log2(edaseq_normed_gc_corrected + 1) - np.log2(yeast_library_sizes / 1_000_000)\n", | |
"log2_edaseq_normed_per_million.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 85, | |
"id": "4a3512ef", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 1080x360 with 4 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"fig = plt.figure(figsize=(15,5))\n", | |
"\n", | |
"ax = None\n", | |
"for i, col in enumerate(log2_edaseq_normed_per_million.columns, start=1):\n", | |
" ax = fig.add_subplot(1, 4, i, sharex=ax, sharey=ax)\n", | |
" ax.set_title(col)\n", | |
" \n", | |
" sns.histplot(x=log2_edaseq_normed_per_million[col], y=log2_cqn_normed_no_length[col], ax=ax, cmap='magma')\n", | |
" \n", | |
" ax.set_xlabel(\"log2(EDASeq norm)\")\n", | |
" ax.set_ylabel(\"log2(CQN norm)\")\n", | |
" \n", | |
"plt.tight_layout()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "db6215f8", | |
"metadata": {}, | |
"source": [ | |
"# Session Info" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 86, | |
"id": "1b0d9cf5", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<details>\n", | |
"<summary>Click to view session information</summary>\n", | |
"<pre>\n", | |
"-----\n", | |
"matplotlib 3.4.3\n", | |
"numpy 1.20.3\n", | |
"pandas 1.3.2\n", | |
"qnorm 0.8.0\n", | |
"rpy2 3.4.5\n", | |
"scipy 1.7.1\n", | |
"seaborn 0.11.2\n", | |
"session_info 1.0.0\n", | |
"tmma NA\n", | |
"-----\n", | |
"</pre>\n", | |
"<details>\n", | |
"<summary>Click to view modules imported as dependencies</summary>\n", | |
"<pre>\n", | |
"PIL 8.3.1\n", | |
"anyio NA\n", | |
"appnope 0.1.2\n", | |
"attr 21.2.0\n", | |
"babel 2.9.1\n", | |
"backcall 0.2.0\n", | |
"beta_ufunc NA\n", | |
"binom_ufunc NA\n", | |
"brotli NA\n", | |
"certifi 2021.05.30\n", | |
"cffi 1.14.6\n", | |
"chardet 4.0.0\n", | |
"charset_normalizer 2.0.0\n", | |
"colorama 0.4.4\n", | |
"cycler 0.10.0\n", | |
"cython_runtime NA\n", | |
"dateutil 2.8.2\n", | |
"decorator 5.0.9\n", | |
"defusedxml 0.7.1\n", | |
"entrypoints 0.3\n", | |
"idna 3.1\n", | |
"ipykernel 6.2.0\n", | |
"ipython_genutils 0.2.0\n", | |
"jedi 0.18.0\n", | |
"jinja2 3.0.1\n", | |
"json5 NA\n", | |
"jsonschema 3.2.0\n", | |
"jupyter_server 1.10.2\n", | |
"jupyterlab_server 2.7.2\n", | |
"kiwisolver 1.3.1\n", | |
"llvmlite 0.37.0\n", | |
"markupsafe 2.0.1\n", | |
"matplotlib_inline NA\n", | |
"mpl_toolkits NA\n", | |
"nbclassic NA\n", | |
"nbformat 5.1.3\n", | |
"nbinom_ufunc NA\n", | |
"numba 0.54.0\n", | |
"packaging 21.0\n", | |
"parso 0.8.2\n", | |
"pexpect 4.8.0\n", | |
"pickleshare 0.7.5\n", | |
"pkg_resources NA\n", | |
"prometheus_client NA\n", | |
"prompt_toolkit 3.0.19\n", | |
"ptyprocess 0.7.0\n", | |
"pvectorc NA\n", | |
"pycparser 2.20\n", | |
"pyexpat NA\n", | |
"pygments 2.10.0\n", | |
"pyparsing 2.4.7\n", | |
"pyrsistent NA\n", | |
"pytz 2021.1\n", | |
"requests 2.26.0\n", | |
"send2trash NA\n", | |
"six 1.16.0\n", | |
"sniffio 1.2.0\n", | |
"socks 1.7.1\n", | |
"statsmodels 0.12.2\n", | |
"storemagic NA\n", | |
"terminado 0.11.1\n", | |
"tornado 6.1\n", | |
"traitlets 5.0.5\n", | |
"tzlocal NA\n", | |
"urllib3 1.26.6\n", | |
"wcwidth 0.2.5\n", | |
"websocket 0.57.0\n", | |
"zmq 22.2.1\n", | |
"</pre>\n", | |
"</details> <!-- seems like this ends pre, so might as well be explicit -->\n", | |
"<pre>\n", | |
"-----\n", | |
"IPython 7.26.0\n", | |
"jupyter_client 6.1.12\n", | |
"jupyter_core 4.7.1\n", | |
"jupyterlab 3.0.16\n", | |
"notebook 6.4.3\n", | |
"-----\n", | |
"Python 3.9.6 | packaged by conda-forge | (default, Jul 11 2021, 03:36:15) [Clang 11.1.0 ]\n", | |
"macOS-11.5.2-x86_64-i386-64bit\n", | |
"-----\n", | |
"Session information updated at 2021-08-24 21:31\n", | |
"</pre>\n", | |
"</details>" | |
], | |
"text/plain": [ | |
"<IPython.core.display.HTML object>" | |
] | |
}, | |
"execution_count": 86, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"import session_info\n", | |
"session_info.show(write_req_file=False, excludes=['builtins', 'stdlib_list', 'EDASeq', 'cqn', 'base', 'graphics', 'DESeq2', 'edgeR'])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 87, | |
"id": "8e74bff4", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'2.26.0'" | |
] | |
}, | |
"execution_count": 87, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"r_edaseq.__version__" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 88, | |
"id": "50eae906", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'1.38.0'" | |
] | |
}, | |
"execution_count": 88, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"r_cqn.__version__" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 89, | |
"id": "32aa5ae3-0ddc-4242-8259-d8936e7ad19b", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'1.32.0'" | |
] | |
}, | |
"execution_count": 89, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"r_deseq2.__version__" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 90, | |
"id": "3c2584b4-0b3d-4c9c-a339-4bc34ec5e29b", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'3.34.0'" | |
] | |
}, | |
"execution_count": 90, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"r_edger.__version__" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"id": "5a8fea9e-d52f-4e5b-9674-46018d9a5356", | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3 (ipykernel)", | |
"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.9.6" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 5 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment