From e5d0613043b5fd4a11548972b7ce2ef1026bf3e5 Mon Sep 17 00:00:00 2001 From: pablosoto Date: Fri, 25 Jun 2021 16:08:42 +0200 Subject: [PATCH] DISNET biolayer expansion --- ...processing, integration and analysis.ipynb | 8546 +++++++++++ ...processing, integration and analysis.ipynb | 11794 ++++++++++++++++ 2 files changed, 20340 insertions(+) create mode 100644 TFM DISNET biolayer expansion codes/TFM Pablo Soto chemical markers data processing, integration and analysis.ipynb create mode 100644 TFM DISNET biolayer expansion codes/TFM Pablo Soto ncRNA data processing, integration and analysis.ipynb diff --git a/TFM DISNET biolayer expansion codes/TFM Pablo Soto chemical markers data processing, integration and analysis.ipynb b/TFM DISNET biolayer expansion codes/TFM Pablo Soto chemical markers data processing, integration and analysis.ipynb new file mode 100644 index 0000000..06a9634 --- /dev/null +++ b/TFM DISNET biolayer expansion codes/TFM Pablo Soto chemical markers data processing, integration and analysis.ipynb @@ -0,0 +1,8546 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**In this notebook data from MarkerDB database related to chemical diagnostic markers-disease associations is processed, inserted into SQL tables and analysed.**" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Operations with data from Markerdb database**" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
marker_idmarkername_idnamepatientgendersampleconcentrationColumn9referenceColumn12type
011-Methylhistidine251ObesityAdult: >=18 yrs oldBothUrine10.9 (0.80-21.0) umol/mmol creatinineNaNTuma, P., Samcova, E. & Balinova, P. Determina...15899597.02Diagnostic
111-Methylhistidine1NormalAdult: >=18 yrs oldBothUrine85.8 (17.7-153.8) umol/mmol creatinineNaNDavid F. Putnam Composition and Concentrative ...NaN2Diagnostic
211-Methylhistidine33Alzheimer's DiseaseAdult: >=18 yrs oldBothUrine15.7 (11.7-19.7) umol/mmol creatinineNaNFonteh, A. N., Harrington, R. J., Tsai, A., Li...17031479.02Diagnostic
311-Methylhistidine34PregnancyAdult: >=18 yrs oldFemaleBlood50.0 uMNaNNaN22494326.02Diagnostic
411-Methylhistidine1NormalAdult: >=18 yrs oldBothBlood12.7 uMNaNDohm, G. L., Williams, R. T., Kasperek, G. J. ...7061274.02Diagnostic
..........................................
33894961SM(d18:0/22:1(13Z)(OH))1NormalAdult: >=18 yrs oldBothUrine0.0023 (0.00090-0.0058) umol/mmol creatinineNaNNaN24023812.02Diagnostic
33904961SM(d18:0/22:1(13Z)(OH))34PregnancyAdult: >=18 yrs oldFemaleBlood4.4 uMNaNNaN24704061.02Diagnostic
33914961SM(d18:0/22:1(13Z)(OH))1NormalAdult: >=18 yrs oldBothBlood15.4 uMNaNMolecular YouNaN2Diagnostic
33924973Carboxyterminal telopeptide of collagen 16245Vertebral OsteoporosisAdult: >=18 yrs oldBothUrine>63 nmol/mmol creatineNaNSeibel, M. J., Woitge, H., Scheidt-Nave, C., L...7817828.02Diagnostic
33934973Carboxyterminal telopeptide of collagen 11NormalAdult: >=18 yrs oldBothUrine<63 nmol/mmol creatineNaN<63NaN2Diagnostic
\n", + "

3394 rows × 13 columns

\n", + "
" + ], + "text/plain": [ + " marker_id marker name_id \\\n", + "0 1 1-Methylhistidine 251 \n", + "1 1 1-Methylhistidine 1 \n", + "2 1 1-Methylhistidine 33 \n", + "3 1 1-Methylhistidine 34 \n", + "4 1 1-Methylhistidine 1 \n", + "... ... ... ... \n", + "3389 4961 SM(d18:0/22:1(13Z)(OH)) 1 \n", + "3390 4961 SM(d18:0/22:1(13Z)(OH)) 34 \n", + "3391 4961 SM(d18:0/22:1(13Z)(OH)) 1 \n", + "3392 4973 Carboxyterminal telopeptide of collagen 1 6245 \n", + "3393 4973 Carboxyterminal telopeptide of collagen 1 1 \n", + "\n", + " name patient gender sample \\\n", + "0 Obesity Adult: >=18 yrs old Both Urine \n", + "1 Normal Adult: >=18 yrs old Both Urine \n", + "2 Alzheimer's Disease Adult: >=18 yrs old Both Urine \n", + "3 Pregnancy Adult: >=18 yrs old Female Blood \n", + "4 Normal Adult: >=18 yrs old Both Blood \n", + "... ... ... ... ... \n", + "3389 Normal Adult: >=18 yrs old Both Urine \n", + "3390 Pregnancy Adult: >=18 yrs old Female Blood \n", + "3391 Normal Adult: >=18 yrs old Both Blood \n", + "3392 Vertebral Osteoporosis Adult: >=18 yrs old Both Urine \n", + "3393 Normal Adult: >=18 yrs old Both Urine \n", + "\n", + " concentration Column9 \\\n", + "0 10.9 (0.80-21.0) umol/mmol creatinine NaN \n", + "1 85.8 (17.7-153.8) umol/mmol creatinine NaN \n", + "2 15.7 (11.7-19.7) umol/mmol creatinine NaN \n", + "3 50.0 uM NaN \n", + "4 12.7 uM NaN \n", + "... ... ... \n", + "3389 0.0023 (0.00090-0.0058) umol/mmol creatinine NaN \n", + "3390 4.4 uM NaN \n", + "3391 15.4 uM NaN \n", + "3392 >63 nmol/mmol creatine NaN \n", + "3393 <63 nmol/mmol creatine NaN \n", + "\n", + " reference Column12 \\\n", + "0 Tuma, P., Samcova, E. & Balinova, P. Determina... 15899597.0 2 \n", + "1 David F. Putnam Composition and Concentrative ... NaN 2 \n", + "2 Fonteh, A. N., Harrington, R. J., Tsai, A., Li... 17031479.0 2 \n", + "3 NaN 22494326.0 2 \n", + "4 Dohm, G. L., Williams, R. T., Kasperek, G. J. ... 7061274.0 2 \n", + "... ... ... ... \n", + "3389 NaN 24023812.0 2 \n", + "3390 NaN 24704061.0 2 \n", + "3391 Molecular You NaN 2 \n", + "3392 Seibel, M. J., Woitge, H., Scheidt-Nave, C., L... 7817828.0 2 \n", + "3393 <63 NaN 2 \n", + "\n", + " type \n", + "0 Diagnostic \n", + "1 Diagnostic \n", + "2 Diagnostic \n", + "3 Diagnostic \n", + "4 Diagnostic \n", + "... ... \n", + "3389 Diagnostic \n", + "3390 Diagnostic \n", + "3391 Diagnostic \n", + "3392 Diagnostic \n", + "3393 Diagnostic \n", + "\n", + "[3394 rows x 13 columns]" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#importing the data containing the associations between chemical diagnostic markers and diseases.\n", + "df1 = pd.read_excel(\"all_diagnostic_chemical_markers.xlsx\")\n", + "df1" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
marker_idmarkername_idnamepatientgendersampleconcentrationColumn9referenceColumn12type
011-Methylhistidine251ObesityAdult: >=18 yrs oldBothUrine10.9 (0.80-21.0) umol/mmol creatinineNaNTuma, P., Samcova, E. & Balinova, P. Determina...15899597.02Diagnostic
211-Methylhistidine33Alzheimer's DiseaseAdult: >=18 yrs oldBothUrine15.7 (11.7-19.7) umol/mmol creatinineNaNFonteh, A. N., Harrington, R. J., Tsai, A., Li...17031479.02Diagnostic
511-Methylhistidine5988Preeclampsia/EclampsiaAdult: >=18 yrs oldFemaleBlood50.7 uMNaNNaN22494326.02Diagnostic
611-Methylhistidine83Chronic Kidney DiseaseAdult: >=18 yrs oldBothBlood28.8 (10.6-47.0) uMNaNRaj, D. S., Ouwendyk, M., Francoeur, R. & Pier...10838467.02Diagnostic
721,3-Diaminopropane207LeukemiaAdult: >=18 yrs oldBothUrine0.96 (0.12-2.1) umol/mmol creatinineNaNLee, S. H., Suh, J. W., Chung, B. C. & Kim, S....9464484.02Diagnostic
..........................................
33564931PC(o-18:1(11Z)/18:2(9Z,12Z))251ObesityChildren: 2-17 yrs oldBothBlood8.4 (5.7-11.1) uMNaNNaN24740590.02Diagnostic
33584934PC(o-18:1(9Z)/18:2(9Z,12Z))251ObesityChildren: 2-17 yrs oldBothBlood8.4 (5.7-11.1) uMNaNNaN24740590.02Diagnostic
33864957SM(d18:0/14:1(9Z)(OH))251ObesityAdolescent:13-18 yrs oldBothUrine0.36 (0.32-0.40) umol/mmol creatinineNaNNaN26910390.02Diagnostic
33884961SM(d18:0/22:1(13Z)(OH))251ObesityAdolescent:13-18 yrs oldBothUrine2.2 (2.1-2.3) umol/mmol creatinineNaNNaN26910390.02Diagnostic
33924973Carboxyterminal telopeptide of collagen 16245Vertebral OsteoporosisAdult: >=18 yrs oldBothUrine>63 nmol/mmol creatineNaNSeibel, M. J., Woitge, H., Scheidt-Nave, C., L...7817828.02Diagnostic
\n", + "

1545 rows × 13 columns

\n", + "
" + ], + "text/plain": [ + " marker_id marker name_id \\\n", + "0 1 1-Methylhistidine 251 \n", + "2 1 1-Methylhistidine 33 \n", + "5 1 1-Methylhistidine 5988 \n", + "6 1 1-Methylhistidine 83 \n", + "7 2 1,3-Diaminopropane 207 \n", + "... ... ... ... \n", + "3356 4931 PC(o-18:1(11Z)/18:2(9Z,12Z)) 251 \n", + "3358 4934 PC(o-18:1(9Z)/18:2(9Z,12Z)) 251 \n", + "3386 4957 SM(d18:0/14:1(9Z)(OH)) 251 \n", + "3388 4961 SM(d18:0/22:1(13Z)(OH)) 251 \n", + "3392 4973 Carboxyterminal telopeptide of collagen 1 6245 \n", + "\n", + " name patient gender sample \\\n", + "0 Obesity Adult: >=18 yrs old Both Urine \n", + "2 Alzheimer's Disease Adult: >=18 yrs old Both Urine \n", + "5 Preeclampsia/Eclampsia Adult: >=18 yrs old Female Blood \n", + "6 Chronic Kidney Disease Adult: >=18 yrs old Both Blood \n", + "7 Leukemia Adult: >=18 yrs old Both Urine \n", + "... ... ... ... ... \n", + "3356 Obesity Children: 2-17 yrs old Both Blood \n", + "3358 Obesity Children: 2-17 yrs old Both Blood \n", + "3386 Obesity Adolescent:13-18 yrs old Both Urine \n", + "3388 Obesity Adolescent:13-18 yrs old Both Urine \n", + "3392 Vertebral Osteoporosis Adult: >=18 yrs old Both Urine \n", + "\n", + " concentration Column9 \\\n", + "0 10.9 (0.80-21.0) umol/mmol creatinine NaN \n", + "2 15.7 (11.7-19.7) umol/mmol creatinine NaN \n", + "5 50.7 uM NaN \n", + "6 28.8 (10.6-47.0) uM NaN \n", + "7 0.96 (0.12-2.1) umol/mmol creatinine NaN \n", + "... ... ... \n", + "3356 8.4 (5.7-11.1) uM NaN \n", + "3358 8.4 (5.7-11.1) uM NaN \n", + "3386 0.36 (0.32-0.40) umol/mmol creatinine NaN \n", + "3388 2.2 (2.1-2.3) umol/mmol creatinine NaN \n", + "3392 >63 nmol/mmol creatine NaN \n", + "\n", + " reference Column12 \\\n", + "0 Tuma, P., Samcova, E. & Balinova, P. Determina... 15899597.0 2 \n", + "2 Fonteh, A. N., Harrington, R. J., Tsai, A., Li... 17031479.0 2 \n", + "5 NaN 22494326.0 2 \n", + "6 Raj, D. S., Ouwendyk, M., Francoeur, R. & Pier... 10838467.0 2 \n", + "7 Lee, S. H., Suh, J. W., Chung, B. C. & Kim, S.... 9464484.0 2 \n", + "... ... ... ... \n", + "3356 NaN 24740590.0 2 \n", + "3358 NaN 24740590.0 2 \n", + "3386 NaN 26910390.0 2 \n", + "3388 NaN 26910390.0 2 \n", + "3392 Seibel, M. J., Woitge, H., Scheidt-Nave, C., L... 7817828.0 2 \n", + "\n", + " type \n", + "0 Diagnostic \n", + "2 Diagnostic \n", + "5 Diagnostic \n", + "6 Diagnostic \n", + "7 Diagnostic \n", + "... ... \n", + "3356 Diagnostic \n", + "3358 Diagnostic \n", + "3386 Diagnostic \n", + "3388 Diagnostic \n", + "3392 Diagnostic \n", + "\n", + "[1545 rows x 13 columns]" + ] + }, + "execution_count": 67, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df2= df1[df1.name != \"Normal\"]#discard of normal (not pathologic) marker concentrations.\n", + "df2= df2[df2.name != \"Pregnancy\"]#discard of pregnancy as it is not a disease (marker associated to a pregnancy situation)\n", + "df2" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
markernameconcentrationsample
01-MethylhistidineObesity10.9 (0.80-21.0) umol/mmol creatinineUrine
21-MethylhistidineAlzheimer's Disease15.7 (11.7-19.7) umol/mmol creatinineUrine
51-MethylhistidinePreeclampsia/Eclampsia50.7 uMBlood
61-MethylhistidineChronic Kidney Disease28.8 (10.6-47.0) uMBlood
71,3-DiaminopropaneLeukemia0.96 (0.12-2.1) umol/mmol creatinineUrine
...............
3356PC(o-18:1(11Z)/18:2(9Z,12Z))Obesity8.4 (5.7-11.1) uMBlood
3358PC(o-18:1(9Z)/18:2(9Z,12Z))Obesity8.4 (5.7-11.1) uMBlood
3386SM(d18:0/14:1(9Z)(OH))Obesity0.36 (0.32-0.40) umol/mmol creatinineUrine
3388SM(d18:0/22:1(13Z)(OH))Obesity2.2 (2.1-2.3) umol/mmol creatinineUrine
3392Carboxyterminal telopeptide of collagen 1Vertebral Osteoporosis>63 nmol/mmol creatineUrine
\n", + "

1545 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " marker name \\\n", + "0 1-Methylhistidine Obesity \n", + "2 1-Methylhistidine Alzheimer's Disease \n", + "5 1-Methylhistidine Preeclampsia/Eclampsia \n", + "6 1-Methylhistidine Chronic Kidney Disease \n", + "7 1,3-Diaminopropane Leukemia \n", + "... ... ... \n", + "3356 PC(o-18:1(11Z)/18:2(9Z,12Z)) Obesity \n", + "3358 PC(o-18:1(9Z)/18:2(9Z,12Z)) Obesity \n", + "3386 SM(d18:0/14:1(9Z)(OH)) Obesity \n", + "3388 SM(d18:0/22:1(13Z)(OH)) Obesity \n", + "3392 Carboxyterminal telopeptide of collagen 1 Vertebral Osteoporosis \n", + "\n", + " concentration sample \n", + "0 10.9 (0.80-21.0) umol/mmol creatinine Urine \n", + "2 15.7 (11.7-19.7) umol/mmol creatinine Urine \n", + "5 50.7 uM Blood \n", + "6 28.8 (10.6-47.0) uM Blood \n", + "7 0.96 (0.12-2.1) umol/mmol creatinine Urine \n", + "... ... ... \n", + "3356 8.4 (5.7-11.1) uM Blood \n", + "3358 8.4 (5.7-11.1) uM Blood \n", + "3386 0.36 (0.32-0.40) umol/mmol creatinine Urine \n", + "3388 2.2 (2.1-2.3) umol/mmol creatinine Urine \n", + "3392 >63 nmol/mmol creatine Urine \n", + "\n", + "[1545 rows x 4 columns]" + ] + }, + "execution_count": 68, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df2 = df2[['marker', 'name', 'concentration', 'sample']]#selecting the fields we are interested to according to our database schema\n", + "df2" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [], + "source": [ + "#df2.to_excel('marker_chem_diag.xlsx')" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + ":2: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " df2['source_id'] = 7\n", + ":3: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " df2['source_name'] = \"Markerdb\"\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
markernameconcentrationsamplesource_idsource_name
01-MethylhistidineObesity10.9 (0.80-21.0) umol/mmol creatinineUrine7Markerdb
21-MethylhistidineAlzheimer's Disease15.7 (11.7-19.7) umol/mmol creatinineUrine7Markerdb
51-MethylhistidinePreeclampsia/Eclampsia50.7 uMBlood7Markerdb
61-MethylhistidineChronic Kidney Disease28.8 (10.6-47.0) uMBlood7Markerdb
71,3-DiaminopropaneLeukemia0.96 (0.12-2.1) umol/mmol creatinineUrine7Markerdb
.....................
3356PC(o-18:1(11Z)/18:2(9Z,12Z))Obesity8.4 (5.7-11.1) uMBlood7Markerdb
3358PC(o-18:1(9Z)/18:2(9Z,12Z))Obesity8.4 (5.7-11.1) uMBlood7Markerdb
3386SM(d18:0/14:1(9Z)(OH))Obesity0.36 (0.32-0.40) umol/mmol creatinineUrine7Markerdb
3388SM(d18:0/22:1(13Z)(OH))Obesity2.2 (2.1-2.3) umol/mmol creatinineUrine7Markerdb
3392Carboxyterminal telopeptide of collagen 1Vertebral Osteoporosis>63 nmol/mmol creatineUrine7Markerdb
\n", + "

1545 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " marker name \\\n", + "0 1-Methylhistidine Obesity \n", + "2 1-Methylhistidine Alzheimer's Disease \n", + "5 1-Methylhistidine Preeclampsia/Eclampsia \n", + "6 1-Methylhistidine Chronic Kidney Disease \n", + "7 1,3-Diaminopropane Leukemia \n", + "... ... ... \n", + "3356 PC(o-18:1(11Z)/18:2(9Z,12Z)) Obesity \n", + "3358 PC(o-18:1(9Z)/18:2(9Z,12Z)) Obesity \n", + "3386 SM(d18:0/14:1(9Z)(OH)) Obesity \n", + "3388 SM(d18:0/22:1(13Z)(OH)) Obesity \n", + "3392 Carboxyterminal telopeptide of collagen 1 Vertebral Osteoporosis \n", + "\n", + " concentration sample source_id source_name \n", + "0 10.9 (0.80-21.0) umol/mmol creatinine Urine 7 Markerdb \n", + "2 15.7 (11.7-19.7) umol/mmol creatinine Urine 7 Markerdb \n", + "5 50.7 uM Blood 7 Markerdb \n", + "6 28.8 (10.6-47.0) uM Blood 7 Markerdb \n", + "7 0.96 (0.12-2.1) umol/mmol creatinine Urine 7 Markerdb \n", + "... ... ... ... ... \n", + "3356 8.4 (5.7-11.1) uM Blood 7 Markerdb \n", + "3358 8.4 (5.7-11.1) uM Blood 7 Markerdb \n", + "3386 0.36 (0.32-0.40) umol/mmol creatinine Urine 7 Markerdb \n", + "3388 2.2 (2.1-2.3) umol/mmol creatinine Urine 7 Markerdb \n", + "3392 >63 nmol/mmol creatine Urine 7 Markerdb \n", + "\n", + "[1545 rows x 6 columns]" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#addition of columns source_id and source_name. This specifies where these disease-marker associations are from\n", + "df2['source_id'] = 7\n", + "df2['source_name'] = \"Markerdb\"\n", + "df2" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['Urine', 'Blood', 'Cerebrospinal_Fluid', 'Cellular_Cytoplasm',\n", + " 'Saliva', 'Feces', 'Sweat'], dtype=object)" + ] + }, + "execution_count": 71, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df2['sample'].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "293" + ] + }, + "execution_count": 72, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df2['name'].nunique()#counting the different diseases Markerdb has associated to diagnostic chemical markers" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Comparison between DISNET and Markerdb in terms of shared diseases among them**" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [], + "source": [ + "import mysql.connector\n", + "import json\n", + "conn_param_file = 'C:/Users/end user/OneDrive/Desktop/UPM Master/CTB TFM/Datasets/DISNET_CONNECTION_correct.json'\n", + "# Setting the connection to DISNET database\n", + "\n", + "# The connection configuration is stored in a JSON file\n", + "with open(conn_param_file, 'r') as f:\n", + " config = json.load(f) # The JSON file is translated to a pyhton dictionary\n", + "\n", + "# Stablishing the connection with the parameters in the dictionary\n", + "cnx = mysql.connector.connect(**config)" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + ":2: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " df3['name'] = df2['name'].str.lower()#the convertion of column 'name' to lower cases is done because\n" + ] + } + ], + "source": [ + "df3 = df2\n", + "df3['name'] = df2['name'].str.lower()#the convertion of column 'name' to lower cases is done because\n", + "#thanks to previous operations, we found that many disease names from \"all_diagnostic_chemical_markers.xlsx\"\n", + "#dataset match with disease names from DISNET when terms from both sides are transformed into lower cases\n", + "#This allows to capture more diseases to integrate them in DISNET's biological layer.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
markernameconcentrationsamplesource_idsource_name
01-Methylhistidineobesity10.9 (0.80-21.0) umol/mmol creatinineUrine7Markerdb
21-Methylhistidinealzheimer's disease15.7 (11.7-19.7) umol/mmol creatinineUrine7Markerdb
51-Methylhistidinepreeclampsia/eclampsia50.7 uMBlood7Markerdb
61-Methylhistidinechronic kidney disease28.8 (10.6-47.0) uMBlood7Markerdb
71,3-Diaminopropaneleukemia0.96 (0.12-2.1) umol/mmol creatinineUrine7Markerdb
.....................
3356PC(o-18:1(11Z)/18:2(9Z,12Z))obesity8.4 (5.7-11.1) uMBlood7Markerdb
3358PC(o-18:1(9Z)/18:2(9Z,12Z))obesity8.4 (5.7-11.1) uMBlood7Markerdb
3386SM(d18:0/14:1(9Z)(OH))obesity0.36 (0.32-0.40) umol/mmol creatinineUrine7Markerdb
3388SM(d18:0/22:1(13Z)(OH))obesity2.2 (2.1-2.3) umol/mmol creatinineUrine7Markerdb
3392Carboxyterminal telopeptide of collagen 1vertebral osteoporosis>63 nmol/mmol creatineUrine7Markerdb
\n", + "

1545 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " marker name \\\n", + "0 1-Methylhistidine obesity \n", + "2 1-Methylhistidine alzheimer's disease \n", + "5 1-Methylhistidine preeclampsia/eclampsia \n", + "6 1-Methylhistidine chronic kidney disease \n", + "7 1,3-Diaminopropane leukemia \n", + "... ... ... \n", + "3356 PC(o-18:1(11Z)/18:2(9Z,12Z)) obesity \n", + "3358 PC(o-18:1(9Z)/18:2(9Z,12Z)) obesity \n", + "3386 SM(d18:0/14:1(9Z)(OH)) obesity \n", + "3388 SM(d18:0/22:1(13Z)(OH)) obesity \n", + "3392 Carboxyterminal telopeptide of collagen 1 vertebral osteoporosis \n", + "\n", + " concentration sample source_id source_name \n", + "0 10.9 (0.80-21.0) umol/mmol creatinine Urine 7 Markerdb \n", + "2 15.7 (11.7-19.7) umol/mmol creatinine Urine 7 Markerdb \n", + "5 50.7 uM Blood 7 Markerdb \n", + "6 28.8 (10.6-47.0) uM Blood 7 Markerdb \n", + "7 0.96 (0.12-2.1) umol/mmol creatinine Urine 7 Markerdb \n", + "... ... ... ... ... \n", + "3356 8.4 (5.7-11.1) uM Blood 7 Markerdb \n", + "3358 8.4 (5.7-11.1) uM Blood 7 Markerdb \n", + "3386 0.36 (0.32-0.40) umol/mmol creatinine Urine 7 Markerdb \n", + "3388 2.2 (2.1-2.3) umol/mmol creatinine Urine 7 Markerdb \n", + "3392 >63 nmol/mmol creatine Urine 7 Markerdb \n", + "\n", + "[1545 rows x 6 columns]" + ] + }, + "execution_count": 75, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df3" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [], + "source": [ + "df3_enf = df3['name']#capturing disease names from all_diagnostic_chemical_markers.xlsx dataset converted into lower cases" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [], + "source": [ + "list_marker = list(df3_enf.drop_duplicates())#list containing all the diseases from 'all_diagnostic_chemical_markers.xlsx' dataset\n", + "#list_marker" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
disease_iddisease_namenamevocab
0C0000735Abdominal NeoplasmsAbdominal NeoplasmsMSH
1C0000737Abdominal PainColicky PainMSH
2C0000744AbetalipoproteinemiaabetalipoproteinemiaDO
3C0000744AbetalipoproteinemiaAbetalipoproteinemiaMSH
4C0000744AbetalipoproteinemiahypolipoproteinemiaDO
...............
22229C4540400SPINOCEREBELLAR ATAXIA 45spinocerebellar ataxia 45DO
22230C4540404SPINOCEREBELLAR ATAXIA 46spinocerebellar ataxia 46DO
22231C4540411EPILEPTIC ENCEPHALOPATHY, EARLY INFANTILE, 57early infantile epileptic encephalopathy 57DO
22232C4540470MENTAL RETARDATION, AUTOSOMAL DOMINANT 50autosomal dominant mental retardation 50DO
22233C4540499COFFIN-SIRIS SYNDROME 6Coffin-Siris syndrome 6DO
\n", + "

22234 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " disease_id disease_name \\\n", + "0 C0000735 Abdominal Neoplasms \n", + "1 C0000737 Abdominal Pain \n", + "2 C0000744 Abetalipoproteinemia \n", + "3 C0000744 Abetalipoproteinemia \n", + "4 C0000744 Abetalipoproteinemia \n", + "... ... ... \n", + "22229 C4540400 SPINOCEREBELLAR ATAXIA 45 \n", + "22230 C4540404 SPINOCEREBELLAR ATAXIA 46 \n", + "22231 C4540411 EPILEPTIC ENCEPHALOPATHY, EARLY INFANTILE, 57 \n", + "22232 C4540470 MENTAL RETARDATION, AUTOSOMAL DOMINANT 50 \n", + "22233 C4540499 COFFIN-SIRIS SYNDROME 6 \n", + "\n", + " name vocab \n", + "0 Abdominal Neoplasms MSH \n", + "1 Colicky Pain MSH \n", + "2 abetalipoproteinemia DO \n", + "3 Abetalipoproteinemia MSH \n", + "4 hypolipoproteinemia DO \n", + "... ... ... \n", + "22229 spinocerebellar ataxia 45 DO \n", + "22230 spinocerebellar ataxia 46 DO \n", + "22231 early infantile epileptic encephalopathy 57 DO \n", + "22232 autosomal dominant mental retardation 50 DO \n", + "22233 Coffin-Siris syndrome 6 DO \n", + "\n", + "[22234 rows x 4 columns]" + ] + }, + "execution_count": 78, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Querying DISNET database to obtain in a dataframe object the CUI codes from the diseases associated to RNAs.\n", + "#Diseases that make up the mentioned associations are in MeSH terminology or in Disease Ontology (DO) terminology.\n", + "\n", + "disnet_cui_name = \"\"\"\n", + " SELECT DISTINCT\n", + " d.disease_id,\n", + " d.disease_name,\n", + " c.name AS name,\n", + " c.vocabulary AS vocab\n", + " FROM\n", + " disnet_biolayer.code c\n", + " INNER JOIN\n", + " disnet_biolayer.has_code hc ON c.code_id = hc.code_id\n", + " AND hc.vocabulary = c.vocabulary\n", + " INNER JOIN\n", + " disnet_biolayer.disease d ON hc.disease_id = d.disease_id\n", + " WHERE\n", + " c.vocabulary = 'DO' OR c.vocabulary = 'MSH';\n", + " \"\"\"\n", + "disnet_cui_name = pd.read_sql_query(disnet_cui_name, con = cnx)\n", + "disnet_cui_name" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [], + "source": [ + "disnet_name = disnet_cui_name['name'].str.lower()#converting into lower cases the disease names in MeSH and DO terminology\n", + "list_disnet1 = list(disnet_name.drop_duplicates())#convert into list 'disnet_name' dataframe " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Detecting diseases from Markerdb that appear in DISNET database**" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": {}, + "outputs": [], + "source": [ + "#list comparison. \n", + "no_disnet = [] #stores the diseases from \"Markerdb\" (stored in list_marker) that DO NOT match with DISNET ones.\n", + "si_disnet = [] #stores the diseases from \"Markerdb\" (stored in list_marker) that DO match with DISNET ones.\n", + "for i in list_marker:\n", + " if i in list_disnet1:\n", + " si_disnet.append(i)\n", + " #continue\n", + " else:\n", + " no_disnet.append(i)\n", + " #no_disnet.append(i)" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "293\n", + "157\n", + "136\n" + ] + } + ], + "source": [ + "print(len(list_marker))\n", + "print(len(no_disnet))\n", + "print(len(si_disnet))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**From 293 different diseases from Markerdb database contained in all_diagnostic_chemical_markers.xlsx dataset, 136 match with diseases from DISNET in MeSH or Disease Ontology (DO) terminology**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Merging Markerdb with DISNET**" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [], + "source": [ + "df_marker_db = df3 #df3 (dataframe containing the information related to markers,\n", + "#disease ids, marker concentrations, samples and source ids is renamed to df_marker_db)" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [], + "source": [ + "disnet_cui_name['name'] = disnet_cui_name['name'].str.lower()#converting into lower cases the disease names from DISNET that are in MeSH and DO\n", + "#In disnet_cui_name dataframe these are stored in column \"name\"" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
markernameconcentrationsamplesource_idsource_namedisease_iddisease_namevocab
01-Methylhistidineobesity10.9 (0.80-21.0) umol/mmol creatinineUrine7MarkerdbC0028754ObesityDO
11-Methylhistidineobesity10.9 (0.80-21.0) umol/mmol creatinineUrine7MarkerdbC0028754ObesityMSH
21-Methylhistidineobesity10.9 (0.80-21.0) umol/mmol creatinineUrine7MarkerdbC0039870ThinnessDO
31-Methylhistidineobesity10.9 (0.80-21.0) umol/mmol creatinineUrine7MarkerdbC0451819Simple obesityDO
4(R)-3-Hydroxybutyric acidobesity235.0 (218.0-252.0) uMBlood7MarkerdbC0028754ObesityDO
..............................
3292Trihexosylceramide (d18:1/26:1(17Z))hypobetalipoproteinemia0.90 (0.90-1.00) uMBlood7MarkerdbC0020597HypobetalipoproteinemiasDO
3293Trihexosylceramide (d18:1/24:0)hypobetalipoproteinemia0.90 (0.90-1.00) uMBlood7MarkerdbC0020597HypobetalipoproteinemiasDO
3294Tetrahexosylceramide (d18:1/12:0)hypobetalipoproteinemia1.00 (1.00-1.1) uMBlood7MarkerdbC0020597HypobetalipoproteinemiasDO
32955-HETErhinitis0.79 (0.73-0.84) uMBlood7MarkerdbC0035455RhinitisDO
32965-HETErhinitis0.79 (0.73-0.84) uMBlood7MarkerdbC0035455RhinitisMSH
\n", + "

3297 rows × 9 columns

\n", + "
" + ], + "text/plain": [ + " marker name \\\n", + "0 1-Methylhistidine obesity \n", + "1 1-Methylhistidine obesity \n", + "2 1-Methylhistidine obesity \n", + "3 1-Methylhistidine obesity \n", + "4 (R)-3-Hydroxybutyric acid obesity \n", + "... ... ... \n", + "3292 Trihexosylceramide (d18:1/26:1(17Z)) hypobetalipoproteinemia \n", + "3293 Trihexosylceramide (d18:1/24:0) hypobetalipoproteinemia \n", + "3294 Tetrahexosylceramide (d18:1/12:0) hypobetalipoproteinemia \n", + "3295 5-HETE rhinitis \n", + "3296 5-HETE rhinitis \n", + "\n", + " concentration sample source_id source_name \\\n", + "0 10.9 (0.80-21.0) umol/mmol creatinine Urine 7 Markerdb \n", + "1 10.9 (0.80-21.0) umol/mmol creatinine Urine 7 Markerdb \n", + "2 10.9 (0.80-21.0) umol/mmol creatinine Urine 7 Markerdb \n", + "3 10.9 (0.80-21.0) umol/mmol creatinine Urine 7 Markerdb \n", + "4 235.0 (218.0-252.0) uM Blood 7 Markerdb \n", + "... ... ... ... ... \n", + "3292 0.90 (0.90-1.00) uM Blood 7 Markerdb \n", + "3293 0.90 (0.90-1.00) uM Blood 7 Markerdb \n", + "3294 1.00 (1.00-1.1) uM Blood 7 Markerdb \n", + "3295 0.79 (0.73-0.84) uM Blood 7 Markerdb \n", + "3296 0.79 (0.73-0.84) uM Blood 7 Markerdb \n", + "\n", + " disease_id disease_name vocab \n", + "0 C0028754 Obesity DO \n", + "1 C0028754 Obesity MSH \n", + "2 C0039870 Thinness DO \n", + "3 C0451819 Simple obesity DO \n", + "4 C0028754 Obesity DO \n", + "... ... ... ... \n", + "3292 C0020597 Hypobetalipoproteinemias DO \n", + "3293 C0020597 Hypobetalipoproteinemias DO \n", + "3294 C0020597 Hypobetalipoproteinemias DO \n", + "3295 C0035455 Rhinitis DO \n", + "3296 C0035455 Rhinitis MSH \n", + "\n", + "[3297 rows x 9 columns]" + ] + }, + "execution_count": 84, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#merging dataframes from Markerdb and Disnet through the field name (disease names in MeSH and DO terminology shared by both information sources)\n", + "markerdb_disnet = pd.merge(df_marker_db, disnet_cui_name, on='name')\n", + "markerdb_disnet" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "341" + ] + }, + "execution_count": 85, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#number of unique diseases\n", + "markerdb_disnet['disease_id'].nunique()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Marker-disease data insertion into DISNET biolayer in my local host" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Connection to my local host and markerdatabase**" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": {}, + "outputs": [], + "source": [ + "#First I will provide my connection details to my local host.\n", + "#In my local host, I have already created the tables (disease_marker for this case) to fill with the information \n", + "#from the associations between chemical diagnostic markers and diseases.\n", + "#Table disease_marker is part of the schema disnet_biolayer_expansion where there is information about RNAs, diseases,\n", + "#disease-RNA associations and more features.\n", + "\n", + "conn_param_file_pablo = 'C:/Users/end user/OneDrive/Desktop/UPM Master/CTB TFM/Datasets/Pablo_Database_connection_disnet_biolayer_2.json'\n", + "# Setting the connection to the database disnet_biolayer\n", + "\n", + "# The connection configuration is stored in a JSON file\n", + "with open(conn_param_file_pablo, 'r') as f:\n", + " config = json.load(f) # The JSON file is translated to a pyhton dictionary\n", + "#print(config)\n", + "# Stablishing the connection with the parameters in the dictionary\n", + "cnx = mysql.connector.connect(**config)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cnx" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['marker', 'name', 'concentration', 'sample', 'source_id', 'source_name',\n", + " 'disease_id', 'disease_name', 'vocab'],\n", + " dtype='object')" + ] + }, + "execution_count": 88, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "markerdb_disnet.columns" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Preparing the data of interest from Markerdb to be inserted in DISNET**" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
markerdisease_idconcentrationsamplesource_id
01-MethylhistidineC002875410.9 (0.80-21.0) umol/mmol creatinineUrine7
21-MethylhistidineC003987010.9 (0.80-21.0) umol/mmol creatinineUrine7
31-MethylhistidineC045181910.9 (0.80-21.0) umol/mmol creatinineUrine7
4(R)-3-Hydroxybutyric acidC0028754235.0 (218.0-252.0) uMBlood7
6(R)-3-Hydroxybutyric acidC0039870235.0 (218.0-252.0) uMBlood7
..................
3291Trihexosylceramide (d18:1/22:0)C00205970.90 (1.00-0.90) uMBlood7
3292Trihexosylceramide (d18:1/26:1(17Z))C00205970.90 (0.90-1.00) uMBlood7
3293Trihexosylceramide (d18:1/24:0)C00205970.90 (0.90-1.00) uMBlood7
3294Tetrahexosylceramide (d18:1/12:0)C00205971.00 (1.00-1.1) uMBlood7
32955-HETEC00354550.79 (0.73-0.84) uMBlood7
\n", + "

2763 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " marker disease_id \\\n", + "0 1-Methylhistidine C0028754 \n", + "2 1-Methylhistidine C0039870 \n", + "3 1-Methylhistidine C0451819 \n", + "4 (R)-3-Hydroxybutyric acid C0028754 \n", + "6 (R)-3-Hydroxybutyric acid C0039870 \n", + "... ... ... \n", + "3291 Trihexosylceramide (d18:1/22:0) C0020597 \n", + "3292 Trihexosylceramide (d18:1/26:1(17Z)) C0020597 \n", + "3293 Trihexosylceramide (d18:1/24:0) C0020597 \n", + "3294 Tetrahexosylceramide (d18:1/12:0) C0020597 \n", + "3295 5-HETE C0035455 \n", + "\n", + " concentration sample source_id \n", + "0 10.9 (0.80-21.0) umol/mmol creatinine Urine 7 \n", + "2 10.9 (0.80-21.0) umol/mmol creatinine Urine 7 \n", + "3 10.9 (0.80-21.0) umol/mmol creatinine Urine 7 \n", + "4 235.0 (218.0-252.0) uM Blood 7 \n", + "6 235.0 (218.0-252.0) uM Blood 7 \n", + "... ... ... ... \n", + "3291 0.90 (1.00-0.90) uM Blood 7 \n", + "3292 0.90 (0.90-1.00) uM Blood 7 \n", + "3293 0.90 (0.90-1.00) uM Blood 7 \n", + "3294 1.00 (1.00-1.1) uM Blood 7 \n", + "3295 0.79 (0.73-0.84) uM Blood 7 \n", + "\n", + "[2763 rows x 5 columns]" + ] + }, + "execution_count": 89, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#disease_marker dataframe will contain the fields present in \"disease_maker\" table\n", + "\n", + "df_disease_marker = markerdb_disnet[['marker', 'disease_id', 'concentration', 'sample', 'source_id']]#\n", + "df_disease_marker = df_disease_marker.drop_duplicates()\n", + "df_disease_marker" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[('1-Methylhistidine',\n", + " 'C0028754',\n", + " '10.9 (0.80-21.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('1-Methylhistidine',\n", + " 'C0039870',\n", + " '10.9 (0.80-21.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('1-Methylhistidine',\n", + " 'C0451819',\n", + " '10.9 (0.80-21.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('(R)-3-Hydroxybutyric acid',\n", + " 'C0028754',\n", + " '235.0 (218.0-252.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('(R)-3-Hydroxybutyric acid',\n", + " 'C0039870',\n", + " '235.0 (218.0-252.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('(R)-3-Hydroxybutyric acid',\n", + " 'C0451819',\n", + " '235.0 (218.0-252.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('L-Carnitine',\n", + " 'C0028754',\n", + " '1.1e+04 (4.3e+03-1.8e+04) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('L-Carnitine',\n", + " 'C0039870',\n", + " '1.1e+04 (4.3e+03-1.8e+04) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('L-Carnitine',\n", + " 'C0451819',\n", + " '1.1e+04 (4.3e+03-1.8e+04) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('L-Threonine', 'C0028754', '73.8 (44.3-103.3) uM', 'Blood', 7),\n", + " ('L-Threonine', 'C0039870', '73.8 (44.3-103.3) uM', 'Blood', 7),\n", + " ('L-Threonine', 'C0451819', '73.8 (44.3-103.3) uM', 'Blood', 7),\n", + " ('Ornithine', 'C0028754', '55.2 (39.8-70.6) uM', 'Blood', 7),\n", + " ('Ornithine', 'C0039870', '55.2 (39.8-70.6) uM', 'Blood', 7),\n", + " ('Ornithine', 'C0451819', '55.2 (39.8-70.6) uM', 'Blood', 7),\n", + " ('L-Hexanoylcarnitine', 'C0028754', '0.051 (0.035-0.067) uM', 'Blood', 7),\n", + " ('L-Hexanoylcarnitine', 'C0039870', '0.051 (0.035-0.067) uM', 'Blood', 7),\n", + " ('L-Hexanoylcarnitine', 'C0451819', '0.051 (0.035-0.067) uM', 'Blood', 7),\n", + " ('L-Octanoylcarnitine',\n", + " 'C0028754',\n", + " '69.6 (67.3-71.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('L-Octanoylcarnitine',\n", + " 'C0039870',\n", + " '69.6 (67.3-71.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('L-Octanoylcarnitine',\n", + " 'C0451819',\n", + " '69.6 (67.3-71.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('L-Octanoylcarnitine', 'C0028754', '0.14 (0.11-0.17) uM', 'Blood', 7),\n", + " ('L-Octanoylcarnitine', 'C0039870', '0.14 (0.11-0.17) uM', 'Blood', 7),\n", + " ('L-Octanoylcarnitine', 'C0451819', '0.14 (0.11-0.17) uM', 'Blood', 7),\n", + " ('Propionylcarnitine',\n", + " 'C0028754',\n", + " '142.2 (128.5-155.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('Propionylcarnitine',\n", + " 'C0039870',\n", + " '142.2 (128.5-155.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('Propionylcarnitine',\n", + " 'C0451819',\n", + " '142.2 (128.5-155.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('Behenic acid',\n", + " 'C0028754',\n", + " '61.7 (59.4-63.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('Behenic acid',\n", + " 'C0039870',\n", + " '61.7 (59.4-63.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('Behenic acid',\n", + " 'C0451819',\n", + " '61.7 (59.4-63.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('Estrone sulfate', 'C0028754', '0.0020 (0.0014-0.0030) uM', 'Blood', 7),\n", + " ('Estrone sulfate', 'C0039870', '0.0020 (0.0014-0.0030) uM', 'Blood', 7),\n", + " ('Estrone sulfate', 'C0451819', '0.0020 (0.0014-0.0030) uM', 'Blood', 7),\n", + " ('Butyrylcarnitine',\n", + " 'C0028754',\n", + " '565.4 (533.0-597.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('Butyrylcarnitine',\n", + " 'C0039870',\n", + " '565.4 (533.0-597.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('Butyrylcarnitine',\n", + " 'C0451819',\n", + " '565.4 (533.0-597.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('Butyrylcarnitine', 'C0028754', '0.069 (0.022-0.12) uM', 'Blood', 7),\n", + " ('Butyrylcarnitine', 'C0039870', '0.069 (0.022-0.12) uM', 'Blood', 7),\n", + " ('Butyrylcarnitine', 'C0451819', '0.069 (0.022-0.12) uM', 'Blood', 7),\n", + " ('cis-5-Tetradecenoylcarnitine',\n", + " 'C0028754',\n", + " '0.12 (0.080-0.16) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('cis-5-Tetradecenoylcarnitine',\n", + " 'C0039870',\n", + " '0.12 (0.080-0.16) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('cis-5-Tetradecenoylcarnitine',\n", + " 'C0451819',\n", + " '0.12 (0.080-0.16) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('Dodecanoylcarnitine', 'C0028754', '0.080 (0.055-0.11) uM', 'Blood', 7),\n", + " ('Dodecanoylcarnitine', 'C0039870', '0.080 (0.055-0.11) uM', 'Blood', 7),\n", + " ('Dodecanoylcarnitine', 'C0451819', '0.080 (0.055-0.11) uM', 'Blood', 7),\n", + " ('Zeaxanthin', 'C0028754', '0.13 (0.016-0.24) uM', 'Blood', 7),\n", + " ('Zeaxanthin', 'C0039870', '0.13 (0.016-0.24) uM', 'Blood', 7),\n", + " ('Zeaxanthin', 'C0451819', '0.13 (0.016-0.24) uM', 'Blood', 7),\n", + " ('Lycopene', 'C0028754', '0.44 (0.024-0.86) uM', 'Blood', 7),\n", + " ('Lycopene', 'C0039870', '0.44 (0.024-0.86) uM', 'Blood', 7),\n", + " ('Lycopene', 'C0451819', '0.44 (0.024-0.86) uM', 'Blood', 7),\n", + " ('Alpha-Carotene', 'C0028754', '0.059 (0.0090-0.11) uM', 'Blood', 7),\n", + " ('Alpha-Carotene', 'C0039870', '0.059 (0.0090-0.11) uM', 'Blood', 7),\n", + " ('Alpha-Carotene', 'C0451819', '0.059 (0.0090-0.11) uM', 'Blood', 7),\n", + " ('Tetradecanoylcarnitine', 'C0028754', '0.043 (0.028-0.058) uM', 'Blood', 7),\n", + " ('Tetradecanoylcarnitine', 'C0039870', '0.043 (0.028-0.058) uM', 'Blood', 7),\n", + " ('Tetradecanoylcarnitine', 'C0451819', '0.043 (0.028-0.058) uM', 'Blood', 7),\n", + " ('PC(14:0/18:1(11Z))', 'C0028754', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(14:0/18:1(11Z))', 'C0039870', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(14:0/18:1(11Z))', 'C0451819', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(14:0/18:1(9Z))', 'C0028754', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(14:0/18:1(9Z))', 'C0039870', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(14:0/18:1(9Z))', 'C0451819', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(14:0/18:2(9Z,12Z))', 'C0028754', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(14:0/18:2(9Z,12Z))', 'C0039870', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(14:0/18:2(9Z,12Z))', 'C0451819', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(14:0/20:1(11Z))',\n", + " 'C0028754',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:0/20:1(11Z))',\n", + " 'C0039870',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:0/20:1(11Z))',\n", + " 'C0451819',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:0/20:2(11Z,14Z))',\n", + " 'C0028754',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:0/20:2(11Z,14Z))',\n", + " 'C0039870',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:0/20:2(11Z,14Z))',\n", + " 'C0451819',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:0/20:4(5Z,8Z,11Z,14Z))',\n", + " 'C0028754',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:0/20:4(5Z,8Z,11Z,14Z))',\n", + " 'C0039870',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:0/20:4(5Z,8Z,11Z,14Z))',\n", + " 'C0451819',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:0/20:4(5Z,8Z,11Z,14Z))', 'C0028754', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(14:0/20:4(5Z,8Z,11Z,14Z))', 'C0039870', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(14:0/20:4(5Z,8Z,11Z,14Z))', 'C0451819', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(14:0/20:4(8Z,11Z,14Z,17Z))',\n", + " 'C0028754',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:0/20:4(8Z,11Z,14Z,17Z))',\n", + " 'C0039870',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:0/20:4(8Z,11Z,14Z,17Z))',\n", + " 'C0451819',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:0/20:4(8Z,11Z,14Z,17Z))',\n", + " 'C0028754',\n", + " '1.4 (0.79-2.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:0/20:4(8Z,11Z,14Z,17Z))',\n", + " 'C0039870',\n", + " '1.4 (0.79-2.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:0/20:4(8Z,11Z,14Z,17Z))',\n", + " 'C0451819',\n", + " '1.4 (0.79-2.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:0/22:0)', 'C0028754', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(14:0/22:0)', 'C0039870', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(14:0/22:0)', 'C0451819', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(14:0/22:1(13Z))',\n", + " 'C0028754',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:0/22:1(13Z))',\n", + " 'C0039870',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:0/22:1(13Z))',\n", + " 'C0451819',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:0/22:5(4Z,7Z,10Z,13Z,16Z))',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:0/22:5(4Z,7Z,10Z,13Z,16Z))',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:0/22:5(4Z,7Z,10Z,13Z,16Z))',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:0/22:5(7Z,10Z,13Z,16Z,19Z))',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:0/22:5(7Z,10Z,13Z,16Z,19Z))',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:0/22:5(7Z,10Z,13Z,16Z,19Z))',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:0/22:6(4Z,7Z,10Z,13Z,16Z,19Z))',\n", + " 'C0028754',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:0/22:6(4Z,7Z,10Z,13Z,16Z,19Z))',\n", + " 'C0039870',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:0/22:6(4Z,7Z,10Z,13Z,16Z,19Z))',\n", + " 'C0451819',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:0/P-18:1(11Z))', 'C0028754', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(14:0/P-18:1(11Z))', 'C0039870', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(14:0/P-18:1(11Z))', 'C0451819', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(14:0/P-18:1(9Z))', 'C0028754', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(14:0/P-18:1(9Z))', 'C0039870', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(14:0/P-18:1(9Z))', 'C0451819', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(14:1(9Z)/14:0)',\n", + " 'C0028754',\n", + " '1.9 (1.8-2.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:1(9Z)/14:0)',\n", + " 'C0039870',\n", + " '1.9 (1.8-2.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:1(9Z)/14:0)',\n", + " 'C0451819',\n", + " '1.9 (1.8-2.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:1(9Z)/16:1(9Z))',\n", + " 'C0028754',\n", + " '0.070 (0.060-0.080) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:1(9Z)/16:1(9Z))',\n", + " 'C0039870',\n", + " '0.070 (0.060-0.080) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:1(9Z)/16:1(9Z))',\n", + " 'C0451819',\n", + " '0.070 (0.060-0.080) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:1(9Z)/18:0)', 'C0028754', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(14:1(9Z)/18:0)', 'C0039870', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(14:1(9Z)/18:0)', 'C0451819', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(14:1(9Z)/18:1(11Z))', 'C0028754', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(14:1(9Z)/18:1(11Z))', 'C0039870', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(14:1(9Z)/18:1(11Z))', 'C0451819', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(14:1(9Z)/18:1(9Z))', 'C0028754', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(14:1(9Z)/18:1(9Z))', 'C0039870', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(14:1(9Z)/18:1(9Z))', 'C0451819', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(14:1(9Z)/20:0)',\n", + " 'C0028754',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:1(9Z)/20:0)',\n", + " 'C0039870',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:1(9Z)/20:0)',\n", + " 'C0451819',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:1(9Z)/20:1(11Z))',\n", + " 'C0028754',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:1(9Z)/20:1(11Z))',\n", + " 'C0039870',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:1(9Z)/20:1(11Z))',\n", + " 'C0451819',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:1(9Z)/20:3(5Z,8Z,11Z))',\n", + " 'C0028754',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:1(9Z)/20:3(5Z,8Z,11Z))',\n", + " 'C0039870',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:1(9Z)/20:3(5Z,8Z,11Z))',\n", + " 'C0451819',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:1(9Z)/20:3(5Z,8Z,11Z))', 'C0028754', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(14:1(9Z)/20:3(5Z,8Z,11Z))', 'C0039870', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(14:1(9Z)/20:3(5Z,8Z,11Z))', 'C0451819', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(14:1(9Z)/20:3(8Z,11Z,14Z))',\n", + " 'C0028754',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:1(9Z)/20:3(8Z,11Z,14Z))',\n", + " 'C0039870',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:1(9Z)/20:3(8Z,11Z,14Z))',\n", + " 'C0451819',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:1(9Z)/20:3(8Z,11Z,14Z))',\n", + " 'C0028754',\n", + " '1.4 (0.79-2.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:1(9Z)/20:3(8Z,11Z,14Z))',\n", + " 'C0039870',\n", + " '1.4 (0.79-2.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:1(9Z)/20:3(8Z,11Z,14Z))',\n", + " 'C0451819',\n", + " '1.4 (0.79-2.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:1(9Z)/22:0)',\n", + " 'C0028754',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:1(9Z)/22:0)',\n", + " 'C0039870',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:1(9Z)/22:0)',\n", + " 'C0451819',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(14:1(9Z)/22:4(7Z,10Z,13Z,16Z))',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:1(9Z)/22:4(7Z,10Z,13Z,16Z))',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:1(9Z)/22:4(7Z,10Z,13Z,16Z))',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:1(9Z)/22:5(4Z,7Z,10Z,13Z,16Z))',\n", + " 'C0028754',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:1(9Z)/22:5(4Z,7Z,10Z,13Z,16Z))',\n", + " 'C0039870',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:1(9Z)/22:5(4Z,7Z,10Z,13Z,16Z))',\n", + " 'C0451819',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:1(9Z)/22:5(7Z,10Z,13Z,16Z,19Z))',\n", + " 'C0028754',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:1(9Z)/22:5(7Z,10Z,13Z,16Z,19Z))',\n", + " 'C0039870',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:1(9Z)/22:5(7Z,10Z,13Z,16Z,19Z))',\n", + " 'C0451819',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(14:1(9Z)/P-18:0)', 'C0028754', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(14:1(9Z)/P-18:0)', 'C0039870', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(14:1(9Z)/P-18:0)', 'C0451819', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(14:1(9Z)/P-18:1(11Z))', 'C0028754', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(14:1(9Z)/P-18:1(11Z))', 'C0039870', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(14:1(9Z)/P-18:1(11Z))', 'C0451819', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(14:1(9Z)/P-18:1(9Z))', 'C0028754', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(14:1(9Z)/P-18:1(9Z))', 'C0039870', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(14:1(9Z)/P-18:1(9Z))', 'C0451819', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(16:0/16:1(9Z))', 'C0028754', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(16:0/16:1(9Z))', 'C0039870', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(16:0/16:1(9Z))', 'C0451819', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(16:0/18:1(11Z))',\n", + " 'C0028754',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/18:1(11Z))',\n", + " 'C0039870',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/18:1(11Z))',\n", + " 'C0451819',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/18:1(9Z))',\n", + " 'C0028754',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/18:1(9Z))',\n", + " 'C0039870',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/18:1(9Z))',\n", + " 'C0451819',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/18:2(9Z,12Z))',\n", + " 'C0028754',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/18:2(9Z,12Z))',\n", + " 'C0039870',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/18:2(9Z,12Z))',\n", + " 'C0451819',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/18:4(6Z,9Z,12Z,15Z))',\n", + " 'C0028754',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/18:4(6Z,9Z,12Z,15Z))',\n", + " 'C0039870',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/18:4(6Z,9Z,12Z,15Z))',\n", + " 'C0451819',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/18:4(6Z,9Z,12Z,15Z))', 'C0028754', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(16:0/18:4(6Z,9Z,12Z,15Z))', 'C0039870', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(16:0/18:4(6Z,9Z,12Z,15Z))', 'C0451819', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(16:0/20:0)', 'C0028754', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(16:0/20:0)', 'C0039870', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(16:0/20:0)', 'C0451819', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(16:0/20:1(11Z))',\n", + " 'C0028754',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/20:1(11Z))',\n", + " 'C0039870',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/20:1(11Z))',\n", + " 'C0451819',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/20:5(5Z,8Z,11Z,14Z,17Z))',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(16:0/20:5(5Z,8Z,11Z,14Z,17Z))',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(16:0/20:5(5Z,8Z,11Z,14Z,17Z))',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(16:0/22:6(4Z,7Z,10Z,13Z,16Z,19Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/22:6(4Z,7Z,10Z,13Z,16Z,19Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/22:6(4Z,7Z,10Z,13Z,16Z,19Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/P-18:1(11Z))',\n", + " 'C0028754',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/P-18:1(11Z))',\n", + " 'C0039870',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/P-18:1(11Z))',\n", + " 'C0451819',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/P-18:1(9Z))',\n", + " 'C0028754',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/P-18:1(9Z))',\n", + " 'C0039870',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:0/P-18:1(9Z))',\n", + " 'C0451819',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/14:1(9Z))',\n", + " 'C0028754',\n", + " '0.070 (0.060-0.080) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/14:1(9Z))',\n", + " 'C0039870',\n", + " '0.070 (0.060-0.080) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/14:1(9Z))',\n", + " 'C0451819',\n", + " '0.070 (0.060-0.080) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/16:0)', 'C0028754', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(16:1(9Z)/16:0)', 'C0039870', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(16:1(9Z)/16:0)', 'C0451819', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(16:1(9Z)/16:1(9Z))', 'C0028754', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(16:1(9Z)/16:1(9Z))', 'C0039870', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(16:1(9Z)/16:1(9Z))', 'C0451819', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(16:1(9Z)/18:0)',\n", + " 'C0028754',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/18:0)',\n", + " 'C0039870',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/18:0)',\n", + " 'C0451819',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/18:1(11Z))',\n", + " 'C0028754',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/18:1(11Z))',\n", + " 'C0039870',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/18:1(11Z))',\n", + " 'C0451819',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/18:1(9Z))',\n", + " 'C0028754',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/18:1(9Z))',\n", + " 'C0039870',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/18:1(9Z))',\n", + " 'C0451819',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/18:3(6Z,9Z,12Z))',\n", + " 'C0028754',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/18:3(6Z,9Z,12Z))',\n", + " 'C0039870',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/18:3(6Z,9Z,12Z))',\n", + " 'C0451819',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/18:3(6Z,9Z,12Z))', 'C0028754', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(16:1(9Z)/18:3(6Z,9Z,12Z))', 'C0039870', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(16:1(9Z)/18:3(6Z,9Z,12Z))', 'C0451819', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(16:1(9Z)/18:3(9Z,12Z,15Z))',\n", + " 'C0028754',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/18:3(9Z,12Z,15Z))',\n", + " 'C0039870',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/18:3(9Z,12Z,15Z))',\n", + " 'C0451819',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/18:3(9Z,12Z,15Z))',\n", + " 'C0028754',\n", + " '1.4 (0.79-2.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(16:1(9Z)/18:3(9Z,12Z,15Z))',\n", + " 'C0039870',\n", + " '1.4 (0.79-2.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(16:1(9Z)/18:3(9Z,12Z,15Z))',\n", + " 'C0451819',\n", + " '1.4 (0.79-2.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(16:1(9Z)/20:0)',\n", + " 'C0028754',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/20:0)',\n", + " 'C0039870',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/20:0)',\n", + " 'C0451819',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/20:4(5Z,8Z,11Z,14Z))',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(16:1(9Z)/20:4(5Z,8Z,11Z,14Z))',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(16:1(9Z)/20:4(5Z,8Z,11Z,14Z))',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(16:1(9Z)/20:4(8Z,11Z,14Z,17Z))',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(16:1(9Z)/20:4(8Z,11Z,14Z,17Z))',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(16:1(9Z)/20:4(8Z,11Z,14Z,17Z))',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(16:1(9Z)/20:5(5Z,8Z,11Z,14Z,17Z))',\n", + " 'C0028754',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(16:1(9Z)/20:5(5Z,8Z,11Z,14Z,17Z))',\n", + " 'C0039870',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(16:1(9Z)/20:5(5Z,8Z,11Z,14Z,17Z))',\n", + " 'C0451819',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(16:1(9Z)/22:2(13Z,16Z))', 'C0028754', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(16:1(9Z)/22:2(13Z,16Z))', 'C0039870', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(16:1(9Z)/22:2(13Z,16Z))', 'C0451819', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(16:1(9Z)/22:5(4Z,7Z,10Z,13Z,16Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/22:5(4Z,7Z,10Z,13Z,16Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/22:5(4Z,7Z,10Z,13Z,16Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/22:5(7Z,10Z,13Z,16Z,19Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/22:5(7Z,10Z,13Z,16Z,19Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/22:5(7Z,10Z,13Z,16Z,19Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/P-16:0)', 'C0028754', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(16:1(9Z)/P-16:0)', 'C0039870', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(16:1(9Z)/P-16:0)', 'C0451819', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(16:1(9Z)/P-18:0)',\n", + " 'C0028754',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/P-18:0)',\n", + " 'C0039870',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/P-18:0)',\n", + " 'C0451819',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/P-18:1(11Z))',\n", + " 'C0028754',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/P-18:1(11Z))',\n", + " 'C0039870',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/P-18:1(11Z))',\n", + " 'C0451819',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/P-18:1(9Z))',\n", + " 'C0028754',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/P-18:1(9Z))',\n", + " 'C0039870',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(16:1(9Z)/P-18:1(9Z))',\n", + " 'C0451819',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:0/14:1(9Z))', 'C0028754', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(18:0/14:1(9Z))', 'C0039870', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(18:0/14:1(9Z))', 'C0451819', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(18:0/16:1(9Z))',\n", + " 'C0028754',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:0/16:1(9Z))',\n", + " 'C0039870',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:0/16:1(9Z))',\n", + " 'C0451819',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:0/18:0)', 'C0028754', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(18:0/18:0)', 'C0039870', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(18:0/18:0)', 'C0451819', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(18:0/18:1(11Z))',\n", + " 'C0028754',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:0/18:1(11Z))',\n", + " 'C0039870',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:0/18:1(11Z))',\n", + " 'C0451819',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:0/18:1(9Z))',\n", + " 'C0028754',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:0/18:1(9Z))',\n", + " 'C0039870',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:0/18:1(9Z))',\n", + " 'C0451819',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:0/20:3(5Z,8Z,11Z))', 'C0028754', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(18:0/20:3(5Z,8Z,11Z))', 'C0039870', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(18:0/20:3(5Z,8Z,11Z))', 'C0451819', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(18:0/20:3(8Z,11Z,14Z))', 'C0028754', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(18:0/20:3(8Z,11Z,14Z))', 'C0039870', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(18:0/20:3(8Z,11Z,14Z))', 'C0451819', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(18:0/P-18:0)', 'C0028754', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(18:0/P-18:0)', 'C0039870', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(18:0/P-18:0)', 'C0451819', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(18:0/P-18:1(11Z))',\n", + " 'C0028754',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:0/P-18:1(11Z))',\n", + " 'C0039870',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:0/P-18:1(11Z))',\n", + " 'C0451819',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:0/P-18:1(9Z))',\n", + " 'C0028754',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:0/P-18:1(9Z))',\n", + " 'C0039870',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:0/P-18:1(9Z))',\n", + " 'C0451819',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(11Z)/14:0)', 'C0028754', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(18:1(11Z)/14:0)', 'C0039870', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(18:1(11Z)/14:0)', 'C0451819', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(18:1(11Z)/14:1(9Z))', 'C0028754', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(18:1(11Z)/14:1(9Z))', 'C0039870', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(18:1(11Z)/14:1(9Z))', 'C0451819', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(18:1(11Z)/16:0)',\n", + " 'C0028754',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(11Z)/16:0)',\n", + " 'C0039870',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(11Z)/16:0)',\n", + " 'C0451819',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(11Z)/16:1(9Z))',\n", + " 'C0028754',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(11Z)/16:1(9Z))',\n", + " 'C0039870',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(11Z)/16:1(9Z))',\n", + " 'C0451819',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(11Z)/18:0)',\n", + " 'C0028754',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(11Z)/18:0)',\n", + " 'C0039870',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(11Z)/18:0)',\n", + " 'C0451819',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(11Z)/18:4(6Z,9Z,12Z,15Z))',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:1(11Z)/18:4(6Z,9Z,12Z,15Z))',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:1(11Z)/18:4(6Z,9Z,12Z,15Z))',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:1(11Z)/20:2(11Z,14Z))',\n", + " 'C0028754',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:1(11Z)/20:2(11Z,14Z))',\n", + " 'C0039870',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:1(11Z)/20:2(11Z,14Z))',\n", + " 'C0451819',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:1(11Z)/20:5(5Z,8Z,11Z,14Z,17Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(11Z)/20:5(5Z,8Z,11Z,14Z,17Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(11Z)/20:5(5Z,8Z,11Z,14Z,17Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(11Z)/P-16:0)',\n", + " 'C0028754',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(11Z)/P-16:0)',\n", + " 'C0039870',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(11Z)/P-16:0)',\n", + " 'C0451819',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(11Z)/P-18:0)',\n", + " 'C0028754',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(11Z)/P-18:0)',\n", + " 'C0039870',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(11Z)/P-18:0)',\n", + " 'C0451819',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(9Z)/14:0)', 'C0028754', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(18:1(9Z)/14:0)', 'C0039870', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(18:1(9Z)/14:0)', 'C0451819', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(18:1(9Z)/14:1(9Z))', 'C0028754', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(18:1(9Z)/14:1(9Z))', 'C0039870', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(18:1(9Z)/14:1(9Z))', 'C0451819', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(18:1(9Z)/16:0)',\n", + " 'C0028754',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(9Z)/16:0)',\n", + " 'C0039870',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(9Z)/16:0)',\n", + " 'C0451819',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(9Z)/16:1(9Z))',\n", + " 'C0028754',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(9Z)/16:1(9Z))',\n", + " 'C0039870',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(9Z)/16:1(9Z))',\n", + " 'C0451819',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(9Z)/18:0)',\n", + " 'C0028754',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(9Z)/18:0)',\n", + " 'C0039870',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(9Z)/18:0)',\n", + " 'C0451819',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(9Z)/18:4(6Z,9Z,12Z,15Z))',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:1(9Z)/18:4(6Z,9Z,12Z,15Z))',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:1(9Z)/18:4(6Z,9Z,12Z,15Z))',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:1(9Z)/20:2(11Z,14Z))', 'C0028754', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(18:1(9Z)/20:2(11Z,14Z))', 'C0039870', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(18:1(9Z)/20:2(11Z,14Z))', 'C0451819', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(18:1(9Z)/20:5(5Z,8Z,11Z,14Z,17Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(9Z)/20:5(5Z,8Z,11Z,14Z,17Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(9Z)/20:5(5Z,8Z,11Z,14Z,17Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(9Z)/P-16:0)',\n", + " 'C0028754',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(9Z)/P-16:0)',\n", + " 'C0039870',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(9Z)/P-16:0)',\n", + " 'C0451819',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(9Z)/P-18:0)',\n", + " 'C0028754',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(9Z)/P-18:0)',\n", + " 'C0039870',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:1(9Z)/P-18:0)',\n", + " 'C0451819',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:2(9Z,12Z)/14:0)', 'C0028754', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(18:2(9Z,12Z)/14:0)', 'C0039870', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(18:2(9Z,12Z)/14:0)', 'C0451819', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(18:2(9Z,12Z)/16:0)',\n", + " 'C0028754',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:2(9Z,12Z)/16:0)',\n", + " 'C0039870',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:2(9Z,12Z)/16:0)',\n", + " 'C0451819',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:2(9Z,12Z)/18:3(6Z,9Z,12Z))',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:2(9Z,12Z)/18:3(6Z,9Z,12Z))',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:2(9Z,12Z)/18:3(6Z,9Z,12Z))',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:2(9Z,12Z)/18:3(9Z,12Z,15Z))',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:2(9Z,12Z)/18:3(9Z,12Z,15Z))',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:2(9Z,12Z)/18:3(9Z,12Z,15Z))',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:2(9Z,12Z)/18:4(6Z,9Z,12Z,15Z))',\n", + " 'C0028754',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:2(9Z,12Z)/18:4(6Z,9Z,12Z,15Z))',\n", + " 'C0039870',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:2(9Z,12Z)/18:4(6Z,9Z,12Z,15Z))',\n", + " 'C0451819',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:2(9Z,12Z)/20:1(11Z))', 'C0028754', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(18:2(9Z,12Z)/20:1(11Z))', 'C0039870', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(18:2(9Z,12Z)/20:1(11Z))', 'C0451819', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(18:2(9Z,12Z)/20:4(5Z,8Z,11Z,14Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:2(9Z,12Z)/20:4(5Z,8Z,11Z,14Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:2(9Z,12Z)/20:4(5Z,8Z,11Z,14Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:2(9Z,12Z)/20:4(8Z,11Z,14Z,17Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:2(9Z,12Z)/20:4(8Z,11Z,14Z,17Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:2(9Z,12Z)/20:4(8Z,11Z,14Z,17Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:2(9Z,12Z)/P-16:0)',\n", + " 'C0028754',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:2(9Z,12Z)/P-16:0)',\n", + " 'C0039870',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:2(9Z,12Z)/P-16:0)',\n", + " 'C0451819',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/16:1(9Z))',\n", + " 'C0028754',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/16:1(9Z))',\n", + " 'C0039870',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/16:1(9Z))',\n", + " 'C0451819',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/16:1(9Z))', 'C0028754', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/16:1(9Z))', 'C0039870', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/16:1(9Z))', 'C0451819', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/18:2(9Z,12Z))',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/18:2(9Z,12Z))',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/18:2(9Z,12Z))',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/18:3(6Z,9Z,12Z))',\n", + " 'C0028754',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/18:3(6Z,9Z,12Z))',\n", + " 'C0039870',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/18:3(6Z,9Z,12Z))',\n", + " 'C0451819',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/18:3(9Z,12Z,15Z))',\n", + " 'C0028754',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/18:3(9Z,12Z,15Z))',\n", + " 'C0039870',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/18:3(9Z,12Z,15Z))',\n", + " 'C0451819',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/20:0)', 'C0028754', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/20:0)', 'C0039870', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/20:0)', 'C0451819', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/20:3(5Z,8Z,11Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/20:3(5Z,8Z,11Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/20:3(5Z,8Z,11Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/20:3(8Z,11Z,14Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/20:3(8Z,11Z,14Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:3(6Z,9Z,12Z)/20:3(8Z,11Z,14Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/16:1(9Z))',\n", + " 'C0028754',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/16:1(9Z))',\n", + " 'C0039870',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/16:1(9Z))',\n", + " 'C0451819',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/16:1(9Z))',\n", + " 'C0028754',\n", + " '1.4 (0.79-2.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/16:1(9Z))',\n", + " 'C0039870',\n", + " '1.4 (0.79-2.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/16:1(9Z))',\n", + " 'C0451819',\n", + " '1.4 (0.79-2.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/18:2(9Z,12Z))',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/18:2(9Z,12Z))',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/18:2(9Z,12Z))',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/18:3(6Z,9Z,12Z))',\n", + " 'C0028754',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/18:3(6Z,9Z,12Z))',\n", + " 'C0039870',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/18:3(6Z,9Z,12Z))',\n", + " 'C0451819',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/18:3(9Z,12Z,15Z))',\n", + " 'C0028754',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/18:3(9Z,12Z,15Z))',\n", + " 'C0039870',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/18:3(9Z,12Z,15Z))',\n", + " 'C0451819',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/20:0)', 'C0028754', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/20:0)', 'C0039870', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/20:0)', 'C0451819', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/20:3(5Z,8Z,11Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/20:3(5Z,8Z,11Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/20:3(5Z,8Z,11Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/20:3(8Z,11Z,14Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/20:3(8Z,11Z,14Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:3(9Z,12Z,15Z)/20:3(8Z,11Z,14Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/16:0)',\n", + " 'C0028754',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/16:0)',\n", + " 'C0039870',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/16:0)',\n", + " 'C0451819',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/16:0)', 'C0028754', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/16:0)', 'C0039870', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/16:0)', 'C0451819', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/18:1(11Z))',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/18:1(11Z))',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/18:1(11Z))',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/18:1(9Z))',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/18:1(9Z))',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/18:1(9Z))',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/18:2(9Z,12Z))',\n", + " 'C0028754',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/18:2(9Z,12Z))',\n", + " 'C0039870',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/18:2(9Z,12Z))',\n", + " 'C0451819',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/20:2(11Z,14Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/20:2(11Z,14Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/20:2(11Z,14Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/P-16:0)',\n", + " 'C0028754',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/P-16:0)',\n", + " 'C0039870',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/P-16:0)',\n", + " 'C0451819',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/P-16:0)',\n", + " 'C0028754',\n", + " '1.4 (0.79-2.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/P-16:0)',\n", + " 'C0039870',\n", + " '1.4 (0.79-2.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/P-16:0)',\n", + " 'C0451819',\n", + " '1.4 (0.79-2.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/P-18:1(11Z))',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/P-18:1(11Z))',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/P-18:1(11Z))',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/P-18:1(9Z))',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/P-18:1(9Z))',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(18:4(6Z,9Z,12Z,15Z)/P-18:1(9Z))',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:0/14:1(9Z))',\n", + " 'C0028754',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:0/14:1(9Z))',\n", + " 'C0039870',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:0/14:1(9Z))',\n", + " 'C0451819',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:0/16:0)', 'C0028754', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(20:0/16:0)', 'C0039870', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(20:0/16:0)', 'C0451819', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(20:0/16:1(9Z))',\n", + " 'C0028754',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:0/16:1(9Z))',\n", + " 'C0039870',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:0/16:1(9Z))',\n", + " 'C0451819',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:0/18:3(6Z,9Z,12Z))', 'C0028754', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(20:0/18:3(6Z,9Z,12Z))', 'C0039870', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(20:0/18:3(6Z,9Z,12Z))', 'C0451819', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(20:0/18:3(9Z,12Z,15Z))', 'C0028754', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(20:0/18:3(9Z,12Z,15Z))', 'C0039870', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(20:0/18:3(9Z,12Z,15Z))', 'C0451819', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(20:0/P-16:0)', 'C0028754', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(20:0/P-16:0)', 'C0039870', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(20:0/P-16:0)', 'C0451819', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(20:1(11Z)/14:0)',\n", + " 'C0028754',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:1(11Z)/14:0)',\n", + " 'C0039870',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:1(11Z)/14:0)',\n", + " 'C0451819',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:1(11Z)/14:1(9Z))',\n", + " 'C0028754',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:1(11Z)/14:1(9Z))',\n", + " 'C0039870',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:1(11Z)/14:1(9Z))',\n", + " 'C0451819',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:1(11Z)/16:0)',\n", + " 'C0028754',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:1(11Z)/16:0)',\n", + " 'C0039870',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:1(11Z)/16:0)',\n", + " 'C0451819',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:1(11Z)/18:2(9Z,12Z))', 'C0028754', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(20:1(11Z)/18:2(9Z,12Z))', 'C0039870', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(20:1(11Z)/18:2(9Z,12Z))', 'C0451819', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(20:1(11Z)/P-16:0)',\n", + " 'C0028754',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:1(11Z)/P-16:0)',\n", + " 'C0039870',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:1(11Z)/P-16:0)',\n", + " 'C0451819',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:2(11Z,14Z)/14:0)',\n", + " 'C0028754',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:2(11Z,14Z)/14:0)',\n", + " 'C0039870',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:2(11Z,14Z)/14:0)',\n", + " 'C0451819',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:2(11Z,14Z)/18:1(11Z))',\n", + " 'C0028754',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:2(11Z,14Z)/18:1(11Z))',\n", + " 'C0039870',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:2(11Z,14Z)/18:1(11Z))',\n", + " 'C0451819',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:2(11Z,14Z)/18:1(9Z))', 'C0028754', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(20:2(11Z,14Z)/18:1(9Z))', 'C0039870', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(20:2(11Z,14Z)/18:1(9Z))', 'C0451819', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(20:2(11Z,14Z)/18:4(6Z,9Z,12Z,15Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:2(11Z,14Z)/18:4(6Z,9Z,12Z,15Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:2(11Z,14Z)/18:4(6Z,9Z,12Z,15Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:2(11Z,14Z)/P-18:1(11Z))',\n", + " 'C0028754',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:2(11Z,14Z)/P-18:1(11Z))',\n", + " 'C0039870',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:2(11Z,14Z)/P-18:1(11Z))',\n", + " 'C0451819',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:2(11Z,14Z)/P-18:1(9Z))',\n", + " 'C0028754',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:2(11Z,14Z)/P-18:1(9Z))',\n", + " 'C0039870',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:2(11Z,14Z)/P-18:1(9Z))',\n", + " 'C0451819',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:3(5Z,8Z,11Z)/14:1(9Z))',\n", + " 'C0028754',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:3(5Z,8Z,11Z)/14:1(9Z))',\n", + " 'C0039870',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:3(5Z,8Z,11Z)/14:1(9Z))',\n", + " 'C0451819',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:3(5Z,8Z,11Z)/14:1(9Z))', 'C0028754', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(20:3(5Z,8Z,11Z)/14:1(9Z))', 'C0039870', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(20:3(5Z,8Z,11Z)/14:1(9Z))', 'C0451819', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(20:3(5Z,8Z,11Z)/18:0)', 'C0028754', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(20:3(5Z,8Z,11Z)/18:0)', 'C0039870', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(20:3(5Z,8Z,11Z)/18:0)', 'C0451819', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(20:3(5Z,8Z,11Z)/18:3(6Z,9Z,12Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:3(5Z,8Z,11Z)/18:3(6Z,9Z,12Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:3(5Z,8Z,11Z)/18:3(6Z,9Z,12Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:3(5Z,8Z,11Z)/18:3(9Z,12Z,15Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:3(5Z,8Z,11Z)/18:3(9Z,12Z,15Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:3(5Z,8Z,11Z)/18:3(9Z,12Z,15Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:3(5Z,8Z,11Z)/P-18:0)', 'C0028754', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(20:3(5Z,8Z,11Z)/P-18:0)', 'C0039870', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(20:3(5Z,8Z,11Z)/P-18:0)', 'C0451819', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(20:3(8Z,11Z,14Z)/14:1(9Z))',\n", + " 'C0028754',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:3(8Z,11Z,14Z)/14:1(9Z))',\n", + " 'C0039870',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:3(8Z,11Z,14Z)/14:1(9Z))',\n", + " 'C0451819',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:3(8Z,11Z,14Z)/14:1(9Z))',\n", + " 'C0028754',\n", + " '1.4 (0.79-2.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:3(8Z,11Z,14Z)/14:1(9Z))',\n", + " 'C0039870',\n", + " '1.4 (0.79-2.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:3(8Z,11Z,14Z)/14:1(9Z))',\n", + " 'C0451819',\n", + " '1.4 (0.79-2.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:3(8Z,11Z,14Z)/18:0)', 'C0028754', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(20:3(8Z,11Z,14Z)/18:0)', 'C0039870', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(20:3(8Z,11Z,14Z)/18:0)', 'C0451819', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(20:3(8Z,11Z,14Z)/18:3(6Z,9Z,12Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:3(8Z,11Z,14Z)/18:3(6Z,9Z,12Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:3(8Z,11Z,14Z)/18:3(6Z,9Z,12Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:3(8Z,11Z,14Z)/18:3(9Z,12Z,15Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:3(8Z,11Z,14Z)/18:3(9Z,12Z,15Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:3(8Z,11Z,14Z)/18:3(9Z,12Z,15Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:3(8Z,11Z,14Z)/P-18:0)',\n", + " 'C0028754',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:3(8Z,11Z,14Z)/P-18:0)',\n", + " 'C0039870',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:3(8Z,11Z,14Z)/P-18:0)',\n", + " 'C0451819',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:4(5Z,8Z,11Z,14Z)/14:0)',\n", + " 'C0028754',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:4(5Z,8Z,11Z,14Z)/14:0)',\n", + " 'C0039870',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:4(5Z,8Z,11Z,14Z)/14:0)',\n", + " 'C0451819',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:4(5Z,8Z,11Z,14Z)/14:0)', 'C0028754', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(20:4(5Z,8Z,11Z,14Z)/14:0)', 'C0039870', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(20:4(5Z,8Z,11Z,14Z)/14:0)', 'C0451819', '1.4 (0.79-2.0) uM', 'Blood', 7),\n", + " ('PC(20:4(5Z,8Z,11Z,14Z)/16:1(9Z))',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:4(5Z,8Z,11Z,14Z)/16:1(9Z))',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:4(5Z,8Z,11Z,14Z)/16:1(9Z))',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:4(5Z,8Z,11Z,14Z)/18:2(9Z,12Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:4(5Z,8Z,11Z,14Z)/18:2(9Z,12Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:4(5Z,8Z,11Z,14Z)/18:2(9Z,12Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:4(8Z,11Z,14Z,17Z)/14:0)',\n", + " 'C0028754',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:4(8Z,11Z,14Z,17Z)/14:0)',\n", + " 'C0039870',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:4(8Z,11Z,14Z,17Z)/14:0)',\n", + " 'C0451819',\n", + " '0.34 (0.32-0.36) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:4(8Z,11Z,14Z,17Z)/14:0)',\n", + " 'C0028754',\n", + " '1.4 (0.79-2.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:4(8Z,11Z,14Z,17Z)/14:0)',\n", + " 'C0039870',\n", + " '1.4 (0.79-2.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:4(8Z,11Z,14Z,17Z)/14:0)',\n", + " 'C0451819',\n", + " '1.4 (0.79-2.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:4(8Z,11Z,14Z,17Z)/16:1(9Z))',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:4(8Z,11Z,14Z,17Z)/16:1(9Z))',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:4(8Z,11Z,14Z,17Z)/16:1(9Z))',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:4(8Z,11Z,14Z,17Z)/18:2(9Z,12Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:4(8Z,11Z,14Z,17Z)/18:2(9Z,12Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:4(8Z,11Z,14Z,17Z)/18:2(9Z,12Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:5(5Z,8Z,11Z,14Z,17Z)/16:0)',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:5(5Z,8Z,11Z,14Z,17Z)/16:0)',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:5(5Z,8Z,11Z,14Z,17Z)/16:0)',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:5(5Z,8Z,11Z,14Z,17Z)/16:1(9Z))',\n", + " 'C0028754',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:5(5Z,8Z,11Z,14Z,17Z)/16:1(9Z))',\n", + " 'C0039870',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:5(5Z,8Z,11Z,14Z,17Z)/16:1(9Z))',\n", + " 'C0451819',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:5(5Z,8Z,11Z,14Z,17Z)/18:1(11Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:5(5Z,8Z,11Z,14Z,17Z)/18:1(11Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:5(5Z,8Z,11Z,14Z,17Z)/18:1(11Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:5(5Z,8Z,11Z,14Z,17Z)/18:1(9Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:5(5Z,8Z,11Z,14Z,17Z)/18:1(9Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:5(5Z,8Z,11Z,14Z,17Z)/18:1(9Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:5(5Z,8Z,11Z,14Z,17Z)/P-16:0)',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:5(5Z,8Z,11Z,14Z,17Z)/P-16:0)',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:5(5Z,8Z,11Z,14Z,17Z)/P-16:0)',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(20:5(5Z,8Z,11Z,14Z,17Z)/P-18:1(11Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:5(5Z,8Z,11Z,14Z,17Z)/P-18:1(11Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:5(5Z,8Z,11Z,14Z,17Z)/P-18:1(11Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:5(5Z,8Z,11Z,14Z,17Z)/P-18:1(9Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:5(5Z,8Z,11Z,14Z,17Z)/P-18:1(9Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(20:5(5Z,8Z,11Z,14Z,17Z)/P-18:1(9Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(22:0/14:0)', 'C0028754', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(22:0/14:0)', 'C0039870', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(22:0/14:0)', 'C0451819', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(22:0/14:1(9Z))',\n", + " 'C0028754',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(22:0/14:1(9Z))',\n", + " 'C0039870',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(22:0/14:1(9Z))',\n", + " 'C0451819',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(22:1(13Z)/14:0)',\n", + " 'C0028754',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(22:1(13Z)/14:0)',\n", + " 'C0039870',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(22:1(13Z)/14:0)',\n", + " 'C0451819',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(22:2(13Z,16Z)/16:1(9Z))', 'C0028754', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(22:2(13Z,16Z)/16:1(9Z))', 'C0039870', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(22:2(13Z,16Z)/16:1(9Z))', 'C0451819', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(22:4(7Z,10Z,13Z,16Z)/14:1(9Z))',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(22:4(7Z,10Z,13Z,16Z)/14:1(9Z))',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(22:4(7Z,10Z,13Z,16Z)/14:1(9Z))',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(22:5(4Z,7Z,10Z,13Z,16Z)/14:0)',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(22:5(4Z,7Z,10Z,13Z,16Z)/14:0)',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(22:5(4Z,7Z,10Z,13Z,16Z)/14:0)',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(22:5(4Z,7Z,10Z,13Z,16Z)/14:1(9Z))',\n", + " 'C0028754',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(22:5(4Z,7Z,10Z,13Z,16Z)/14:1(9Z))',\n", + " 'C0039870',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(22:5(4Z,7Z,10Z,13Z,16Z)/14:1(9Z))',\n", + " 'C0451819',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(22:5(4Z,7Z,10Z,13Z,16Z)/16:1(9Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(22:5(4Z,7Z,10Z,13Z,16Z)/16:1(9Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(22:5(4Z,7Z,10Z,13Z,16Z)/16:1(9Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(22:5(7Z,10Z,13Z,16Z,19Z)/14:0)',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(22:5(7Z,10Z,13Z,16Z,19Z)/14:0)',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(22:5(7Z,10Z,13Z,16Z,19Z)/14:0)',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(22:5(7Z,10Z,13Z,16Z,19Z)/14:1(9Z))',\n", + " 'C0028754',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(22:5(7Z,10Z,13Z,16Z,19Z)/14:1(9Z))',\n", + " 'C0039870',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(22:5(7Z,10Z,13Z,16Z,19Z)/14:1(9Z))',\n", + " 'C0451819',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(22:5(7Z,10Z,13Z,16Z,19Z)/16:1(9Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(22:5(7Z,10Z,13Z,16Z,19Z)/16:1(9Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(22:5(7Z,10Z,13Z,16Z,19Z)/16:1(9Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(22:6(4Z,7Z,10Z,13Z,16Z,19Z)/14:0)',\n", + " 'C0028754',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(22:6(4Z,7Z,10Z,13Z,16Z,19Z)/14:0)',\n", + " 'C0039870',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(22:6(4Z,7Z,10Z,13Z,16Z,19Z)/14:0)',\n", + " 'C0451819',\n", + " '0.72 (0.44-1.0) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(22:6(4Z,7Z,10Z,13Z,16Z,19Z)/16:0)',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(22:6(4Z,7Z,10Z,13Z,16Z,19Z)/16:0)',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(22:6(4Z,7Z,10Z,13Z,16Z,19Z)/16:0)',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(22:6(4Z,7Z,10Z,13Z,16Z,19Z)/P-16:0)',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(22:6(4Z,7Z,10Z,13Z,16Z,19Z)/P-16:0)',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(22:6(4Z,7Z,10Z,13Z,16Z,19Z)/P-16:0)',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('SM(d18:1/16:0)',\n", + " 'C0028754',\n", + " '6.9 (6.5-7.4) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('SM(d18:1/16:0)',\n", + " 'C0039870',\n", + " '6.9 (6.5-7.4) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('SM(d18:1/16:0)',\n", + " 'C0451819',\n", + " '6.9 (6.5-7.4) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('LysoPC(18:0)',\n", + " 'C0028754',\n", + " '6.1 (5.7-6.4) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('LysoPC(18:0)',\n", + " 'C0039870',\n", + " '6.1 (5.7-6.4) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('LysoPC(18:0)',\n", + " 'C0451819',\n", + " '6.1 (5.7-6.4) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-16:0/16:1(9Z))', 'C0028754', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(P-16:0/16:1(9Z))', 'C0039870', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(P-16:0/16:1(9Z))', 'C0451819', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(P-16:0/18:1(11Z))',\n", + " 'C0028754',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-16:0/18:1(11Z))',\n", + " 'C0039870',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-16:0/18:1(11Z))',\n", + " 'C0451819',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-16:0/18:1(9Z))',\n", + " 'C0028754',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-16:0/18:1(9Z))',\n", + " 'C0039870',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-16:0/18:1(9Z))',\n", + " 'C0451819',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-16:0/18:2(9Z,12Z))',\n", + " 'C0028754',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-16:0/18:2(9Z,12Z))',\n", + " 'C0039870',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-16:0/18:2(9Z,12Z))',\n", + " 'C0451819',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-16:0/20:0)', 'C0028754', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(P-16:0/20:0)', 'C0039870', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(P-16:0/20:0)', 'C0451819', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(P-16:0/20:1(11Z))',\n", + " 'C0028754',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-16:0/20:1(11Z))',\n", + " 'C0039870',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-16:0/20:1(11Z))',\n", + " 'C0451819',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-16:0/22:6(4Z,7Z,10Z,13Z,16Z,19Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-16:0/22:6(4Z,7Z,10Z,13Z,16Z,19Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-16:0/22:6(4Z,7Z,10Z,13Z,16Z,19Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:0/14:1(9Z))', 'C0028754', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(P-18:0/14:1(9Z))', 'C0039870', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(P-18:0/14:1(9Z))', 'C0451819', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(P-18:0/16:1(9Z))',\n", + " 'C0028754',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:0/16:1(9Z))',\n", + " 'C0039870',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:0/16:1(9Z))',\n", + " 'C0451819',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:0/18:0)', 'C0028754', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(P-18:0/18:0)', 'C0039870', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(P-18:0/18:0)', 'C0451819', '2.2 (1.4-3.0) uM', 'Blood', 7),\n", + " ('PC(P-18:0/18:1(11Z))',\n", + " 'C0028754',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:0/18:1(11Z))',\n", + " 'C0039870',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:0/18:1(11Z))',\n", + " 'C0451819',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:0/18:1(9Z))',\n", + " 'C0028754',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:0/18:1(9Z))',\n", + " 'C0039870',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:0/18:1(9Z))',\n", + " 'C0451819',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:0/20:3(5Z,8Z,11Z))', 'C0028754', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(P-18:0/20:3(5Z,8Z,11Z))', 'C0039870', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(P-18:0/20:3(5Z,8Z,11Z))', 'C0451819', '56.1 (36.4-75.8) uM', 'Blood', 7),\n", + " ('PC(P-18:0/20:3(8Z,11Z,14Z))',\n", + " 'C0028754',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(P-18:0/20:3(8Z,11Z,14Z))',\n", + " 'C0039870',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(P-18:0/20:3(8Z,11Z,14Z))',\n", + " 'C0451819',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(P-18:1(11Z)/14:0)', 'C0028754', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(P-18:1(11Z)/14:0)', 'C0039870', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(P-18:1(11Z)/14:0)', 'C0451819', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(P-18:1(11Z)/14:1(9Z))', 'C0028754', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(P-18:1(11Z)/14:1(9Z))', 'C0039870', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(P-18:1(11Z)/14:1(9Z))', 'C0451819', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(P-18:1(11Z)/16:0)',\n", + " 'C0028754',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(11Z)/16:0)',\n", + " 'C0039870',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(11Z)/16:0)',\n", + " 'C0451819',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(11Z)/16:1(9Z))',\n", + " 'C0028754',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(11Z)/16:1(9Z))',\n", + " 'C0039870',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(11Z)/16:1(9Z))',\n", + " 'C0451819',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(11Z)/18:0)',\n", + " 'C0028754',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(11Z)/18:0)',\n", + " 'C0039870',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(11Z)/18:0)',\n", + " 'C0451819',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(11Z)/18:4(6Z,9Z,12Z,15Z))',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(P-18:1(11Z)/18:4(6Z,9Z,12Z,15Z))',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(P-18:1(11Z)/18:4(6Z,9Z,12Z,15Z))',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(P-18:1(11Z)/20:2(11Z,14Z))',\n", + " 'C0028754',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(P-18:1(11Z)/20:2(11Z,14Z))',\n", + " 'C0039870',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(P-18:1(11Z)/20:2(11Z,14Z))',\n", + " 'C0451819',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(P-18:1(11Z)/20:5(5Z,8Z,11Z,14Z,17Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(11Z)/20:5(5Z,8Z,11Z,14Z,17Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(11Z)/20:5(5Z,8Z,11Z,14Z,17Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(9Z)/14:0)', 'C0028754', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(P-18:1(9Z)/14:0)', 'C0039870', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(P-18:1(9Z)/14:0)', 'C0451819', '18.3 (10.7-25.9) uM', 'Blood', 7),\n", + " ('PC(P-18:1(9Z)/14:1(9Z))', 'C0028754', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(P-18:1(9Z)/14:1(9Z))', 'C0039870', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(P-18:1(9Z)/14:1(9Z))', 'C0451819', '4.0 (2.4-5.6) uM', 'Blood', 7),\n", + " ('PC(P-18:1(9Z)/16:0)',\n", + " 'C0028754',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(9Z)/16:0)',\n", + " 'C0039870',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(9Z)/16:0)',\n", + " 'C0451819',\n", + " '2.9 (2.7-3.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(9Z)/16:1(9Z))',\n", + " 'C0028754',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(9Z)/16:1(9Z))',\n", + " 'C0039870',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(9Z)/16:1(9Z))',\n", + " 'C0451819',\n", + " '2.6 (2.3-2.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(9Z)/18:0)',\n", + " 'C0028754',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(9Z)/18:0)',\n", + " 'C0039870',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(9Z)/18:0)',\n", + " 'C0451819',\n", + " '1.8 (1.6-1.9) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(9Z)/18:4(6Z,9Z,12Z,15Z))',\n", + " 'C0028754',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(P-18:1(9Z)/18:4(6Z,9Z,12Z,15Z))',\n", + " 'C0039870',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(P-18:1(9Z)/18:4(6Z,9Z,12Z,15Z))',\n", + " 'C0451819',\n", + " '13.5 (7.4-19.6) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(P-18:1(9Z)/20:2(11Z,14Z))',\n", + " 'C0028754',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(P-18:1(9Z)/20:2(11Z,14Z))',\n", + " 'C0039870',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(P-18:1(9Z)/20:2(11Z,14Z))',\n", + " 'C0451819',\n", + " '56.1 (36.4-75.8) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(P-18:1(9Z)/20:5(5Z,8Z,11Z,14Z,17Z))',\n", + " 'C0028754',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(9Z)/20:5(5Z,8Z,11Z,14Z,17Z))',\n", + " 'C0039870',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(P-18:1(9Z)/20:5(5Z,8Z,11Z,14Z,17Z))',\n", + " 'C0451819',\n", + " '0.78 (0.70-0.86) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('4-Hydroxybenzaldehyde',\n", + " 'C0028754',\n", + " '6.7 (5.4-8.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('4-Hydroxybenzaldehyde',\n", + " 'C0039870',\n", + " '6.7 (5.4-8.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('4-Hydroxybenzaldehyde',\n", + " 'C0451819',\n", + " '6.7 (5.4-8.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('SM(d18:1/24:1(15Z))',\n", + " 'C0028754',\n", + " '3.1 (2.9-3.3) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('SM(d18:1/24:1(15Z))',\n", + " 'C0039870',\n", + " '3.1 (2.9-3.3) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('SM(d18:1/24:1(15Z))',\n", + " 'C0451819',\n", + " '3.1 (2.9-3.3) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('Hydroxypropionylcarnitine',\n", + " 'C0028754',\n", + " '2.4 (2.3-2.6) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('Hydroxypropionylcarnitine',\n", + " 'C0039870',\n", + " '2.4 (2.3-2.6) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('Hydroxypropionylcarnitine',\n", + " 'C0451819',\n", + " '2.4 (2.3-2.6) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('Valerylcarnitine', 'C0028754', '0.089 (0.048-0.13) uM', 'Blood', 7),\n", + " ('Valerylcarnitine', 'C0039870', '0.089 (0.048-0.13) uM', 'Blood', 7),\n", + " ('Valerylcarnitine', 'C0451819', '0.089 (0.048-0.13) uM', 'Blood', 7),\n", + " ('Hydroxyvalerylcarnitine', 'C0028754', '0.023 (0.016-0.030) uM', 'Blood', 7),\n", + " ('Hydroxyvalerylcarnitine', 'C0039870', '0.023 (0.016-0.030) uM', 'Blood', 7),\n", + " ('Hydroxyvalerylcarnitine', 'C0451819', '0.023 (0.016-0.030) uM', 'Blood', 7),\n", + " ('trans-2-Dodecenoylcarnitine',\n", + " 'C0028754',\n", + " '0.16 (0.11-0.21000000000000002) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('trans-2-Dodecenoylcarnitine',\n", + " 'C0039870',\n", + " '0.16 (0.11-0.21000000000000002) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('trans-2-Dodecenoylcarnitine',\n", + " 'C0451819',\n", + " '0.16 (0.11-0.21000000000000002) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('PC(o-16:0/22:6(4Z,7Z,10Z,13Z,16Z,19Z))',\n", + " 'C0028754',\n", + " '1.6 (1.6-1.7) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(o-16:0/22:6(4Z,7Z,10Z,13Z,16Z,19Z))',\n", + " 'C0039870',\n", + " '1.6 (1.6-1.7) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(o-16:0/22:6(4Z,7Z,10Z,13Z,16Z,19Z))',\n", + " 'C0451819',\n", + " '1.6 (1.6-1.7) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('PC(o-18:1(11Z)/18:2(9Z,12Z))', 'C0028754', '8.4 (5.7-11.1) uM', 'Blood', 7),\n", + " ('PC(o-18:1(11Z)/18:2(9Z,12Z))', 'C0039870', '8.4 (5.7-11.1) uM', 'Blood', 7),\n", + " ('PC(o-18:1(11Z)/18:2(9Z,12Z))', 'C0451819', '8.4 (5.7-11.1) uM', 'Blood', 7),\n", + " ('PC(o-18:1(9Z)/18:2(9Z,12Z))', 'C0028754', '8.4 (5.7-11.1) uM', 'Blood', 7),\n", + " ('PC(o-18:1(9Z)/18:2(9Z,12Z))', 'C0039870', '8.4 (5.7-11.1) uM', 'Blood', 7),\n", + " ('PC(o-18:1(9Z)/18:2(9Z,12Z))', 'C0451819', '8.4 (5.7-11.1) uM', 'Blood', 7),\n", + " ('SM(d18:0/14:1(9Z)(OH))',\n", + " 'C0028754',\n", + " '0.36 (0.32-0.40) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('SM(d18:0/14:1(9Z)(OH))',\n", + " 'C0039870',\n", + " '0.36 (0.32-0.40) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('SM(d18:0/14:1(9Z)(OH))',\n", + " 'C0451819',\n", + " '0.36 (0.32-0.40) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('SM(d18:0/22:1(13Z)(OH))',\n", + " 'C0028754',\n", + " '2.2 (2.1-2.3) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('SM(d18:0/22:1(13Z)(OH))',\n", + " 'C0039870',\n", + " '2.2 (2.1-2.3) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('SM(d18:0/22:1(13Z)(OH))',\n", + " 'C0451819',\n", + " '2.2 (2.1-2.3) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('1-Methylhistidine',\n", + " 'C0002395',\n", + " '15.7 (11.7-19.7) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('1-Methylhistidine',\n", + " 'C0154671',\n", + " '15.7 (11.7-19.7) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('Carnosine', 'C0002395', '18.8 (8.5-29.1) umol/mmol creatinine', 'Urine', 7),\n", + " ('Carnosine', 'C0154671', '18.8 (8.5-29.1) umol/mmol creatinine', 'Urine', 7),\n", + " ('Beta-Alanine', 'C0002395', '2.8 (1.4-4.3) uM', 'Saliva', 7),\n", + " ('Beta-Alanine', 'C0154671', '2.8 (1.4-4.3) uM', 'Saliva', 7),\n", + " ('cis-Aconitic acid', 'C0002395', '2.8 (0.69-4.9) uM', 'Saliva', 7),\n", + " ('cis-Aconitic acid', 'C0154671', '2.8 (0.69-4.9) uM', 'Saliva', 7),\n", + " ('Dopamine', 'C0002395', '18.0 (15.6-20.5) uM', 'Blood', 7),\n", + " ('Dopamine', 'C0154671', '18.0 (15.6-20.5) uM', 'Blood', 7),\n", + " ('Glycerophosphocholine',\n", + " 'C0002395',\n", + " '6.9 (3.7-10.1) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('Glycerophosphocholine',\n", + " 'C0154671',\n", + " '6.9 (3.7-10.1) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('Cytidine', 'C0002395', '0.39 (0.090-0.69) uM', 'Saliva', 7),\n", + " ('Cytidine', 'C0154671', '0.39 (0.090-0.69) uM', 'Saliva', 7),\n", + " ('Choline', 'C0002395', '2.5 (1.5-3.5) uM', 'Cerebrospinal_Fluid', 7),\n", + " ('Choline', 'C0154671', '2.5 (1.5-3.5) uM', 'Cerebrospinal_Fluid', 7),\n", + " ('L-Cystathionine',\n", + " 'C0002395',\n", + " '1.7 (1.2-2.2) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('L-Cystathionine',\n", + " 'C0154671',\n", + " '1.7 (1.2-2.2) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('L-Cystathionine', 'C0002395', '1.0 (0.81-1.3) uM', 'Blood', 7),\n", + " ('L-Cystathionine', 'C0154671', '1.0 (0.81-1.3) uM', 'Blood', 7),\n", + " ('Gamma-Aminobutyric acid', 'C0002395', '1.8 (1.6-2.1) uM', 'Blood', 7),\n", + " ('Gamma-Aminobutyric acid', 'C0154671', '1.8 (1.6-2.1) uM', 'Blood', 7),\n", + " ('Glycine',\n", + " 'C0002395',\n", + " '0.0100 (0.0090-0.011) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('Glycine',\n", + " 'C0154671',\n", + " '0.0100 (0.0090-0.011) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('Glycine', 'C0002395', '164.2 (109.6-218.9) uM', 'Saliva', 7),\n", + " ('Glycine', 'C0154671', '164.2 (109.6-218.9) uM', 'Saliva', 7),\n", + " ('Glycine', 'C0002395', '0.28 (0.16-0.40) uM', 'Cerebrospinal_Fluid', 7),\n", + " ('Glycine', 'C0154671', '0.28 (0.16-0.40) uM', 'Cerebrospinal_Fluid', 7),\n", + " ('Glycine', 'C0002395', '0.15 (0.14-0.17) uM', 'Blood', 7),\n", + " ('Glycine', 'C0154671', '0.15 (0.14-0.17) uM', 'Blood', 7),\n", + " ('Glycerol 3-phosphate', 'C0002395', '14.8 (3.4-26.2) uM', 'Saliva', 7),\n", + " ('Glycerol 3-phosphate', 'C0154671', '14.8 (3.4-26.2) uM', 'Saliva', 7),\n", + " ('Guanine', 'C0002395', '1.4 (1.2-1.5) uM', 'Saliva', 7),\n", + " ('Guanine', 'C0154671', '1.4 (1.2-1.5) uM', 'Saliva', 7),\n", + " ('Fumaric acid', 'C0002395', '11.0 (2.0-20.0) uM', 'Cerebrospinal_Fluid', 7),\n", + " ('Fumaric acid', 'C0154671', '11.0 (2.0-20.0) uM', 'Cerebrospinal_Fluid', 7),\n", + " ('L-Malic acid', 'C0002395', '22.3 (7.6-36.9) uM', 'Saliva', 7),\n", + " ('L-Malic acid', 'C0154671', '22.3 (7.6-36.9) uM', 'Saliva', 7),\n", + " ('Hypoxanthine', 'C0002395', '2.6 (1.5-3.7) uM', 'Saliva', 7),\n", + " ('Hypoxanthine', 'C0154671', '2.6 (1.5-3.7) uM', 'Saliva', 7),\n", + " ('L-Tyrosine', 'C0002395', '27.2 (22.4-32.0) uM', 'Cerebrospinal_Fluid', 7),\n", + " ('L-Tyrosine', 'C0154671', '27.2 (22.4-32.0) uM', 'Cerebrospinal_Fluid', 7),\n", + " ('L-Tyrosine', 'C0002395', '143.8 (128.3-159.3) uM', 'Blood', 7),\n", + " ('L-Tyrosine', 'C0154671', '143.8 (128.3-159.3) uM', 'Blood', 7),\n", + " ('L-Phenylalanine',\n", + " 'C0002395',\n", + " '1.4 (1.2-1.6) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('L-Phenylalanine',\n", + " 'C0154671',\n", + " '1.4 (1.2-1.6) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('L-Phenylalanine', 'C0002395', '6.0 (5.9-6.1) uM', 'Saliva', 7),\n", + " ('L-Phenylalanine', 'C0154671', '6.0 (5.9-6.1) uM', 'Saliva', 7),\n", + " ('L-Alanine', 'C0002395', '40.5 (26.7-54.3) uM', 'Saliva', 7),\n", + " ('L-Alanine', 'C0154671', '40.5 (26.7-54.3) uM', 'Saliva', 7),\n", + " ('L-Threonine',\n", + " 'C0002395',\n", + " '0.030 (0.027-0.033) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('L-Threonine',\n", + " 'C0154671',\n", + " '0.030 (0.027-0.033) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('L-Isoleucine',\n", + " 'C0002395',\n", + " '0.13 (0.090-0.17) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('L-Isoleucine',\n", + " 'C0154671',\n", + " '0.13 (0.090-0.17) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('L-Isoleucine', 'C0002395', '1.5e+03 (1.1e+03-1.9e+03) uM', 'Blood', 7),\n", + " ('L-Isoleucine', 'C0154671', '1.5e+03 (1.1e+03-1.9e+03) uM', 'Blood', 7),\n", + " ('L-Histidine',\n", + " 'C0002395',\n", + " '30.5 (26.2-34.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('L-Histidine',\n", + " 'C0154671',\n", + " '30.5 (26.2-34.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('L-Histidine', 'C0002395', '17.0 (9.5-24.4) uM', 'Saliva', 7),\n", + " ('L-Histidine', 'C0154671', '17.0 (9.5-24.4) uM', 'Saliva', 7),\n", + " ('L-Histidine', 'C0002395', '116.7 (98.5-134.8) uM', 'Blood', 7),\n", + " ('L-Histidine', 'C0154671', '116.7 (98.5-134.8) uM', 'Blood', 7),\n", + " ('L-Dopa', 'C0002395', '14.0 (11.5-16.5) uM', 'Blood', 7),\n", + " ('L-Dopa', 'C0154671', '14.0 (11.5-16.5) uM', 'Blood', 7),\n", + " ('L-Lysine', 'C0002395', '5.5 (3.8-7.2) umol/mmol creatinine', 'Urine', 7),\n", + " ('L-Lysine', 'C0154671', '5.5 (3.8-7.2) umol/mmol creatinine', 'Urine', 7),\n", + " ('L-Lysine', 'C0002395', '44.6 (33.8-55.4) uM', 'Cerebrospinal_Fluid', 7),\n", + " ('L-Lysine', 'C0154671', '44.6 (33.8-55.4) uM', 'Cerebrospinal_Fluid', 7),\n", + " ('L-Lysine', 'C0002395', '216.7 (162.2-271.2) uM', 'Blood', 7),\n", + " ('L-Lysine', 'C0154671', '216.7 (162.2-271.2) uM', 'Blood', 7),\n", + " ('L-Serine', 'C0002395', '26.0 (20.6-31.4) uM', 'Saliva', 7),\n", + " ('L-Serine', 'C0154671', '26.0 (20.6-31.4) uM', 'Saliva', 7),\n", + " ('L-Serine', 'C0002395', '0.21 (0.19-0.23) uM', 'Blood', 7),\n", + " ('L-Serine', 'C0154671', '0.21 (0.19-0.23) uM', 'Blood', 7),\n", + " ('L-Lactic acid',\n", + " 'C0002395',\n", + " '4.6e+03 (1.7e+03-7.5e+03) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('L-Lactic acid',\n", + " 'C0154671',\n", + " '4.6e+03 (1.7e+03-7.5e+03) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('L-Cystine',\n", + " 'C0002395',\n", + " '72.0 (60.0-84.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('L-Cystine',\n", + " 'C0154671',\n", + " '72.0 (60.0-84.0) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('L-Cystine', 'C0002395', '209.0 (163.0-255.0) uM', 'Blood', 7),\n", + " ('L-Cystine', 'C0154671', '209.0 (163.0-255.0) uM', 'Blood', 7),\n", + " ('Isocitric acid', 'C0002395', '3.8 (0.86-6.6) uM', 'Saliva', 7),\n", + " ('Isocitric acid', 'C0154671', '3.8 (0.86-6.6) uM', 'Saliva', 7),\n", + " ('Anserine', 'C0002395', '8.0 (3.0-13.0) umol/mmol creatinine', 'Urine', 7),\n", + " ('Anserine', 'C0154671', '8.0 (3.0-13.0) umol/mmol creatinine', 'Urine', 7),\n", + " ('Anserine', 'C0002395', '0.46 (0.24-0.67) uM', 'Blood', 7),\n", + " ('Anserine', 'C0154671', '0.46 (0.24-0.67) uM', 'Blood', 7),\n", + " ('Ornithine', 'C0002395', '12.3 (7.3-17.4) umol/mmol creatinine', 'Urine', 7),\n", + " ('Ornithine', 'C0154671', '12.3 (7.3-17.4) umol/mmol creatinine', 'Urine', 7),\n", + " ('Ornithine', 'C0002395', '28.3 (18.5-38.0) uM', 'Saliva', 7),\n", + " ('Ornithine', 'C0154671', '28.3 (18.5-38.0) uM', 'Saliva', 7),\n", + " ('Succinic acid',\n", + " 'C0002395',\n", + " '55.0 (19.0-91.0) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('Succinic acid',\n", + " 'C0154671',\n", + " '55.0 (19.0-91.0) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " (\"Uridine 5'-monophosphate\", 'C0002395', '1.2 (0.65-1.8) uM', 'Saliva', 7),\n", + " (\"Uridine 5'-monophosphate\", 'C0154671', '1.2 (0.65-1.8) uM', 'Saliva', 7),\n", + " ('5-Hydroxylysine', 'C0002395', '0.50 (0.47-0.53) uM', 'Blood', 7),\n", + " ('5-Hydroxylysine', 'C0154671', '0.50 (0.47-0.53) uM', 'Blood', 7),\n", + " ('3-Methylhistidine', 'C0002395', '5.2 (3.9-6.4) uM', 'Blood', 7),\n", + " ('3-Methylhistidine', 'C0154671', '5.2 (3.9-6.4) uM', 'Blood', 7),\n", + " ('L-Arginine', 'C0002395', '6.0 (4.6-7.4) uM', 'Cerebrospinal_Fluid', 7),\n", + " ('L-Arginine', 'C0154671', '6.0 (4.6-7.4) uM', 'Cerebrospinal_Fluid', 7),\n", + " ('L-Arginine', 'C0002395', '91.3 (78.2-104.4) uM', 'Blood', 7),\n", + " ('L-Arginine', 'C0154671', '91.3 (78.2-104.4) uM', 'Blood', 7),\n", + " ('D-Ribulose 5-phosphate', 'C0002395', '3.4 (1.6-5.2) uM', 'Saliva', 7),\n", + " ('D-Ribulose 5-phosphate', 'C0154671', '3.4 (1.6-5.2) uM', 'Saliva', 7),\n", + " ('L-Glutamine',\n", + " 'C0002395',\n", + " '1.2 (0.68-1.7) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('L-Glutamine',\n", + " 'C0154671',\n", + " '1.2 (0.68-1.7) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('L-Glutamine', 'C0002395', '228.3 (216.3-240.3) uM', 'Blood', 7),\n", + " ('L-Glutamine', 'C0154671', '228.3 (216.3-240.3) uM', 'Blood', 7),\n", + " ('L-Leucine', 'C0002395', '0.91 (0.80-1.0) umol/mmol creatinine', 'Urine', 7),\n", + " ('L-Leucine', 'C0154671', '0.91 (0.80-1.0) umol/mmol creatinine', 'Urine', 7),\n", + " ('Iron', 'C0002395', '2.5 (0.70-4.3) uM', 'Cerebrospinal_Fluid', 7),\n", + " ('Iron', 'C0154671', '2.5 (0.70-4.3) uM', 'Cerebrospinal_Fluid', 7),\n", + " ('Glycylproline',\n", + " 'C0002395',\n", + " '0.0087 (0.0071-0.010) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('Glycylproline',\n", + " 'C0154671',\n", + " '0.0087 (0.0071-0.010) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('Hydroxyproline',\n", + " 'C0002395',\n", + " '0.21 (0.19-0.23) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('Hydroxyproline',\n", + " 'C0154671',\n", + " '0.21 (0.19-0.23) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('Hydroxyproline', 'C0002395', '5.6 (4.9-6.3) uM', 'Blood', 7),\n", + " ('Hydroxyproline', 'C0154671', '5.6 (4.9-6.3) uM', 'Blood', 7),\n", + " ('Homocysteine',\n", + " 'C0002395',\n", + " '0.22 (0.094-0.34) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('Homocysteine',\n", + " 'C0154671',\n", + " '0.22 (0.094-0.34) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('L-Valine', 'C0002395', '0.73 (0.61-0.85) umol/mmol creatinine', 'Urine', 7),\n", + " ('L-Valine', 'C0154671', '0.73 (0.61-0.85) umol/mmol creatinine', 'Urine', 7),\n", + " ('L-Valine', 'C0002395', '4.1 (2.9-5.3) uM', 'Cerebrospinal_Fluid', 7),\n", + " ('L-Valine', 'C0154671', '4.1 (2.9-5.3) uM', 'Cerebrospinal_Fluid', 7),\n", + " ('L-Valine', 'C0002395', '58.3 (43.5-73.0) uM', 'Blood', 7),\n", + " ('L-Valine', 'C0154671', '58.3 (43.5-73.0) uM', 'Blood', 7),\n", + " ('Acetylcholine',\n", + " 'C0002395',\n", + " '0.0100 (0.0050-0.015) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('Acetylcholine',\n", + " 'C0154671',\n", + " '0.0100 (0.0050-0.015) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('Citrulline',\n", + " 'C0002395',\n", + " '21.0 (18.2-23.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('Citrulline',\n", + " 'C0154671',\n", + " '21.0 (18.2-23.8) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('Citrulline', 'C0002395', '27.0 (24.4-29.6) uM', 'Cerebrospinal_Fluid', 7),\n", + " ('Citrulline', 'C0154671', '27.0 (24.4-29.6) uM', 'Cerebrospinal_Fluid', 7),\n", + " ('Citrulline', 'C0002395', '95.0 (83.8-106.2) uM', 'Blood', 7),\n", + " ('Citrulline', 'C0154671', '95.0 (83.8-106.2) uM', 'Blood', 7),\n", + " ('L-Tryptophan',\n", + " 'C0002395',\n", + " '1.2 (0.96-1.4) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('L-Tryptophan',\n", + " 'C0154671',\n", + " '1.2 (0.96-1.4) umol/mmol creatinine',\n", + " 'Urine',\n", + " 7),\n", + " ('S-Adenosylhomocysteine',\n", + " 'C0002395',\n", + " '0.027 (0.021-0.033) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('S-Adenosylhomocysteine',\n", + " 'C0154671',\n", + " '0.027 (0.021-0.033) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('DHEA sulfate', 'C0002395', '6.5 (4.0-9.1) uM', 'Blood', 7),\n", + " ('DHEA sulfate', 'C0154671', '6.5 (4.0-9.1) uM', 'Blood', 7),\n", + " ('Manganese', 'C0002395', '0.011 (0.011-0.011) uM', 'Blood', 7),\n", + " ('Manganese', 'C0154671', '0.011 (0.011-0.011) uM', 'Blood', 7),\n", + " ('24-Hydroxycholesterol',\n", + " 'C0002395',\n", + " '0.0061 (0.0058-0.0064) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('24-Hydroxycholesterol',\n", + " 'C0154671',\n", + " '0.0061 (0.0058-0.0064) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('Phosphorylcholine',\n", + " 'C0002395',\n", + " '2.2 (1.3-3.0) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('Phosphorylcholine',\n", + " 'C0154671',\n", + " '2.2 (1.3-3.0) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('Substance P',\n", + " 'C0002395',\n", + " '2.8e-05 (2.6e-05-3.0e-05) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('Substance P',\n", + " 'C0154671',\n", + " '2.8e-05 (2.6e-05-3.0e-05) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('Tungsten', 'C0002395', '0.00016 (5.0e-05-0.00027) uM', 'Blood', 7),\n", + " ('Tungsten', 'C0154671', '0.00016 (5.0e-05-0.00027) uM', 'Blood', 7),\n", + " ('8-Hydroxyguanine',\n", + " 'C0002395',\n", + " '0.19 (0.15-0.23) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('8-Hydroxyguanine',\n", + " 'C0154671',\n", + " '0.19 (0.15-0.23) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('8-Hydroxyguanosine',\n", + " 'C0002395',\n", + " '0.00050 (0.00029-0.00071) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('8-Hydroxyguanosine',\n", + " 'C0154671',\n", + " '0.00050 (0.00029-0.00071) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('27-Hydroxycholesterol',\n", + " 'C0002395',\n", + " '0.0038 (0.0035-0.0041) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('27-Hydroxycholesterol',\n", + " 'C0154671',\n", + " '0.0038 (0.0035-0.0041) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('Oxidized glutathione', 'C0002395', '0.39 (0.21-0.57) uM', 'Saliva', 7),\n", + " ('Oxidized glutathione', 'C0154671', '0.39 (0.21-0.57) uM', 'Saliva', 7),\n", + " ('Mercury', 'C0002395', '0.0088 (0.0049-0.013) uM', 'Blood', 7),\n", + " ('Mercury', 'C0154671', '0.0088 (0.0049-0.013) uM', 'Blood', 7),\n", + " ('Lead', 'C0002395', '0.0021 (0.00080-0.0034) uM', 'Blood', 7),\n", + " ('Lead', 'C0154671', '0.0021 (0.00080-0.0034) uM', 'Blood', 7),\n", + " ('Prolylhydroxyproline',\n", + " 'C0002395',\n", + " '0.086 (0.070-0.10) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('Prolylhydroxyproline',\n", + " 'C0154671',\n", + " '0.086 (0.070-0.10) uM',\n", + " 'Cerebrospinal_Fluid',\n", + " 7),\n", + " ('1-Methylhistidine', 'C0022661', '28.8 (10.6-47.0) uM', 'Blood', 7),\n", + " ('1-Methylhistidine', 'C0403447', '28.8 (10.6-47.0) uM', 'Blood', 7),\n", + " ('1-Methylhistidine', 'C1561643', '28.8 (10.6-47.0) uM', 'Blood', 7),\n", + " ('1-Methylhistidine', 'C1579029', '28.8 (10.6-47.0) uM', 'Blood', 7),\n", + " ('Dihydrobiopterin', 'C0022661', '0.064 (0.059-0.068) uM', 'Blood', 7),\n", + " ('Dihydrobiopterin', 'C0403447', '0.064 (0.059-0.068) uM', 'Blood', 7),\n", + " ('Dihydrobiopterin', 'C1561643', '0.064 (0.059-0.068) uM', 'Blood', 7),\n", + " ('Dihydrobiopterin', 'C1579029', '0.064 (0.059-0.068) uM', 'Blood', 7),\n", + " ('Betaine', 'C0022661', '32.5 (23.9-42.5) uM', 'Blood', 7),\n", + " ('Betaine', 'C0403447', '32.5 (23.9-42.5) uM', 'Blood', 7),\n", + " ('Betaine', 'C1561643', '32.5 (23.9-42.5) uM', 'Blood', 7),\n", + " ('Betaine', 'C1579029', '32.5 (23.9-42.5) uM', 'Blood', 7),\n", + " ('Dimethylglycine', 'C0022661', '4.8 (3.6-6.2) uM', 'Blood', 7),\n", + " ('Dimethylglycine', 'C0403447', '4.8 (3.6-6.2) uM', 'Blood', 7),\n", + " ('Dimethylglycine', 'C1561643', '4.8 (3.6-6.2) uM', 'Blood', 7),\n", + " ('Dimethylglycine', 'C1579029', '4.8 (3.6-6.2) uM', 'Blood', 7),\n", + " ('D-Xylose', 'C0022661', '2.9e+03 (2.0e+03-3.8e+03) uM', 'Blood', 7),\n", + " ('D-Xylose', 'C0403447', '2.9e+03 (2.0e+03-3.8e+03) uM', 'Blood', 7),\n", + " ('D-Xylose', 'C1561643', '2.9e+03 (2.0e+03-3.8e+03) uM', 'Blood', 7),\n", + " ('D-Xylose', 'C1579029', '2.9e+03 (2.0e+03-3.8e+03) uM', 'Blood', 7),\n", + " ('Ethanol', 'C0022661', '90.0 (10.0-170.0) uM', 'Blood', 7),\n", + " ('Ethanol', 'C0403447', '90.0 (10.0-170.0) uM', 'Blood', 7),\n", + " ('Ethanol', 'C1561643', '90.0 (10.0-170.0) uM', 'Blood', 7),\n", + " ('Ethanol', 'C1579029', '90.0 (10.0-170.0) uM', 'Blood', 7),\n", + " ('Guanidoacetic acid', 'C0022661', '2.4 (1.7-3.1) uM', 'Blood', 7),\n", + " ('Guanidoacetic acid', 'C0403447', '2.4 (1.7-3.1) uM', 'Blood', 7),\n", + " ('Guanidoacetic acid', 'C1561643', '2.4 (1.7-3.1) uM', 'Blood', 7),\n", + " ('Guanidoacetic acid', 'C1579029', '2.4 (1.7-3.1) uM', 'Blood', 7),\n", + " ('Phenylacetic acid', 'C0022661', '3.5e+03 (3.2e+03-3.8e+03) uM', 'Blood', 7),\n", + " ('Phenylacetic acid', 'C0403447', '3.5e+03 (3.2e+03-3.8e+03) uM', 'Blood', 7),\n", + " ('Phenylacetic acid', 'C1561643', '3.5e+03 (3.2e+03-3.8e+03) uM', 'Blood', 7),\n", + " ('Phenylacetic acid', 'C1579029', '3.5e+03 (3.2e+03-3.8e+03) uM', 'Blood', 7),\n", + " ('Allantoin', 'C0022661', '20.5 (14.0-27.0) uM', 'Blood', 7),\n", + " ('Allantoin', 'C0403447', '20.5 (14.0-27.0) uM', 'Blood', 7),\n", + " ('Allantoin', 'C1561643', '20.5 (14.0-27.0) uM', 'Blood', 7),\n", + " ('Allantoin', 'C1579029', '20.5 (14.0-27.0) uM', 'Blood', 7),\n", + " ('3-Methylhistidine', 'C0022661', '13.0 (2.6-23.4) uM', 'Blood', 7),\n", + " ('3-Methylhistidine', 'C0403447', '13.0 (2.6-23.4) uM', 'Blood', 7),\n", + " ('3-Methylhistidine', 'C1561643', '13.0 (2.6-23.4) uM', 'Blood', 7),\n", + " ('3-Methylhistidine', 'C1579029', '13.0 (2.6-23.4) uM', 'Blood', 7),\n", + " ('L-Arginine', 'C0022661', '101.6 (62.4-140.8) uM', 'Blood', 7),\n", + " ('L-Arginine', 'C0403447', '101.6 (62.4-140.8) uM', 'Blood', 7),\n", + " ('L-Arginine', 'C1561643', '101.6 (62.4-140.8) uM', 'Blood', 7),\n", + " ('L-Arginine', 'C1579029', '101.6 (62.4-140.8) uM', 'Blood', 7),\n", + " ('Creatinine', 'C0022661', '440.7 (396.5-484.9) uM', 'Blood', 7),\n", + " ('Creatinine', 'C0403447', '440.7 (396.5-484.9) uM', 'Blood', 7),\n", + " ('Creatinine', 'C1561643', '440.7 (396.5-484.9) uM', 'Blood', 7),\n", + " ('Creatinine', 'C1579029', '440.7 (396.5-484.9) uM', 'Blood', 7),\n", + " ('Homocysteine', 'C0022661', '21.0 (18.5-25.7) uM', 'Blood', 7),\n", + " ('Homocysteine', 'C0403447', '21.0 (18.5-25.7) uM', 'Blood', 7),\n", + " ('Homocysteine', 'C1561643', '21.0 (18.5-25.7) uM', 'Blood', 7),\n", + " ('Homocysteine', 'C1579029', '21.0 (18.5-25.7) uM', 'Blood', 7),\n", + " ('Histamine', 'C0022661', '0.0024 (0.0015-0.0032) uM', 'Blood', 7),\n", + " ('Histamine', 'C0403447', '0.0024 (0.0015-0.0032) uM', 'Blood', 7),\n", + " ('Histamine', 'C1561643', '0.0024 (0.0015-0.0032) uM', 'Blood', 7),\n", + " ('Histamine', 'C1579029', '0.0024 (0.0015-0.0032) uM', 'Blood', 7),\n", + " ('Trimethylamine', 'C0022661', '1.5 (1.00-2.0) uM', 'Blood', 7),\n", + " ('Trimethylamine', 'C0403447', '1.5 (1.00-2.0) uM', 'Blood', 7),\n", + " ('Trimethylamine', 'C1561643', '1.5 (1.00-2.0) uM', 'Blood', 7),\n", + " ('Trimethylamine', 'C1579029', '1.5 (1.00-2.0) uM', 'Blood', 7),\n", + " ('Trimethylamine N-oxide', 'C0022661', '99.9 (68.0-131.8) uM', 'Blood', 7),\n", + " ('Trimethylamine N-oxide', 'C0403447', '99.9 (68.0-131.8) uM', 'Blood', 7),\n", + " ('Trimethylamine N-oxide', 'C1561643', '99.9 (68.0-131.8) uM', 'Blood', 7),\n", + " ('Trimethylamine N-oxide', 'C1579029', '99.9 (68.0-131.8) uM', 'Blood', 7),\n", + " ('Methylguanidine', 'C0022661', '3.3 (2.0-4.6) uM', 'Blood', 7),\n", + " ('Methylguanidine', 'C0403447', '3.3 (2.0-4.6) uM', 'Blood', 7),\n", + " ('Methylguanidine', 'C1561643', '3.3 (2.0-4.6) uM', 'Blood', 7),\n", + " ('Methylguanidine', 'C1579029', '3.3 (2.0-4.6) uM', 'Blood', 7),\n", + " ('Asymmetric Dimethyl-L-arginine',\n", + " 'C0022661',\n", + " '0.91 (0.87-0.95) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('Asymmetric Dimethyl-L-arginine',\n", + " 'C0403447',\n", + " '0.91 (0.87-0.95) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('Asymmetric Dimethyl-L-arginine',\n", + " 'C1561643',\n", + " '0.91 (0.87-0.95) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('Asymmetric Dimethyl-L-arginine',\n", + " 'C1579029',\n", + " '0.91 (0.87-0.95) uM',\n", + " 'Blood',\n", + " 7),\n", + " ('1-Methylguanosine', 'C0022661', '0.099 (0.078-0.12) uM', 'Blood', 7),\n", + " ('1-Methylguanosine', 'C0403447', '0.099 (0.078-0.12) uM', 'Blood', 7),\n", + " ('1-Methylguanosine', 'C1561643', '0.099 (0.078-0.12) uM', 'Blood', 7),\n", + " ('1-Methylguanosine', 'C1579029', '0.099 (0.078-0.12) uM', 'Blood', 7),\n", + " ('Guanidine', 'C0022661', '3.1 (2.0-4.2) uM', 'Blood', 7),\n", + " ('Guanidine', 'C0403447', '3.1 (2.0-4.2) uM', 'Blood', 7),\n", + " ('Guanidine', 'C1561643', '3.1 (2.0-4.2) uM', 'Blood', 7),\n", + " ('Guanidine', 'C1579029', '3.1 (2.0-4.2) uM', 'Blood', 7),\n", + " ...]" + ] + }, + "execution_count": 90, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#As one of the parameters the function used to incoroporate the information from markerdb of diseases \n", + "#associated to chemical diagnostic markers has is a tuple, a list of tuples from each row from \n", + "#the dataframe 'df_disease_marker', will be generated in this cell. \n", + "\n", + "tuples_disease_marker = [tuple(x) for x in df_disease_marker.values]\n", + "tuples_disease_marker" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Function to insert into DISNET data related to chemical diagnostic markers associated to diseases**" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": {}, + "outputs": [], + "source": [ + "def disease_marker_insertion(result,cnx, logfile):\n", + " \n", + " \"\"\"Method that inserts to DISNET MySQL DB, via mysql.connector objects a list of tuples corresponding to different chemical makers associated\n", + " with diseases and other features'\n", + " \"\"\"\n", + "\n", + " insert_disease_marker_classtable = \"\"\"\n", + " INSERT INTO disease_marker (marker, disease_id, concentration, sample, source_id) \n", + " VALUES (%s, %s, %s, %s, %s);\n", + " \"\"\"\n", + " cursor = cnx.cursor(buffered = True)\n", + " \n", + " try:\n", + " cursor.execute('''SELECT * from disease_marker''')\n", + "# for (a, b, c) in cursor:\n", + "# print(a,\" \",b,\" \",c)\n", + " num_fields = len(cursor.description)\n", + " field_names = [i[0] for i in cursor.description]\n", + " print(field_names)\n", + " '''\n", + " for i in result:\n", + " print(i)\n", + " cursor.execute(insert_rnaclasstable,i)\n", + " #print(i)\n", + " '''\n", + " cursor.executemany(insert_disease_marker_classtable, result)\n", + " cnx.commit()\n", + " \n", + " except mysql.connector.Error as err:\n", + " logfile.write('Module: ' + str(__name__) + \"\\n\" + str(err.msg))\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Function \"disease_marker_insertion\" call**" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": {}, + "outputs": [], + "source": [ + "#disease_marker_insertion(tuples_disease_marker,cnx, 'fichero.txt') #uncomment this line to execute\n", + "#disease_marker_insertion function." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Descriptive analysis of the inserted data into DISNET database" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
source_id
count2763.0
mean7.0
std0.0
min7.0
25%7.0
50%7.0
75%7.0
max7.0
\n", + "
" + ], + "text/plain": [ + " source_id\n", + "count 2763.0\n", + "mean 7.0\n", + "std 0.0\n", + "min 7.0\n", + "25% 7.0\n", + "50% 7.0\n", + "75% 7.0\n", + "max 7.0" + ] + }, + "execution_count": 93, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_disease_marker.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "disease_id 1\n", + "dtype: int64" + ] + }, + "execution_count": 94, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_marker_diseases_counts = df_disease_marker[['disease_id']].count()\n", + "df_marker_diseases_counts.groupby(['disease_id']).count()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mode disease is: 0 C0028754\n", + "1 C0039870\n", + "2 C0451819\n", + "dtype: object\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
disease_id
count341.000000
mean8.102639
std24.981959
min1.000000
25%1.000000
50%2.000000
75%7.000000
max252.000000
\n", + "
" + ], + "text/plain": [ + " disease_id\n", + "count 341.000000\n", + "mean 8.102639\n", + "std 24.981959\n", + "min 1.000000\n", + "25% 1.000000\n", + "50% 2.000000\n", + "75% 7.000000\n", + "max 252.000000" + ] + }, + "execution_count": 95, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_marker_diseases = df_disease_marker['disease_id'].value_counts().to_frame()\n", + "print(\"mode disease is: \" + str(df_disease_marker['disease_id'].mode()))\n", + "df_marker_diseases.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mode biomaker is: 0 L-Phenylalanine\n", + "dtype: object\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
marker
count618.000000
mean4.470874
std4.225410
min1.000000
25%2.000000
50%3.000000
75%5.000000
max31.000000
\n", + "
" + ], + "text/plain": [ + " marker\n", + "count 618.000000\n", + "mean 4.470874\n", + "std 4.225410\n", + "min 1.000000\n", + "25% 2.000000\n", + "50% 3.000000\n", + "75% 5.000000\n", + "max 31.000000" + ] + }, + "execution_count": 96, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "marker_only = df_disease_marker['marker'].value_counts().to_frame()\n", + "print(\"mode biomaker is: \" + str(df_disease_marker['marker'].mode()))\n", + "marker_only.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "L-Phenylalanine 31\n", + "L-Arginine 30\n", + "L-Valine 27\n", + "Pipecolic acid 24\n", + "Glycine 23\n", + " ..\n", + "Gamma-Linolenic acid 1\n", + "Stearic acid 1\n", + "Glycerol 1\n", + "Thymine 1\n", + "Trihexosylceramide (d18:1/18:0) 1\n", + "Name: marker, Length: 618, dtype: int64\n", + "-----------------------------------------\n", + "C0039870 252\n", + "C0028754 252\n", + "C0451819 252\n", + "C0002395 82\n", + "C0154671 82\n", + " ... \n", + "C0699791 1\n", + "C0238052 1\n", + "C1708349 1\n", + "C0014038 1\n", + "C0220993 1\n", + "Name: disease_id, Length: 341, dtype: int64\n" + ] + } + ], + "source": [ + "print(df_disease_marker['marker'].value_counts())\n", + "print(\"-----------------------------------------\")\n", + "print(df_disease_marker['disease_id'].value_counts())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Obtaining the number of times a biomarker appears in a biomarker-disease-biomarker concentration-sample association**" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " biomarker appereances\n", + "count 618.000000\n", + "mean 4.470874\n", + "std 4.225410\n", + "min 1.000000\n", + "25% 2.000000\n", + "50% 3.000000\n", + "75% 5.000000\n", + "max 31.000000\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
biomarker appereances
L-Phenylalanine31
L-Arginine30
L-Valine27
Pipecolic acid24
Glycine23
......
Gamma-Linolenic acid1
Stearic acid1
Glycerol1
Thymine1
Trihexosylceramide (d18:1/18:0)1
\n", + "

618 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " biomarker appereances\n", + "L-Phenylalanine 31\n", + "L-Arginine 30\n", + "L-Valine 27\n", + "Pipecolic acid 24\n", + "Glycine 23\n", + "... ...\n", + "Gamma-Linolenic acid 1\n", + "Stearic acid 1\n", + "Glycerol 1\n", + "Thymine 1\n", + "Trihexosylceramide (d18:1/18:0) 1\n", + "\n", + "[618 rows x 1 columns]" + ] + }, + "execution_count": 98, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "biomarker_counts = df_disease_marker['marker'].value_counts().to_frame()\n", + "biomarker_counts = biomarker_counts.rename(columns={'marker': 'biomarker appereances'})#biomarker appereances in an association\n", + "print(biomarker_counts.describe())\n", + "biomarker_counts" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(0.5, 1.0, 'Distribution of the number of times a biomarker is in an association')]" + ] + }, + "execution_count": 99, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plot\n", + "import seaborn as sns\n", + "\n", + "ax = sns.boxplot( x=biomarker_counts['biomarker appereances'] )\n", + "ax.set_xscale(\"log\")\n", + "ax.set(xlabel='log (number of disease appereances in associations)', ylabel='biomarkers')\n", + "ax.set(title='Distribution of the number of times a biomarker is in an association')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Obtaining the number of times a disease appears in a biomarker-disease-biomarker concentration-sample association**" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " disease appereances\n", + "count 341.000000\n", + "mean 8.102639\n", + "std 24.981959\n", + "min 1.000000\n", + "25% 1.000000\n", + "50% 2.000000\n", + "75% 7.000000\n", + "max 252.000000\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
disease appereances
C0039870252
C0028754252
C0451819252
C000239582
C015467182
......
C06997911
C02380521
C17083491
C00140381
C02209931
\n", + "

341 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " disease appereances\n", + "C0039870 252\n", + "C0028754 252\n", + "C0451819 252\n", + "C0002395 82\n", + "C0154671 82\n", + "... ...\n", + "C0699791 1\n", + "C0238052 1\n", + "C1708349 1\n", + "C0014038 1\n", + "C0220993 1\n", + "\n", + "[341 rows x 1 columns]" + ] + }, + "execution_count": 100, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "disease_counts = df_disease_marker['disease_id'].value_counts().to_frame()\n", + "disease_counts = disease_counts.rename(columns={'disease_id': 'disease appereances'})\n", + "print(disease_counts.describe())\n", + "disease_counts" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(0.5, 1.0, 'Distribution of the number of times a disease is in an association')]" + ] + }, + "execution_count": 101, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "#associations refers to biomarker-disease-biomarker concentration-sample\n", + "ax = sns.boxplot( x=disease_counts['disease appereances'] )\n", + "ax.set_xscale(\"log\")\n", + "ax.set(xlabel='log (number of disease appereances in associations)', ylabel='diseases')\n", + "ax.set(title='Distribution of the number of times a disease is in an association')" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
markerdisease_idconcentrationsamplesource_id
01-MethylhistidineC002875410.9 (0.80-21.0) umol/mmol creatinineUrine7
21-MethylhistidineC003987010.9 (0.80-21.0) umol/mmol creatinineUrine7
31-MethylhistidineC045181910.9 (0.80-21.0) umol/mmol creatinineUrine7
4(R)-3-Hydroxybutyric acidC0028754235.0 (218.0-252.0) uMBlood7
6(R)-3-Hydroxybutyric acidC0039870235.0 (218.0-252.0) uMBlood7
..................
3291Trihexosylceramide (d18:1/22:0)C00205970.90 (1.00-0.90) uMBlood7
3292Trihexosylceramide (d18:1/26:1(17Z))C00205970.90 (0.90-1.00) uMBlood7
3293Trihexosylceramide (d18:1/24:0)C00205970.90 (0.90-1.00) uMBlood7
3294Tetrahexosylceramide (d18:1/12:0)C00205971.00 (1.00-1.1) uMBlood7
32955-HETEC00354550.79 (0.73-0.84) uMBlood7
\n", + "

2763 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " marker disease_id \\\n", + "0 1-Methylhistidine C0028754 \n", + "2 1-Methylhistidine C0039870 \n", + "3 1-Methylhistidine C0451819 \n", + "4 (R)-3-Hydroxybutyric acid C0028754 \n", + "6 (R)-3-Hydroxybutyric acid C0039870 \n", + "... ... ... \n", + "3291 Trihexosylceramide (d18:1/22:0) C0020597 \n", + "3292 Trihexosylceramide (d18:1/26:1(17Z)) C0020597 \n", + "3293 Trihexosylceramide (d18:1/24:0) C0020597 \n", + "3294 Tetrahexosylceramide (d18:1/12:0) C0020597 \n", + "3295 5-HETE C0035455 \n", + "\n", + " concentration sample source_id \n", + "0 10.9 (0.80-21.0) umol/mmol creatinine Urine 7 \n", + "2 10.9 (0.80-21.0) umol/mmol creatinine Urine 7 \n", + "3 10.9 (0.80-21.0) umol/mmol creatinine Urine 7 \n", + "4 235.0 (218.0-252.0) uM Blood 7 \n", + "6 235.0 (218.0-252.0) uM Blood 7 \n", + "... ... ... ... \n", + "3291 0.90 (1.00-0.90) uM Blood 7 \n", + "3292 0.90 (0.90-1.00) uM Blood 7 \n", + "3293 0.90 (0.90-1.00) uM Blood 7 \n", + "3294 1.00 (1.00-1.1) uM Blood 7 \n", + "3295 0.79 (0.73-0.84) uM Blood 7 \n", + "\n", + "[2763 rows x 5 columns]" + ] + }, + "execution_count": 102, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_disease_marker" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
markernameconcentrationsamplesource_idsource_namedisease_iddisease_namevocab
0L-Valineobesity1.4 (0.79-2.0) uMBlood7MarkerdbC0028754ObesityMSH
\n", + "
" + ], + "text/plain": [ + " marker name concentration sample source_id source_name \\\n", + "0 L-Valine obesity 1.4 (0.79-2.0) uM Blood 7 Markerdb \n", + "\n", + " disease_id disease_name vocab \n", + "0 C0028754 Obesity MSH " + ] + }, + "execution_count": 103, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "duplicateRowsDF_marker = markerdb_disnet[markerdb_disnet.duplicated(['marker', 'disease_id'])]\n", + "duplicateRowsDF_marker.mode()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Finding the most repeated marker-disease associations**" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
markernamedisease_id
468L-Leucinemaple syrup urine disease20
129Alpha-ketoisovaleric acidmaple syrup urine disease20
663-Methyl-2-oxovaleric acidmaple syrup urine disease20
392-Hydroxy-3-methylbutyric acidmaple syrup urine disease20
508L-Valinemaple syrup urine disease20
368Hydroxyisocaproic acidmaple syrup urine disease20
558Mevalonic acidmevalonic aciduria18
528Lipoxin A4coronary artery disease12
454L-Homocystinehomocystinuria10
135Androstenedionecongenital adrenal hyperplasia10
418L-Argininemaple syrup urine disease10
405L-Alaninelung cancer10
159Betainelung cancer10
999trans-Aconitic acidlung cancer10
3217-Hydroxyprogesteronecongenital adrenal hyperplasia10
281Ethanolaminemaple syrup urine disease10
194Citric acidmaple syrup urine disease10
849Putrescinepancreatic cancer10
320Glycolic acidlung cancer10
242D-Xyloselung cancer10
\n", + "
" + ], + "text/plain": [ + " marker name \\\n", + "468 L-Leucine maple syrup urine disease \n", + "129 Alpha-ketoisovaleric acid maple syrup urine disease \n", + "66 3-Methyl-2-oxovaleric acid maple syrup urine disease \n", + "39 2-Hydroxy-3-methylbutyric acid maple syrup urine disease \n", + "508 L-Valine maple syrup urine disease \n", + "368 Hydroxyisocaproic acid maple syrup urine disease \n", + "558 Mevalonic acid mevalonic aciduria \n", + "528 Lipoxin A4 coronary artery disease \n", + "454 L-Homocystine homocystinuria \n", + "135 Androstenedione congenital adrenal hyperplasia \n", + "418 L-Arginine maple syrup urine disease \n", + "405 L-Alanine lung cancer \n", + "159 Betaine lung cancer \n", + "999 trans-Aconitic acid lung cancer \n", + "32 17-Hydroxyprogesterone congenital adrenal hyperplasia \n", + "281 Ethanolamine maple syrup urine disease \n", + "194 Citric acid maple syrup urine disease \n", + "849 Putrescine pancreatic cancer \n", + "320 Glycolic acid lung cancer \n", + "242 D-Xylose lung cancer \n", + "\n", + " disease_id \n", + "468 20 \n", + "129 20 \n", + "66 20 \n", + "39 20 \n", + "508 20 \n", + "368 20 \n", + "558 18 \n", + "528 12 \n", + "454 10 \n", + "135 10 \n", + "418 10 \n", + "405 10 \n", + "159 10 \n", + "999 10 \n", + "32 10 \n", + "281 10 \n", + "194 10 \n", + "849 10 \n", + "320 10 \n", + "242 10 " + ] + }, + "execution_count": 104, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "marker_disease = markerdb_disnet.groupby(['marker', 'name']).count()\n", + "marker_disease = marker_disease.reset_index()\n", + "marker_disease[['marker', 'name','disease_id']].sort_values(by=['disease_id'], ascending = False).head(20)" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": {}, + "outputs": [], + "source": [ + "#duplicateRowsDF_marker_1.query('name == \"obesity\" & marker == \"1-Methylhistidine\"')" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": {}, + "outputs": [], + "source": [ + "##########################################################################################" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Study of the relationships between the Biomarkers and DISNET features" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": {}, + "outputs": [], + "source": [ + "import mysql.connector\n", + "import json\n", + "conn_param_file = 'C:/Users/end user/OneDrive/Desktop/UPM Master/CTB TFM/Datasets/DISNET_CONNECTION_correct.json'\n", + "# Setting the connection to the database\n", + "\n", + "# The connection configuration is stored in a JSON file\n", + "with open(conn_param_file, 'r') as f:\n", + " config = json.load(f) # The JSON file is translated to a pyhton dictionary\n", + "\n", + "# Stablishing the connection with the parameters in the dictionary\n", + "cnx = mysql.connector.connect(**config)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Querying DISNET to obtain the ICD-10 classification names and class range that correspond to each CUI code (disease_id) stored in DISNET**" + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
disease_idclass_nameclass_range
0C0008354Certain infectious and parasitic diseasesA00-B99
1C0178238Certain infectious and parasitic diseasesA00-B99
2C0041466Certain infectious and parasitic diseasesA00-B99
3C0030528Certain infectious and parasitic diseasesA00-B99
4C0152491Certain infectious and parasitic diseasesA00-B99
............
3613C0013182Injury, poisoning and certain other consequenc...S00-T98
3614C0041755Injury, poisoning and certain other consequenc...S00-T98
3615C0085639External causes of morbidity and mortalityV01-Y98
3616C0019699Factors influencing health status and contact ...Z00-Z99
3617C0037316Factors influencing health status and contact ...Z00-Z99
\n", + "

3618 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " disease_id class_name class_range\n", + "0 C0008354 Certain infectious and parasitic diseases A00-B99\n", + "1 C0178238 Certain infectious and parasitic diseases A00-B99\n", + "2 C0041466 Certain infectious and parasitic diseases A00-B99\n", + "3 C0030528 Certain infectious and parasitic diseases A00-B99\n", + "4 C0152491 Certain infectious and parasitic diseases A00-B99\n", + "... ... ... ...\n", + "3613 C0013182 Injury, poisoning and certain other consequenc... S00-T98\n", + "3614 C0041755 Injury, poisoning and certain other consequenc... S00-T98\n", + "3615 C0085639 External causes of morbidity and mortality V01-Y98\n", + "3616 C0019699 Factors influencing health status and contact ... Z00-Z99\n", + "3617 C0037316 Factors influencing health status and contact ... Z00-Z99\n", + "\n", + "[3618 rows x 3 columns]" + ] + }, + "execution_count": 108, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "query_icd = \"\"\"\n", + " SELECT DISTINCT\n", + " d.disease_id, i.class_name, i.class_range\n", + " FROM\n", + " disnet_biolayer.disease d\n", + " INNER JOIN\n", + " disnet_biolayer.has_code hc ON d.disease_id = hc.disease_id\n", + " LEFT JOIN\n", + " disnet_biolayer.tmp_icd i ON 1 = 1\n", + " WHERE\n", + " hc.vocabulary = 'ICD10CM'\n", + " AND SUBSTR(i.class_range, 1, 3) <= SUBSTR(hc.code_id, 1, 3)\n", + " AND SUBSTR(i.class_range, 5, 3) >= SUBSTR(hc.code_id, 1, 3)\n", + "\n", + " \"\"\"\n", + "\n", + "query_icd = pd.read_sql_query(query_icd, con = cnx)\n", + "query_icd " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Comparison between the distribution of DISNET genes, variants and pathways by ICD-10 diseases and the distribution of biomarkers by ICD-10 diseases.**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**We first generate a dataframe in which we group the disease_id and class_name columns of each DISNET disease to find out how many genes each grouping has associated with it.**" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
disease_idgene_idsource_idscoresio_id
0C00007317210.10SIO_001121
1C000073167210.10SIO_001121
2C0000731128010.10SIO_001121
3C0000731148210.10SIO_001121
4C0000731181110.10SIO_001121
..................
358204C4540535277810.30SIO_001122
358205C4540536277810.30SIO_001122
358206C4540602277810.30SIO_001122
358207C4543926306010.03SIO_001121
358208C4545381515610.30SIO_001348
\n", + "

358209 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " disease_id gene_id source_id score sio_id\n", + "0 C0000731 72 1 0.10 SIO_001121\n", + "1 C0000731 672 1 0.10 SIO_001121\n", + "2 C0000731 1280 1 0.10 SIO_001121\n", + "3 C0000731 1482 1 0.10 SIO_001121\n", + "4 C0000731 1811 1 0.10 SIO_001121\n", + "... ... ... ... ... ...\n", + "358204 C4540535 2778 1 0.30 SIO_001122\n", + "358205 C4540536 2778 1 0.30 SIO_001122\n", + "358206 C4540602 2778 1 0.30 SIO_001122\n", + "358207 C4543926 3060 1 0.03 SIO_001121\n", + "358208 C4545381 5156 1 0.30 SIO_001348\n", + "\n", + "[358209 rows x 5 columns]" + ] + }, + "execution_count": 109, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "query_disease_gene = \"\"\"\n", + " SELECT*\n", + " FROM\n", + " disnet_biolayer.disease_gene\n", + " \"\"\"\n", + "\n", + "query_disease_gene = pd.read_sql_query(query_disease_gene, con = cnx)\n", + "query_disease_gene " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Merging query_disease_gene and query_icd dataframes. Then, the resulting merged dataframe will be merged again with a df containing the icd10 short version names**" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
disease_idgene_idclass_rangeicd_class_nameclass_name
0C000074425E00-E90Endocrine, nutritional and metabolic diseasesMetabolic
1C000074427E00-E90Endocrine, nutritional and metabolic diseasesMetabolic
2C0000744238E00-E90Endocrine, nutritional and metabolic diseasesMetabolic
3C0000744338E00-E90Endocrine, nutritional and metabolic diseasesMetabolic
4C0000744348E00-E90Endocrine, nutritional and metabolic diseasesMetabolic
..................
118041C16917792707H60-H95Diseases of the ear and mastoid processEar
118042C16917794036H60-H95Diseases of the ear and mastoid processEar
118043C16917795172H60-H95Diseases of the ear and mastoid processEar
118044C16917798772H60-H95Diseases of the ear and mastoid processEar
118045C169177910265H60-H95Diseases of the ear and mastoid processEar
\n", + "

118046 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " disease_id gene_id class_range \\\n", + "0 C0000744 25 E00-E90 \n", + "1 C0000744 27 E00-E90 \n", + "2 C0000744 238 E00-E90 \n", + "3 C0000744 338 E00-E90 \n", + "4 C0000744 348 E00-E90 \n", + "... ... ... ... \n", + "118041 C1691779 2707 H60-H95 \n", + "118042 C1691779 4036 H60-H95 \n", + "118043 C1691779 5172 H60-H95 \n", + "118044 C1691779 8772 H60-H95 \n", + "118045 C1691779 10265 H60-H95 \n", + "\n", + " icd_class_name class_name \n", + "0 Endocrine, nutritional and metabolic diseases Metabolic \n", + "1 Endocrine, nutritional and metabolic diseases Metabolic \n", + "2 Endocrine, nutritional and metabolic diseases Metabolic \n", + "3 Endocrine, nutritional and metabolic diseases Metabolic \n", + "4 Endocrine, nutritional and metabolic diseases Metabolic \n", + "... ... ... \n", + "118041 Diseases of the ear and mastoid process Ear \n", + "118042 Diseases of the ear and mastoid process Ear \n", + "118043 Diseases of the ear and mastoid process Ear \n", + "118044 Diseases of the ear and mastoid process Ear \n", + "118045 Diseases of the ear and mastoid process Ear \n", + "\n", + "[118046 rows x 5 columns]" + ] + }, + "execution_count": 110, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "disease_gene_icd= pd.merge(query_disease_gene, query_icd.drop(['class_name'], axis=1), on='disease_id')\n", + "disease_gene_icd = disease_gene_icd.drop(['source_id', 'sio_id','score'], axis=1)\n", + "icd_10_short = pd.read_csv('icd10_links.csv')\n", + "disease_gene_icd= pd.merge(disease_gene_icd, icd_10_short, on='class_range')\n", + "disease_gene_icd" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
class_namedisease_idnum_feature_diseasefeature
0CirculatoryC000294056genes
1CirculatoryC000296254genes
2CirculatoryC00029631genes
3CirculatoryC000296519genes
4CirculatoryC000348695genes
...............
2796SkinC070216644genes
2797SkinC11125704genes
2798SkinC12608741genes
2799SkinC29368461genes
2800SkinC408321219genes
\n", + "

2801 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " class_name disease_id num_feature_disease feature\n", + "0 Circulatory C0002940 56 genes\n", + "1 Circulatory C0002962 54 genes\n", + "2 Circulatory C0002963 1 genes\n", + "3 Circulatory C0002965 19 genes\n", + "4 Circulatory C0003486 95 genes\n", + "... ... ... ... ...\n", + "2796 Skin C0702166 44 genes\n", + "2797 Skin C1112570 4 genes\n", + "2798 Skin C1260874 1 genes\n", + "2799 Skin C2936846 1 genes\n", + "2800 Skin C4083212 19 genes\n", + "\n", + "[2801 rows x 4 columns]" + ] + }, + "execution_count": 111, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "disease_gene_icd_test = disease_gene_icd[['disease_id', 'class_name', 'gene_id']]\n", + "#disease_gene_icd_test['gene_id'] = disease_gene_icd_test['gene_id'].apply(str)\n", + "disease_gene_icd_test = disease_gene_icd_test.groupby(['class_name', 'disease_id']).count()#.agg(num_feature_disease=('gene_id', sum))\n", + "#disease_gene_icd_test\n", + "disease_gene_icd_test = disease_gene_icd_test.reset_index()\n", + "disease_gene_icd_test = disease_gene_icd_test.rename(columns={'gene_id': 'num_feature_disease'})\n", + "disease_gene_icd_test['feature'] = 'genes'\n", + "disease_gene_icd_test\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Now that we have a dataframe with the number of genes that each class_name and disease_id pair has, we will repeat the same process for variants and pathways.**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Variants**" + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
disease_idvariant_idsource_idscore
0C0000737rs105751880610.70
1C0000737rs105751888610.70
2C0000744rs14606471410.70
3C0000744rs19942221910.70
4C0000744rs19942222010.80
...............
210493C4540536rs14803359210.70
210494C4540536rs6174969810.70
210495C4540602rs14803359210.70
210496C4540602rs6174969810.70
210497C4543822rs104439610.01
\n", + "

210498 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " disease_id variant_id source_id score\n", + "0 C0000737 rs1057518806 1 0.70\n", + "1 C0000737 rs1057518886 1 0.70\n", + "2 C0000744 rs146064714 1 0.70\n", + "3 C0000744 rs199422219 1 0.70\n", + "4 C0000744 rs199422220 1 0.80\n", + "... ... ... ... ...\n", + "210493 C4540536 rs148033592 1 0.70\n", + "210494 C4540536 rs61749698 1 0.70\n", + "210495 C4540602 rs148033592 1 0.70\n", + "210496 C4540602 rs61749698 1 0.70\n", + "210497 C4543822 rs1044396 1 0.01\n", + "\n", + "[210498 rows x 4 columns]" + ] + }, + "execution_count": 112, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "query_variants = \"\"\"\n", + " SELECT*\n", + " FROM\n", + " disnet_biolayer.disease_variant\n", + " \"\"\"\n", + "\n", + "query_variants = pd.read_sql_query(query_variants, con = cnx)\n", + "query_variants " + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
class_namedisease_idnum_feature_diseasefeature
0CirculatoryC00029407variants
1CirculatoryC000296264variants
2CirculatoryC00029632variants
3CirculatoryC00029654variants
4CirculatoryC00034869variants
...............
1623SkinC04063171variants
1624SkinC040997417variants
1625SkinC04774741variants
1626SkinC07021668variants
1627SkinC40832122variants
\n", + "

1628 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " class_name disease_id num_feature_disease feature\n", + "0 Circulatory C0002940 7 variants\n", + "1 Circulatory C0002962 64 variants\n", + "2 Circulatory C0002963 2 variants\n", + "3 Circulatory C0002965 4 variants\n", + "4 Circulatory C0003486 9 variants\n", + "... ... ... ... ...\n", + "1623 Skin C0406317 1 variants\n", + "1624 Skin C0409974 17 variants\n", + "1625 Skin C0477474 1 variants\n", + "1626 Skin C0702166 8 variants\n", + "1627 Skin C4083212 2 variants\n", + "\n", + "[1628 rows x 4 columns]" + ] + }, + "execution_count": 113, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "disease_variant_icd= pd.merge(query_variants, query_icd.drop(['class_name'], axis=1), on='disease_id')# query_disease_variant es un df de la tabla #disease_variant y query_icd un df de la consulta icd\n", + "disease_variant_icd = disease_variant_icd.drop(['source_id','score'], axis=1)\n", + "icd_10_short = pd.read_csv('icd10_links.csv')\n", + "disease_variant_icd= pd.merge(disease_variant_icd, icd_10_short, on='class_range')\n", + "disease_variant_icd\n", + "\n", + "disease_variant_icd_test = disease_variant_icd[['disease_id', 'class_name', 'variant_id']]\n", + "disease_variant_icd_test = disease_variant_icd_test.groupby(['class_name', 'disease_id']).count()\n", + "disease_variant_icd_test = disease_variant_icd_test.reset_index()\n", + "disease_variant_icd_test = disease_variant_icd_test.rename(columns={'variant_id': 'num_feature_disease'})\n", + "disease_variant_icd_test['feature'] = 'variants'\n", + "disease_variant_icd_test" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Pathways**" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
disease_idpathway_id
0C0000731WP117
1C0000731WP138
2C0000731WP15
3C0000731WP1533
4C0000731WP1544
.........
400696C4540602WP734
400697C4545381WP306
400698C4545381WP322
400699C4545381WP3611
400700C4545381WP51
\n", + "

400701 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " disease_id pathway_id\n", + "0 C0000731 WP117\n", + "1 C0000731 WP138\n", + "2 C0000731 WP15\n", + "3 C0000731 WP1533\n", + "4 C0000731 WP1544\n", + "... ... ...\n", + "400696 C4540602 WP734\n", + "400697 C4545381 WP306\n", + "400698 C4545381 WP322\n", + "400699 C4545381 WP3611\n", + "400700 C4545381 WP51\n", + "\n", + "[400701 rows x 2 columns]" + ] + }, + "execution_count": 114, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "query_pathways = \"\"\"\n", + " SELECT DISTINCT\n", + " dg.disease_id,\n", + " gp.pathway_id\n", + " FROM\n", + " disnet_biolayer.disease_gene dg\n", + " INNER JOIN\n", + " disnet_biolayer.gene g ON dg.gene_id = g.gene_id\n", + " INNER JOIN\n", + " disnet_biolayer.gene_pathway gp ON g.gene_id = gp.gene_id\n", + " \"\"\"\n", + "\n", + "query_pathways = pd.read_sql_query(query_pathways, con = cnx)\n", + "query_pathways" + ] + }, + { + "cell_type": "code", + "execution_count": 115, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
class_namedisease_idnum_feature_diseasefeature
0CirculatoryC0002940120pathway
1CirculatoryC000296296pathway
2CirculatoryC00029638pathway
3CirculatoryC000296579pathway
4CirculatoryC0003486139pathway
...............
2423SkinC05495679pathway
2424SkinC06003361pathway
2425SkinC070216681pathway
2426SkinC11125704pathway
2427SkinC408321231pathway
\n", + "

2428 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " class_name disease_id num_feature_disease feature\n", + "0 Circulatory C0002940 120 pathway\n", + "1 Circulatory C0002962 96 pathway\n", + "2 Circulatory C0002963 8 pathway\n", + "3 Circulatory C0002965 79 pathway\n", + "4 Circulatory C0003486 139 pathway\n", + "... ... ... ... ...\n", + "2423 Skin C0549567 9 pathway\n", + "2424 Skin C0600336 1 pathway\n", + "2425 Skin C0702166 81 pathway\n", + "2426 Skin C1112570 4 pathway\n", + "2427 Skin C4083212 31 pathway\n", + "\n", + "[2428 rows x 4 columns]" + ] + }, + "execution_count": 115, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "disease_pathways_icd= pd.merge(query_pathways, query_icd.drop(['class_name'], axis=1), on='disease_id')# query_disease_pathways es un df de la tabla #disease_pathways y query_icd un df de la consulta icd\n", + "#disease_pathways_icd #= disease_pathways_icd.drop(['source_id','score'], axis=1)\n", + "icd_10_short = pd.read_csv('icd10_links.csv')\n", + "disease_pathways_icd= pd.merge(disease_pathways_icd, icd_10_short, on='class_range')\n", + "disease_pathways_icd\n", + "\n", + "disease_pathways_icd_test = disease_pathways_icd[['disease_id', 'class_name', 'pathway_id']]\n", + "disease_pathways_icd_test = disease_pathways_icd_test.groupby(['class_name', 'disease_id']).count()\n", + "disease_pathways_icd_test = disease_pathways_icd_test.reset_index()\n", + "disease_pathways_icd_test = disease_pathways_icd_test.rename(columns={'pathway_id': 'num_feature_disease'})\n", + "disease_pathways_icd_test['feature'] = 'pathway'\n", + "disease_pathways_icd_test" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Now we process df_disease_marker dataframe where the biomarkers and the diseases associated to each of them is stored. We will add the ICD class_name to each disease_id**" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
markerdisease_idclass_rangeicd_class_nameclass_name
01-MethylhistidineC0028754E00-E90Endocrine, nutritional and metabolic diseasesMetabolic
1(R)-3-Hydroxybutyric acidC0028754E00-E90Endocrine, nutritional and metabolic diseasesMetabolic
2L-CarnitineC0028754E00-E90Endocrine, nutritional and metabolic diseasesMetabolic
3L-ThreonineC0028754E00-E90Endocrine, nutritional and metabolic diseasesMetabolic
4OrnithineC0028754E00-E90Endocrine, nutritional and metabolic diseasesMetabolic
..................
1712TheophyllineC1319018J00-J99Diseases of the respiratory systemRespiratory
1713TheobromineC1319018J00-J99Diseases of the respiratory systemRespiratory
171411b-PGF2aC1319018J00-J99Diseases of the respiratory systemRespiratory
17151,7-Dimethyluric acidC1319018J00-J99Diseases of the respiratory systemRespiratory
17165-HETEC1319018J00-J99Diseases of the respiratory systemRespiratory
\n", + "

1717 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " marker disease_id class_range \\\n", + "0 1-Methylhistidine C0028754 E00-E90 \n", + "1 (R)-3-Hydroxybutyric acid C0028754 E00-E90 \n", + "2 L-Carnitine C0028754 E00-E90 \n", + "3 L-Threonine C0028754 E00-E90 \n", + "4 Ornithine C0028754 E00-E90 \n", + "... ... ... ... \n", + "1712 Theophylline C1319018 J00-J99 \n", + "1713 Theobromine C1319018 J00-J99 \n", + "1714 11b-PGF2a C1319018 J00-J99 \n", + "1715 1,7-Dimethyluric acid C1319018 J00-J99 \n", + "1716 5-HETE C1319018 J00-J99 \n", + "\n", + " icd_class_name class_name \n", + "0 Endocrine, nutritional and metabolic diseases Metabolic \n", + "1 Endocrine, nutritional and metabolic diseases Metabolic \n", + "2 Endocrine, nutritional and metabolic diseases Metabolic \n", + "3 Endocrine, nutritional and metabolic diseases Metabolic \n", + "4 Endocrine, nutritional and metabolic diseases Metabolic \n", + "... ... ... \n", + "1712 Diseases of the respiratory system Respiratory \n", + "1713 Diseases of the respiratory system Respiratory \n", + "1714 Diseases of the respiratory system Respiratory \n", + "1715 Diseases of the respiratory system Respiratory \n", + "1716 Diseases of the respiratory system Respiratory \n", + "\n", + "[1717 rows x 5 columns]" + ] + }, + "execution_count": 116, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_disease_marker_1 = df_disease_marker[['marker', 'disease_id']]\n", + "icd_marker= pd.merge(df_disease_marker_1, query_icd.drop(['class_name'], axis=1), on='disease_id')\n", + "icd_marker\n", + "# disease_gene_icd = disease_gene_icd.drop(['source_id', 'sio_id','score'], axis=1)\n", + "icd_10_short = pd.read_csv('icd10_links.csv')\n", + "icd_marker= pd.merge(icd_marker, icd_10_short, on='class_range')\n", + "icd_marker" + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
class_namedisease_idnum_feature_diseaseclass_rangeicd_class_namefeature
0CirculatoryC0004153111biomarker
1CirculatoryC0010054111biomarker
2CirculatoryC0010068111biomarker
3CirculatoryC0010072333biomarker
4CirculatoryC0020538999biomarker
.....................
175RespiratoryC0264413888biomarker
176RespiratoryC1260881888biomarker
177RespiratoryC1319018888biomarker
178SkinC0013595222biomarker
179SkinC0042900111biomarker
\n", + "

180 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " class_name disease_id num_feature_disease class_range icd_class_name \\\n", + "0 Circulatory C0004153 1 1 1 \n", + "1 Circulatory C0010054 1 1 1 \n", + "2 Circulatory C0010068 1 1 1 \n", + "3 Circulatory C0010072 3 3 3 \n", + "4 Circulatory C0020538 9 9 9 \n", + ".. ... ... ... ... ... \n", + "175 Respiratory C0264413 8 8 8 \n", + "176 Respiratory C1260881 8 8 8 \n", + "177 Respiratory C1319018 8 8 8 \n", + "178 Skin C0013595 2 2 2 \n", + "179 Skin C0042900 1 1 1 \n", + "\n", + " feature \n", + "0 biomarker \n", + "1 biomarker \n", + "2 biomarker \n", + "3 biomarker \n", + "4 biomarker \n", + ".. ... \n", + "175 biomarker \n", + "176 biomarker \n", + "177 biomarker \n", + "178 biomarker \n", + "179 biomarker \n", + "\n", + "[180 rows x 6 columns]" + ] + }, + "execution_count": 117, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "icd_marker_1 = icd_marker[['disease_id', 'class_name', 'marker']]\n", + "\n", + "icd_marker_2 = icd_marker.groupby(['class_name', 'disease_id']).count()#agg(num_feature_disease=('marker_id', sum))\n", + "icd_marker_2 = icd_marker_2.reset_index()\n", + "# icd_marker_1 = icd_marker.reset_index()\n", + "icd_marker_2 = icd_marker_2.rename(columns={'marker': 'num_feature_disease'})\n", + "icd_marker_2['feature'] = 'biomarker'\n", + "icd_marker_2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Plotting the biomarker and feature distribution per ICD-10 disease group**" + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(0.5, 1.0, 'Biomarker and gene distribution per ICD10 disease group')]" + ] + }, + "execution_count": 118, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df_to_plot = pd.concat([icd_marker_2, disease_gene_icd_test])\n", + "fig, ax = plot.subplots(figsize = (9, 9)) \n", + "plot.xlim(0, 100)\n", + "ax = sns.boxplot(data=df_to_plot, x='num_feature_disease', y='class_name', hue='feature')\n", + "ax.set(xlabel='num_feature_disease', ylabel='class_name')\n", + "ax.set(title='Biomarker and gene distribution per ICD10 disease group')" + ] + }, + { + "cell_type": "code", + "execution_count": 119, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(0.5, 1.0, 'Variant and gene distribution per ICD10 disease group')]" + ] + }, + "execution_count": 119, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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GWcwefJkVq9ezcyZM/n+97+fu+M2CCVzZWDevHmFDkFERCTnHnvsMX72s59x9NFHc+aZZ/KTn/xk+7pnnnmGr3zlK6xcuZLdd9+d97///dxyyy2cfPLJdHd3M2vWLL797W/zoQ99iIULF7J06VIefvhhmpqaOPHEE9lzzz1ZunQpEyZM4IknnuDjH/84K1YEj3m97777eOihh9h///23z1Dx2GOPcdppp/Hzn/+cGTNm8L73vY8rrriCadOmce+99/KFL3yBP//5zwA8/vjjLFu2jMrK/MxrrmROREREitJ+++3H0UcfDcAnPvGJAafd77//fmbNmsWb3vQmAE4//XTuuusuTj75ZHbaaScaGxsBOOywwxg/fjzjxo3jsMMO256cbdu2jbPPPps1a9ZQWVnJ448/vr3tt73tbey///7bl59//nlOOukkbrrpJg455BA2b97M3/72Nz7ykY9s32br1jembP/IRz6St0QOlMyJiIhIkTKzQZfdB3+Kw7hx47ZvW1FRwfjx47e/7n8Y9Q9+8AP22msvHnjgAfr6+pgwYcL2+hMnThzQ3q677sp+++3H3XffzSGHHEJfXx+77bYba9asSdl/cv3RprtZRUREpCht2LCBe+65B4Drr7+eY445Zvu6t7/97dx555288MIL9Pb2cv311/Pe96Z/Xd8rr7zC3nvvTUVFBddcc82QNzvstNNO3HLLLbS3t3Pdddexyy67sP/++/PrX/8aCBLLBx54YIR7mT0lcyIiIlKUDjroINra2pg+fTovvvgin//857ev23vvvbnkkks49thjOfzww5k5cyYnnXRS2m1/4QtfoK2tjXe84x08/vjjw46mTZw4kdtvv50f/OAH3HrrrVx77bX87Gc/4/DDD+eQQw7h1ltvHfF+ZsuGGqaU4tTQ0OD9F2mKiIjk2iOPPMJBBx20fbmYHk1S6pKPLYCZrXT3hpG2qWvmREREZEhjNfEqFTrNKiIiIlLClMyJiIiIlDAlcyIiIiIlTMmciIiISAlTMiciIiJSwpTMiYiISNk57rjjePnll0dU95ZbbuHhhx/ObUCjqGweTWJmvcBagn16BGhy9y2FjUpERKT0nfffZ/PKCxtz1t6ue+zFxd//Uc7aS+TuuDtLliwZcRu33HILJ5xwAgcffHAOIxs9ZZPMAT3uPgPAzK4FPgdc1r/SzCrd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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df_to_plot = pd.concat([icd_marker_2, disease_variant_icd_test])\n", + "fig, ax = plot.subplots(figsize = (9, 9)) \n", + "#ax.set_xscale(\"log\")\n", + "plot.xlim(0, 100)\n", + "ax = sns.boxplot(data=df_to_plot, x='num_feature_disease', y='class_name', hue='feature')\n", + "ax.set(xlabel='num_feature_disease', ylabel='class_name')\n", + "ax.set(title='Variant and gene distribution per ICD10 disease group')" + ] + }, + { + "cell_type": "code", + "execution_count": 121, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(0.5, 1.0, 'Pathway and gene distribution per ICD10 disease group')]" + ] + }, + "execution_count": 121, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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rOTFF1/sqvsjH/kIe+yxR9f8G2+8wUknncQdd9zB/vvvT2trK48++iinn356V5lNmzZ1TZ9++ulUVubv+j6RcqRETUSkn5lZ2vlgVLzUBg4c2FW2oqKCQYMGdU23t7cDcPXVVzNixAiefvppOjs7GTx4cNf2Q4cO3aK+HXbYgd13351HHnmE/fffn87OTnbccUeWLVuWcv/J24tI31OiVsKi0WiPA7c3hxfQj8zDBfSRSETXxUlZWr16NY899hgf+9jHuOWWWzjyyCO5997g7svDDjuM+vp63nzzTXbaaSduueWWrD4n69atY7fddqOiooKGhgY6OjrSlt1uu+3485//zGc+8xmqq6v58pe/zB577MFtt93G6aefjruzfPlyPvzhD2/zMYtI7yhRK2GxWIxlzzxHx5DhactUblwHwL839e9boXLj2n7dn0gh2XfffWloaOAb3/gGY8aM4bzzzutK1HbZZReuuOIKPvGJT+DuHHfccZx00kkZ1/3Nb36TU089ldtuu41PfOITPbaCDR06lPvuu48JEyYwdOhQbrrpJs477zxmzpzJ5s2b+eIXv6hETSSPrLtmdilMdXV1vnhxz0M91dfX89TLa2jbJ/0wolXPzwfotkxfqHp+PofsOUJ3iUm/e+6559h333275s//zvf4z5u5+8PhgzsP59pf/nfO6isWyedVRDJnZk+5e8rn26hFrUREo1GgeB6xUfHuOzQ3t+c7DJGyTKpEpHgoUSsRPV2LVmisczNtbW35DkNERKSg6TlqIiIiIgVKLWolorm5mba2Nurr67uWxWIxKt7TNYgiIiLFSi1qIiIiIgVKLWolIv4ctMS7KON3fYqIiEhxKokWNTP7kJn90cz+z8yeNbP5ZrZ3nmOab2Y7hv++2fMWYGatfR2XiBSXuXPn8tprr3XNjx49mjfffDOPEYlIfyr6FjULxlO5C2hw9y+Gy8YCI4AXu9m0T7n7cWEso4FvAtd1u8E2ikQifVl9znnFQKqqqvIdhggX/r/zWfdm7lqed9h5BJf/4tqc1Td37lwOOOAAdt1115zVKSLFo+gTNeATwGZ3/018gbsvs8B/A8cCDsx091vN7BhgBvAmcADwFPAVd3czOw74ZbhuCbCnu59gZkOBKHAgwTmb4e53m9lZwInAEGAv4C53/z6AmTUBdcDPgL3MbBmwALgEuBvYCRgITHf3u7f1JBTL89PiOgcPY+TIEfkOQ4R1b67hB3s9n7P6fv5/3a9vampi4sSJHHbYYSxdupS9996befPmcdVVV3HvvffS1tbG4Ycfzv/8z/9wxx13sHjxYs444wyqqqp47LHHgOC5iffeey+bN2/mtttuY5999uHAAw/k4YcfZocddmDnnXfm6quvZtKkSZx55plMnjyZSCTCmWeeyYYNGwC49tprOfzwwznzzDM57bTTukY/OOOMM/jCF77AiSeemLNzIiK9VwqJWjzZSvY5YCzwYWBn4Ekz+3u47mBgf+A14BHgCDNbDPwP8HF3f8XMbkmo68fA39z9bDPbEXjCzBaG68aG9W0CXjCzqLv/K2HbHwIHuPtYADMbAJzi7u+Y2c7AP83sHu+jISIqN67tGn0g5frW/4A71Utu7Ivdp9fRTiy2fou7VHuSz3FJJTMavzUzL7zwAr/73e844ogjOPvss7nuuus4//zzueiiiwA488wzue+++zjttNO49tprueqqq6ire/+h5TvvvDNLlizhuuuu46qrruL666/niCOO4JFHHmHUqFHsueeePPzww0yaNIl//vOf/PrXv6aiooIFCxYwePBgXnrpJb70pS+xePFizjnnHK6++mpOOukk1q1bx6OPPkpDQ0O+To2IJCmFRC2dI4Fb3L0DWGNmDwGHAu8AT7j7qwBhS9dooBV42d1fCbe/BZgSTn8aONHMvhvODwZqw+m/uvu6sK5ngVFAYqKWzIDLzezjQCcwkqCb9t/dHYyZTYnHU1tb213RLpl0h65c+SZ0bCay/caM6syt99i0quehsOI2rK8EYFP7630VkGyD1a2V+Q6haOy+++4cccQRAHzlK19h9uzZ7LHHHlx55ZVs3LiRtWvXsv/++/PZz3425faf+9znADjkkEO48847ATjqqKP4+9//zqhRozjvvPOYM2cOzc3NDB8+nOrqatatW8f555/PsmXLqKys5MUXgytDjj76aL71rW/xn//8hzvvvJNTTz2VAQNK+adBpLiUwqdxJXBaiuXWzTabEqY7CM5Dd+UNONXdX9hiodlhaerqzhnAB4BD3H1z2EU6uIdtcPc5wBwIxvrsqTxk1h1aX1/PplWLuXDcO5lUmVeXLxkGUBSxlqP46yM9Cy6t3XL+m9/8JosXL2b33XdnxowZvPvuu2m3HzRoEACV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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df_to_plot = pd.concat([icd_marker_2, disease_pathways_icd_test])\n", + "fig, ax = plot.subplots(figsize = (9, 9)) \n", + "plot.xlim(0, 150)\n", + "ax = sns.boxplot(data=df_to_plot, x='num_feature_disease', y='class_name', hue='feature')\n", + "ax.set(xlabel='num_feature_disease', ylabel='class_name')\n", + "ax.set(title='Pathway and gene distribution per ICD10 disease group')" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [], + "source": [ + "#################################################" + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + ":5: UserWarning: Attempted to set non-positive left xlim on a log-scaled axis.\n", + "Invalid limit will be ignored.\n", + " plot.xlim(0, 200)\n" + ] + }, + { + "data": { + "text/plain": [ + "[Text(0.5, 0, 'log_num_feature_disease'), Text(0, 0.5, 'class_name')]" + ] + }, + "execution_count": 122, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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YWbNmsUNN9zAAw88QGtrK5WVlXm35k0m1VETERGRyN15553cdtttXHbZZUBQImT16tXssccenH/++duTqmeffTbvaVdWVnLSSScB8Mc//pFly5Zx2GGHAdDd3c2uu+5auAUpMCVqIiIiEjl35+abb+a1r33ty16/6KKLmD17No899hgDAwNUVVUNO/6UKVMYGBjY/nxwvbKqqioqKyu3z+eMM87g61//ehGWovB06lNEREQi9853vpPLL78cdwegpaUFgM2bN7P77rtTUVHBT3/60+3Xk82YMYMtW7ZsH3/evHm0trYyMDDA888/zyOPPDLsfN72trdx00038fe//x2ATZs28be//a2YizYhalFLqKamJtra2qIOQ4bIZDIAzJkzJ+JIpBjq6+u3Xz8jIvn5whe+wMc//nEOPPBA3J158+Zx++23c95553HSSSdx4403cswxx7DDDjsAcOCBBzJlyhQOOuggzjzzTD7+8Y+z9957c8ABBzB//nwOOeSQYeez//77c8kll3DssccyMDDA1KlT+f73v8+rX/3qyVzcnFk2c5XS0djY6M3NzaMOk0qleHbFcubWxrcnSzn625ag6f3VM/S5JM3qjkr2nX8ITU1NUYciMmFPPfUU++23X9RhJNJw69bMlrl743DDq0UtoTKZDNMrnAsbO6IORQa5pLkWQJ9LAmU/W8lPNrFVS6TI8JSoJVR3dzcD/bpPm4jEmy7REBmdEjURkQJY11XBtnRaLUN5SqfTVFdXRx2GSGyp16eIiIhITJVVi5qZ9QNPECz3U8AZ7t6V47h7AE3ufvI45/1xYMlY8zOzpcAF7j56bwERiZXZNQNUzWtQZ4I8qQVSZHTl1qLW7e4L3H0+sA34SC4jmdkUd39xvEla6ONAzQTGz0t1dTVVlerRKyLxVl9fT319fdRhiMRWWbWoDXE/cKCZ7QBcDhxAsD4ucvdfmdmZwHuBKmAHMzsLuN3d54fvHUeQeO0D3OLunwYws/8FDgOqgZvc/UtmlgL2AO4xsw3ufsxwwxV6ATdvq+Cce2YWerIlY9tA0JliWkV8EtaesINHOX8uAFWVzuyagbEHLCGrOyrZN+ogSpBa1ErDRz9+Aes2bCrY9GbvsjPf/85low6zatUqFi1axIoVK172+oc+9CE++clPsv/++xcsnvHEMVnKMlEzsynAu4HfAZ8H7nb3s8ysDnjEzP4QDnokcKC7bzKzeUMmswA4GOgBnjGzy939eeDz4fCVwB/N7EB3bzKzTwLHuPuGcPzhhnt8lJgXA4sB5s6dm9Ny9k+Frroy7vnZHjz0xWkdhFU5umpjFNNka4eKqTOomtcQdSQFtS+oZUgSa92GTTy3+8LCTXDN0nGP+uMf/7hwcYwhexeE8err62PKlImlWuWWqFWbWWv4//3AFcCDwHFmdkH4ehWQzYTucveRDiH+6O6bAcxsJfBq4HngX8OkagqwO7A/MFwClutwALj7EmAJBAVvx17UYMoDC5PVapGPiqXBmf1yXgdxVHF7BdXV1bqWS0TG1NfXxxlnnEFLSwv77rsv11xzDe95z3u47LLLaGxs5Prrr+drX/sa7s573/tevvGNbwBQW1vLRz/6Uf7whz+w00478bWvfY1Pf/rTrF69mu985zscd9xxrFq1itNPP53Ozk4Avve97/HGN76RpUuX8uUvf5ndd9+d1tZWfvvb326P569//SsnnXQSS5YsYeedd+ajH/0o69evp6amhh/96Ee87nWv48wzz2TnnXempaWFQw45hP/5n/+Z0Doot0St290XDH7BzAw4yd2fGfL64UDnKNPqGfR/PzDFzPYGLgAOc/d/mNlVBInfy+Q63ER0d3dDXyGnKFIgfeH3U0RkDM888wxXXHEFb3rTmzjrrLP4wQ9+sP29F198kc985jMsW7aMnXbaiWOPPZZbb72V448/ns7OThYuXMg3vvENTjjhBC688ELuuusuVq5cyRlnnMFxxx3Hrrvuyl133UVVVRXpdJp/+7d/I3vXn0ceeYQVK1aw9957s2rVqu2xnHrqqfzkJz9hwYIFvO1tb+OHP/whDQ0NPPzww5x33nncfffdADz77LP84Q9/2H4j+Ikot0RtOL8HPmZmH3N3N7OD3b1lnNPakSC522xmswlOry4N39sCzAA2jDGciIiIAHvttRdvetObAPjABz7wspb4Rx99lIULF/KqV70KgNNOO4377ruP448/nmnTpvGud70LgAMOOIDp06czdepUDjjggO2JV29vL+effz6tra1UVlby7LPPbp/2G97wBvbee+/tz9evX8/73vc+br75Zl7/+tfT0dHBgw8+yPvf//7tw/T0vNR+8/73v78gSRooUQO4GPgO8HjYurYKWDSeCbn7Y2bWAjwJ/BV4YNDbS4A7zGxN2JlgpOFEREQECHbLwz8f7V7lU6dO3T5sRUUF06dP3/5/X19wuunb3/42s2fP5rHHHmNgYICqqpdObGVv/J41c+ZM9tprLx544AFe//rXMzAwQF1dHa2trcPOf+j4E1FW5Tnc/RU343P3bnf/sLsf4O7z3X1R+PpV7n7+oOFWhWU9hntvkbsvDf8/0933c/f3uvuJ7n5V+Prl7v46dz9mjOEWqoaaiIgIrF69moceegiA66+/nqOOOmr7e4cffjj33nsvGzZsoL+/n+uvv563vOUtOU978+bN7L777lRUVPDTn/501I4D06ZN49Zbb+Waa67huuuuY8cdd2TvvffmxhtvBIKk8bHHHhvnUo5OLWoJVV1dTceAbvwtMTQF3TJIpMTM3mXnCfXUHHZ6Odhvv/24+uqr+fCHP0xDQwPnnnsuv/71rwHYfffd+frXv84xxxyDu/Oe97yH973vfTnHcN5553HSSSdx4403cswxx4zZCrbDDjtw++238453vIMddtiBa6+9lnPPPZdLLrmE3t5eTj31VA466KCc558rG63pUOKpsbHRsxc8jiSVStHyZAvUTU5MsdQePtZFGIO8Ujsc/PqDc+r12dTUpJt2l6FMJgPAnDlzIpl/fX192dd3e+qpp9hvv/2iDiORhlu3ZrbM3RuHG14tagmlek6Q8XBjv2c0G3sZwZ65fz/b2tp4urWV3YocksTLlvCxfcOGUYcrhrWTPkeR0SlRSzAdFUoS7AacTRkXCC5DVxCc6Ynic8/OeyzZFmFtY6XYlKgllE4XiYgUj7axMlmUqCVUJpOhu7tbR3tS0tLpdHl1TZfIbQTWp9NjbjvT6bQ6xcik0DZQREREJKbUopZQ2d5Sup+ilLJUKkX7CAUlRYphFlDX0DDmtlNnK2SyKFFLKPX6FBEpnnLbxn7uEx9l88bC9YmdOWs3vv7t7xdsekmmRC2hdLQnSbGW3HviSTKsCR+j+NzXklvpxXLbxm7euJbP1j879oA5ulR9MXKmRE1EYqvcWi0k0BEWvK2LoOBtHfrexcnFF1/Mtddey1577cUuu+zCoYceygknnMBHP/pR1q9fT01NDT/60Y943etex5lnnsmOO+5Ic3Mza9eu5Zvf/CYnn3wyAP/93//NL37xC3p6ejjhhBP48pe/TGdnJ//6r/9KJpOhv7+fL3zhC5xyyikRL/ErKVETkdgqt1YLEXlJc3MzN998My0tLfT19XHIIYdw6KGHsnjxYn74wx/S0NDAww8/zHnnncfdd98NwJo1a/jTn/7E008/zXHHHcfJJ5/MnXfeSTqd5pFHHsHdOe6447jvvvtYv349e+yxB7/5zW+A4N6fcaRETURERGLnT3/6E+973/u2l0H5l3/5F7Zu3cqDDz7I+9///u3D9fT0bP//+OOPp6Kigv33359169YBcOedd3LnnXdy8MEHA9DR0UE6neboo4/mggsu4DOf+QyLFi3i6KOPnsSly50SNREREYmd4e5FPjAwQF1dHa0j9AafPn36K8Z3dz73uc/x4Q9/+BXDL1u2jN/+9rd87nOf49hjj+WLX/xiYYIvINVRExERkdg56qij+PWvf83WrVvp6OjgN7/5DTU1Ney9997ceOONQJCEPfbYY6NO553vfCdXXnklHR0dALzwwgv8/e9/58UXX6SmpoYPfOADXHDBBSxfvrzoyzQealETERGRUc2ctVtBe2rOnLXbmMMcdthhHHfccRx00EG8+tWvprGxkZkzZ3Lttddy7rnncskll9Db28upp57KQQcdNOJ0jj32WJ566imOPPJIAGpra/nZz35GW1sbn/rUp6ioqGDq1Kn87//+b8GWr5BsuKZFibfGxkZvbm6OOgwREUmop556iv322y/qMOjo6KC2tpauri7e/OY3s2TJEg455JCow5qQ4datmS1z98bhhleLmoiIiMTS4sWLWblyJVu3buWMM84o+SRtPJSoiYiISCxdd911UYcQOXUmEBEREYkpJWoiIiIiMaVETURERCSmlKiJiIiIxJQ6E4iIiMiozv9/57Nu47qCTW/2rNl873++V7DpDec973kP1113HXV1dXmPe+utt7Lvvvuy//77Fz6wPClRExERkVGt27iOFw99sXATXFa4SQ3l7rg7v/3tb8c9jVtvvZVFixbFIlHTqU8RERGJnc985jP84Ac/2P78oosu4stf/jJve9vbOOSQQzjggAP41a9+BcCqVavYb7/9OO+88zjkkEN4/vnnmTdvHhs2bACCm7UfeuihvP71r2fJkiXbp1lbW8vnP/95DjroII444gjWrVvHgw8+yG233canPvUpFixYwF/+8heamprYf//9OfDAAzn11FMndT2oRU1EctbU1ERbWwHvI5NAmUwGgDlz5kQciZST+vp6UqlU1GEU1KmnnsrHP/5xzjvvPAB+8Ytf8Lvf/Y5PfOIT7LjjjmzYsIEjjjiC4447DoBnnnmGn/zkJy9L7rKuvPJKdt55Z7q7uznssMM46aSTmDVrFp2dnRxxxBF89atf5dOf/jQ/+tGPuPDCCznuuONYtGgRJ598MgCXXnopzz33HNOnT6e9vX3S1gEoURORPLS1tfHsiuXMre2POpTY6txSCcDWvjURRyLlYnVHZdQhFMXBBx+8/ebp69evZ6eddmL33XfnE5/4BPfddx8VFRW88MILrFsXXDv36le/miOOOGLYaTU1NXHLLbcA8Pzzz5NOp5k1axbTpk1j0aJFABx66KHcddddw45/4IEHctppp3H88cdz/PHHF35hR6FETRKrqakJIHFHmVGbW9vPhY0dUYcRW5c01wJoHcmkyX7nkujkk0/mpptuYu3atZx66qlce+21rF+/nmXLljF16lTmzZvH888/D8AOO+ww7DSWLl3KH/7wBx566CFqampYuHAhW7duBWDq1KmYGQCVlZX09fUNO43f/OY33Hfffdx2221cfPHFPPnkk0yZMjkplBI1SSydohMRKW2nnnoq55xzDhs2bODee+/lF7/4BbvuuitTp07lnnvu4W9/+xvbtm0bdRqbN29mp512oqamhqeffpo///nPY853xowZbNmyBYCBgQGef/55jjnmGI466iiuu+46Ojo6xtWbdDyUqEliZTIZuru71aJWQOl0mmm96oMkEifruirYlk4XdFt3yimnsHr16u3PZ9bOpO/h4VubxmNm3cyXTX8kM2bMYNOmTcyaNYve3l7e8pa3cPXVV3PggQey//77s88++9DT00NFxcjbpXe961388Ic/5MADD+S1r33tiKdHB8smiE1NTfz85z/n7LPPZvPmzbg7n/jEJyYtSQMlaiIiIjKGL376i5HN+84779z+/84778ytt976sve3bt1KRUUFK1aseNnrq1at2v7/HXfcMey0OzpeukTh5JNP3t554E1vehMrV67c/t6f/vSn8YY/YYlJ1MysH3iCYJmeAs5w965oo5IoZXvdZa9Vk4lLpVJsXfVo1GGIyCCzawaomtdQ0G3dU089xdy5cws2vWLKpWWulCXpHEa3uy9w9/nANuAjg980s2R2i5ER1dfXU19fH3UYIiJSRNOnT2f69OlRh1E0iWlRG+J+4EAzWwh8CVgDLDCzA4BLgYXAdOD77v5/ZlYBfA94C/AcQQJ7pbvfZGargKuBfwGmAu9396fN7A3Ad4BqoBv4oLs/Y2ZnAscBNcA+wC3u/mkAM3sX8DWgEtgAvAN4Bniju68P43gWOMLdNxRt7ZQJXZtWHKs7KiPpZbauq4Kt/Tbp881XTxjjOffMzHvcbQPGFHP23lHlTyR3qzsq2TfqICI0e/bsqEMoqsQlamY2BXg38LvwpTcA8939OTNbDGx298PMbDrwgJndCRwKzAMOAHYlOHV65aDJbnD3Q8zsPOAC4EPA08Cb3b3PzN5OkICdFA6/ADgY6AGeMbPLga3Aj8JxnjOznd19wMx+BpxGkPS9HXhsuCQtjH0xUDLN0ZI8UbZQbkun6fIOqIsshNyEl7x01Y4jqdwAzhSq5h1S2Jgk0fYl2t+mFFeSErVqM2sN/78fuAJ4I/CIuz8Xvn4sQUvbyeHzmUADcBRwo7sPAGvN7J4h0/5l+LgMOHHQuFebWQPgBK1tWX90980AZrYSeDWwE3BfNhZ33xQOeyXwK4JE7SzgJ8MtnLsvAZYANDY2+lgrQzXEpBii/D6lUilaXmhhYOFAZDEUW8XNFVRUVOi6ShHZLkmJWre7Lxj8QljErnPwS8DH3P33Q4Z77xjT7gkf+3lpnV0M3OPuJ5jZPGDpMMMPHscIErqXcffnzWydmb0VOJygdW3CVENMpAR5ULNJRCQrSYlaLn4PnGtmd7t7r5ntC7wA/Ak4w8yuBl5FcA3bdWNMa2Y4LsCZOcz7IeD7Zrb3oFOf2Va1HwM/A37q7gW5OEU1xCRp0uk0KIcRicSnzz+f9nV/L9j06mbvyje/972CTQ/gqquu4thjj2WPPfYAYN68eTQ3N7PLLrsUdD6TrdwStR8TXIu23ILmtvXA8cDNwNuAFQQX8z8MbB5jWt8kOPX5SeDusWYcdhZYDPwy7DTwd4LOBAC3EZzyHPa0p4iISJTa1/2d08J7ahbCtQWb0kuuuuoq5s+fvz1RS4rEJGru/opuaO6+lEGnJMNr0P4r/HsZM7vA3TvMbBbwCEFNNtx93qDxmwla23D3h+BlHW2+EL5+FXDVoHEWDfr/DmC4qnsHEXQieHr0pcydaohJ0mSvUROR8rBq1Sre9a53cfjhh9PS0sK+++7LNddcw2WXXcavf/1ruru7eeMb38j//d//cfPNN9Pc3Mxpp51GdXU1Dz30EACXX345v/71r+nt7eXGG2/kda97HQcccAD3338/M2fOZJddduHb3/42//Ef/8Hpp5/OGWecQX19PaeffjqdncGVU9/73vd44xvfyOmnn87JJ5/M+973PgBOO+00TjnlFI477riirock1VGbqNvDzgj3Axe7+9rJmKmZfZagRe9zkzE/ERGRUvHMM8+wePFiHn/8cXbccUd+8IMfcP755/Poo4+yYsUKuru7uf322zn55JNpbGzk2muvpbW1lerqagB22WUXli9fzrnnnstll10GBHcdeOCBB3jyySd5zWtew/333w/An//8Z4444gh23XVX7rrrLpYvX84NN9yw/RKiD33oQ/zkJ8GJr82bN/Pggw/ynve8p+jrQIlayN0XhgVz9w9bxSZrvpe6+6vdvaD3p1CxV5ESZIx6z0KRcrPXXnvxpje9CYAPfOAD/OlPf+Kee+7h8MMP54ADDuDuu+/mySefHHH8E08MCjUceuih228pdfTRR3Pfffdx3333ce655/LEE0/wwgsvsPPOO1NbW0tvby/nnHMOBxxwAO9///u330rqLW95C21tbfz973/n+uuv56STTmLKlOKfmEzMqU95OXUikERqh4qlCU5knERXWIfgcoxS6ZWeyWSAly4lKSdDb8re11+4G7LnI6ze8LLn5513Hs3Nzey1115cdNFFbN26dcTxs7+nyspK+vqCZXjzm9/M97//fVavXs1Xv/pVbrnlFm666SaOPvpoAL797W8ze/ZsHnvsMQYGBqiqqto+vdNPP51rr72Wn//851x55ZWvnGERKFETkZJQDi3EGc9QV1cXdRhF1dbWxtOtrewWdSA52BI+tm8ovxvFDJxwAv1dg26XPTBm+c6iWL16NQ899BBHHnkk119/PUcddRQPPvggu+yyCx0dHdx0003bb6Q+Y8YMtmzZMsYUg1a6DRs2sG3bNl7zmtdw1FFHcdlll/G9sBfq5s2bmTNnDhUVFVx99dX0979UjOHMM8/kDW94A7vtthuvf/3ri7PQQyhRE5GcRVlIWa3EybEbcDbxvx3YFWHpy1KItdBqgcFFLXbaeSd+OsrwAwAVxpTK3NKKutm75jTcfvvtx9VXX82HP/xhGhoaOPfcc/nHP/7BAQccwLx58zjs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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df_to_plot = pd.concat([icd_marker_2, disease_gene_icd_test, disease_variant_icd_test, disease_pathways_icd_test])\n", + "fig, ax = plot.subplots(figsize = (9, 13)) \n", + "#plot.xlim(0, 150)\n", + "ax.set_xscale(\"log\")\n", + "plot.xlim(0, 200)\n", + "ax = sns.boxplot(data=df_to_plot, x='num_feature_disease', y='class_name', hue='feature', showfliers = False)\n", + "ax.set(xlabel='log_num_feature_disease', ylabel='class_name')\n", + "#ax.set(title='Biomarkers, genes, variants and pathways distribution per ICD10 disease group')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/TFM DISNET biolayer expansion codes/TFM Pablo Soto ncRNA data processing, integration and analysis.ipynb b/TFM DISNET biolayer expansion codes/TFM Pablo Soto ncRNA data processing, integration and analysis.ipynb new file mode 100644 index 0000000..7d852a6 --- /dev/null +++ b/TFM DISNET biolayer expansion codes/TFM Pablo Soto ncRNA data processing, integration and analysis.ipynb @@ -0,0 +1,11794 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**In this notebook data from HMDD database and LncRNADisease database related to miRNA-disease, lncRNA-disease and circRNA-disease associations is processed, inserted into SQL tables and analysed.**" + ] + }, + { + "cell_type": "code", + "execution_count": 208, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "***HMDD Database data processing***" + ] + }, + { + "cell_type": "code", + "execution_count": 209, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
categorymirdiseasemesh_namepmidcausality
0circulation_biomarker_diagnosis_downhsa-mir-15aLeukemia, Lymphocytic, Chronic, B-CellLeukemia, Lymphocytic, Chronic, B-Cell15737576no
1circulation_biomarker_diagnosis_downhsa-mir-16Leukemia, Lymphocytic, Chronic, B-CellLeukemia, Lymphocytic, Chronic, B-Cell15737576no
2circulation_biomarker_diagnosis_downhsa-mir-143Colon NeoplasmsColonic Neoplasms16195701no
3circulation_biomarker_diagnosis_downhsa-mir-145Colon NeoplasmsColonic Neoplasms16195701no
4circulation_biomarker_diagnosis_downhsa-mir-223Leukemia, Lymphocytic, Chronic, B-CellLeukemia, Lymphocytic, Chronic, B-Cell16251535no
.....................
35542tissue_expression_uphsa-mir-3648Neoplasms [unspecific]Neoplasms30384176no
35543tissue_expression_uphsa-mir-3687Neoplasms [unspecific]Neoplasms30384176no
35544tissue_expression_uphsa-mir-4746Neoplasms [unspecific]Neoplasms30384176no
35545tissue_expression_uphsa-mir-760Neoplasms [unspecific]Neoplasms30384176no
35546tissue_expression_uphsa-mir-96Neoplasms [unspecific]Neoplasms30384176no
\n", + "

35547 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " category mir \\\n", + "0 circulation_biomarker_diagnosis_down hsa-mir-15a \n", + "1 circulation_biomarker_diagnosis_down hsa-mir-16 \n", + "2 circulation_biomarker_diagnosis_down hsa-mir-143 \n", + "3 circulation_biomarker_diagnosis_down hsa-mir-145 \n", + "4 circulation_biomarker_diagnosis_down hsa-mir-223 \n", + "... ... ... \n", + "35542 tissue_expression_up hsa-mir-3648 \n", + "35543 tissue_expression_up hsa-mir-3687 \n", + "35544 tissue_expression_up hsa-mir-4746 \n", + "35545 tissue_expression_up hsa-mir-760 \n", + "35546 tissue_expression_up hsa-mir-96 \n", + "\n", + " disease \\\n", + "0 Leukemia, Lymphocytic, Chronic, B-Cell \n", + "1 Leukemia, Lymphocytic, Chronic, B-Cell \n", + "2 Colon Neoplasms \n", + "3 Colon Neoplasms \n", + "4 Leukemia, Lymphocytic, Chronic, B-Cell \n", + "... ... \n", + "35542 Neoplasms [unspecific] \n", + "35543 Neoplasms [unspecific] \n", + "35544 Neoplasms [unspecific] \n", + "35545 Neoplasms [unspecific] \n", + "35546 Neoplasms [unspecific] \n", + "\n", + " mesh_name pmid causality \n", + "0 Leukemia, Lymphocytic, Chronic, B-Cell 15737576 no \n", + "1 Leukemia, Lymphocytic, Chronic, B-Cell 15737576 no \n", + "2 Colonic Neoplasms 16195701 no \n", + "3 Colonic Neoplasms 16195701 no \n", + "4 Leukemia, Lymphocytic, Chronic, B-Cell 16251535 no \n", + "... ... ... ... \n", + "35542 Neoplasms 30384176 no \n", + "35543 Neoplasms 30384176 no \n", + "35544 Neoplasms 30384176 no \n", + "35545 Neoplasms 30384176 no \n", + "35546 Neoplasms 30384176 no \n", + "\n", + "[35547 rows x 6 columns]" + ] + }, + "execution_count": 209, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#S1_HMDD3_causal_info.xlsx is the HMDD3 causal association information dataset from HMDD database. \n", + "#Contains MiRNA-disease associations\n", + "hmdd_data = pd.read_excel(\"S1_HMDD3_causal_info.xlsx\")\n", + "hmdd_data" + ] + }, + { + "cell_type": "code", + "execution_count": 210, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "640" + ] + }, + "execution_count": 210, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#counts the number of different diseases in MeSH terminology (column \"mesh_name\")\n", + "hmdd_data['mesh_name'].nunique()" + ] + }, + { + "cell_type": "code", + "execution_count": 211, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
mircausalitycategorymesh_name
0hsa-mir-15anocirculation_biomarker_diagnosis_downLeukemia, Lymphocytic, Chronic, B-Cell
1hsa-mir-16nocirculation_biomarker_diagnosis_downLeukemia, Lymphocytic, Chronic, B-Cell
2hsa-mir-143nocirculation_biomarker_diagnosis_downColonic Neoplasms
3hsa-mir-145nocirculation_biomarker_diagnosis_downColonic Neoplasms
4hsa-mir-223nocirculation_biomarker_diagnosis_downLeukemia, Lymphocytic, Chronic, B-Cell
...............
35541hsa-mir-301bnotissue_expression_upNeoplasms
35542hsa-mir-3648notissue_expression_upNeoplasms
35543hsa-mir-3687notissue_expression_upNeoplasms
35544hsa-mir-4746notissue_expression_upNeoplasms
35545hsa-mir-760notissue_expression_upNeoplasms
\n", + "

27353 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " mir causality category \\\n", + "0 hsa-mir-15a no circulation_biomarker_diagnosis_down \n", + "1 hsa-mir-16 no circulation_biomarker_diagnosis_down \n", + "2 hsa-mir-143 no circulation_biomarker_diagnosis_down \n", + "3 hsa-mir-145 no circulation_biomarker_diagnosis_down \n", + "4 hsa-mir-223 no circulation_biomarker_diagnosis_down \n", + "... ... ... ... \n", + "35541 hsa-mir-301b no tissue_expression_up \n", + "35542 hsa-mir-3648 no tissue_expression_up \n", + "35543 hsa-mir-3687 no tissue_expression_up \n", + "35544 hsa-mir-4746 no tissue_expression_up \n", + "35545 hsa-mir-760 no tissue_expression_up \n", + "\n", + " mesh_name \n", + "0 Leukemia, Lymphocytic, Chronic, B-Cell \n", + "1 Leukemia, Lymphocytic, Chronic, B-Cell \n", + "2 Colonic Neoplasms \n", + "3 Colonic Neoplasms \n", + "4 Leukemia, Lymphocytic, Chronic, B-Cell \n", + "... ... \n", + "35541 Neoplasms \n", + "35542 Neoplasms \n", + "35543 Neoplasms \n", + "35544 Neoplasms \n", + "35545 Neoplasms \n", + "\n", + "[27353 rows x 4 columns]" + ] + }, + "execution_count": 211, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Selection of the columns of interest. These are \"mir\", \"mesh_name\", \"category\" and \"causality\".\n", + "#column \"category\" informs about the type of relationship between a certain miRNA and a certain disease\n", + "#column \"causality\" specifies whether a miRNA is significantly involved in the disease mechanism or not)\n", + "hmdd_data = hmdd_data[['mir','causality', 'category', 'mesh_name']].drop_duplicates()\n", + "hmdd_data" + ] + }, + { + "cell_type": "code", + "execution_count": 212, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "False\n", + "False\n", + "False\n", + "True\n" + ] + } + ], + "source": [ + "#checking if there are columns with NaN values\n", + "print(hmdd_data['mir'].isnull().values.any())\n", + "print(hmdd_data['causality'].isnull().values.any())\n", + "print(hmdd_data['category'].isnull().values.any())\n", + "print(hmdd_data['mesh_name'].isnull().values.any())" + ] + }, + { + "cell_type": "code", + "execution_count": 213, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
mircausalitycategorymesh_name
0hsa-mir-15anocirculation_biomarker_diagnosis_downLeukemia, Lymphocytic, Chronic, B-Cell
1hsa-mir-16nocirculation_biomarker_diagnosis_downLeukemia, Lymphocytic, Chronic, B-Cell
2hsa-mir-143nocirculation_biomarker_diagnosis_downColonic Neoplasms
3hsa-mir-145nocirculation_biomarker_diagnosis_downColonic Neoplasms
4hsa-mir-223nocirculation_biomarker_diagnosis_downLeukemia, Lymphocytic, Chronic, B-Cell
...............
35541hsa-mir-301bnotissue_expression_upNeoplasms
35542hsa-mir-3648notissue_expression_upNeoplasms
35543hsa-mir-3687notissue_expression_upNeoplasms
35544hsa-mir-4746notissue_expression_upNeoplasms
35545hsa-mir-760notissue_expression_upNeoplasms
\n", + "

25659 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " mir causality category \\\n", + "0 hsa-mir-15a no circulation_biomarker_diagnosis_down \n", + "1 hsa-mir-16 no circulation_biomarker_diagnosis_down \n", + "2 hsa-mir-143 no circulation_biomarker_diagnosis_down \n", + "3 hsa-mir-145 no circulation_biomarker_diagnosis_down \n", + "4 hsa-mir-223 no circulation_biomarker_diagnosis_down \n", + "... ... ... ... \n", + "35541 hsa-mir-301b no tissue_expression_up \n", + "35542 hsa-mir-3648 no tissue_expression_up \n", + "35543 hsa-mir-3687 no tissue_expression_up \n", + "35544 hsa-mir-4746 no tissue_expression_up \n", + "35545 hsa-mir-760 no tissue_expression_up \n", + "\n", + " mesh_name \n", + "0 Leukemia, Lymphocytic, Chronic, B-Cell \n", + "1 Leukemia, Lymphocytic, Chronic, B-Cell \n", + "2 Colonic Neoplasms \n", + "3 Colonic Neoplasms \n", + "4 Leukemia, Lymphocytic, Chronic, B-Cell \n", + "... ... \n", + "35541 Neoplasms \n", + "35542 Neoplasms \n", + "35543 Neoplasms \n", + "35544 Neoplasms \n", + "35545 Neoplasms \n", + "\n", + "[25659 rows x 4 columns]" + ] + }, + "execution_count": 213, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#some rna-disease associations have NaN values in the \"mesh_name\" column\n", + "#in this case, we won't consider those associations for our analysis.\n", + "hmdd_data_1 = hmdd_data.dropna()\n", + "hmdd_data_1" + ] + }, + { + "cell_type": "code", + "execution_count": 214, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + ":3: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " hmdd_data_1['source_id'] = 5\n", + ":4: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " hmdd_data_1['source_name'] = \"HMDD v3.2\"\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
mircausalitycategorymesh_namesource_idsource_name
0hsa-mir-15anocirculation_biomarker_diagnosis_downLeukemia, Lymphocytic, Chronic, B-Cell5HMDD v3.2
1hsa-mir-16nocirculation_biomarker_diagnosis_downLeukemia, Lymphocytic, Chronic, B-Cell5HMDD v3.2
2hsa-mir-143nocirculation_biomarker_diagnosis_downColonic Neoplasms5HMDD v3.2
3hsa-mir-145nocirculation_biomarker_diagnosis_downColonic Neoplasms5HMDD v3.2
4hsa-mir-223nocirculation_biomarker_diagnosis_downLeukemia, Lymphocytic, Chronic, B-Cell5HMDD v3.2
.....................
35541hsa-mir-301bnotissue_expression_upNeoplasms5HMDD v3.2
35542hsa-mir-3648notissue_expression_upNeoplasms5HMDD v3.2
35543hsa-mir-3687notissue_expression_upNeoplasms5HMDD v3.2
35544hsa-mir-4746notissue_expression_upNeoplasms5HMDD v3.2
35545hsa-mir-760notissue_expression_upNeoplasms5HMDD v3.2
\n", + "

25659 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " mir causality category \\\n", + "0 hsa-mir-15a no circulation_biomarker_diagnosis_down \n", + "1 hsa-mir-16 no circulation_biomarker_diagnosis_down \n", + "2 hsa-mir-143 no circulation_biomarker_diagnosis_down \n", + "3 hsa-mir-145 no circulation_biomarker_diagnosis_down \n", + "4 hsa-mir-223 no circulation_biomarker_diagnosis_down \n", + "... ... ... ... \n", + "35541 hsa-mir-301b no tissue_expression_up \n", + "35542 hsa-mir-3648 no tissue_expression_up \n", + "35543 hsa-mir-3687 no tissue_expression_up \n", + "35544 hsa-mir-4746 no tissue_expression_up \n", + "35545 hsa-mir-760 no tissue_expression_up \n", + "\n", + " mesh_name source_id source_name \n", + "0 Leukemia, Lymphocytic, Chronic, B-Cell 5 HMDD v3.2 \n", + "1 Leukemia, Lymphocytic, Chronic, B-Cell 5 HMDD v3.2 \n", + "2 Colonic Neoplasms 5 HMDD v3.2 \n", + "3 Colonic Neoplasms 5 HMDD v3.2 \n", + "4 Leukemia, Lymphocytic, Chronic, B-Cell 5 HMDD v3.2 \n", + "... ... ... ... \n", + "35541 Neoplasms 5 HMDD v3.2 \n", + "35542 Neoplasms 5 HMDD v3.2 \n", + "35543 Neoplasms 5 HMDD v3.2 \n", + "35544 Neoplasms 5 HMDD v3.2 \n", + "35545 Neoplasms 5 HMDD v3.2 \n", + "\n", + "[25659 rows x 6 columns]" + ] + }, + "execution_count": 214, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Creation of columns \"source_id\" and \"source_name\".\n", + "#This will identify in DISNET where the information from miRNA-disease association comes from.\n", + "hmdd_data_1['source_id'] = 5\n", + "hmdd_data_1['source_name'] = \"HMDD v3.2\"\n", + "hmdd_data_1" + ] + }, + { + "cell_type": "code", + "execution_count": 215, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rna_idcausalitytypenamesource_idsource_name
0hsa-mir-15anocirculation_biomarker_diagnosis_downLeukemia, Lymphocytic, Chronic, B-Cell5HMDD v3.2
1hsa-mir-16nocirculation_biomarker_diagnosis_downLeukemia, Lymphocytic, Chronic, B-Cell5HMDD v3.2
2hsa-mir-143nocirculation_biomarker_diagnosis_downColonic Neoplasms5HMDD v3.2
3hsa-mir-145nocirculation_biomarker_diagnosis_downColonic Neoplasms5HMDD v3.2
4hsa-mir-223nocirculation_biomarker_diagnosis_downLeukemia, Lymphocytic, Chronic, B-Cell5HMDD v3.2
.....................
35541hsa-mir-301bnotissue_expression_upNeoplasms5HMDD v3.2
35542hsa-mir-3648notissue_expression_upNeoplasms5HMDD v3.2
35543hsa-mir-3687notissue_expression_upNeoplasms5HMDD v3.2
35544hsa-mir-4746notissue_expression_upNeoplasms5HMDD v3.2
35545hsa-mir-760notissue_expression_upNeoplasms5HMDD v3.2
\n", + "

25659 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " rna_id causality type \\\n", + "0 hsa-mir-15a no circulation_biomarker_diagnosis_down \n", + "1 hsa-mir-16 no circulation_biomarker_diagnosis_down \n", + "2 hsa-mir-143 no circulation_biomarker_diagnosis_down \n", + "3 hsa-mir-145 no circulation_biomarker_diagnosis_down \n", + "4 hsa-mir-223 no circulation_biomarker_diagnosis_down \n", + "... ... ... ... \n", + "35541 hsa-mir-301b no tissue_expression_up \n", + "35542 hsa-mir-3648 no tissue_expression_up \n", + "35543 hsa-mir-3687 no tissue_expression_up \n", + "35544 hsa-mir-4746 no tissue_expression_up \n", + "35545 hsa-mir-760 no tissue_expression_up \n", + "\n", + " name source_id source_name \n", + "0 Leukemia, Lymphocytic, Chronic, B-Cell 5 HMDD v3.2 \n", + "1 Leukemia, Lymphocytic, Chronic, B-Cell 5 HMDD v3.2 \n", + "2 Colonic Neoplasms 5 HMDD v3.2 \n", + "3 Colonic Neoplasms 5 HMDD v3.2 \n", + "4 Leukemia, Lymphocytic, Chronic, B-Cell 5 HMDD v3.2 \n", + "... ... ... ... \n", + "35541 Neoplasms 5 HMDD v3.2 \n", + "35542 Neoplasms 5 HMDD v3.2 \n", + "35543 Neoplasms 5 HMDD v3.2 \n", + "35544 Neoplasms 5 HMDD v3.2 \n", + "35545 Neoplasms 5 HMDD v3.2 \n", + "\n", + "[25659 rows x 6 columns]" + ] + }, + "execution_count": 215, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Renaming \"mir\", \"category\" and \"mesh_name\" columns with \"rna_id\", \"type\" and \"name\".\n", + "#Renaming those columns has a matching purpose with the names of the columns from DISNET databse\n", + "#This step will also be performed on the data set that contains ncRNA-disease associations.\n", + "hmdd_data_2 = hmdd_data_1.rename(columns={'mir': 'rna_id', 'category': 'type', 'mesh_name':'name'})\n", + "hmdd_data_2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "***LncRNADisease Database data processing***" + ] + }, + { + "cell_type": "code", + "execution_count": 216, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ncRNA SymbolncRNA CategorySpeciesDisease NameSampleDysfunction PatternValidated Method/Prediction MethodDescriptionPubMed ID
00610007N19RiklncRNAMus musculusDiabetic Nephropathiescell linesRegulation [down-regulated]qRT-PCRTwelve lncRNAs displayed the same expressional...28151474.0
1116HGlncRNAHomo sapiensPrader-Willi syndromeNaNExpression [differentially expressed]Meta-analysisLong ncRNA 116HG has been shown to play a role...24624135.0
21500026H17RiklncRNAMus musculusDiabetic Nephropathiescell linesRegulation [up-regulated]qRT-PCRTwelve lncRNAs displayed the same expressional...28151474.0
31700020I14RiklncRNAMus musculusDiabetic Nephropathiescell linesRegulation [down-regulated]qRT-PCRTwelve lncRNAs displayed the same expressional...28151474.0
41700020I14RiklncRNAMus musculusDiabetic Nephropathiesrenal tissues of db/db DN mice compared with d...Regulation [down-regulated]RIP//Luciferase reporter gene assay//RNA seque...Here, we have found dysexpressed long noncodin...29700282.0
..............................
206958ZSWIM8-AS1lncRNAHomo sapiensnon-small cell lung carcinomaNaNNaNTAMNaNNaN
206959ZSWIM8-AS1lncRNAHomo sapiensstomach cancerNaNNaNTAMNaNNaN
206960ZSWIM8-AS1lncRNAHomo sapiensthyroid cancerNaNNaNTAMNaNNaN
206961ZSWIM8-AS1lncRNAHomo sapiensurinary bladder cancerNaNNaNTAMNaNNaN
206962ZXF2lncRNAHomo sapienslung adenocarcinomalung tissueRegulation [up-regulated]qPCRZXF2 was overexpressed in lung adenocarcinoma ...25896422.0
\n", + "

206963 rows × 9 columns

\n", + "
" + ], + "text/plain": [ + " ncRNA Symbol ncRNA Category Species \\\n", + "0 0610007N19Rik lncRNA Mus musculus \n", + "1 116HG lncRNA Homo sapiens \n", + "2 1500026H17Rik lncRNA Mus musculus \n", + "3 1700020I14Rik lncRNA Mus musculus \n", + "4 1700020I14Rik lncRNA Mus musculus \n", + "... ... ... ... \n", + "206958 ZSWIM8-AS1 lncRNA Homo sapiens \n", + "206959 ZSWIM8-AS1 lncRNA Homo sapiens \n", + "206960 ZSWIM8-AS1 lncRNA Homo sapiens \n", + "206961 ZSWIM8-AS1 lncRNA Homo sapiens \n", + "206962 ZXF2 lncRNA Homo sapiens \n", + "\n", + " Disease Name \\\n", + "0 Diabetic Nephropathies \n", + "1 Prader-Willi syndrome \n", + "2 Diabetic Nephropathies \n", + "3 Diabetic Nephropathies \n", + "4 Diabetic Nephropathies \n", + "... ... \n", + "206958 non-small cell lung carcinoma \n", + "206959 stomach cancer \n", + "206960 thyroid cancer \n", + "206961 urinary bladder cancer \n", + "206962 lung adenocarcinoma \n", + "\n", + " Sample \\\n", + "0 cell lines \n", + "1 NaN \n", + "2 cell lines \n", + "3 cell lines \n", + "4 renal tissues of db/db DN mice compared with d... \n", + "... ... \n", + "206958 NaN \n", + "206959 NaN \n", + "206960 NaN \n", + "206961 NaN \n", + "206962 lung tissue \n", + "\n", + " Dysfunction Pattern \\\n", + "0 Regulation [down-regulated] \n", + "1 Expression [differentially expressed] \n", + "2 Regulation [up-regulated] \n", + "3 Regulation [down-regulated] \n", + "4 Regulation [down-regulated] \n", + "... ... \n", + "206958 NaN \n", + "206959 NaN \n", + "206960 NaN \n", + "206961 NaN \n", + "206962 Regulation [up-regulated] \n", + "\n", + " Validated Method/Prediction Method \\\n", + "0 qRT-PCR \n", + "1 Meta-analysis \n", + "2 qRT-PCR \n", + "3 qRT-PCR \n", + "4 RIP//Luciferase reporter gene assay//RNA seque... \n", + "... ... \n", + "206958 TAM \n", + "206959 TAM \n", + "206960 TAM \n", + "206961 TAM \n", + "206962 qPCR \n", + "\n", + " Description PubMed ID \n", + "0 Twelve lncRNAs displayed the same expressional... 28151474.0 \n", + "1 Long ncRNA 116HG has been shown to play a role... 24624135.0 \n", + "2 Twelve lncRNAs displayed the same expressional... 28151474.0 \n", + "3 Twelve lncRNAs displayed the same expressional... 28151474.0 \n", + "4 Here, we have found dysexpressed long noncodin... 29700282.0 \n", + "... ... ... \n", + "206958 NaN NaN \n", + "206959 NaN NaN \n", + "206960 NaN NaN \n", + "206961 NaN NaN \n", + "206962 ZXF2 was overexpressed in lung adenocarcinoma ... 25896422.0 \n", + "\n", + "[206963 rows x 9 columns]" + ] + }, + "execution_count": 216, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#all ncRNA-disease information LncRNADatabase.xlsx is the LncRNADisease Database dataset that contains ncRNA-disease associations\n", + "#ncRNA stands for non coding RNA\n", + "lncrna_data = pd.read_excel(\"all ncRNA-disease information LncRNADatabase.xlsx\")\n", + "lncrna_data" + ] + }, + { + "cell_type": "code", + "execution_count": 217, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ncRNA SymbolncRNA CategorySpeciesDisease NameSampleDysfunction PatternValidated Method/Prediction MethodDescriptionPubMed ID
1116HGlncRNAHomo sapiensPrader-Willi syndromeNaNExpression [differentially expressed]Meta-analysisLong ncRNA 116HG has been shown to play a role...24624135.0
717AlncRNAHomo sapiensAlzheimer's diseasebrainRegulation [up-regulated]IP//qRT-PCR//Western blot17A is expressed in human brain,and we report ...20888417.0
101B FGF-antisense transcriptslncRNAHomo sapiensendometriosisNaNExpressionqPCR//MicroarrayMihalich et al,reported patients with endometr...23781896.0
1421AlncRNAHomo sapiensastrocytomabrainExpression [differentially expressed]qPCRWe identified 24 lncRNAs suitable as normalise...25561975.0
1521AlncRNAHomo sapienscancercell line (293t)Regulation [down-regulated]Luciferase reporter gene assay//Northern blot/...A detailed investigation of the function of on...17274687.0
..............................
206958ZSWIM8-AS1lncRNAHomo sapiensnon-small cell lung carcinomaNaNNaNTAMNaNNaN
206959ZSWIM8-AS1lncRNAHomo sapiensstomach cancerNaNNaNTAMNaNNaN
206960ZSWIM8-AS1lncRNAHomo sapiensthyroid cancerNaNNaNTAMNaNNaN
206961ZSWIM8-AS1lncRNAHomo sapiensurinary bladder cancerNaNNaNTAMNaNNaN
206962ZXF2lncRNAHomo sapienslung adenocarcinomalung tissueRegulation [up-regulated]qPCRZXF2 was overexpressed in lung adenocarcinoma ...25896422.0
\n", + "

205982 rows × 9 columns

\n", + "
" + ], + "text/plain": [ + " ncRNA Symbol ncRNA Category Species \\\n", + "1 116HG lncRNA Homo sapiens \n", + "7 17A lncRNA Homo sapiens \n", + "10 1B FGF-antisense transcripts lncRNA Homo sapiens \n", + "14 21A lncRNA Homo sapiens \n", + "15 21A lncRNA Homo sapiens \n", + "... ... ... ... \n", + "206958 ZSWIM8-AS1 lncRNA Homo sapiens \n", + "206959 ZSWIM8-AS1 lncRNA Homo sapiens \n", + "206960 ZSWIM8-AS1 lncRNA Homo sapiens \n", + "206961 ZSWIM8-AS1 lncRNA Homo sapiens \n", + "206962 ZXF2 lncRNA Homo sapiens \n", + "\n", + " Disease Name Sample \\\n", + "1 Prader-Willi syndrome NaN \n", + "7 Alzheimer's disease brain \n", + "10 endometriosis NaN \n", + "14 astrocytoma brain \n", + "15 cancer cell line (293t) \n", + "... ... ... \n", + "206958 non-small cell lung carcinoma NaN \n", + "206959 stomach cancer NaN \n", + "206960 thyroid cancer NaN \n", + "206961 urinary bladder cancer NaN \n", + "206962 lung adenocarcinoma lung tissue \n", + "\n", + " Dysfunction Pattern \\\n", + "1 Expression [differentially expressed] \n", + "7 Regulation [up-regulated] \n", + "10 Expression \n", + "14 Expression [differentially expressed] \n", + "15 Regulation [down-regulated] \n", + "... ... \n", + "206958 NaN \n", + "206959 NaN \n", + "206960 NaN \n", + "206961 NaN \n", + "206962 Regulation [up-regulated] \n", + "\n", + " Validated Method/Prediction Method \\\n", + "1 Meta-analysis \n", + "7 IP//qRT-PCR//Western blot \n", + "10 qPCR//Microarray \n", + "14 qPCR \n", + "15 Luciferase reporter gene assay//Northern blot/... \n", + "... ... \n", + "206958 TAM \n", + "206959 TAM \n", + "206960 TAM \n", + "206961 TAM \n", + "206962 qPCR \n", + "\n", + " Description PubMed ID \n", + "1 Long ncRNA 116HG has been shown to play a role... 24624135.0 \n", + "7 17A is expressed in human brain,and we report ... 20888417.0 \n", + "10 Mihalich et al,reported patients with endometr... 23781896.0 \n", + "14 We identified 24 lncRNAs suitable as normalise... 25561975.0 \n", + "15 A detailed investigation of the function of on... 17274687.0 \n", + "... ... ... \n", + "206958 NaN NaN \n", + "206959 NaN NaN \n", + "206960 NaN NaN \n", + "206961 NaN NaN \n", + "206962 ZXF2 was overexpressed in lung adenocarcinoma ... 25896422.0 \n", + "\n", + "[205982 rows x 9 columns]" + ] + }, + "execution_count": 217, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#we consider only miRNA-disease associations in humans, therefore:\n", + "lncrna_data1= lncrna_data[lncrna_data.Species == \"Homo sapiens\"]\n", + "lncrna_data1" + ] + }, + { + "cell_type": "code", + "execution_count": 218, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ncRNA SymbolncRNA CategoryDisease NameDysfunction Pattern
1116HGlncRNAPrader-Willi syndromeExpression [differentially expressed]
717AlncRNAAlzheimer's diseaseRegulation [up-regulated]
101B FGF-antisense transcriptslncRNAendometriosisExpression
1421AlncRNAastrocytomaExpression [differentially expressed]
1521AlncRNAcancerRegulation [down-regulated]
...............
206958ZSWIM8-AS1lncRNAnon-small cell lung carcinomaNaN
206959ZSWIM8-AS1lncRNAstomach cancerNaN
206960ZSWIM8-AS1lncRNAthyroid cancerNaN
206961ZSWIM8-AS1lncRNAurinary bladder cancerNaN
206962ZXF2lncRNAlung adenocarcinomaRegulation [up-regulated]
\n", + "

180887 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " ncRNA Symbol ncRNA Category \\\n", + "1 116HG lncRNA \n", + "7 17A lncRNA \n", + "10 1B FGF-antisense transcripts lncRNA \n", + "14 21A lncRNA \n", + "15 21A lncRNA \n", + "... ... ... \n", + "206958 ZSWIM8-AS1 lncRNA \n", + "206959 ZSWIM8-AS1 lncRNA \n", + "206960 ZSWIM8-AS1 lncRNA \n", + "206961 ZSWIM8-AS1 lncRNA \n", + "206962 ZXF2 lncRNA \n", + "\n", + " Disease Name Dysfunction Pattern \n", + "1 Prader-Willi syndrome Expression [differentially expressed] \n", + "7 Alzheimer's disease Regulation [up-regulated] \n", + "10 endometriosis Expression \n", + "14 astrocytoma Expression [differentially expressed] \n", + "15 cancer Regulation [down-regulated] \n", + "... ... ... \n", + "206958 non-small cell lung carcinoma NaN \n", + "206959 stomach cancer NaN \n", + "206960 thyroid cancer NaN \n", + "206961 urinary bladder cancer NaN \n", + "206962 lung adenocarcinoma Regulation [up-regulated] \n", + "\n", + "[180887 rows x 4 columns]" + ] + }, + "execution_count": 218, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Selection of the columns we are interested in:\"ncRNA Symbol\", \"ncRNA Category\", \"Disease Name\" and \"Dysfunction Pattern\"\n", + "lncrna_data2 = lncrna_data1[['ncRNA Symbol', 'ncRNA Category','Disease Name','Dysfunction Pattern']].drop_duplicates()\n", + "lncrna_data2" + ] + }, + { + "cell_type": "code", + "execution_count": 219, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "False\n", + "False\n", + "False\n", + "True\n" + ] + } + ], + "source": [ + "#checking if there are columns with NaN values\n", + "print(lncrna_data2['ncRNA Symbol'].isnull().values.any())\n", + "print(lncrna_data2['ncRNA Category'].isnull().values.any())\n", + "print(lncrna_data2['Disease Name'].isnull().values.any())\n", + "print(lncrna_data2['Dysfunction Pattern'].isnull().values.any())" + ] + }, + { + "cell_type": "code", + "execution_count": 220, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ncRNA SymbolncRNA CategoryDisease NameDysfunction Pattern
1116HGlncRNAPrader-Willi syndromeExpression [differentially expressed]
717AlncRNAAlzheimer's diseaseRegulation [up-regulated]
101B FGF-antisense transcriptslncRNAendometriosisExpression
1421AlncRNAastrocytomaExpression [differentially expressed]
1521AlncRNAcancerRegulation [down-regulated]
...............
206958ZSWIM8-AS1lncRNAnon-small cell lung carcinomans
206959ZSWIM8-AS1lncRNAstomach cancerns
206960ZSWIM8-AS1lncRNAthyroid cancerns
206961ZSWIM8-AS1lncRNAurinary bladder cancerns
206962ZXF2lncRNAlung adenocarcinomaRegulation [up-regulated]
\n", + "

180887 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " ncRNA Symbol ncRNA Category \\\n", + "1 116HG lncRNA \n", + "7 17A lncRNA \n", + "10 1B FGF-antisense transcripts lncRNA \n", + "14 21A lncRNA \n", + "15 21A lncRNA \n", + "... ... ... \n", + "206958 ZSWIM8-AS1 lncRNA \n", + "206959 ZSWIM8-AS1 lncRNA \n", + "206960 ZSWIM8-AS1 lncRNA \n", + "206961 ZSWIM8-AS1 lncRNA \n", + "206962 ZXF2 lncRNA \n", + "\n", + " Disease Name Dysfunction Pattern \n", + "1 Prader-Willi syndrome Expression [differentially expressed] \n", + "7 Alzheimer's disease Regulation [up-regulated] \n", + "10 endometriosis Expression \n", + "14 astrocytoma Expression [differentially expressed] \n", + "15 cancer Regulation [down-regulated] \n", + "... ... ... \n", + "206958 non-small cell lung carcinoma ns \n", + "206959 stomach cancer ns \n", + "206960 thyroid cancer ns \n", + "206961 urinary bladder cancer ns \n", + "206962 lung adenocarcinoma Regulation [up-regulated] \n", + "\n", + "[180887 rows x 4 columns]" + ] + }, + "execution_count": 220, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#NaN fields will be changed to \"ns\" which stands for \"not specified\". \n", + "#This means there is not a specific dysfunction pattern in a given ncRNA when involved in a certain disease\n", + "lncrna_data2['Dysfunction Pattern'] = lncrna_data2['Dysfunction Pattern'].fillna('ns')\n", + "lncrna_data2" + ] + }, + { + "cell_type": "code", + "execution_count": 221, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ncRNA SymbolncRNA CategoryDisease NameDysfunction Patternsource_idsource_name
1116HGlncRNAPrader-Willi syndromeExpression [differentially expressed]6LncRNADisease
717AlncRNAAlzheimer's diseaseRegulation [up-regulated]6LncRNADisease
101B FGF-antisense transcriptslncRNAendometriosisExpression6LncRNADisease
1421AlncRNAastrocytomaExpression [differentially expressed]6LncRNADisease
1521AlncRNAcancerRegulation [down-regulated]6LncRNADisease
.....................
206958ZSWIM8-AS1lncRNAnon-small cell lung carcinomans6LncRNADisease
206959ZSWIM8-AS1lncRNAstomach cancerns6LncRNADisease
206960ZSWIM8-AS1lncRNAthyroid cancerns6LncRNADisease
206961ZSWIM8-AS1lncRNAurinary bladder cancerns6LncRNADisease
206962ZXF2lncRNAlung adenocarcinomaRegulation [up-regulated]6LncRNADisease
\n", + "

180887 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " ncRNA Symbol ncRNA Category \\\n", + "1 116HG lncRNA \n", + "7 17A lncRNA \n", + "10 1B FGF-antisense transcripts lncRNA \n", + "14 21A lncRNA \n", + "15 21A lncRNA \n", + "... ... ... \n", + "206958 ZSWIM8-AS1 lncRNA \n", + "206959 ZSWIM8-AS1 lncRNA \n", + "206960 ZSWIM8-AS1 lncRNA \n", + "206961 ZSWIM8-AS1 lncRNA \n", + "206962 ZXF2 lncRNA \n", + "\n", + " Disease Name Dysfunction Pattern \\\n", + "1 Prader-Willi syndrome Expression [differentially expressed] \n", + "7 Alzheimer's disease Regulation [up-regulated] \n", + "10 endometriosis Expression \n", + "14 astrocytoma Expression [differentially expressed] \n", + "15 cancer Regulation [down-regulated] \n", + "... ... ... \n", + "206958 non-small cell lung carcinoma ns \n", + "206959 stomach cancer ns \n", + "206960 thyroid cancer ns \n", + "206961 urinary bladder cancer ns \n", + "206962 lung adenocarcinoma Regulation [up-regulated] \n", + "\n", + " source_id source_name \n", + "1 6 LncRNADisease \n", + "7 6 LncRNADisease \n", + "10 6 LncRNADisease \n", + "14 6 LncRNADisease \n", + "15 6 LncRNADisease \n", + "... ... ... \n", + "206958 6 LncRNADisease \n", + "206959 6 LncRNADisease \n", + "206960 6 LncRNADisease \n", + "206961 6 LncRNADisease \n", + "206962 6 LncRNADisease \n", + "\n", + "[180887 rows x 6 columns]" + ] + }, + "execution_count": 221, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Creation of source_id and source_name columns.\n", + "#This will identify in DISNET where the information from ncRNA-disease association comes from.\n", + "lncrna_data2['source_id'] = 6\n", + "lncrna_data2['source_name'] = \"LncRNADisease\" #source database\n", + "lncrna_data2" + ] + }, + { + "cell_type": "code", + "execution_count": 222, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "498" + ] + }, + "execution_count": 222, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Counting the number of different human diseases in LncRNADisease database\n", + "lncrna_data2['Disease Name'].nunique()" + ] + }, + { + "cell_type": "code", + "execution_count": 223, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rna_idrna_categorynametypesource_idsource_name
1116HGlncRNAPrader-Willi syndromeExpression [differentially expressed]6LncRNADisease
717AlncRNAAlzheimer's diseaseRegulation [up-regulated]6LncRNADisease
101B FGF-antisense transcriptslncRNAendometriosisExpression6LncRNADisease
1421AlncRNAastrocytomaExpression [differentially expressed]6LncRNADisease
1521AlncRNAcancerRegulation [down-regulated]6LncRNADisease
.....................
206958ZSWIM8-AS1lncRNAnon-small cell lung carcinomans6LncRNADisease
206959ZSWIM8-AS1lncRNAstomach cancerns6LncRNADisease
206960ZSWIM8-AS1lncRNAthyroid cancerns6LncRNADisease
206961ZSWIM8-AS1lncRNAurinary bladder cancerns6LncRNADisease
206962ZXF2lncRNAlung adenocarcinomaRegulation [up-regulated]6LncRNADisease
\n", + "

180887 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " rna_id rna_category \\\n", + "1 116HG lncRNA \n", + "7 17A lncRNA \n", + "10 1B FGF-antisense transcripts lncRNA \n", + "14 21A lncRNA \n", + "15 21A lncRNA \n", + "... ... ... \n", + "206958 ZSWIM8-AS1 lncRNA \n", + "206959 ZSWIM8-AS1 lncRNA \n", + "206960 ZSWIM8-AS1 lncRNA \n", + "206961 ZSWIM8-AS1 lncRNA \n", + "206962 ZXF2 lncRNA \n", + "\n", + " name type \\\n", + "1 Prader-Willi syndrome Expression [differentially expressed] \n", + "7 Alzheimer's disease Regulation [up-regulated] \n", + "10 endometriosis Expression \n", + "14 astrocytoma Expression [differentially expressed] \n", + "15 cancer Regulation [down-regulated] \n", + "... ... ... \n", + "206958 non-small cell lung carcinoma ns \n", + "206959 stomach cancer ns \n", + "206960 thyroid cancer ns \n", + "206961 urinary bladder cancer ns \n", + "206962 lung adenocarcinoma Regulation [up-regulated] \n", + "\n", + " source_id source_name \n", + "1 6 LncRNADisease \n", + "7 6 LncRNADisease \n", + "10 6 LncRNADisease \n", + "14 6 LncRNADisease \n", + "15 6 LncRNADisease \n", + "... ... ... \n", + "206958 6 LncRNADisease \n", + "206959 6 LncRNADisease \n", + "206960 6 LncRNADisease \n", + "206961 6 LncRNADisease \n", + "206962 6 LncRNADisease \n", + "\n", + "[180887 rows x 6 columns]" + ] + }, + "execution_count": 223, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#identifying columns \"ncRNA Symbol\", 'Dysfunction Pattern', 'Disease Name' and 'ncRNA Category' as 'rna_id', 'type', 'name' and 'rna_category' respectively.\n", + "#LncRNADisease database terms its diseases associated to ncRNAs in Disease Ontology and MeSH vocabulary in the \"Disease Name\" column.\n", + "#This is done to facilitate the merging operations between hmdd_data_to_merge and lncrna_data_to_merge datasets.\n", + "lncrna_data_3 = lncrna_data2.rename(columns={'ncRNA Symbol': 'rna_id', 'Dysfunction Pattern': 'type', 'Disease Name':'name', 'ncRNA Category': 'rna_category'})\n", + "lncrna_data_3" + ] + }, + { + "cell_type": "code", + "execution_count": 224, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "498" + ] + }, + "execution_count": 224, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lncrna_data_3['name'].nunique()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "***Appending hmdd_data_2 and lncrna_data_3 datasets in one***" + ] + }, + { + "cell_type": "code", + "execution_count": 225, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rna_idcausalitytypenamesource_idsource_namerna_category
0hsa-mir-15anocirculation_biomarker_diagnosis_downLeukemia, Lymphocytic, Chronic, B-Cell5HMDD v3.2NaN
1hsa-mir-16nocirculation_biomarker_diagnosis_downLeukemia, Lymphocytic, Chronic, B-Cell5HMDD v3.2NaN
2hsa-mir-143nocirculation_biomarker_diagnosis_downColonic Neoplasms5HMDD v3.2NaN
3hsa-mir-145nocirculation_biomarker_diagnosis_downColonic Neoplasms5HMDD v3.2NaN
4hsa-mir-223nocirculation_biomarker_diagnosis_downLeukemia, Lymphocytic, Chronic, B-Cell5HMDD v3.2NaN
........................
206541ZSWIM8-AS1NaNnsnon-small cell lung carcinoma6LncRNADiseaselncRNA
206542ZSWIM8-AS1NaNnsstomach cancer6LncRNADiseaselncRNA
206543ZSWIM8-AS1NaNnsthyroid cancer6LncRNADiseaselncRNA
206544ZSWIM8-AS1NaNnsurinary bladder cancer6LncRNADiseaselncRNA
206545ZXF2NaNRegulation [up-regulated]lung adenocarcinoma6LncRNADiseaselncRNA
\n", + "

206546 rows × 7 columns

\n", + "
" + ], + "text/plain": [ + " rna_id causality type \\\n", + "0 hsa-mir-15a no circulation_biomarker_diagnosis_down \n", + "1 hsa-mir-16 no circulation_biomarker_diagnosis_down \n", + "2 hsa-mir-143 no circulation_biomarker_diagnosis_down \n", + "3 hsa-mir-145 no circulation_biomarker_diagnosis_down \n", + "4 hsa-mir-223 no circulation_biomarker_diagnosis_down \n", + "... ... ... ... \n", + "206541 ZSWIM8-AS1 NaN ns \n", + "206542 ZSWIM8-AS1 NaN ns \n", + "206543 ZSWIM8-AS1 NaN ns \n", + "206544 ZSWIM8-AS1 NaN ns \n", + "206545 ZXF2 NaN Regulation [up-regulated] \n", + "\n", + " name source_id source_name \\\n", + "0 Leukemia, Lymphocytic, Chronic, B-Cell 5 HMDD v3.2 \n", + "1 Leukemia, Lymphocytic, Chronic, B-Cell 5 HMDD v3.2 \n", + "2 Colonic Neoplasms 5 HMDD v3.2 \n", + "3 Colonic Neoplasms 5 HMDD v3.2 \n", + "4 Leukemia, Lymphocytic, Chronic, B-Cell 5 HMDD v3.2 \n", + "... ... ... ... \n", + "206541 non-small cell lung carcinoma 6 LncRNADisease \n", + "206542 stomach cancer 6 LncRNADisease \n", + "206543 thyroid cancer 6 LncRNADisease \n", + "206544 urinary bladder cancer 6 LncRNADisease \n", + "206545 lung adenocarcinoma 6 LncRNADisease \n", + "\n", + " rna_category \n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "206541 lncRNA \n", + "206542 lncRNA \n", + "206543 lncRNA \n", + "206544 lncRNA \n", + "206545 lncRNA \n", + "\n", + "[206546 rows x 7 columns]" + ] + }, + "execution_count": 225, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "hmdd_lncrna_appended = hmdd_data_2.append(lncrna_data_3, ignore_index=True, sort=False)\n", + "hmdd_lncrna_appended" + ] + }, + { + "cell_type": "code", + "execution_count": 226, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1092" + ] + }, + "execution_count": 226, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "hmdd_lncrna_appended['name'].nunique()" + ] + }, + { + "cell_type": "code", + "execution_count": 227, + "metadata": {}, + "outputs": [], + "source": [ + "#once both datasets are appended, we will fill NaN values in rna_category to \"miRNA\" and in causality to \"ns\"\n", + "hmdd_lncrna_appended['rna_category'] = hmdd_lncrna_appended['rna_category'].fillna(\"miRNA\")\n", + "hmdd_lncrna_appended['causality'] = hmdd_lncrna_appended['causality'].fillna(\"ns\")\n", + "hmdd_lncrna_appended_1 = hmdd_lncrna_appended\n" + ] + }, + { + "cell_type": "code", + "execution_count": 228, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rna_idrna_categorytypenamecausality
0hsa-mir-15amiRNAcirculation_biomarker_diagnosis_downLeukemia, Lymphocytic, Chronic, B-Cellno
1hsa-mir-16miRNAcirculation_biomarker_diagnosis_downLeukemia, Lymphocytic, Chronic, B-Cellno
2hsa-mir-143miRNAcirculation_biomarker_diagnosis_downColonic Neoplasmsno
3hsa-mir-145miRNAcirculation_biomarker_diagnosis_downColonic Neoplasmsno
4hsa-mir-223miRNAcirculation_biomarker_diagnosis_downLeukemia, Lymphocytic, Chronic, B-Cellno
..................
206541ZSWIM8-AS1lncRNAnsnon-small cell lung carcinomans
206542ZSWIM8-AS1lncRNAnsstomach cancerns
206543ZSWIM8-AS1lncRNAnsthyroid cancerns
206544ZSWIM8-AS1lncRNAnsurinary bladder cancerns
206545ZXF2lncRNARegulation [up-regulated]lung adenocarcinomans
\n", + "

206546 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " rna_id rna_category type \\\n", + "0 hsa-mir-15a miRNA circulation_biomarker_diagnosis_down \n", + "1 hsa-mir-16 miRNA circulation_biomarker_diagnosis_down \n", + "2 hsa-mir-143 miRNA circulation_biomarker_diagnosis_down \n", + "3 hsa-mir-145 miRNA circulation_biomarker_diagnosis_down \n", + "4 hsa-mir-223 miRNA circulation_biomarker_diagnosis_down \n", + "... ... ... ... \n", + "206541 ZSWIM8-AS1 lncRNA ns \n", + "206542 ZSWIM8-AS1 lncRNA ns \n", + "206543 ZSWIM8-AS1 lncRNA ns \n", + "206544 ZSWIM8-AS1 lncRNA ns \n", + "206545 ZXF2 lncRNA Regulation [up-regulated] \n", + "\n", + " name causality \n", + "0 Leukemia, Lymphocytic, Chronic, B-Cell no \n", + "1 Leukemia, Lymphocytic, Chronic, B-Cell no \n", + "2 Colonic Neoplasms no \n", + "3 Colonic Neoplasms no \n", + "4 Leukemia, Lymphocytic, Chronic, B-Cell no \n", + "... ... ... \n", + "206541 non-small cell lung carcinoma ns \n", + "206542 stomach cancer ns \n", + "206543 thyroid cancer ns \n", + "206544 urinary bladder cancer ns \n", + "206545 lung adenocarcinoma ns \n", + "\n", + "[206546 rows x 5 columns]" + ] + }, + "execution_count": 228, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "hmdd_lncrna_appended_2 = hmdd_lncrna_appended_1[['rna_id', 'rna_category', 'type', 'name', 'causality']]\n", + "hmdd_lncrna_appended_2" + ] + }, + { + "cell_type": "code", + "execution_count": 229, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rna_idcausalitytypesource_idsource_namerna_category
name
131I-resistant papillary thyroid carcinoma111111
Abortion, Habitual925222
Abortion, Spontaneous2124111
Acquired Immunodeficiency Syndrome714111
Acute Coronary Syndrome3529222
.....................
vascular disease111111
vascular endothelial dysfunction111111
velocardiofacial syndrome11611111
ventricular septal defect312111
vulva squamous cell carcinoma211111
\n", + "

1092 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " rna_id causality type \\\n", + "name \n", + "131I-resistant papillary thyroid carcinoma 1 1 1 \n", + "Abortion, Habitual 9 2 5 \n", + "Abortion, Spontaneous 21 2 4 \n", + "Acquired Immunodeficiency Syndrome 7 1 4 \n", + "Acute Coronary Syndrome 35 2 9 \n", + "... ... ... ... \n", + "vascular disease 1 1 1 \n", + "vascular endothelial dysfunction 1 1 1 \n", + "velocardiofacial syndrome 116 1 1 \n", + "ventricular septal defect 3 1 2 \n", + "vulva squamous cell carcinoma 2 1 1 \n", + "\n", + " source_id source_name \\\n", + "name \n", + "131I-resistant papillary thyroid carcinoma 1 1 \n", + "Abortion, Habitual 2 2 \n", + "Abortion, Spontaneous 1 1 \n", + "Acquired Immunodeficiency Syndrome 1 1 \n", + "Acute Coronary Syndrome 2 2 \n", + "... ... ... \n", + "vascular disease 1 1 \n", + "vascular endothelial dysfunction 1 1 \n", + "velocardiofacial syndrome 1 1 \n", + "ventricular septal defect 1 1 \n", + "vulva squamous cell carcinoma 1 1 \n", + "\n", + " rna_category \n", + "name \n", + "131I-resistant papillary thyroid carcinoma 1 \n", + "Abortion, Habitual 2 \n", + "Abortion, Spontaneous 1 \n", + "Acquired Immunodeficiency Syndrome 1 \n", + "Acute Coronary Syndrome 2 \n", + "... ... \n", + "vascular disease 1 \n", + "vascular endothelial dysfunction 1 \n", + "velocardiofacial syndrome 1 \n", + "ventricular septal defect 1 \n", + "vulva squamous cell carcinoma 1 \n", + "\n", + "[1092 rows x 6 columns]" + ] + }, + "execution_count": 229, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#count the number of different diseases we have\n", + "hmdd_lncrna_appended_1.groupby(['name']).nunique()" + ] + }, + { + "cell_type": "code", + "execution_count": 230, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1092" + ] + }, + "execution_count": 230, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Counts the combined number of human disases between HMDD database and LncRNADisease database.\n", + "hmdd_lncrna_appended_1['name'].nunique()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "***Verifying if the names of the diseases contained in hmdd_lncrna_appended dataset match with the names of the diseases in DISNET.***" + ] + }, + { + "cell_type": "code", + "execution_count": 231, + "metadata": {}, + "outputs": [], + "source": [ + "#First, we will connect to DISNET database\n", + "import mysql.connector\n", + "import json\n", + "conn_param_file = 'C:/Users/end user/OneDrive/Desktop/UPM Master/CTB TFM/Datasets/DISNET_CONNECTION_correct.json'\n", + "# Setting the connection to the database\n", + "\n", + "# The connection configuration is stored in a JSON file\n", + "with open(conn_param_file, 'r') as f:\n", + " config = json.load(f) # The JSON file is translated to a python dictionary\n", + "\n", + "# Stablishing the connection with the parameters in the dictionary\n", + "cnx = mysql.connector.connect(**config)" + ] + }, + { + "cell_type": "code", + "execution_count": 232, + "metadata": {}, + "outputs": [], + "source": [ + "#%load_ext sql" + ] + }, + { + "cell_type": "code", + "execution_count": 233, + "metadata": {}, + "outputs": [], + "source": [ + "%reload_ext sql" + ] + }, + { + "cell_type": "code", + "execution_count": 234, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
name
0angiosarcoma
1pterygium
2disease of metabolism
3Streptococcus pneumonia
4bacterial sepsis
......
14392Cardiotoxicity
14393Pectus Carinatum
14394Speech Sound Disorder
14395Pulmonary Arterial Remodeling
14396atresia
\n", + "

14397 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " name\n", + "0 angiosarcoma\n", + "1 pterygium\n", + "2 disease of metabolism\n", + "3 Streptococcus pneumonia\n", + "4 bacterial sepsis\n", + "... ...\n", + "14392 Cardiotoxicity\n", + "14393 Pectus Carinatum\n", + "14394 Speech Sound Disorder\n", + "14395 Pulmonary Arterial Remodeling\n", + "14396 atresia\n", + "\n", + "[14397 rows x 1 columns]" + ] + }, + "execution_count": 234, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Returns a dataframe that contains the names of the diseases in MeSH and Disease Ontology stored in DISNET\n", + "#It previously requires to query DISNET's disnet_biolayer.code table.\n", + "name_diseases_msh_do = \"\"\"\n", + " SELECT \n", + " name\n", + " FROM\n", + " disnet_biolayer.code c\n", + " WHERE\n", + " c.vocabulary = 'DO' OR c.vocabulary = 'MSH'\n", + " \n", + " \"\"\"\n", + "name_diseases_msh_do = pd.read_sql_query(name_diseases_msh_do, con = cnx)\n", + "name_diseases_msh_do" + ] + }, + { + "cell_type": "code", + "execution_count": 235, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "#To obtain the number of diseases from \"hmdd_lncrna_merged\" dataset that match DISNET diseases in MeSH and DO terminology,\n", + "#we will compare a list made with all the diseases from the mentioned dataset with another list \n", + "#elaborated with all the diseases from DISNET (disnet_biolayer.code table).\n", + "\n", + "list_disnet = list(name_diseases_msh_do['name'].drop_duplicates())\n", + "list_hmdd_lncrna = list(hmdd_lncrna_appended_1['name'].drop_duplicates())" + ] + }, + { + "cell_type": "code", + "execution_count": 236, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1092" + ] + }, + "execution_count": 236, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Identifies the number of unique diseases from \"hmdd_lncrna_merged\" dataset.\n", + "myset = set(list_hmdd_lncrna)\n", + "len(myset)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are 1092 different diseases associated to RNAs (miRNAs, LncRNAs and circRNAs) but how many of them match DISNET diseases in MeSH and DO terminology is not yet clear.\n", + "The following two cells will reveal it." + ] + }, + { + "cell_type": "code", + "execution_count": 237, + "metadata": {}, + "outputs": [], + "source": [ + "#list comparison. \n", + "no_disnet = [] #stores the diseases from \"hmdd_lncrna_appended_1\" dataset that DO NOT match with DISNET ones.\n", + "si_disnet = [] #stores the diseases from \"hmdd_lncrna_appended_1\" dataset that DO match with DISNET ones.\n", + "for i in list_hmdd_lncrna:\n", + " if i in list_disnet:\n", + " si_disnet.append(i)\n", + " #continue\n", + " else:\n", + " no_disnet.append(i)\n", + " #no_disnet.append(i)" + ] + }, + { + "cell_type": "code", + "execution_count": 238, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1092\n", + "453\n", + "639\n" + ] + } + ], + "source": [ + "print(len(list_hmdd_lncrna))\n", + "print(len(no_disnet))\n", + "print(len(si_disnet))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**From 1092 diseases associated to RNAs, the names of 639 diseases match with those from DISNET database in MeSH or Disease Ontology terminology while 453 of them don't.**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "At this point, we are going to match the diseases names with their CUI codes that are contained in \"disnet_biolayer\" schema's table \"disease\" of DISNET database. The reason behind that is we will incorporate RNA-CUI code associations to DISNET ." + ] + }, + { + "cell_type": "code", + "execution_count": 239, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
disease_idnamevocab
0C0018923angiosarcomaDO
1C0854893angiosarcomaDO
2C0033999pterygiumDO
3C0025517disease of metabolismDO
4C0155862Streptococcus pneumoniaDO
............
22229C3850148Pulmonary Arterial RemodelingMSH
22230C3852953Pulmonary Arterial RemodelingMSH
22231C0000846atresiaMSH
22232C0220810atresiaMSH
22233C0243066atresiaMSH
\n", + "

22234 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " disease_id name vocab\n", + "0 C0018923 angiosarcoma DO\n", + "1 C0854893 angiosarcoma DO\n", + "2 C0033999 pterygium DO\n", + "3 C0025517 disease of metabolism DO\n", + "4 C0155862 Streptococcus pneumonia DO\n", + "... ... ... ...\n", + "22229 C3850148 Pulmonary Arterial Remodeling MSH\n", + "22230 C3852953 Pulmonary Arterial Remodeling MSH\n", + "22231 C0000846 atresia MSH\n", + "22232 C0220810 atresia MSH\n", + "22233 C0243066 atresia MSH\n", + "\n", + "[22234 rows x 3 columns]" + ] + }, + "execution_count": 239, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#querying DISNET database to obtain in a dataframe object the CUI codes from the diseases associated to RNAs.\n", + "#Diseases that make up the mentioned associations are in MeSH terminology or in Disease Ontology (DO) terminology.\n", + "\n", + "disnet_cui_name = \"\"\"\n", + " SELECT DISTINCT\n", + " d.disease_id,\n", + " c.name AS name,\n", + " c.vocabulary AS vocab\n", + " FROM\n", + " disnet_biolayer.code c\n", + " INNER JOIN\n", + " disnet_biolayer.has_code hc ON c.code_id = hc.code_id\n", + " AND hc.vocabulary = c.vocabulary\n", + " INNER JOIN\n", + " disnet_biolayer.disease d ON hc.disease_id = d.disease_id\n", + " WHERE\n", + " c.vocabulary = 'DO' OR c.vocabulary = 'MSH';\n", + " \"\"\"\n", + "disnet_cui_name = pd.read_sql_query(disnet_cui_name, con = cnx)\n", + "disnet_cui_name \n" + ] + }, + { + "cell_type": "code", + "execution_count": 240, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rna_idcausalitytypenamesource_idsource_namerna_categorydisease_idvocab
0hsa-mir-143nocirculation_biomarker_diagnosis_downColonic Neoplasms5HMDD v3.2miRNAC0007102MSH
1hsa-mir-143nocirculation_biomarker_diagnosis_downColonic Neoplasms5HMDD v3.2miRNAC0009375MSH
2hsa-mir-145nocirculation_biomarker_diagnosis_downColonic Neoplasms5HMDD v3.2miRNAC0007102MSH
3hsa-mir-145nocirculation_biomarker_diagnosis_downColonic Neoplasms5HMDD v3.2miRNAC0009375MSH
4hsa-let-7gnocirculation_biomarker_diagnosis_nsColonic Neoplasms5HMDD v3.2miRNAC0007102MSH
..............................
587833UCA1nsRegulation [down-regulated]Lithiasis6LncRNADiseaselncRNAC0023869MSH
587834UphnsLocusRight ventricle hypoplasia6LncRNADiseaselncRNAC1848587MSH
587835XISTnsRegulation [up-regulated]collecting duct carcinoma6LncRNADiseaselncRNAC0007134DO
587836XISTnsRegulation [up-regulated]collecting duct carcinoma6LncRNADiseaselncRNAC1266044DO
587837XISTnsRegulation [up-regulated]collecting duct carcinoma6LncRNADiseaselncRNAC4049328DO
\n", + "

587838 rows × 9 columns

\n", + "
" + ], + "text/plain": [ + " rna_id causality type \\\n", + "0 hsa-mir-143 no circulation_biomarker_diagnosis_down \n", + "1 hsa-mir-143 no circulation_biomarker_diagnosis_down \n", + "2 hsa-mir-145 no circulation_biomarker_diagnosis_down \n", + "3 hsa-mir-145 no circulation_biomarker_diagnosis_down \n", + "4 hsa-let-7g no circulation_biomarker_diagnosis_ns \n", + "... ... ... ... \n", + "587833 UCA1 ns Regulation [down-regulated] \n", + "587834 Uph ns Locus \n", + "587835 XIST ns Regulation [up-regulated] \n", + "587836 XIST ns Regulation [up-regulated] \n", + "587837 XIST ns Regulation [up-regulated] \n", + "\n", + " name source_id source_name rna_category \\\n", + "0 Colonic Neoplasms 5 HMDD v3.2 miRNA \n", + "1 Colonic Neoplasms 5 HMDD v3.2 miRNA \n", + "2 Colonic Neoplasms 5 HMDD v3.2 miRNA \n", + "3 Colonic Neoplasms 5 HMDD v3.2 miRNA \n", + "4 Colonic Neoplasms 5 HMDD v3.2 miRNA \n", + "... ... ... ... ... \n", + "587833 Lithiasis 6 LncRNADisease lncRNA \n", + "587834 Right ventricle hypoplasia 6 LncRNADisease lncRNA \n", + "587835 collecting duct carcinoma 6 LncRNADisease lncRNA \n", + "587836 collecting duct carcinoma 6 LncRNADisease lncRNA \n", + "587837 collecting duct carcinoma 6 LncRNADisease lncRNA \n", + "\n", + " disease_id vocab \n", + "0 C0007102 MSH \n", + "1 C0009375 MSH \n", + "2 C0007102 MSH \n", + "3 C0009375 MSH \n", + "4 C0007102 MSH \n", + "... ... ... \n", + "587833 C0023869 MSH \n", + "587834 C1848587 MSH \n", + "587835 C0007134 DO \n", + "587836 C1266044 DO \n", + "587837 C4049328 DO \n", + "\n", + "[587838 rows x 9 columns]" + ] + }, + "execution_count": 240, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#merging the \"hmdd_lncrna_merged\" and \"disnet_cui_name\" dataframes so the RNAs can be associated to\n", + "#their diseases' CUIs\n", + "hmdd_lncrna_disnet = pd.merge(hmdd_lncrna_appended_1, disnet_cui_name, on='name')\n", + "hmdd_lncrna_disnet" + ] + }, + { + "cell_type": "code", + "execution_count": 241, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "False\n", + "False\n" + ] + } + ], + "source": [ + "print(hmdd_lncrna_disnet['rna_id'].isnull().values.any())\n", + "print(hmdd_lncrna_disnet['name'].isnull().values.any())\n", + "# print(lncrna_data2['Disease Name'].isnull().values.any())\n", + "# print(lncrna_data2['Dysfunction Pattern'].isnull().values.any())" + ] + }, + { + "cell_type": "code", + "execution_count": 242, + "metadata": {}, + "outputs": [], + "source": [ + "#hmdd_lncrna_disnet.to_excel(\"hmdd_lncrna_disnet_dataset.xlsx\")#save data to an excel file." + ] + }, + { + "cell_type": "code", + "execution_count": 243, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " rna_id causality type name source_id source_name \\\n", + "rna_category \n", + "circRNA 3033 3033 3033 3033 3033 3033 \n", + "lncRNA 572481 572481 572481 572481 572481 572481 \n", + "miRNA 12324 12324 12324 12324 12324 12324 \n", + "\n", + " disease_id vocab \n", + "rna_category \n", + "circRNA 3033 3033 \n", + "lncRNA 572481 572481 \n", + "miRNA 12324 12324 \n" + ] + } + ], + "source": [ + "#the purpose of this statistics is to know how many miRNA-disease, LncRNA-disease and circRNA-disease\n", + "#associations will be added to \"disnet_biolayer\" schema that belongs to DISNET database.\n", + "print(hmdd_lncrna_disnet.groupby(['rna_category']).count())\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# RNA-disease data insertion into DISNET biolayer in my local host" + ] + }, + { + "cell_type": "code", + "execution_count": 244, + "metadata": {}, + "outputs": [], + "source": [ + "#First I will provide my connection details to my local host.\n", + "#In my local host, I have already created the tables I will fill with the information \n", + "#from the associations between RNAs and diseases.\n", + "\n", + "conn_param_file_pablo = 'C:/Users/end user/OneDrive/Desktop/UPM Master/CTB TFM/Datasets/Pablo_Database_connection.json'\n", + "# Setting the connection to the database disnet_biolayer\n", + "\n", + "# The connection configuration is stored in a JSON file\n", + "with open(conn_param_file_pablo, 'r') as f:\n", + " config = json.load(f) # The JSON file is translated to a pyhton dictionary\n", + "#print(config)\n", + "# Stablishing the connection with the parameters of the dictionary\n", + "cnx = mysql.connector.connect(**config)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 245, + "metadata": {}, + "outputs": [], + "source": [ + "%reload_ext sql" + ] + }, + { + "cell_type": "code", + "execution_count": 246, + "metadata": {}, + "outputs": [], + "source": [ + "df_rna_insertion = hmdd_lncrna_disnet[['rna_id', 'rna_category', 'source_id']].drop_duplicates()" + ] + }, + { + "cell_type": "code", + "execution_count": 247, + "metadata": {}, + "outputs": [], + "source": [ + "#removing duplicate entries for Primary Key\n", + "df_rna_insertion = df_rna_insertion[df_rna_insertion.rna_id != 'Hsa-mir-93']#produced a duplicate entry error for primary key\n", + "df_rna_insertion = df_rna_insertion[df_rna_insertion.rna_id != 'hsa-mir-200C']#produced a duplicate entry error for primary key" + ] + }, + { + "cell_type": "code", + "execution_count": 248, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rna_idrna_categorysource_id
0hsa-mir-143miRNA5
2hsa-mir-145miRNA5
4hsa-let-7gmiRNA5
6hsa-mir-155miRNA5
10hsa-mir-141miRNA5
............
587803STAT3circRNA6
587814tie-1aslncRNA6
587827uc.77lncRNA6
587830uc057pde.1lncRNA6
587834UphlncRNA6
\n", + "

19918 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " rna_id rna_category source_id\n", + "0 hsa-mir-143 miRNA 5\n", + "2 hsa-mir-145 miRNA 5\n", + "4 hsa-let-7g miRNA 5\n", + "6 hsa-mir-155 miRNA 5\n", + "10 hsa-mir-141 miRNA 5\n", + "... ... ... ...\n", + "587803 STAT3 circRNA 6\n", + "587814 tie-1as lncRNA 6\n", + "587827 uc.77 lncRNA 6\n", + "587830 uc057pde.1 lncRNA 6\n", + "587834 Uph lncRNA 6\n", + "\n", + "[19918 rows x 3 columns]" + ] + }, + "execution_count": 248, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_rna_insertion" + ] + }, + { + "cell_type": "code", + "execution_count": 249, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[('hsa-mir-143', 'miRNA', 5),\n", + " ('hsa-mir-145', 'miRNA', 5),\n", + " ('hsa-let-7g', 'miRNA', 5),\n", + " ('hsa-mir-155', 'miRNA', 5),\n", + " ('hsa-mir-141', 'miRNA', 5),\n", + " ('hsa-mir-200b', 'miRNA', 5),\n", + " ('hsa-mir-106a', 'miRNA', 5),\n", + " ('hsa-mir-132', 'miRNA', 5),\n", + " ('hsa-mir-135b', 'miRNA', 5),\n", + " ('hsa-mir-296', 'miRNA', 5),\n", + " ('hsa-mir-200a', 'miRNA', 5),\n", + " ('hsa-mir-200c', 'miRNA', 5),\n", + " ('hsa-mir-429', 'miRNA', 5),\n", + " ('hsa-mir-127', 'miRNA', 5),\n", + " ('hsa-mir-34a', 'miRNA', 5),\n", + " ('hsa-mir-101-1', 'miRNA', 5),\n", + " ('hsa-let-7a-1', 'miRNA', 5),\n", + " ('hsa-let-7a-2', 'miRNA', 5),\n", + " ('hsa-let-7a-3', 'miRNA', 5),\n", + " ('hsa-let-7b', 'miRNA', 5),\n", + " ('hsa-let-7c', 'miRNA', 5),\n", + " ('hsa-let-7d', 'miRNA', 5),\n", + " ('hsa-let-7e', 'miRNA', 5),\n", + " ('hsa-let-7f-1', 'miRNA', 5),\n", + " ('hsa-let-7f-2', 'miRNA', 5),\n", + " ('hsa-let-7i', 'miRNA', 5),\n", + " ('hsa-mir-17', 'miRNA', 5),\n", + " ('hsa-mir-18a', 'miRNA', 5),\n", + " ('hsa-mir-19a', 'miRNA', 5),\n", + " ('hsa-mir-19b-1', 'miRNA', 5),\n", + " ('hsa-mir-20a', 'miRNA', 5),\n", + " ('hsa-mir-92a-1', 'miRNA', 5),\n", + " ('hsa-mir-424', 'miRNA', 5),\n", + " ('hsa-mir-125a', 'miRNA', 5),\n", + " ('hsa-mir-205', 'miRNA', 5),\n", + " ('hsa-mir-195', 'miRNA', 5),\n", + " ('hsa-mir-21', 'miRNA', 5),\n", + " ('hsa-mir-181b', 'miRNA', 5),\n", + " ('hsa-mir-126', 'miRNA', 5),\n", + " ('hsa-mir-498', 'miRNA', 5),\n", + " ('hsa-mir-101-2', 'miRNA', 5),\n", + " ('hsa-mir-140', 'miRNA', 5),\n", + " ('hsa-mir-31', 'miRNA', 5),\n", + " ('hsa-mir-106b', 'miRNA', 5),\n", + " ('hsa-mir-23b', 'miRNA', 5),\n", + " ('hsa-mir-1-1', 'miRNA', 5),\n", + " ('hsa-mir-22', 'miRNA', 5),\n", + " ('hsa-mir-493', 'miRNA', 5),\n", + " ('hsa-mir-302b', 'miRNA', 5),\n", + " ('hsa-mir-15a', 'miRNA', 5),\n", + " ('hsa-mir-16-1', 'miRNA', 5),\n", + " ('hsa-mir-502', 'miRNA', 5),\n", + " ('hsa-mir-1290', 'miRNA', 5),\n", + " ('hsa-mir-16-2', 'miRNA', 5),\n", + " ('hsa-mir-125b-1', 'miRNA', 5),\n", + " ('hsa-mir-125b-2', 'miRNA', 5),\n", + " ('hsa-mir-223', 'miRNA', 5),\n", + " ('hsa-mir-1915', 'miRNA', 5),\n", + " ('hsa-mir-15b', 'miRNA', 5),\n", + " ('hsa-let-7a', 'miRNA', 5),\n", + " ('hsa-let-7f', 'miRNA', 5),\n", + " ('hsa-mir-627', 'miRNA', 5),\n", + " ('hsa-mir-455', 'miRNA', 5),\n", + " ('hsa-mir-203', 'miRNA', 5),\n", + " ('hsa-mir-449a', 'miRNA', 5),\n", + " ('hsa-mir-130a', 'miRNA', 5),\n", + " ('hsa-mir-29b', 'miRNA', 5),\n", + " ('hsa-mir-30b', 'miRNA', 5),\n", + " ('hsa-mir-146a', 'miRNA', 5),\n", + " ('hsa-mir-142', 'miRNA', 5),\n", + " ('hsa-mir-4310', 'miRNA', 5),\n", + " ('hsa-mir-506', 'miRNA', 5),\n", + " ('hsa-mir-221', 'miRNA', 5),\n", + " ('hsa-mir-330', 'miRNA', 5),\n", + " ('hsa-mir-30a', 'miRNA', 5),\n", + " ('hsa-mir-218-1', 'miRNA', 5),\n", + " ('hsa-mir-218-2', 'miRNA', 5),\n", + " ('hsa-mir-133a', 'miRNA', 5),\n", + " ('hsa-mir-339', 'miRNA', 5),\n", + " ('hsa-mir-24', 'miRNA', 5),\n", + " ('hsa-mir-378', 'miRNA', 5),\n", + " ('hsa-mir-328', 'miRNA', 5),\n", + " ('hsa-mir-204', 'miRNA', 5),\n", + " ('hsa-mir-1', 'miRNA', 5),\n", + " ('hsa-mir-483', 'miRNA', 5),\n", + " ('hsa-mir-224', 'miRNA', 5),\n", + " ('hsa-mir-363', 'miRNA', 5),\n", + " ('hsa-mir-96', 'miRNA', 5),\n", + " ('hsa-mir-192', 'miRNA', 5),\n", + " ('hsa-mir-215', 'miRNA', 5),\n", + " ('hsa-mir-10b', 'miRNA', 5),\n", + " ('hsa-mir-9-1', 'miRNA', 5),\n", + " ('hsa-mir-9-2', 'miRNA', 5),\n", + " ('hsa-mir-9-3', 'miRNA', 5),\n", + " ('hsa-mir-133b', 'miRNA', 5),\n", + " ('hsa-mir-486', 'miRNA', 5),\n", + " ('hsa-mir-1826', 'miRNA', 5),\n", + " ('hsa-mir-191', 'miRNA', 5),\n", + " ('hsa-mir-197', 'miRNA', 5),\n", + " ('hsa-mir-222', 'miRNA', 5),\n", + " ('hsa-mir-92a', 'miRNA', 5),\n", + " ('hsa-mir-93', 'miRNA', 5),\n", + " ('hsa-mir-152', 'miRNA', 5),\n", + " ('hsa-mir-365a', 'miRNA', 5),\n", + " ('hsa-mir-365b', 'miRNA', 5),\n", + " ('hsa-mir-518c', 'miRNA', 5),\n", + " ('hsa-mir-552', 'miRNA', 5),\n", + " ('hsa-mir-584', 'miRNA', 5),\n", + " ('hsa-mir-615', 'miRNA', 5),\n", + " ('hsa-mir-622', 'miRNA', 5),\n", + " ('hsa-mir-630', 'miRNA', 5),\n", + " ('hsa-mir-1231', 'miRNA', 5),\n", + " ('hsa-mir-524', 'miRNA', 5),\n", + " ('hsa-mir-561', 'miRNA', 5),\n", + " ('hsa-mir-886', 'miRNA', 5),\n", + " ('hsa-mir-18', 'miRNA', 5),\n", + " ('hsa-mir-92-1', 'miRNA', 5),\n", + " ('hsa-mir-1297', 'miRNA', 5),\n", + " ('hsa-mir-3613', 'miRNA', 5),\n", + " ('hsa-mir-138', 'miRNA', 5),\n", + " ('hsa-mir-150', 'miRNA', 5),\n", + " ('hsa-mir-148a', 'miRNA', 5),\n", + " ('hsa-mir-181a', 'miRNA', 5),\n", + " ('hsa-mir-196a', 'miRNA', 5),\n", + " ('hsa-mir-210', 'miRNA', 5),\n", + " ('hsa-mir-23a', 'miRNA', 5),\n", + " ('hsa-mir-25', 'miRNA', 5),\n", + " ('hsa-mir-27a', 'miRNA', 5),\n", + " ('hsa-mir-30c', 'miRNA', 5),\n", + " ('hsa-mir-30d', 'miRNA', 5),\n", + " ('hsa-mir-125b', 'miRNA', 5),\n", + " ('hsa-mir-218', 'miRNA', 5),\n", + " ('hsa-mir-375', 'miRNA', 5),\n", + " ('hsa-mir-107', 'miRNA', 5),\n", + " ('hsa-mir-128-2', 'miRNA', 5),\n", + " ('hsa-mir-24-1', 'miRNA', 5),\n", + " ('hsa-mir-24-2', 'miRNA', 5),\n", + " ('hsa-mir-29b-1', 'miRNA', 5),\n", + " ('hsa-mir-30c-1', 'miRNA', 5),\n", + " ('hsa-mir-30c-2', 'miRNA', 5),\n", + " ('hsa-mir-32', 'miRNA', 5),\n", + " ('hsa-mir-137', 'miRNA', 5),\n", + " ('hsa-mir-629', 'miRNA', 5),\n", + " ('hsa-mir-18b', 'miRNA', 5),\n", + " ('hsa-mir-196b', 'miRNA', 5),\n", + " ('hsa-mir-301b', 'miRNA', 5),\n", + " ('hsa-mir-335', 'miRNA', 5),\n", + " ('hsa-mir-374a', 'miRNA', 5),\n", + " ('hsa-mir-101', 'miRNA', 5),\n", + " ('hsa-mir-326', 'miRNA', 5),\n", + " ('hsa-mir-194', 'miRNA', 5),\n", + " ('hsa-mir-33a', 'miRNA', 5),\n", + " ('hsa-mir-19b-2', 'miRNA', 5),\n", + " ('hsa-mir-29a', 'miRNA', 5),\n", + " ('hsa-mir-128a', 'miRNA', 5),\n", + " ('hsa-mir-545', 'miRNA', 5),\n", + " ('hsa-mir-636', 'miRNA', 5),\n", + " ('hsa-mir-766', 'miRNA', 5),\n", + " ('hsa-mir-920', 'miRNA', 5),\n", + " ('ZEB1', 'lncRNA', 6),\n", + " ('ZFAS1', 'lncRNA', 6),\n", + " ('hsa-mir-106', 'miRNA', 5),\n", + " ('hsa-mir-10a', 'miRNA', 5),\n", + " ('hsa-mir-20', 'miRNA', 5),\n", + " ('hsa-mir-181a-2', 'miRNA', 5),\n", + " ('hsa-mir-199b', 'miRNA', 5),\n", + " ('hsa-mir-378a', 'miRNA', 5),\n", + " ('hsa-mir-454', 'miRNA', 5),\n", + " ('hsa-mir-575', 'miRNA', 5),\n", + " ('hsa-mir-331', 'miRNA', 5),\n", + " ('hsa-mir-663', 'miRNA', 5),\n", + " ('hsa-mir-638', 'miRNA', 5),\n", + " ('hsa-mir-128', 'miRNA', 5),\n", + " ('hsa-mir-193b', 'miRNA', 5),\n", + " ('hsa-mir-365', 'miRNA', 5),\n", + " ('hsa-mir-660', 'miRNA', 5),\n", + " ('hsa-mir-663a', 'miRNA', 5),\n", + " ('hsa-mir-16', 'miRNA', 5),\n", + " ('hsa-mir-92a-2', 'miRNA', 5),\n", + " ('hsa-mir-34b', 'miRNA', 5),\n", + " ('hsa-mir-9', 'miRNA', 5),\n", + " ('hsa-mir-92', 'miRNA', 5),\n", + " ('hsa-mir-138-1', 'miRNA', 5),\n", + " ('hsa-mir-138-2', 'miRNA', 5),\n", + " ('hsa-mir-146', 'miRNA', 5),\n", + " ('hsa-mir-26a', 'miRNA', 5),\n", + " ('hsa-mir-199a-1', 'miRNA', 5),\n", + " ('hsa-mir-199a-2', 'miRNA', 5),\n", + " ('hsa-mir-125', 'miRNA', 5),\n", + " ('hsa-mir-181', 'miRNA', 5),\n", + " ('hsa-mir-217', 'miRNA', 5),\n", + " ('hsa-mir-376', 'miRNA', 5),\n", + " ('hsa-mir-548f', 'miRNA', 5),\n", + " ('hsa-mir-1224', 'miRNA', 5),\n", + " ('hsa-mir-15', 'miRNA', 5),\n", + " ('hsa-mir-485', 'miRNA', 5),\n", + " ('hsa-mir-122', 'miRNA', 5),\n", + " ('hsa-mir-3151', 'miRNA', 5),\n", + " ('hsa-mir-27b', 'miRNA', 5),\n", + " ('hsa-mir-34c', 'miRNA', 5),\n", + " ('hsa-mir-2278', 'miRNA', 5),\n", + " ('hsa-mir-144', 'miRNA', 5),\n", + " ('hsa-mir-183', 'miRNA', 5),\n", + " ('hsa-mir-139', 'miRNA', 5),\n", + " ('hsa-mir-495', 'miRNA', 5),\n", + " ('hsa-mir-196', 'miRNA', 5),\n", + " ('hsa-mir-29c', 'miRNA', 5),\n", + " ('hsa-mir-431', 'miRNA', 5),\n", + " ('hsa-mir-532', 'miRNA', 5),\n", + " ('hsa-mir-652', 'miRNA', 5),\n", + " ('hsa-mir-199a', 'miRNA', 5),\n", + " ('hsa-mir-423', 'miRNA', 5),\n", + " ('hsa-mir-484', 'miRNA', 5),\n", + " ('hsa-mir-103', 'miRNA', 5),\n", + " ('hsa-mir-720', 'miRNA', 5),\n", + " ('hsa-mir-200', 'miRNA', 5),\n", + " ('hsa-mir-135a', 'miRNA', 5),\n", + " ('hsa-mir-425', 'miRNA', 5),\n", + " ('hsa-mir-1229', 'miRNA', 5),\n", + " ('hsa-mir-1246', 'miRNA', 5),\n", + " ('hsa-mir-202', 'miRNA', 5),\n", + " ('hsa-mir-338', 'miRNA', 5),\n", + " ('hsa-mir-181b-1', 'miRNA', 5),\n", + " ('hsa-mir-451', 'miRNA', 5),\n", + " ('hsa-mir-130', 'miRNA', 5),\n", + " ('hsa-mir-216', 'miRNA', 5),\n", + " ('hsa-mir-372', 'miRNA', 5),\n", + " ('hsa-mir-324', 'miRNA', 5),\n", + " ('hsa-mir-345', 'miRNA', 5),\n", + " ('hsa-mir-628', 'miRNA', 5),\n", + " ('hsa-mir-320a', 'miRNA', 5),\n", + " ('hsa-mir-885', 'miRNA', 5),\n", + " ('hsa-mir-342', 'miRNA', 5),\n", + " ('hsa-mir-501', 'miRNA', 5),\n", + " ('hsa-mir-1260b', 'miRNA', 5),\n", + " ('hsa-mir-124-1', 'miRNA', 5),\n", + " ('hsa-mir-124-2', 'miRNA', 5),\n", + " ('hsa-mir-124-3', 'miRNA', 5),\n", + " ('hsa-mir-208a', 'miRNA', 5),\n", + " ('hsa-mir-373', 'miRNA', 5),\n", + " ('hsa-mir-133a-1', 'miRNA', 5),\n", + " ('hsa-mir-133a-2', 'miRNA', 5),\n", + " ('hsa-mir-149', 'miRNA', 5),\n", + " ('hsa-mir-124a', 'miRNA', 5),\n", + " ('hsa-mir-34', 'miRNA', 5),\n", + " ('hsa-mir-492', 'miRNA', 5),\n", + " ('hsa-mir-491', 'miRNA', 5),\n", + " ('hsa-mir-646', 'miRNA', 5),\n", + " ('hsa-mir-196a-2', 'miRNA', 5),\n", + " ('hsa-mir-542', 'miRNA', 5),\n", + " ('hsa-mir-608', 'miRNA', 5),\n", + " ('hsa-mir-1273c', 'miRNA', 5),\n", + " ('hsa-mir-1303', 'miRNA', 5),\n", + " ('hsa-mir-567', 'miRNA', 5),\n", + " ('hsa-mir-520a', 'miRNA', 5),\n", + " ('hsa-mir-219-1', 'miRNA', 5),\n", + " ('hsa-mir-367', 'miRNA', 5),\n", + " ('hsa-mir-499', 'miRNA', 5),\n", + " ('hsa-let-7', 'miRNA', 5),\n", + " ('hsa-mir-603', 'miRNA', 5),\n", + " ('hsa-mir-509', 'miRNA', 5),\n", + " ('hsa-mir-3622a', 'miRNA', 5),\n", + " ('hsa-mir-5582', 'miRNA', 5),\n", + " ('hsa-mir-551a', 'miRNA', 5),\n", + " ('hsa-mir-370', 'miRNA', 5),\n", + " ('hsa-mir-4282', 'miRNA', 5),\n", + " ('hsa-mir-544a', 'miRNA', 5),\n", + " ('hsa-mir-592', 'miRNA', 5),\n", + " ('hsa-mir-28', 'miRNA', 5),\n", + " ('hsa-mir-410', 'miRNA', 5),\n", + " ('hsa-mir-301a', 'miRNA', 5),\n", + " ('hsa-mir-33b', 'miRNA', 5),\n", + " ('hsa-mir-382', 'miRNA', 5),\n", + " ('hsa-mir-490', 'miRNA', 5),\n", + " ('hsa-mir-874', 'miRNA', 5),\n", + " ('hsa-mir-146b', 'miRNA', 5),\n", + " ('hsa-mir-26b', 'miRNA', 5),\n", + " ('hsa-mir-1275', 'miRNA', 5),\n", + " ('hsa-mir-194-1', 'miRNA', 5),\n", + " ('hsa-mir-194-2', 'miRNA', 5),\n", + " ('hsa-mir-451a', 'miRNA', 5),\n", + " ('hsa-mir-181b-2', 'miRNA', 5),\n", + " ('hsa-mir-1280', 'miRNA', 5),\n", + " ('hsa-mir-449b', 'miRNA', 5),\n", + " ('hsa-mir-129-1', 'miRNA', 5),\n", + " ('hsa-mir-129-2', 'miRNA', 5),\n", + " ('hsa-mir-193a', 'miRNA', 5),\n", + " ('hsa-mir-625', 'miRNA', 5),\n", + " ('hsa-mir-153', 'miRNA', 5),\n", + " ('hsa-mir-1288', 'miRNA', 5),\n", + " ('hsa-mir-130b', 'miRNA', 5),\n", + " ('hsa-mir-497', 'miRNA', 5),\n", + " ('hsa-mir-214', 'miRNA', 5),\n", + " ('hsa-mir-148b', 'miRNA', 5),\n", + " ('hsa-mir-124', 'miRNA', 5),\n", + " ('hsa-mir-99a', 'miRNA', 5),\n", + " ('hsa-mir-320b', 'miRNA', 5),\n", + " ('hsa-mir-95', 'miRNA', 5),\n", + " ('hsa-mir-518a', 'miRNA', 5),\n", + " ('hsa-mir-19', 'miRNA', 5),\n", + " ('hsa-mir-1307', 'miRNA', 5),\n", + " ('hsa-mir-320e', 'miRNA', 5),\n", + " ('hsa-mir-374b', 'miRNA', 5),\n", + " ('hsa-mir-650', 'miRNA', 5),\n", + " ('hsa-mir-7', 'miRNA', 5),\n", + " ('hsa-mir-760', 'miRNA', 5),\n", + " ('hsa-mir-100', 'miRNA', 5),\n", + " ('hsa-mir-134', 'miRNA', 5),\n", + " ('hsa-mir-211', 'miRNA', 5),\n", + " ('hsa-mir-362', 'miRNA', 5),\n", + " ('hsa-mir-877', 'miRNA', 5),\n", + " ('hsa-mir-1292', 'miRNA', 5),\n", + " ('hsa-mir-503', 'miRNA', 5),\n", + " ('hsa-mir-4775', 'miRNA', 5),\n", + " ('hsa-mir-92b', 'miRNA', 5),\n", + " ('hsa-mir-466', 'miRNA', 5),\n", + " ('hsa-mir-361', 'miRNA', 5),\n", + " ('hsa-mir-1910', 'miRNA', 5),\n", + " ('hsa-mir-514b', 'miRNA', 5),\n", + " ('hsa-mir-888', 'miRNA', 5),\n", + " ('hsa-mir-383', 'miRNA', 5),\n", + " ('hsa-mir-1271', 'miRNA', 5),\n", + " ('hsa-mir-168', 'miRNA', 5),\n", + " ('hsa-mir-939', 'miRNA', 5),\n", + " ('hsa-mir-185', 'miRNA', 5),\n", + " ('hsa-mir-369', 'miRNA', 5),\n", + " ('hsa-mir-135a-1', 'miRNA', 5),\n", + " ('hsa-mir-135a-2', 'miRNA', 5),\n", + " ('hsa-mir-129', 'miRNA', 5),\n", + " ('hsa-mir-499a', 'miRNA', 5),\n", + " ('hsa-mir-574', 'miRNA', 5),\n", + " ('hsa-mir-103a-1', 'miRNA', 5),\n", + " ('hsa-mir-103a-2', 'miRNA', 5),\n", + " ('hsa-mir-103b-1', 'miRNA', 5),\n", + " ('hsa-mir-103b-2', 'miRNA', 5),\n", + " ('hsa-mir-320c-1', 'miRNA', 5),\n", + " ('hsa-mir-320c-2', 'miRNA', 5),\n", + " ('hsa-mir-297', 'miRNA', 5),\n", + " ('hsa-mir-340', 'miRNA', 5),\n", + " ('hsa-mir-186', 'miRNA', 5),\n", + " ('hsa-mir-216b', 'miRNA', 5),\n", + " ('hsa-mir-337', 'miRNA', 5),\n", + " ('hsa-mir-196a-1', 'miRNA', 5),\n", + " ('hsa-mir-7-1', 'miRNA', 5),\n", + " ('hsa-mir-7-2', 'miRNA', 5),\n", + " ('hsa-mir-7-3', 'miRNA', 5),\n", + " ('hsa-mir-154', 'miRNA', 5),\n", + " ('hsa-mir-20b', 'miRNA', 5),\n", + " ('hsa-mir-198', 'miRNA', 5),\n", + " ('hsa-mir-182', 'miRNA', 5),\n", + " ('hsa-mir-409', 'miRNA', 5),\n", + " ('hsa-mir-892a', 'miRNA', 5),\n", + " ('hsa-mir-612', 'miRNA', 5),\n", + " ('hsa-mir-302a', 'miRNA', 5),\n", + " ('hsa-mir-587', 'miRNA', 5),\n", + " ('hsa-mir-99b', 'miRNA', 5),\n", + " ('hsa-mir-519c', 'miRNA', 5),\n", + " ('hsa-mir-187', 'miRNA', 5),\n", + " ('hsa-mir-487b', 'miRNA', 5),\n", + " ('hsa-mir-590', 'miRNA', 5),\n", + " ('hsa-mir-489', 'miRNA', 5),\n", + " ('hsa-mir-6869', 'miRNA', 5),\n", + " ('hsa-mir-522', 'miRNA', 5),\n", + " ('hsa-mir-422a', 'miRNA', 5),\n", + " ('hsa-mir-600', 'miRNA', 5),\n", + " ('hsa-mir-505', 'miRNA', 5),\n", + " ('hsa-mir-302c', 'miRNA', 5),\n", + " ('hsa-mir-519d', 'miRNA', 5),\n", + " ('hsa-mir-1296', 'miRNA', 5),\n", + " ('hsa-mir-1273g', 'miRNA', 5),\n", + " ('hsa-mir-1269a', 'miRNA', 5),\n", + " ('hsa-mir-6852', 'miRNA', 5),\n", + " ('hsa-mir-1258', 'miRNA', 5),\n", + " ('hsa-mir-7702', 'miRNA', 5),\n", + " ('hsa-mir-376a', 'miRNA', 5),\n", + " ('hsa-mir-206', 'miRNA', 5),\n", + " ('hsa-mir-520g', 'miRNA', 5),\n", + " ('hsa-mir-365-1', 'miRNA', 5),\n", + " ('hsa-mir-365-2', 'miRNA', 5),\n", + " ('hsa-mir-582', 'miRNA', 5),\n", + " ('hsa-mir-1914', 'miRNA', 5),\n", + " ('hsa-mir-371', 'miRNA', 5),\n", + " ('hsa-mir-1295b', 'miRNA', 5),\n", + " ('hsa-mir-4478', 'miRNA', 5),\n", + " ('hsa-mir-452', 'miRNA', 5),\n", + " ('hsa-mir-548c', 'miRNA', 5),\n", + " ('hsa-mir-708', 'miRNA', 5),\n", + " ('hsa-mir-1-2', 'miRNA', 5),\n", + " ('hsa-mir-147b', 'miRNA', 5),\n", + " ('hsa-mir-190a', 'miRNA', 5),\n", + " ('hsa-mir-2110', 'miRNA', 5),\n", + " ('hsa-mir-26a-1', 'miRNA', 5),\n", + " ('hsa-mir-26a-2', 'miRNA', 5),\n", + " ('hsa-mir-601', 'miRNA', 5),\n", + " ('hsa-mir-199', 'miRNA', 5),\n", + " ('hsa-mir-3142', 'miRNA', 5),\n", + " ('hsa-mir-3182', 'miRNA', 5),\n", + " ('hsa-mir-4286', 'miRNA', 5),\n", + " ('hsa-mir-4301', 'miRNA', 5),\n", + " ('hsa-mir-597', 'miRNA', 5),\n", + " ('hsa-mir-1179', 'miRNA', 5),\n", + " ('hsa-mir-576', 'miRNA', 5),\n", + " ('hsa-mir-19b', 'miRNA', 5),\n", + " ('hsa-mir-1287', 'miRNA', 5),\n", + " ('hsa-mir-3666', 'miRNA', 5),\n", + " ('E2F4', 'lncRNA', 6),\n", + " ('hsa-mir-181d', 'miRNA', 5),\n", + " ('hsa-mir-764', 'miRNA', 5),\n", + " ('hsa-mir-494', 'miRNA', 5),\n", + " ('hsa-mir-595', 'miRNA', 5),\n", + " ('hsa-mir-30e', 'miRNA', 5),\n", + " ('hsa-mir-3126', 'miRNA', 5),\n", + " ('hsa-mir-718', 'miRNA', 5),\n", + " ('hsa-mir-181c', 'miRNA', 5),\n", + " ('hsa-mir-302', 'miRNA', 5),\n", + " ('hsa-mir-604', 'miRNA', 5),\n", + " ('hsa-mir-3131', 'miRNA', 5),\n", + " ('hsa-mir-299', 'miRNA', 5),\n", + " ('hsa-mir-1269', 'miRNA', 5),\n", + " ('hsa-mir-548a', 'miRNA', 5),\n", + " ('hsa-mir-1207', 'miRNA', 5),\n", + " ('hsa-mir-1299', 'miRNA', 5),\n", + " ('hsa-mir-500a', 'miRNA', 5),\n", + " ('hsa-mir-500', 'miRNA', 5),\n", + " ('hsa-mir-151', 'miRNA', 5),\n", + " ('hsa-mir-1202', 'miRNA', 5),\n", + " ('hsa-mir-637', 'miRNA', 5),\n", + " ('hsa-mir-1301', 'miRNA', 5),\n", + " ('hsa-mir-520e', 'miRNA', 5),\n", + " ('hsa-mir-421', 'miRNA', 5),\n", + " ('hsa-mir-147a', 'miRNA', 5),\n", + " ('hsa-mir-499b', 'miRNA', 5),\n", + " ('hsa-mir-376a-1', 'miRNA', 5),\n", + " ('hsa-mir-376a-2', 'miRNA', 5),\n", + " ('hsa-mir-26', 'miRNA', 5),\n", + " ('hsa-mir-1274a', 'miRNA', 5),\n", + " ('hsa-mir-508', 'miRNA', 5),\n", + " ('hsa-mir-184', 'miRNA', 5),\n", + " ('hsa-mir-520d', 'miRNA', 5),\n", + " ('hsa-mir-190b', 'miRNA', 5),\n", + " ('hsa-mir-29', 'miRNA', 5),\n", + " ('hsa-mir-3144', 'miRNA', 5),\n", + " ('hsa-mir-581', 'miRNA', 5),\n", + " ('hsa-mir-675', 'miRNA', 5),\n", + " ('hsa-mir-941', 'miRNA', 5),\n", + " ('hsa-mir-105', 'miRNA', 5),\n", + " ('hsa-mir-432', 'miRNA', 5),\n", + " ('hsa-mir-940', 'miRNA', 5),\n", + " ('hsa-mir-3178', 'miRNA', 5),\n", + " ('hsa-mir-573', 'miRNA', 5),\n", + " ('hsa-mir-203a', 'miRNA', 5),\n", + " ('hsa-mir-379', 'miRNA', 5),\n", + " ('hsa-mir-539', 'miRNA', 5),\n", + " ('hsa-mir-1249', 'miRNA', 5),\n", + " ('hsa-mir-1180', 'miRNA', 5),\n", + " ('hsa-mir-744', 'miRNA', 5),\n", + " ('hsa-mir-122a', 'miRNA', 5),\n", + " ('hsa-mir-381', 'miRNA', 5),\n", + " ('hsa-mir-3607', 'miRNA', 5),\n", + " ('hsa-mir-513c', 'miRNA', 5),\n", + " ('hsa-mir-671', 'miRNA', 5),\n", + " ('hsa-mir-602', 'miRNA', 5),\n", + " ('hsa-mir-512-1', 'miRNA', 5),\n", + " ('hsa-mir-512-2', 'miRNA', 5),\n", + " ('hsa-mir-29b-2', 'miRNA', 5),\n", + " ('hsa-mir-520b', 'miRNA', 5),\n", + " ('hsa-mir-216a', 'miRNA', 5),\n", + " ('hsa-mir-219', 'miRNA', 5),\n", + " ('hsa-mir-517a', 'miRNA', 5),\n", + " ('hsa-mir-517c', 'miRNA', 5),\n", + " ('hsa-mir-550a-1', 'miRNA', 5),\n", + " ('hsa-mir-550a-2', 'miRNA', 5),\n", + " ('hsa-mir-550a-3', 'miRNA', 5),\n", + " ('hsa-mir-657', 'miRNA', 5),\n", + " ('hsa-mir-212', 'miRNA', 5),\n", + " ('hsa-mir-1285', 'miRNA', 5),\n", + " ('hsa-mir-511', 'miRNA', 5),\n", + " ('hsa-mir-1236', 'miRNA', 5),\n", + " ('hsa-mir-377', 'miRNA', 5),\n", + " ('hsa-mir-411', 'miRNA', 5),\n", + " ('hsa-mir-709', 'miRNA', 5),\n", + " ('hsa-mir-3127', 'miRNA', 5),\n", + " ('hsa-mir-448', 'miRNA', 5),\n", + " ('hsa-mir-570', 'miRNA', 5),\n", + " ('hsa-mir-208', 'miRNA', 5),\n", + " ('hsa-mir-325', 'miRNA', 5),\n", + " ('hsa-mir-616', 'miRNA', 5),\n", + " ('hsa-mir-384', 'miRNA', 5),\n", + " ('hsa-mir-935', 'miRNA', 5),\n", + " ('hsa-mir-3117', 'miRNA', 5),\n", + " ('hsa-mir-98', 'miRNA', 5),\n", + " ('hsa-mir-922', 'miRNA', 5),\n", + " ('hsa-mir-302d', 'miRNA', 5),\n", + " ('hsa-mir-3664', 'miRNA', 5),\n", + " ('hsa-mir-4417', 'miRNA', 5),\n", + " ('hsa-mir-346', 'miRNA', 5),\n", + " ('hsa-mir-136', 'miRNA', 5),\n", + " ('hsa-mir-613', 'miRNA', 5),\n", + " ('hsa-mir-767', 'miRNA', 5),\n", + " ('hsa-mir-103a', 'miRNA', 5),\n", + " ('hsa-mir-876', 'miRNA', 5),\n", + " ('hsa-mir-300', 'miRNA', 5),\n", + " ('hsa-mir-298', 'miRNA', 5),\n", + " ('hsa-mir-23c', 'miRNA', 5),\n", + " ('hsa-mir-504', 'miRNA', 5),\n", + " ('hsa-mir-1306', 'miRNA', 5),\n", + " ('hsa-mir-665', 'miRNA', 5),\n", + " ('hsa-mir-589', 'miRNA', 5),\n", + " ('hsa-mir-645', 'miRNA', 5),\n", + " ('hsa-mir-433', 'miRNA', 5),\n", + " ('hsa-mir-4458', 'miRNA', 5),\n", + " ('hsa-mir-188', 'miRNA', 5),\n", + " ('hsa-mir-450b', 'miRNA', 5),\n", + " ('hsa-mir-323b', 'miRNA', 5),\n", + " ('hsa-mir-765', 'miRNA', 5),\n", + " ('hsa-mir-151a', 'miRNA', 5),\n", + " ('hsa-mir-208b', 'miRNA', 5),\n", + " ('hsa-mir-320b-1', 'miRNA', 5),\n", + " ('hsa-mir-320b-2', 'miRNA', 5),\n", + " ('hsa-mir-320d-1', 'miRNA', 5),\n", + " ('hsa-mir-500b', 'miRNA', 5),\n", + " ('hsa-mir-518b', 'miRNA', 5),\n", + " ('hsa-mir-526a-1', 'miRNA', 5),\n", + " ('hsa-mir-526a-2', 'miRNA', 5),\n", + " ('hsa-mir-526b', 'miRNA', 5),\n", + " ('hsa-mir-527', 'miRNA', 5),\n", + " ('hsa-mir-1228', 'miRNA', 5),\n", + " ('hsa-mir-2116', 'miRNA', 5),\n", + " ('hsa-mir-557', 'miRNA', 5),\n", + " ('hsa-mir-942', 'miRNA', 5),\n", + " ('hsa-mir-694', 'miRNA', 5),\n", + " ('hsa-mir-610', 'miRNA', 5),\n", + " ('hsa-mir-655', 'miRNA', 5),\n", + " ('hsa-mir-223a', 'miRNA', 5),\n", + " ('hsa-mir-320', 'miRNA', 5),\n", + " ('hsa-mir-512', 'miRNA', 5),\n", + " ('hsa-mir-651', 'miRNA', 5),\n", + " ('hsa-mir-571', 'miRNA', 5),\n", + " ('hsa-mir-943', 'miRNA', 5),\n", + " ('hsa-mir-548l', 'miRNA', 5),\n", + " ('hsa-mir-1468', 'miRNA', 5),\n", + " ('hsa-mir-3651', 'miRNA', 5),\n", + " ('hsa-mir-4270', 'miRNA', 5),\n", + " ('hsa-mir-7706', 'miRNA', 5),\n", + " ('hsa-mir-1234', 'miRNA', 5),\n", + " ('hsa-mir-105-1', 'miRNA', 5),\n", + " ('hsa-mir-105-2', 'miRNA', 5),\n", + " ('hsa-mir-450a-1', 'miRNA', 5),\n", + " ('hsa-mir-450a-2', 'miRNA', 5),\n", + " ('hsa-mir-519e', 'miRNA', 5),\n", + " ('hsa-mir-518e', 'miRNA', 5),\n", + " ('hsa-mir-519a', 'miRNA', 5),\n", + " ('hsa-mir-525', 'miRNA', 5),\n", + " ('hsa-mir-761', 'miRNA', 5),\n", + " ('hsa-mir-515', 'miRNA', 5),\n", + " ('hsa-mir-520c', 'miRNA', 5),\n", + " ('hsa-mir-672', 'miRNA', 5),\n", + " ('hsa-mir-690', 'miRNA', 5),\n", + " ('hsa-mir-449', 'miRNA', 5),\n", + " ('hsa-mir-3162', 'miRNA', 5),\n", + " ('hsa-mir-1260a', 'miRNA', 5),\n", + " ('hsa-mir-128b', 'miRNA', 5),\n", + " ('DLEU2', 'lncRNA', 6),\n", + " ('HOTAIR', 'lncRNA', 6),\n", + " ('hsa-mir-596', 'miRNA', 5),\n", + " ('hsa-mir-611', 'miRNA', 5),\n", + " ('hsa-mir-642a', 'miRNA', 5),\n", + " ('hsa-mir-654', 'miRNA', 5),\n", + " ('hsa-mir-769', 'miRNA', 5),\n", + " ('hsa-mir-516a-1', 'miRNA', 5),\n", + " ('hsa-mir-516a-2', 'miRNA', 5),\n", + " ('hsa-mir-516b-1', 'miRNA', 5),\n", + " ('hsa-mir-516b-2', 'miRNA', 5),\n", + " ('hsa-mir-583', 'miRNA', 5),\n", + " ('hsa-mir-658', 'miRNA', 5),\n", + " ('hsa-mir-662', 'miRNA', 5),\n", + " ('hsa-mir-219-2', 'miRNA', 5),\n", + " ('hsa-mir-4449', 'miRNA', 5),\n", + " ('hsa-mir-2682', 'miRNA', 5),\n", + " ('hsa-mir-103-1', 'miRNA', 5),\n", + " ('AC091891.2', 'lncRNA', 6),\n", + " ('AIRN', 'lncRNA', 6),\n", + " ('anti-NOS2A', 'lncRNA', 6),\n", + " ('ATP6V1G2-DDX39B', 'lncRNA', 6),\n", + " ('ATXN8OS', 'lncRNA', 6),\n", + " ('B1 SINE RNA', 'lncRNA', 6),\n", + " ('B2 SINE RNA', 'lncRNA', 6),\n", + " ('BACE1-AS', 'lncRNA', 6),\n", + " ('BCAR4', 'lncRNA', 6),\n", + " ('BCYRN1', 'lncRNA', 6),\n", + " ('BDNF-AS1', 'lncRNA', 6),\n", + " ('BOK-AS1', 'lncRNA', 6),\n", + " ('BPESC1', 'lncRNA', 6),\n", + " ('BX118339', 'lncRNA', 6),\n", + " ('C15orf2', 'lncRNA', 6),\n", + " ('C1QTNF9B-AS1', 'lncRNA', 6),\n", + " ('CASC2', 'lncRNA', 6),\n", + " ('CBR3-AS1', 'lncRNA', 6),\n", + " ('CDKN2B-AS1', 'lncRNA', 6),\n", + " ('CECR3', 'lncRNA', 6),\n", + " ('CECR9', 'lncRNA', 6),\n", + " ('CHL1-AS2', 'lncRNA', 6),\n", + " ('CRNDE', 'lncRNA', 6),\n", + " ('DAOA-AS1', 'lncRNA', 6),\n", + " ('DAPK1', 'lncRNA', 6),\n", + " ('DGCR5', 'lncRNA', 6),\n", + " ('DISC2', 'lncRNA', 6),\n", + " ('DLEU1', 'lncRNA', 6),\n", + " ('DLG2-AS1', 'lncRNA', 6),\n", + " ('DLX6-AS1', 'lncRNA', 6),\n", + " ('DMPK', 'lncRNA', 6),\n", + " ('DNM3OS', 'lncRNA', 6),\n", + " ('DSCAM-AS1', 'lncRNA', 6),\n", + " ('EPB41L4A-AS1', 'lncRNA', 6),\n", + " ('ERL', 'lncRNA', 6),\n", + " ('ESRG', 'lncRNA', 6),\n", + " ('FMR1-AS1', 'lncRNA', 6),\n", + " ('GAS5', 'lncRNA', 6),\n", + " ('GDNF-AS1', 'lncRNA', 6),\n", + " ('GNAS-AS1', 'lncRNA', 6),\n", + " ('H19', 'lncRNA', 6),\n", + " ('HAR1A', 'lncRNA', 6),\n", + " ('HAR1B', 'lncRNA', 6),\n", + " ('HCP5', 'lncRNA', 6),\n", + " ('HIF1A-AS1', 'lncRNA', 6),\n", + " ('HLA-AS1', 'lncRNA', 6),\n", + " ('HTT-AS', 'lncRNA', 6),\n", + " ('HULC', 'lncRNA', 6),\n", + " ('HYMAI', 'lncRNA', 6),\n", + " ('IFNG-AS1', 'lncRNA', 6),\n", + " ('IGF2-AS', 'lncRNA', 6),\n", + " ('IPW', 'lncRNA', 6),\n", + " ('KCNQ1DN', 'lncRNA', 6),\n", + " ('KCNQ1OT1', 'lncRNA', 6),\n", + " ('LDMAR', 'lncRNA', 6),\n", + " ('LINC00032', 'lncRNA', 6),\n", + " ('LINC00271', 'lncRNA', 6),\n", + " ('LINC00312', 'lncRNA', 6),\n", + " ('LINC00538', 'lncRNA', 6),\n", + " ('LINC00901', 'lncRNA', 6),\n", + " ('MALAT1', 'lncRNA', 6),\n", + " ('MAP3K14', 'lncRNA', 6),\n", + " ('MEG3', 'lncRNA', 6),\n", + " ('MESTIT1', 'lncRNA', 6),\n", + " ('MIAT', 'lncRNA', 6),\n", + " ('MIR100HG', 'lncRNA', 6),\n", + " ('MIR155HG', 'lncRNA', 6),\n", + " ('MIR17HG', 'lncRNA', 6),\n", + " ('MIR31HG', 'lncRNA', 6),\n", + " ('MKRN3-AS1', 'lncRNA', 6),\n", + " ('MYCNOS', 'lncRNA', 6),\n", + " ('NAMA', 'lncRNA', 6),\n", + " ('NDM29', 'lncRNA', 6),\n", + " ('NEAT1', 'lncRNA', 6),\n", + " ('NRON', 'lncRNA', 6),\n", + " ('PCA3', 'lncRNA', 6),\n", + " ('PCAT1', 'lncRNA', 6),\n", + " ('PCGEM1', 'lncRNA', 6),\n", + " ('PDZRN3-AS1', 'lncRNA', 6),\n", + " ('PICSAR', 'lncRNA', 6),\n", + " ('PINC', 'lncRNA', 6),\n", + " ('PINK1-AS', 'lncRNA', 6),\n", + " ('PISRT1', 'lncRNA', 6),\n", + " ('PPP3CB', 'lncRNA', 6),\n", + " ('PRINS', 'lncRNA', 6),\n", + " ('PSORS1C3', 'lncRNA', 6),\n", + " ('PTCSC1', 'lncRNA', 6),\n", + " ('PVT1', 'lncRNA', 6),\n", + " ('RMST', 'lncRNA', 6),\n", + " ('RN7SK', 'lncRNA', 6),\n", + " ('RN7SL1', 'lncRNA', 6),\n", + " ('RRP1B', 'lncRNA', 6),\n", + " ('SCAANT1', 'lncRNA', 6),\n", + " ('SNHG11', 'lncRNA', 6),\n", + " ('SNHG3', 'lncRNA', 6),\n", + " ('SNHG4', 'lncRNA', 6),\n", + " ('SNHG5', 'lncRNA', 6),\n", + " ('SOX2-OT', 'lncRNA', 6),\n", + " ('SPRY4-IT1', 'lncRNA', 6),\n", + " ('SRA1', 'lncRNA', 6),\n", + " ('TCL6', 'lncRNA', 6),\n", + " ('TDRG1', 'lncRNA', 6),\n", + " ('TERC', 'lncRNA', 6),\n", + " ('TRAF3IP2-AS1', 'lncRNA', 6),\n", + " ('TUG1', 'lncRNA', 6),\n", + " ('TUSC7', 'lncRNA', 6),\n", + " ('Ube3a-as', 'lncRNA', 6),\n", + " ('uc021oqb.2', 'lncRNA', 6),\n", + " ('uc061gkt.1', 'lncRNA', 6),\n", + " ('UCA1', 'lncRNA', 6),\n", + " ('WRAP53', 'lncRNA', 6),\n", + " ('WT1-AS', 'lncRNA', 6),\n", + " ('XIST', 'lncRNA', 6),\n", + " ('ZFAT-AS1', 'lncRNA', 6),\n", + " ('hsa-mir-598', 'miRNA', 5),\n", + " ('hsa-mir-509-3', 'miRNA', 5),\n", + " ('hsa-mir-519b', 'miRNA', 5),\n", + " ('hsa-mir-593', 'miRNA', 5),\n", + " ('hsa-mir-621', 'miRNA', 5),\n", + " ('hsa-mir-4487', 'miRNA', 5),\n", + " ('hsa-mir-4706', 'miRNA', 5),\n", + " ('hsa-mir-4731', 'miRNA', 5),\n", + " ('hsa-mir-514', 'miRNA', 5),\n", + " ('hsa-mir-514a', 'miRNA', 5),\n", + " ('hsa-mir-664', 'miRNA', 5),\n", + " ('hsa-mir-153-2', 'miRNA', 5),\n", + " ('hsa-mir-488', 'miRNA', 5),\n", + " ('hsa-mir-768', 'miRNA', 5),\n", + " ('hsa-mir-4633', 'miRNA', 5),\n", + " ('hsa-mir-507', 'miRNA', 5),\n", + " ('hsa-mir-181a-1', 'miRNA', 5),\n", + " ('hsa-mir-933', 'miRNA', 5),\n", + " ('hsa-mir-1308', 'miRNA', 5),\n", + " ('hsa-mir-4291', 'miRNA', 5),\n", + " ('hsa-mir-4317', 'miRNA', 5),\n", + " ('hsa-mir-4324', 'miRNA', 5),\n", + " ('hsa-mir-148', 'miRNA', 5),\n", + " ('hsa-mir-509-1', 'miRNA', 5),\n", + " ('hsa-mir-509-2', 'miRNA', 5),\n", + " ('hsa-mir-510', 'miRNA', 5),\n", + " ('hsa-mir-513a-1', 'miRNA', 5),\n", + " ('hsa-mir-513a-2', 'miRNA', 5),\n", + " ('hsa-mir-513b', 'miRNA', 5),\n", + " ('hsa-mir-514a-1', 'miRNA', 5),\n", + " ('hsa-mir-514a-2', 'miRNA', 5),\n", + " ('hsa-mir-514a-3', 'miRNA', 5),\n", + " ('hsa-mir-1225', 'miRNA', 5),\n", + " ('hsa-mir-634', 'miRNA', 5),\n", + " ('hsa-mir-1260', 'miRNA', 5),\n", + " ('hsa-mir-1274b', 'miRNA', 5),\n", + " ('hsa-mir-3663', 'miRNA', 5),\n", + " ('hsa-mir-4281', 'miRNA', 5),\n", + " ('hsa-mir-133', 'miRNA', 5),\n", + " ('hsa-mir-423-5p', 'miRNA', 5),\n", + " ('hsa-mir-99', 'miRNA', 5),\n", + " ('hsa-mir-30', 'miRNA', 5),\n", + " ('hsa-mir-515-1', 'miRNA', 5),\n", + " ('hsa-mir-515-2', 'miRNA', 5),\n", + " ('hsa-mir-520f', 'miRNA', 5),\n", + " ('hsa-mir-520h', 'miRNA', 5),\n", + " ('hsa-mir-523', 'miRNA', 5),\n", + " ('hsa-mir-147', 'miRNA', 5),\n", + " ('hsa-mir-550a', 'miRNA', 5),\n", + " ('hsa-mir-463', 'miRNA', 5),\n", + " ('hsa-mir-33', 'miRNA', 5),\n", + " ('hsa-mir-4736', 'miRNA', 5),\n", + " ('hsa-mir-4739', 'miRNA', 5),\n", + " ('hsa-mir-664b', 'miRNA', 5),\n", + " ('hsa-mir-518', 'miRNA', 5),\n", + " ('hsa-mir-1324', 'miRNA', 5),\n", + " ('hsa-mir-517b', 'miRNA', 5),\n", + " ('hsa-mir-128-1', 'miRNA', 5),\n", + " ('hsa-mir-302e', 'miRNA', 5),\n", + " ('hsa-mir-302f', 'miRNA', 5),\n", + " ('hsa-mir-1185-1', 'miRNA', 5),\n", + " ('hsa-mir-1343', 'miRNA', 5),\n", + " ('hsa-mir-3960', 'miRNA', 5),\n", + " ('hsa-mir-4695', 'miRNA', 5),\n", + " ('hsa-mir-6087', 'miRNA', 5),\n", + " ('hsa-mir-6724', 'miRNA', 5),\n", + " ('hsa-mir-6831', 'miRNA', 5),\n", + " ('hsa-mir-1227', 'miRNA', 5),\n", + " ('hsa-mir-642b', 'miRNA', 5),\n", + " ('hsa-mir-944', 'miRNA', 5),\n", + " ('hsa-mir-27', 'miRNA', 5),\n", + " ('hsa-mir-892b', 'miRNA', 5),\n", + " ('hsa-mir-3658', 'miRNA', 5),\n", + " ('hsa-mir-329', 'miRNA', 5),\n", + " ('hsa-mir-103b', 'miRNA', 5),\n", + " ('hsa-mir-294', 'miRNA', 5),\n", + " ('hsa-mir-1247', 'miRNA', 5),\n", + " ('hsa-mir-7641', 'miRNA', 5),\n", + " ('hsa-mir-3619', 'miRNA', 5),\n", + " ('hsa-mir-320c', 'miRNA', 5),\n", + " ('hsa-mir-1182', 'miRNA', 5),\n", + " ('hsa-mir-378b', 'miRNA', 5),\n", + " ('hsa-mir-378c', 'miRNA', 5),\n", + " ('hsa-mir-378d-1', 'miRNA', 5),\n", + " ('hsa-mir-378d-2', 'miRNA', 5),\n", + " ('hsa-mir-378e', 'miRNA', 5),\n", + " ('hsa-mir-378f', 'miRNA', 5),\n", + " ('hsa-mir-378g', 'miRNA', 5),\n", + " ('hsa-mir-378h', 'miRNA', 5),\n", + " ('hsa-mir-378i', 'miRNA', 5),\n", + " ('hsa-mir-1281', 'miRNA', 5),\n", + " ('hsa-mir-921', 'miRNA', 5),\n", + " ('hsa-mir-518a-1', 'miRNA', 5),\n", + " ('hsa-mir-518a-2', 'miRNA', 5),\n", + " ('hsa-mir-3007a', 'miRNA', 5),\n", + " ('hsa-mir-4454', 'miRNA', 5),\n", + " ('hsa-mir-4511', 'miRNA', 5),\n", + " ('hsa-mir-6124', 'miRNA', 5),\n", + " ('hsa-mir-1233', 'miRNA', 5),\n", + " ('hsa-mir-190', 'miRNA', 5),\n", + " ('hsa-mir-422b', 'miRNA', 5),\n", + " ('hsa-mir-639', 'miRNA', 5),\n", + " ('hsa-mir-644', 'miRNA', 5),\n", + " ('hsa-mir-649', 'miRNA', 5),\n", + " ('hsa-mir-3171', 'miRNA', 5),\n", + " ('hsa-mir-873', 'miRNA', 5),\n", + " ('hsa-mir-323a', 'miRNA', 5),\n", + " ('hsa-mir-376b', 'miRNA', 5),\n", + " ('hsa-mir-142a', 'miRNA', 5),\n", + " ('hsa-mir-1254', 'miRNA', 5),\n", + " ('hsa-mir-23', 'miRNA', 5),\n", + " ('hsa-mir-322', 'miRNA', 5),\n", + " ('hsa-mir-631', 'miRNA', 5),\n", + " ('hsa-mir-520', 'miRNA', 5),\n", + " ('hsa-mir-1181', 'miRNA', 5),\n", + " ('hsa-mir-376c', 'miRNA', 5),\n", + " ('hsa-mir-758', 'miRNA', 5),\n", + " ('hsa-mir-4697', 'miRNA', 5),\n", + " ('hsa-mir-543', 'miRNA', 5),\n", + " ('hsa-mir-4271', 'miRNA', 5),\n", + " ('hsa-mir-1283', 'miRNA', 5),\n", + " ('hsa-mir-7a', 'miRNA', 5),\n", + " ('hsa-mir-4436b-1', 'miRNA', 5),\n", + " ('hsa-mir-4436b-2', 'miRNA', 5),\n", + " ('hsa-mir-3925', 'miRNA', 5),\n", + " ('hsa-mir-3926', 'miRNA', 5),\n", + " ('hsa-mir-4634', 'miRNA', 5),\n", + " ('hsa-mir-4764', 'miRNA', 5),\n", + " ('hsa-mir-6089', 'miRNA', 5),\n", + " ('hsa-mir-1273', 'miRNA', 5),\n", + " ('hsa-mir-4513', 'miRNA', 5),\n", + " ('hsa-mir-624', 'miRNA', 5),\n", + " ('hsa-mir-585', 'miRNA', 5),\n", + " ('hsa-mir-2909', 'miRNA', 5),\n", + " ('hsa-mir-21a', 'miRNA', 5),\n", + " ('hsa-mir-1908', 'miRNA', 5),\n", + " ('hsa-mir-579', 'miRNA', 5),\n", + " ('hsa-mir-618', 'miRNA', 5),\n", + " ('hsa-mir-659', 'miRNA', 5),\n", + " ('hsa-mir-4532', 'miRNA', 5),\n", + " ('hsa-mir-6873', 'miRNA', 5),\n", + " ('hsa-mir-548', 'miRNA', 5),\n", + " ('hsa-mir-1972', 'miRNA', 5),\n", + " ('hsa-mir-3138', 'miRNA', 5),\n", + " ('hsa-mir-513a', 'miRNA', 5),\n", + " ('hsa-mir-516a', 'miRNA', 5),\n", + " ('hsa-mir-1248', 'miRNA', 5),\n", + " ('hsa-mir-2861', 'miRNA', 5),\n", + " ('hsa-mir-6086', 'miRNA', 5),\n", + " ('hsa-mir-3158', 'miRNA', 5),\n", + " ('hsa-mir-5699', 'miRNA', 5),\n", + " ('hsa-mir-518d', 'miRNA', 5),\n", + " ('hsa-mir-547', 'miRNA', 5),\n", + " ('hsa-mir-1843', 'miRNA', 5),\n", + " ('hsa-mir-323', 'miRNA', 5),\n", + " ('hsa-mir-4262', 'miRNA', 5),\n", + " ('hsa-mir-371a', 'miRNA', 5),\n", + " ('hsa-mir-3135b', 'miRNA', 5),\n", + " ('hsa-mir-462a', 'miRNA', 5),\n", + " ('hsa-mir-711', 'miRNA', 5),\n", + " ('hsa-mir-4488', 'miRNA', 5),\n", + " ('hsa-mir-3591', 'miRNA', 5),\n", + " ('NONRATT021972', 'lncRNA', 6),\n", + " ('NRF', 'lncRNA', 6),\n", + " ('hsa-mir-3157', 'miRNA', 5),\n", + " ('hsa-mir-4521', 'miRNA', 5),\n", + " ('hsa-mir-4709', 'miRNA', 5),\n", + " ('hsa-mir-5091', 'miRNA', 5),\n", + " ('hsa-mir-153-1', 'miRNA', 5),\n", + " ('hsa-mir-548d', 'miRNA', 5),\n", + " ('hsa-mir-1183', 'miRNA', 5),\n", + " ('hsa-mir-1471', 'miRNA', 5),\n", + " ('hsa-mir-1909', 'miRNA', 5),\n", + " ('hsa-mir-5193', 'miRNA', 5),\n", + " ('hsa-mir-4717', 'miRNA', 5),\n", + " ('hsa-mir-6126', 'miRNA', 5),\n", + " ('hsa-mir-687', 'miRNA', 5),\n", + " ('hsa-mir-329-1', 'miRNA', 5),\n", + " ('hsa-mir-329-2', 'miRNA', 5),\n", + " ('hsa-mir-548b', 'miRNA', 5),\n", + " ('hsa-mir-550b-1', 'miRNA', 5),\n", + " ('hsa-mir-550b-2', 'miRNA', 5),\n", + " ('hsa-mir-640', 'miRNA', 5),\n", + " ('hsa-mir-3179-1', 'miRNA', 5),\n", + " ('hsa-mir-3179-2', 'miRNA', 5),\n", + " ('hsa-mir-3179-3', 'miRNA', 5),\n", + " ('hsa-mir-668', 'miRNA', 5),\n", + " ('hsa-mir-1825', 'miRNA', 5),\n", + " ('hsa-mir-3620', 'miRNA', 5),\n", + " ('hsa-mir-4721', 'miRNA', 5),\n", + " ('hsa-mir-301', 'miRNA', 5),\n", + " ('hsa-mir-565', 'miRNA', 5),\n", + " ('hsa-mir-1266', 'miRNA', 5),\n", + " ('hsa-mir-31a', 'miRNA', 5),\n", + " ('hsa-mir-1253', 'miRNA', 5),\n", + " ('hsa-mir-219a', 'miRNA', 5),\n", + " ('hsa-mir-802', 'miRNA', 5),\n", + " ('hsa-mir-3928', 'miRNA', 5),\n", + " ('hsa-mir-661', 'miRNA', 5),\n", + " ('hsa-mir-664a', 'miRNA', 5),\n", + " ('hsa-mir-3200', 'miRNA', 5),\n", + " ('hsa-mir-586', 'miRNA', 5),\n", + " ('hsa-mir-1291', 'miRNA', 5),\n", + " ('hsa-mir-572', 'miRNA', 5),\n", + " ('hsa-mir-3149', 'miRNA', 5),\n", + " ('AC068831.6', 'lncRNA', 6),\n", + " ('LINC01254', 'lncRNA', 6),\n", + " ('PAX8‐AS1', 'lncRNA', 6),\n", + " ('RP11-133L14.5', 'lncRNA', 6),\n", + " ('RP11-203M5.8', 'lncRNA', 6),\n", + " ('RP11-68I3.11', 'lncRNA', 6),\n", + " ('RP11‐259K15.2', 'lncRNA', 6),\n", + " ('hsa-mir-1178', 'miRNA', 5),\n", + " ('hsa-mir-126a', 'miRNA', 5),\n", + " ('hsa-mir-551', 'miRNA', 5),\n", + " ('hsa-mir-551b', 'miRNA', 5),\n", + " ('uc063pln.1', 'lncRNA', 6),\n", + " ('hsa-mir-3909', 'miRNA', 5),\n", + " ('hsa-mir-4732', 'miRNA', 5),\n", + " ('hsa-mir-644b', 'miRNA', 5),\n", + " ('hsa-mir-941-1', 'miRNA', 5),\n", + " ('hsa-mir-941-3', 'miRNA', 5),\n", + " ('hsa-mir-941-4', 'miRNA', 5),\n", + " ('hsa-mir-4284', 'miRNA', 5),\n", + " ('hsa-mir-3074', 'miRNA', 5),\n", + " ('hsa-mir-4448', 'miRNA', 5),\n", + " ('hsa-mir-5481', 'miRNA', 5),\n", + " ('hsa-mir-3161', 'miRNA', 5),\n", + " ('hsa-mir-450', 'miRNA', 5),\n", + " ('hsa-mir-569', 'miRNA', 5),\n", + " ('hsa-mir-351', 'miRNA', 5),\n", + " ('hsa-mir-327', 'miRNA', 5),\n", + " ('hsa-mir-566', 'miRNA', 5),\n", + " ('hsa-mir-1226', 'miRNA', 5),\n", + " ('hsa-mir-1298', 'miRNA', 5),\n", + " ('hsa-mir-1295a', 'miRNA', 5),\n", + " ('hsa-mir-544', 'miRNA', 5),\n", + " ('hsa-mir-4319', 'miRNA', 5),\n", + " ('hsa-mir-770', 'miRNA', 5),\n", + " ('circGFRA1', 'circRNA', 6),\n", + " ('CYTOR', 'lncRNA', 6),\n", + " ('DANCR', 'lncRNA', 6),\n", + " ('hsa_circRNA_104194', 'circRNA', 6),\n", + " ('MAPT-AS1', 'lncRNA', 6),\n", + " ('SNHG12', 'lncRNA', 6),\n", + " ('hsa_circ_0004383', 'circRNA', 6),\n", + " ('hsa-mir-548a-1', 'miRNA', 5),\n", + " ('hsa-mir-548a-2', 'miRNA', 5),\n", + " ('hsa-mir-548a-3', 'miRNA', 5),\n", + " ('hsa-mir-191a', 'miRNA', 5),\n", + " ('hsa-mir-467a', 'miRNA', 5),\n", + " ('hsa-mir-12', 'miRNA', 5),\n", + " ('hsa-mir-555', 'miRNA', 5),\n", + " ('hsa-mir-4661', 'miRNA', 5),\n", + " ('hsa-mir-1270', 'miRNA', 5),\n", + " ('hsa-mir-449c', 'miRNA', 5),\n", + " ('hsa-mir-350', 'miRNA', 5),\n", + " ('hsa-mir-710', 'miRNA', 5),\n", + " ('hsa-mir-3614', 'miRNA', 5),\n", + " ('hsa-mir-299a', 'miRNA', 5),\n", + " ('hsa-mir-6780b', 'miRNA', 5),\n", + " ('hsa-mir-380', 'miRNA', 5),\n", + " ('hsa-mir-558', 'miRNA', 5),\n", + " ('hsa-mir-496', 'miRNA', 5),\n", + " ('hsa-mir-550', 'miRNA', 5),\n", + " ('hsa-mir-371b', 'miRNA', 5),\n", + " ('hsa-mir-189', 'miRNA', 5),\n", + " ('hsa-mir-519a-1', 'miRNA', 5),\n", + " ('hsa-mir-519a-2', 'miRNA', 5),\n", + " ('hsa-mir-5096', 'miRNA', 5),\n", + " ('YY1', 'lncRNA', 6),\n", + " ('hsa-mir-605', 'miRNA', 5),\n", + " ('hsa-mir-1293', 'miRNA', 5),\n", + " ('hsa-mir-320d-2', 'miRNA', 5),\n", + " ('hsa-mir-891a', 'miRNA', 5),\n", + " ('hsa-mir-1973', 'miRNA', 5),\n", + " ('hsa-mir-3172', 'miRNA', 5),\n", + " ('hsa-mir-3175', 'miRNA', 5),\n", + " ('hsa-mir-663b', 'miRNA', 5),\n", + " ('hsa-mir-934', 'miRNA', 5),\n", + " ('hsa-mir-1896', 'miRNA', 5),\n", + " ('hsa-mir-513', 'miRNA', 5),\n", + " ('hsa-mir-4443', 'miRNA', 5),\n", + " ('hsa-mir-6721', 'miRNA', 5),\n", + " ('ENSG00000280096', 'lncRNA', 6),\n", + " ('ENSG00000280665', 'lncRNA', 6),\n", + " ('hsa-mir-374c', 'miRNA', 5),\n", + " ('hsa-mir-3185', 'miRNA', 5),\n", + " ('hsa-mir-1237', 'miRNA', 5),\n", + " ('hsa-mir-3196', 'miRNA', 5),\n", + " ('ATB', 'lncRNA', 6),\n", + " ('hsa-mir-549', 'miRNA', 5),\n", + " ('AC002511.1', 'lncRNA', 6),\n", + " ('AP000688.29', 'lncRNA', 6),\n", + " ('RP4-620F22.3', 'lncRNA', 6),\n", + " ('RP5-843L14.1', 'lncRNA', 6),\n", + " ('hsa-mir-1897', 'miRNA', 5),\n", + " ('hsa-mir-691', 'miRNA', 5),\n", + " ('hsa-mir-872', 'miRNA', 5),\n", + " ('hsa-mir-367a', 'miRNA', 5),\n", + " ('hsa-mir-518f', 'miRNA', 5),\n", + " ('hsa-mir-528a', 'miRNA', 5),\n", + " ('hsa-mir-676', 'miRNA', 5),\n", + " ('hsa-mir-516b', 'miRNA', 5),\n", + " ('hsa-mir-517', 'miRNA', 5),\n", + " ('hsa-mir-1976', 'miRNA', 5),\n", + " ...]" + ] + }, + "execution_count": 249, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tuples_rna = [tuple(x) for x in df_rna_insertion.values]\n", + "tuples_rna" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# **Inserting operations for table rna**" + ] + }, + { + "cell_type": "code", + "execution_count": 250, + "metadata": {}, + "outputs": [], + "source": [ + "#function to insert into \"rna\" table the information from the rna-disease associations related\n", + "#to the id of the rna, its category (miRNA, lncRNA or circRNA) and the source from which the rna-disease information\n", + "#was extracted.\n", + "\n", + "def rna_insertion(result,cnx, logfile):\n", + " \n", + " \"\"\"Method that inserts a list of tuples corresponding to different rna entity's features \n", + " to DISNET MySQL DB, via mysql.connector objects.\n", + " \"\"\"\n", + "\n", + " insert_rnaclasstable = \"\"\"\n", + " INSERT INTO rna (rna_id, rna_category, source_id) \n", + " VALUES (%s, %s, %s);\n", + " \"\"\"\n", + " cursor = cnx.cursor(buffered = True)\n", + " \n", + " try:\n", + " cursor.execute('''SELECT * from rna''')\n", + "# for (a, b, c) in cursor:\n", + "# print(a,\" \",b,\" \",c)\n", + " num_fields = len(cursor.description)\n", + " field_names = [i[0] for i in cursor.description]\n", + " print(field_names)\n", + " '''\n", + " for i in result:\n", + " print(i)\n", + " cursor.execute(insert_rnaclasstable,i)\n", + " #print(i)\n", + " '''\n", + " cursor.executemany(insert_rnaclasstable, result)\n", + " cnx.commit()\n", + " \n", + " except mysql.connector.Error as err:\n", + " logfile.write('Module: ' + str(__name__) + \"\\n\" + str(err.msg))\n", + " \n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 251, + "metadata": {}, + "outputs": [], + "source": [ + "#Calling rnaclass function to fill the rna table.\n", + "#rna_insertion(tuples_rna,cnx, 'fichero.txt') #Uncomment this line to execute \"rnaclass\" function." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Inserting operations for table disease_rna" + ] + }, + { + "cell_type": "code", + "execution_count": 252, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rna_idrna_categorytypedisease_idcausalitysource_id
0hsa-mir-143miRNAcirculation_biomarker_diagnosis_downC0007102no5
1hsa-mir-143miRNAcirculation_biomarker_diagnosis_downC0009375no5
2hsa-mir-145miRNAcirculation_biomarker_diagnosis_downC0007102no5
3hsa-mir-145miRNAcirculation_biomarker_diagnosis_downC0009375no5
4hsa-let-7gmiRNAcirculation_biomarker_diagnosis_nsC0007102no5
.....................
587833UCA1lncRNARegulation [down-regulated]C0023869ns6
587834UphlncRNALocusC1848587ns6
587835XISTlncRNARegulation [up-regulated]C0007134ns6
587836XISTlncRNARegulation [up-regulated]C1266044ns6
587837XISTlncRNARegulation [up-regulated]C4049328ns6
\n", + "

585303 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " rna_id rna_category type \\\n", + "0 hsa-mir-143 miRNA circulation_biomarker_diagnosis_down \n", + "1 hsa-mir-143 miRNA circulation_biomarker_diagnosis_down \n", + "2 hsa-mir-145 miRNA circulation_biomarker_diagnosis_down \n", + "3 hsa-mir-145 miRNA circulation_biomarker_diagnosis_down \n", + "4 hsa-let-7g miRNA circulation_biomarker_diagnosis_ns \n", + "... ... ... ... \n", + "587833 UCA1 lncRNA Regulation [down-regulated] \n", + "587834 Uph lncRNA Locus \n", + "587835 XIST lncRNA Regulation [up-regulated] \n", + "587836 XIST lncRNA Regulation [up-regulated] \n", + "587837 XIST lncRNA Regulation [up-regulated] \n", + "\n", + " disease_id causality source_id \n", + "0 C0007102 no 5 \n", + "1 C0009375 no 5 \n", + "2 C0007102 no 5 \n", + "3 C0009375 no 5 \n", + "4 C0007102 no 5 \n", + "... ... ... ... \n", + "587833 C0023869 ns 6 \n", + "587834 C1848587 ns 6 \n", + "587835 C0007134 ns 6 \n", + "587836 C1266044 ns 6 \n", + "587837 C4049328 ns 6 \n", + "\n", + "[585303 rows x 6 columns]" + ] + }, + "execution_count": 252, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#reducing hmdd_lncrna_disnet dataframe by creating anotherone with the columns the table \"disease_rna\" has\n", + "df_disease_rna_insertion = hmdd_lncrna_disnet[['rna_id', 'rna_category','type','disease_id', 'causality', 'source_id']].drop_duplicates()\n", + "df_disease_rna_insertion" + ] + }, + { + "cell_type": "code", + "execution_count": 253, + "metadata": {}, + "outputs": [], + "source": [ + "df_disease_rna_insertion_1 = df_disease_rna_insertion[df_disease_rna_insertion.rna_id != 'hsa-mir-200C']\n", + "df_disease_rna_insertion_1 = df_disease_rna_insertion_1.drop_duplicates()" + ] + }, + { + "cell_type": "code", + "execution_count": 254, + "metadata": {}, + "outputs": [], + "source": [ + "def disease_rna_class(result,cnx, logfile):\n", + " \n", + " \"\"\"Method that inserts a list of tuples corresponding to different \n", + " disease_rna entity's features to DISNET MySQL DB, via mysql.connector objects.\n", + " \"\"\"\n", + "\n", + " insert_disease_rna_classtable = \"\"\"\n", + " INSERT INTO disease_rna (rna_id, rna_category, type, disease_id, causality, source_id) \n", + " VALUES (%s, %s, %s, %s, %s,%s);\n", + " \"\"\"\n", + " \n", + " \n", + " cursor = cnx.cursor(buffered = True)\n", + " \n", + " try:\n", + " cursor.execute('''SELECT * from disease_rna''')\n", + "# num_fields = len(cursor.description)\n", + "# field_names = [i[0] for i in cursor.description]\n", + "# print(field_names)\n", + " \n", + " cursor.executemany(insert_disease_rna_classtable, result)\n", + " cnx.commit()\n", + " \n", + " except mysql.connector.Error as err:\n", + " logfile.write('Module: ' + str(__name__) + \"\\n\" + str(err.msg))\n", + "# print(str(__name__))\n", + "# print(str(err.msg))" + ] + }, + { + "cell_type": "code", + "execution_count": 255, + "metadata": {}, + "outputs": [], + "source": [ + "#Calling disease_rna_class function to fill the \"disease_rna\" table.\n", + "#disease_rna_class(tuples_disease_rna,cnx,'fichero.txt')" + ] + }, + { + "cell_type": "code", + "execution_count": 256, + "metadata": {}, + "outputs": [], + "source": [ + "#As there are 585303 records to insert into \"disease_rna\" table, the dataframe containing \n", + "#all the rna-disease records will be broken up in 10 smaller dataframes. This will allow to avoid errors\n", + "#related with the size of \"df_disease_rna_insertion_1\" dataframe. Once 10 smaller dataframes are obtained and transformed into\n", + "#tuples, the function \"disease_rna_class\" will be executed for each of them, one at a time.\n", + "\n", + "\n", + "import numpy as np\n", + "df_split = np.array_split(df_disease_rna_insertion_1, 10)\n", + "for i in df_split:\n", + " tuples_disease_rna = [tuple(x) for x in i.values]\n", + "# disease_rna_class(tuples_disease_rna,cnx,'file.txt') #Uncomment this line to execute \"disease_rna_class\" function.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Descriptive analysis of the data inserted into DISNET database" + ] + }, + { + "cell_type": "code", + "execution_count": 257, + "metadata": {}, + "outputs": [], + "source": [ + "#how many miRNA, CircRNA and LncRNA have been incorporated?\n", + "#how many different type of associations have been incorporated?\n", + "#how many different diseases?" + ] + }, + { + "cell_type": "code", + "execution_count": 258, + "metadata": {}, + "outputs": [], + "source": [ + "import seaborn as sns" + ] + }, + { + "cell_type": "code", + "execution_count": 259, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rna_idcausalitytypenamesource_idsource_namerna_categorydisease_idvocab
0hsa-mir-143nocirculation_biomarker_diagnosis_downColonic Neoplasms5HMDD v3.2miRNAC0007102MSH
1hsa-mir-143nocirculation_biomarker_diagnosis_downColonic Neoplasms5HMDD v3.2miRNAC0009375MSH
2hsa-mir-145nocirculation_biomarker_diagnosis_downColonic Neoplasms5HMDD v3.2miRNAC0007102MSH
3hsa-mir-145nocirculation_biomarker_diagnosis_downColonic Neoplasms5HMDD v3.2miRNAC0009375MSH
4hsa-let-7gnocirculation_biomarker_diagnosis_nsColonic Neoplasms5HMDD v3.2miRNAC0007102MSH
..............................
587833UCA1nsRegulation [down-regulated]Lithiasis6LncRNADiseaselncRNAC0023869MSH
587834UphnsLocusRight ventricle hypoplasia6LncRNADiseaselncRNAC1848587MSH
587835XISTnsRegulation [up-regulated]collecting duct carcinoma6LncRNADiseaselncRNAC0007134DO
587836XISTnsRegulation [up-regulated]collecting duct carcinoma6LncRNADiseaselncRNAC1266044DO
587837XISTnsRegulation [up-regulated]collecting duct carcinoma6LncRNADiseaselncRNAC4049328DO
\n", + "

587838 rows × 9 columns

\n", + "
" + ], + "text/plain": [ + " rna_id causality type \\\n", + "0 hsa-mir-143 no circulation_biomarker_diagnosis_down \n", + "1 hsa-mir-143 no circulation_biomarker_diagnosis_down \n", + "2 hsa-mir-145 no circulation_biomarker_diagnosis_down \n", + "3 hsa-mir-145 no circulation_biomarker_diagnosis_down \n", + "4 hsa-let-7g no circulation_biomarker_diagnosis_ns \n", + "... ... ... ... \n", + "587833 UCA1 ns Regulation [down-regulated] \n", + "587834 Uph ns Locus \n", + "587835 XIST ns Regulation [up-regulated] \n", + "587836 XIST ns Regulation [up-regulated] \n", + "587837 XIST ns Regulation [up-regulated] \n", + "\n", + " name source_id source_name rna_category \\\n", + "0 Colonic Neoplasms 5 HMDD v3.2 miRNA \n", + "1 Colonic Neoplasms 5 HMDD v3.2 miRNA \n", + "2 Colonic Neoplasms 5 HMDD v3.2 miRNA \n", + "3 Colonic Neoplasms 5 HMDD v3.2 miRNA \n", + "4 Colonic Neoplasms 5 HMDD v3.2 miRNA \n", + "... ... ... ... ... \n", + "587833 Lithiasis 6 LncRNADisease lncRNA \n", + "587834 Right ventricle hypoplasia 6 LncRNADisease lncRNA \n", + "587835 collecting duct carcinoma 6 LncRNADisease lncRNA \n", + "587836 collecting duct carcinoma 6 LncRNADisease lncRNA \n", + "587837 collecting duct carcinoma 6 LncRNADisease lncRNA \n", + "\n", + " disease_id vocab \n", + "0 C0007102 MSH \n", + "1 C0009375 MSH \n", + "2 C0007102 MSH \n", + "3 C0009375 MSH \n", + "4 C0007102 MSH \n", + "... ... ... \n", + "587833 C0023869 MSH \n", + "587834 C1848587 MSH \n", + "587835 C0007134 DO \n", + "587836 C1266044 DO \n", + "587837 C4049328 DO \n", + "\n", + "[587838 rows x 9 columns]" + ] + }, + "execution_count": 259, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import matplotlib.pyplot as plot\n", + "#hmdd_lncrna_disnet.to_excel(\"hmdd_lncrna_disnet.xlsx\")\n", + "hmdd_lncrna_disnet" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**GENERAL STATISTICS OF THE INCORPORATED DATA**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " **how many miRNA, CircRNA and LncRNA have been incorporated?** " + ] + }, + { + "cell_type": "code", + "execution_count": 260, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "lncRNA 572481\n", + "miRNA 12324\n", + "circRNA 3033\n", + "Name: rna_category, dtype: int64\n", + "\n", + "The number of added non-coding RNAs is: 19914\n" + ] + } + ], + "source": [ + "#counting the total number of miRNA-disease, lncRNA-disease and circRNA-disease association.\n", + "#An association involves ncRNA-disease-type-causality\n", + "print(hmdd_lncrna_disnet['rna_category'].value_counts())\n", + "print()\n", + "print('The number of added non-coding RNAs is: ' + str(hmdd_lncrna_disnet['rna_id'].nunique()))#number of different ncRNAs\n", + "#inserted into DISNET.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Visualization of the number of RNAs per RNA category" + ] + }, + { + "cell_type": "code", + "execution_count": 261, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(0.5, 1.0, 'Number of ncRNA-disease associations per ncRNA category')]" + ] + }, + "execution_count": 261, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "rna_category_counts = hmdd_lncrna_disnet['rna_category'].value_counts().to_frame()\n", + "rna_category_counts = rna_category_counts.reset_index()\n", + "#plot.figure(figsize=(15,10))\n", + "\n", + "ax = sns.barplot(x=rna_category_counts['index'], y=rna_category_counts['rna_category'])\n", + "ax.set_yscale(\"log\")\n", + "ax.set(xlabel='ncRNA category', ylabel='ncRNA-disease association counts')\n", + "ax.set(title='Number of ncRNA-disease associations per ncRNA category')\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Finding the most repeated ncRNA-disease associations**" + ] + }, + { + "cell_type": "code", + "execution_count": 381, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rna_idnamedisease_id
102517HOTAIRstomach cancer81
138838UCA1stomach cancer81
74767CDKN2B-AS1coronary artery disease80
123932MALAT1stomach cancer63
100948H19stomach cancer63
131486PVT1stomach cancer63
123838MALAT1breast cancer60
103698IPWPrader-Willi syndrome60
102420HOTAIRbreast cancer60
74044CASC15stomach cancer54
74754CDKN2B-AS1breast cancer54
99959GAS5stomach cancer54
100855H19breast cancer54
123874MALAT1hepatocellular carcinoma50
124402MEG3lung cancer48
102473HOTAIRlung cancer48
102503HOTAIRprostate cancer48
102569HOTTIPstomach cancer45
76610CYTORstomach cancer45
74432CCAT1stomach cancer45
\n", + "
" + ], + "text/plain": [ + " rna_id name disease_id\n", + "102517 HOTAIR stomach cancer 81\n", + "138838 UCA1 stomach cancer 81\n", + "74767 CDKN2B-AS1 coronary artery disease 80\n", + "123932 MALAT1 stomach cancer 63\n", + "100948 H19 stomach cancer 63\n", + "131486 PVT1 stomach cancer 63\n", + "123838 MALAT1 breast cancer 60\n", + "103698 IPW Prader-Willi syndrome 60\n", + "102420 HOTAIR breast cancer 60\n", + "74044 CASC15 stomach cancer 54\n", + "74754 CDKN2B-AS1 breast cancer 54\n", + "99959 GAS5 stomach cancer 54\n", + "100855 H19 breast cancer 54\n", + "123874 MALAT1 hepatocellular carcinoma 50\n", + "124402 MEG3 lung cancer 48\n", + "102473 HOTAIR lung cancer 48\n", + "102503 HOTAIR prostate cancer 48\n", + "102569 HOTTIP stomach cancer 45\n", + "76610 CYTOR stomach cancer 45\n", + "74432 CCAT1 stomach cancer 45" + ] + }, + "execution_count": 381, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ncrna_disease = hmdd_lncrna_disnet.groupby(['rna_id', 'name']).count()\n", + "ncrna_disease = ncrna_disease.reset_index()\n", + "ncrna_disease[['rna_id', 'name','disease_id']].sort_values(by=['disease_id'], ascending = False).head(20)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Finding the most repeated miRNA-disease associations**" + ] + }, + { + "cell_type": "code", + "execution_count": 382, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rna_idnamedisease_id
3077hsa-mir-21Colorectal Neoplasms30
1395hsa-mir-145Colorectal Neoplasms26
4514hsa-mir-34aColorectal Neoplasms26
1326hsa-mir-143Colorectal Neoplasms22
1967hsa-mir-17Colorectal Neoplasms22
2835hsa-mir-200cColorectal Neoplasms20
4192hsa-mir-31Colorectal Neoplasms20
1425hsa-mir-145Urinary Bladder Neoplasms20
1358hsa-mir-143Urinary Bladder Neoplasms18
2998hsa-mir-20aColorectal Neoplasms18
3875hsa-mir-29aColorectal Neoplasms18
785hsa-mir-126Colorectal Neoplasms18
3076hsa-mir-21Colonic Neoplasms18
2781hsa-mir-200aColorectal Neoplasms18
527hsa-mir-122Carcinoma, Hepatocellular17
2658hsa-mir-19aColorectal Neoplasms16
2867hsa-mir-203Colorectal Neoplasms16
3245hsa-mir-215Colorectal Neoplasms16
3062hsa-mir-21Carcinoma, Hepatocellular15
1325hsa-mir-143Colonic Neoplasms14
\n", + "
" + ], + "text/plain": [ + " rna_id name disease_id\n", + "3077 hsa-mir-21 Colorectal Neoplasms 30\n", + "1395 hsa-mir-145 Colorectal Neoplasms 26\n", + "4514 hsa-mir-34a Colorectal Neoplasms 26\n", + "1326 hsa-mir-143 Colorectal Neoplasms 22\n", + "1967 hsa-mir-17 Colorectal Neoplasms 22\n", + "2835 hsa-mir-200c Colorectal Neoplasms 20\n", + "4192 hsa-mir-31 Colorectal Neoplasms 20\n", + "1425 hsa-mir-145 Urinary Bladder Neoplasms 20\n", + "1358 hsa-mir-143 Urinary Bladder Neoplasms 18\n", + "2998 hsa-mir-20a Colorectal Neoplasms 18\n", + "3875 hsa-mir-29a Colorectal Neoplasms 18\n", + "785 hsa-mir-126 Colorectal Neoplasms 18\n", + "3076 hsa-mir-21 Colonic Neoplasms 18\n", + "2781 hsa-mir-200a Colorectal Neoplasms 18\n", + "527 hsa-mir-122 Carcinoma, Hepatocellular 17\n", + "2658 hsa-mir-19a Colorectal Neoplasms 16\n", + "2867 hsa-mir-203 Colorectal Neoplasms 16\n", + "3245 hsa-mir-215 Colorectal Neoplasms 16\n", + "3062 hsa-mir-21 Carcinoma, Hepatocellular 15\n", + "1325 hsa-mir-143 Colonic Neoplasms 14" + ] + }, + "execution_count": 382, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "miRNA_only = hmdd_lncrna_disnet[hmdd_lncrna_disnet.rna_category == \"miRNA\"]\n", + "miRNA_only_grouped = miRNA_only.groupby(['rna_id', 'name']).count()\n", + "miRNA_only_grouped = miRNA_only_grouped.reset_index()\n", + "miRNA_only_grouped[['rna_id', 'name','disease_id']].sort_values(by=['disease_id'], ascending = False).head(20)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Finding the most repeated lncRNA-disease associations**" + ] + }, + { + "cell_type": "code", + "execution_count": 384, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rna_idnamedisease_id
138745UCA1stomach cancer81
102471HOTAIRstomach cancer81
74756CDKN2B-AS1coronary artery disease80
100906H19stomach cancer63
123885MALAT1stomach cancer63
123791MALAT1breast cancer60
103652IPWPrader-Willi syndrome60
102374HOTAIRbreast cancer60
74743CDKN2B-AS1breast cancer54
131421PVT1stomach cancer54
100813H19breast cancer54
99919GAS5stomach cancer54
123827MALAT1hepatocellular carcinoma50
124351MEG3lung cancer48
102427HOTAIRlung cancer48
102457HOTAIRprostate cancer48
74422CCAT1stomach cancer45
102523HOTTIPstomach cancer45
76588CYTORstomach cancer45
128615PCA3prostate cancer42
\n", + "
" + ], + "text/plain": [ + " rna_id name disease_id\n", + "138745 UCA1 stomach cancer 81\n", + "102471 HOTAIR stomach cancer 81\n", + "74756 CDKN2B-AS1 coronary artery disease 80\n", + "100906 H19 stomach cancer 63\n", + "123885 MALAT1 stomach cancer 63\n", + "123791 MALAT1 breast cancer 60\n", + "103652 IPW Prader-Willi syndrome 60\n", + "102374 HOTAIR breast cancer 60\n", + "74743 CDKN2B-AS1 breast cancer 54\n", + "131421 PVT1 stomach cancer 54\n", + "100813 H19 breast cancer 54\n", + "99919 GAS5 stomach cancer 54\n", + "123827 MALAT1 hepatocellular carcinoma 50\n", + "124351 MEG3 lung cancer 48\n", + "102427 HOTAIR lung cancer 48\n", + "102457 HOTAIR prostate cancer 48\n", + "74422 CCAT1 stomach cancer 45\n", + "102523 HOTTIP stomach cancer 45\n", + "76588 CYTOR stomach cancer 45\n", + "128615 PCA3 prostate cancer 42" + ] + }, + "execution_count": 384, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lncRNA_only = hmdd_lncrna_disnet[hmdd_lncrna_disnet.rna_category == \"lncRNA\"]\n", + "lncRNA_only_grouped = lncRNA_only.groupby(['rna_id', 'name']).count()\n", + "lncRNA_only_grouped = lncRNA_only_grouped.reset_index()\n", + "lncRNA_only_grouped[['rna_id', 'name','disease_id']].sort_values(by=['disease_id'], ascending = False).head(20)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Finding the most repeated circRNA-disease associations**" + ] + }, + { + "cell_type": "code", + "execution_count": 386, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rna_idnamedisease_id
246hsa-circRNA11783-2coronary artery disease20
366hsa_circ_0000181stomach cancer18
357hsa_circ_0000026stomach cancer18
280hsa_circRNA_100269stomach cancer18
545hsa_circ_0061276stomach cancer18
12CDKN2B-AS1arteriosclerotic cardiovascular disease18
399hsa_circ_0001017stomach cancer18
10CASC15stomach cancer18
124circ-ZFRstomach cancer18
332hsa_circRNA_104423stomach cancer18
339hsa_circRNA_104916stomach cancer18
291hsa_circRNA_101308stomach cancer18
155circMAN2B2lung cancer16
112cir-ITCHlung cancer16
229circUBAP2lung cancer16
18CDR1-AShepatocellular carcinoma15
247hsa-circRNA11783-2type 2 diabetes mellitus12
233circVRK1breast cancer12
463hsa_circ_0006528breast cancer12
419hsa_circ_0001785breast cancer12
\n", + "
" + ], + "text/plain": [ + " rna_id name disease_id\n", + "246 hsa-circRNA11783-2 coronary artery disease 20\n", + "366 hsa_circ_0000181 stomach cancer 18\n", + "357 hsa_circ_0000026 stomach cancer 18\n", + "280 hsa_circRNA_100269 stomach cancer 18\n", + "545 hsa_circ_0061276 stomach cancer 18\n", + "12 CDKN2B-AS1 arteriosclerotic cardiovascular disease 18\n", + "399 hsa_circ_0001017 stomach cancer 18\n", + "10 CASC15 stomach cancer 18\n", + "124 circ-ZFR stomach cancer 18\n", + "332 hsa_circRNA_104423 stomach cancer 18\n", + "339 hsa_circRNA_104916 stomach cancer 18\n", + "291 hsa_circRNA_101308 stomach cancer 18\n", + "155 circMAN2B2 lung cancer 16\n", + "112 cir-ITCH lung cancer 16\n", + "229 circUBAP2 lung cancer 16\n", + "18 CDR1-AS hepatocellular carcinoma 15\n", + "247 hsa-circRNA11783-2 type 2 diabetes mellitus 12\n", + "233 circVRK1 breast cancer 12\n", + "463 hsa_circ_0006528 breast cancer 12\n", + "419 hsa_circ_0001785 breast cancer 12" + ] + }, + "execution_count": 386, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "circRNA_only = hmdd_lncrna_disnet[hmdd_lncrna_disnet.rna_category == \"circRNA\"]\n", + "circRNA_only_grouped = circRNA_only.groupby(['rna_id', 'name']).count()\n", + "circRNA_only_grouped = circRNA_only_grouped.reset_index()\n", + "circRNA_only_grouped[['rna_id', 'name','disease_id']].sort_values(by=['disease_id'], ascending = False).head(20)" + ] + }, + { + "cell_type": "code", + "execution_count": 262, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
disease counts
HOTAIR937
MALAT1926
H19840
CDKN2B-AS1811
UCA1697
......
oebiotech_137191
hsa-mir-3501
hsa-mir-5141
A_19_P003295641
A_21_P00069931
\n", + "

19914 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " disease counts\n", + "HOTAIR 937\n", + "MALAT1 926\n", + "H19 840\n", + "CDKN2B-AS1 811\n", + "UCA1 697\n", + "... ...\n", + "oebiotech_13719 1\n", + "hsa-mir-350 1\n", + "hsa-mir-514 1\n", + "A_19_P00329564 1\n", + "A_21_P0006993 1\n", + "\n", + "[19914 rows x 1 columns]" + ] + }, + "execution_count": 262, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#counts of the number of times a ncRNA appears in a ncRNA-disease association.\n", + "ncrna = hmdd_lncrna_disnet['rna_id'].value_counts().to_frame()\n", + "ncrna_counts = ncrna.rename(columns={'rna_id': 'disease counts'})\n", + "ncrna_counts" + ] + }, + { + "cell_type": "code", + "execution_count": 263, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mode ncRNA in a ncRNA-disease association is: 0 HOTAIR\n", + "dtype: object\n", + "max number of ncRNA in ncRNA-disease association is: 937\n", + "min number of ncRNA in ncRNA-disease association is: 1\n", + "mean of ncRNA in ncRNA-disease association is: 29.518830973184695\n", + "quantiles of the number of ncRNA-disease association are: \n", + "0.25 9.0\n", + "0.50 21.0\n", + "0.75 46.0\n", + "Name: rna_id, dtype: float64\n", + "Times a ncRNA appears in a ncRNA-disease association standard deviation is: 37.753703263372465\n" + ] + } + ], + "source": [ + "#Calculates general statistics of the ncRNA-disease associations\n", + "print(\"mode ncRNA in a ncRNA-disease association is: \" + str(hmdd_lncrna_disnet['rna_id'].mode()))\n", + "print(\"max number of ncRNA in ncRNA-disease association is: \" + str(ncrna['rna_id'].max()))\n", + "print(\"min number of ncRNA in ncRNA-disease association is: \" + str(ncrna['rna_id'].min()))\n", + "print(\"mean of ncRNA in ncRNA-disease association is: \" + str(ncrna['rna_id'].mean()))\n", + "print(\"quantiles of the number of ncRNA-disease association are: \\n\"\n", + " + str(ncrna['rna_id'].quantile([0.25,0.5,0.75])))\n", + "print(\"Times a ncRNA appears in a ncRNA-disease association standard deviation is: \" + str(ncrna['rna_id'].std()))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Statistical parameters of miRNAs in miRNA-disease associations" + ] + }, + { + "cell_type": "code", + "execution_count": 266, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mode of miRNA-disease associations per miRNA is: 0 hsa-mir-21\n", + "dtype: object\n", + "max number of miRNA-disease associations per miRNA is: 364\n", + "min number of miRNA-disease associations per miRNA is: 1\n", + "mean of miRNA-disease associations per miRNA is: 14.23094688221709\n", + "quantiles of miRNA-disease associations per miRNA are: \n", + "0.25 2.0\n", + "0.50 4.0\n", + "0.75 15.0\n", + "Name: rna_id, dtype: float64\n", + "miRNA-disease associations per miRNA standard deviation is: 27.479468123509015\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
disease counts
hsa-mir-21364
hsa-mir-155244
hsa-mir-146a207
hsa-mir-34a172
hsa-mir-17170
hsa-mir-126159
hsa-mir-223154
hsa-mir-221141
hsa-mir-145140
hsa-mir-20a125
\n", + "
" + ], + "text/plain": [ + " disease counts\n", + "hsa-mir-21 364\n", + "hsa-mir-155 244\n", + "hsa-mir-146a 207\n", + "hsa-mir-34a 172\n", + "hsa-mir-17 170\n", + "hsa-mir-126 159\n", + "hsa-mir-223 154\n", + "hsa-mir-221 141\n", + "hsa-mir-145 140\n", + "hsa-mir-20a 125" + ] + }, + "execution_count": 266, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "miRNA = hmdd_lncrna_disnet.loc[hmdd_lncrna_disnet['rna_category'] == 'miRNA', 'rna_id'].to_frame()\n", + "miRNA_counts = miRNA['rna_id'].value_counts().to_frame()\n", + "print(\"mode of miRNA-disease associations per miRNA is: \" + str(miRNA['rna_id'].mode()))\n", + "print(\"max number of miRNA-disease associations per miRNA is: \" + str(miRNA_counts['rna_id'].max()))\n", + "print(\"min number of miRNA-disease associations per miRNA is: \" + str(miRNA_counts['rna_id'].min()))\n", + "print(\"mean of miRNA-disease associations per miRNA is: \" + str(miRNA_counts['rna_id'].mean()))\n", + "print(\"quantiles of miRNA-disease associations per miRNA are: \\n\"\n", + " + str(miRNA_counts['rna_id'].quantile([0.25,0.5,0.75])))\n", + "print(\"miRNA-disease associations per miRNA standard deviation is: \" + str(miRNA_counts['rna_id'].std()))\n", + "miRNA_counts = miRNA_counts.rename(columns={'rna_id': 'disease counts'})\n", + "#disease counts stands for the number of disease-ncRNA association in which a ncRNA appears.\n", + "miRNA_counts.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 267, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "rna_id 866\n", + "dtype: int64\n" + ] + } + ], + "source": [ + "#number of different miRNA incorporated into DISNET\n", + "miRNA_only = hmdd_lncrna_disnet[hmdd_lncrna_disnet.rna_category == \"miRNA\"]\n", + "print(miRNA_only[['rna_id']].drop_duplicates().count())\n", + "#miRNA_only" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Statistical parameters of LncRNAs in lncRNA-disease associations" + ] + }, + { + "cell_type": "code", + "execution_count": 270, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mode of lncRNA-disease association per lncRNA is: 0 HOTAIR\n", + "dtype: object\n", + "max number of lncRNA-disease association per lncRNA is: 937\n", + "min number of lncRNA-disease association per lncRNA is: 1\n", + "mean of the number of times a lncRNA appears in a lncRNA-disease association is: 30.954958364875093\n", + "quantiles of the number of times a lncRNA appears in a lncRNA-disease association are: \n", + "0.25 21.0\n", + "0.50 21.0\n", + "0.75 50.0\n", + "Name: rna_id, dtype: float64\n", + "lncRNA-disease associations' standard deviation is: 38.282507707610655\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
disease counts
HOTAIR937
MALAT1926
H19840
CDKN2B-AS1792
UCA1697
......
TCONS_000261021
oebiotech_173011
ASAP11
AQP91
RP11-68I3.111
\n", + "

18494 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " disease counts\n", + "HOTAIR 937\n", + "MALAT1 926\n", + "H19 840\n", + "CDKN2B-AS1 792\n", + "UCA1 697\n", + "... ...\n", + "TCONS_00026102 1\n", + "oebiotech_17301 1\n", + "ASAP1 1\n", + "AQP9 1\n", + "RP11-68I3.11 1\n", + "\n", + "[18494 rows x 1 columns]" + ] + }, + "execution_count": 270, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lncRNA = hmdd_lncrna_disnet.loc[hmdd_lncrna_disnet['rna_category'] == 'lncRNA', 'rna_id'].to_frame()\n", + "lncRNA_counts = lncRNA['rna_id'].value_counts().to_frame()\n", + "print(\"mode of lncRNA-disease association per lncRNA is: \" + str(lncRNA['rna_id'].mode()))\n", + "print(\"max number of lncRNA-disease association per lncRNA is: \" + str(lncRNA_counts['rna_id'].max()))\n", + "print(\"min number of lncRNA-disease association per lncRNA is: \" + str(lncRNA_counts['rna_id'].min()))\n", + "print(\"mean of the number of times a lncRNA appears in a lncRNA-disease association is: \" + str(lncRNA_counts['rna_id'].mean()))\n", + "print(\"quantiles of the number of times a lncRNA appears in a lncRNA-disease association are: \\n\"\n", + " + str(lncRNA_counts['rna_id'].quantile([0.25,0.5,0.75])))\n", + "print(\"lncRNA-disease associations' standard deviation is: \" + str(lncRNA_counts['rna_id'].std()))\n", + "lncRNA_counts = lncRNA_counts.rename(columns={'rna_id': 'disease counts'})\n", + "lncRNA_counts" + ] + }, + { + "cell_type": "code", + "execution_count": 271, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "18494" + ] + }, + "execution_count": 271, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#number of different lncRNA incorporated into DISNET\n", + "lncRNA['rna_id'].nunique()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Statistical parameters of CircRNAs in circRNA-disease associations" + ] + }, + { + "cell_type": "code", + "execution_count": 274, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mode number of times a circRNA appears in acircRNA-disease is: 0 CDR1-AS\n", + "dtype: object\n", + "max number of times a circRNA appears in a circRNA-disease is: 44\n", + "min number of times a circRNA appears in a circRNA-disease is: 1\n", + "mean of the number of times a circRNA appears associated is: 5.425760286225403\n", + "quantiles of the number of times of circRNA per appers are: \n", + "0.25 2.0\n", + "0.50 4.0\n", + "0.75 9.0\n", + "Name: rna_id, dtype: float64\n", + "The number of times a circRNA appears' standard deviation is: 4.944253579879147\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
disease counts
CDR1-AS44
hsa_circ_000028438
hsa-circRNA11783-232
circPVT127
hsa_circ_000164925
......
hsa_circ_00570931
hsa_circ_00231171
hsa_circ_00087971
circRNA_1007821
hsa_circ_00019461
\n", + "

559 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " disease counts\n", + "CDR1-AS 44\n", + "hsa_circ_0000284 38\n", + "hsa-circRNA11783-2 32\n", + "circPVT1 27\n", + "hsa_circ_0001649 25\n", + "... ...\n", + "hsa_circ_0057093 1\n", + "hsa_circ_0023117 1\n", + "hsa_circ_0008797 1\n", + "circRNA_100782 1\n", + "hsa_circ_0001946 1\n", + "\n", + "[559 rows x 1 columns]" + ] + }, + "execution_count": 274, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "circRNA =hmdd_lncrna_disnet.loc[hmdd_lncrna_disnet['rna_category'] == 'circRNA', 'rna_id'].to_frame()\n", + "circRNA_counts = circRNA['rna_id'].value_counts().to_frame()\n", + "print(\"mode number of times a circRNA appears in acircRNA-disease is: \" + str(circRNA['rna_id'].mode()))\n", + "print(\"max number of times a circRNA appears in a circRNA-disease is: \" + str(circRNA_counts['rna_id'].max()))\n", + "print(\"min number of times a circRNA appears in a circRNA-disease is: \" + str(circRNA_counts['rna_id'].min()))\n", + "print(\"mean of the number of times a circRNA appears associated is: \" + str(circRNA_counts['rna_id'].mean()))\n", + "print(\"quantiles of the number of times of circRNA per appers are: \\n\"\n", + " + str(circRNA_counts['rna_id'].quantile([0.25,0.5,0.75])))\n", + "print(\"The number of times a circRNA appears' standard deviation is: \" + str(circRNA_counts['rna_id'].std()))\n", + "circRNA_counts = circRNA_counts.rename(columns={'rna_id': 'disease counts'})\n", + "circRNA_counts" + ] + }, + { + "cell_type": "code", + "execution_count": 275, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "559" + ] + }, + "execution_count": 275, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#number of different circRNA incorporated into DISNET\n", + "circRNA['rna_id'].nunique()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Combining All ncRNA, number of ncRNA-disease associations plots in one grid" + ] + }, + { + "cell_type": "code", + "execution_count": 278, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
indexdisease countsncRNA
0hsa-mir-21364miRNA
1hsa-mir-155244miRNA
2hsa-mir-146a207miRNA
3hsa-mir-34a172miRNA
4hsa-mir-17170miRNA
............
554hsa_circ_00570931circRNA
555hsa_circ_00231171circRNA
556hsa_circ_00087971circRNA
557circRNA_1007821circRNA
558hsa_circ_00019461circRNA
\n", + "

19919 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " index disease counts ncRNA\n", + "0 hsa-mir-21 364 miRNA\n", + "1 hsa-mir-155 244 miRNA\n", + "2 hsa-mir-146a 207 miRNA\n", + "3 hsa-mir-34a 172 miRNA\n", + "4 hsa-mir-17 170 miRNA\n", + ".. ... ... ...\n", + "554 hsa_circ_0057093 1 circRNA\n", + "555 hsa_circ_0023117 1 circRNA\n", + "556 hsa_circ_0008797 1 circRNA\n", + "557 circRNA_100782 1 circRNA\n", + "558 hsa_circ_0001946 1 circRNA\n", + "\n", + "[19919 rows x 3 columns]" + ] + }, + "execution_count": 278, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "miRNA_counts_1 = miRNA_counts.reset_index()\n", + "miRNA_counts_1['ncRNA'] = 'miRNA'\n", + "lncRNA_counts_1 = lncRNA_counts.reset_index()\n", + "lncRNA_counts_1['ncRNA'] = 'lncRNA'\n", + "circRNA_counts_1 = circRNA_counts.reset_index()\n", + "circRNA_counts_1['ncRNA'] = 'circRNA'\n", + "df_to_plot = pd.concat([miRNA_counts_1, lncRNA_counts_1, circRNA_counts_1])\n", + "df_to_plot" + ] + }, + { + "cell_type": "code", + "execution_count": 279, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(0.5, 1.0, 'Logarithmic distribution of the number of ncRNA-disease associations per ncRNA')]" + ] + }, + "execution_count": 279, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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R9KzZ88GdZxzzjm8+uqrO71rqLy8nLFjxwIwduxYysvL07JeSljSrKamhjlz5uDuzJkzR60sIiLSotwdM0s6zW677dbotEOHDmXp0qW89dZb3HvvvSxevLjB+Pbt23PVVVc1eKPzjh07ePLJJ7nxxhspLi5m4sSJzJkzh02bNjVvpVDCknZlZWVEXihZV1enVhYREWlRJ510Eo899lj9P8yffPJJwmkPOeQQVq1axcKFCwHYtGkT27dvbzDNwQcfzHXXXdcgMYmYMGEC8+bNY926dQDMmzePQYMGsWLFCqqqqvjwww8ZM2YMTz/9dLPXSwlLms2dO5fa2loAamtr9ShxERFpUQMGDOD666/nG9/4BoMGDeLKK69MOG2HDh2YMWMGEydOZNCgQQwfPpytW7fuNN0ll1zCggULdrr806FDByZNmsTatWuB4HLQ6NGjG0wzZswYHn300Wavl0VaA/JRaWmpL1q0KNthNHD77bcze/ZsamtrKSws5Dvf+U7SnUVERFqPZcuWceihh9aXc+W25lwUu60AzOx1dy+NN71ua06z8ePH1/eINjO9AFGkmWpqavj5z3/O5MmT9fZzyTutJbnIBboklGY9evSgd+/eAOy///46wYo0k+66ExFQwpJ2NTU1rFoVPCRo1apVuktIpBl0152IRChhSbPou4TcXf8VijSD7rqTfJTPfUNbyq5sIyUsaaa7hETSR8eT5JtOnTqxfv16JS1JuDvr169v8uP687LTrZmdDpxeUlKS7VB2Mnz48AZ3CY0YMSLbIYnkreHDhzNz5sz6h1vpeJJcV1RURHV1df1zSSS+Tp06UVRU1KR5dFtzmtXU1DB27Fi+/PJLOnbsyPTp09XxVmQXvfvuu1x44YX15QcffJBc/EdFRNIj2W3NuiSUZj169OD4448H4Pjjj1eyItIMs2bNqn9suJkxc+bMLEckItmihCUD3nvvPQAqKyuzHIlIfps7d26DTuzqwyLSdilhSbN3332XFStWALBixQolLSLNMHz4cAoLCwHUJ0ykjVPCkmY33XRTg/KNN96YpUhE8t/48ePrLwkVFBToydEibZgSljSrqqpKWhaR1PXo0YNvfvObAHzzm99UnzCRNkwJS5p17do1aVlERESaTglLmkUecpWoLCKpq6mp4YUXXgDghRde0KP5RdowJSxp1qtXr6RlEUld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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plot.subplots(figsize = (9, 5)) \n", + "#plot.xlim(0, 200)\n", + "ax.set_yscale(\"log\")\n", + "ax = sns.boxplot(y=df_to_plot['disease counts'], x=df_to_plot['ncRNA'], hue = df_to_plot['ncRNA'])\n", + "ax.set(xlabel='ncRNA', ylabel='log (disease counts)')\n", + "ax.set(title='Logarithmic distribution of the number of ncRNA-disease associations per ncRNA')" + ] + }, + { + "cell_type": "code", + "execution_count": 280, + "metadata": {}, + "outputs": [], + "source": [ + "#-------------------------------------------------------------------" + ] + }, + { + "cell_type": "code", + "execution_count": 281, + "metadata": {}, + "outputs": [], + "source": [ + "#----------------------------------------------------------------" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**How many different diseases are associated to circRNAs, lncRNAs and miRNAs?**\n" + ] + }, + { + "cell_type": "code", + "execution_count": 292, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " disease_id\n", + "rna_category \n", + "circRNA 196\n", + "lncRNA 692\n", + "miRNA 359\n", + " disease_id\n", + "rna_category \n", + "circRNA 3033\n", + "lncRNA 572481\n", + "miRNA 12324\n", + " rna_category\n", + "disease_id \n", + "C0011849 3\n", + "C0003486 3\n", + "C0003873 3\n", + "C0029463 3\n", + "C2239176 3\n", + "... ...\n", + "C0037944 1\n", + "C0038165 1\n", + "C0038436 1\n", + "C0038454 1\n", + "C4290092 1\n", + "\n", + "[970 rows x 1 columns]\n", + "-------------------------------------------------------\n", + " rna_category\n", + "disease_id \n", + "C0011849 3\n", + "C0003486 3\n", + "C0003873 3\n", + "C0029463 3\n", + "C2239176 3\n", + "... ...\n", + "C0037944 1\n", + "C0038165 1\n", + "C0038436 1\n", + "C0038454 1\n", + "C4290092 1\n", + "\n", + "[970 rows x 1 columns]\n" + ] + } + ], + "source": [ + "disease_and_rna_no_dup = hmdd_lncrna_disnet[['rna_category', 'disease_id']].drop_duplicates()\n", + "print(disease_and_rna_no_dup.groupby(['rna_category']).nunique())\n", + "disease_and_rna = hmdd_lncrna_disnet[['rna_category', 'disease_id']]\n", + "print(disease_and_rna.groupby(['rna_category']).count())\n", + "print(disease_and_rna.groupby(['disease_id']).nunique().sort_values(by=['rna_category'], ascending=False))\n", + "print('-------------------------------------------------------')\n", + "print(disease_and_rna_no_dup.groupby(['disease_id']).count().sort_values(by=['rna_category'], ascending=False))\n", + "#hmdd_lncrna_disnet[['rna_category']].groupby()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Plotting the number of diseases per RNA category.**" + ] + }, + { + "cell_type": "code", + "execution_count": 293, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(0.5, 0, 'RNA category'), Text(0, 0.5, 'Disases counts')]" + ] + }, + "execution_count": 293, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "disease_and_rna_grouped = disease_and_rna.groupby(['rna_category']).nunique()\n", + "disease_and_rna_grouped = disease_and_rna_grouped.reset_index()\n", + "ax = sns.barplot(x=disease_and_rna_grouped['rna_category'], y=disease_and_rna_grouped['disease_id'])\n", + "ax.set(xlabel='RNA category', ylabel='Disases counts')\n", + "#ax.set(title='Number of different diseases per RNA category')#different diseases" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Visualization of the logaritmic distribution of the number of ncRNA-disease associations per ncRNA" + ] + }, + { + "cell_type": "code", + "execution_count": 328, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(0.5, 0, 'ncRNA'), Text(0, 0.5, 'log (counts of unique diseases)')]" + ] + }, + "execution_count": 328, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "disease_mirna_grouped_sorted_1 = disease_mirna_grouped_sorted.reset_index()\n", + "disease_mirna_grouped_sorted_1['ncRNA'] = 'miRNA'\n", + "disease_lncrna_grouped_sorted_1 = disease_lncrna_grouped_sorted.reset_index()\n", + "disease_lncrna_grouped_sorted_1['ncRNA'] = 'lncRNA'\n", + "disease_circrna_grouped_sorted_1 = disease_circrna_grouped_sorted.reset_index()\n", + "disease_circrna_grouped_sorted_1['ncRNA'] = 'circRNA'\n", + "df_to_plot = pd.concat([disease_mirna_grouped_sorted_1, disease_lncrna_grouped_sorted_1, disease_circrna_grouped_sorted_1])\n", + "df_to_plot\n", + "fig, ax = plot.subplots(figsize = (9, 5)) \n", + "#plot.xlim(0, 200)\n", + "ax.set_yscale(\"log\")\n", + "ax = sns.boxplot(y=df_to_plot['counts of unique diseases'], x=df_to_plot['ncRNA'], hue = df_to_plot['ncRNA'])\n", + "ax.set(xlabel='ncRNA', ylabel='log (counts of unique diseases)')\n", + "#ax.set(title='Logarithmic distribution of the number of ncRNA-disease associations per ncRNA')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Study of the relationships between the RNA features and DISNET features" + ] + }, + { + "cell_type": "code", + "execution_count": 335, + "metadata": {}, + "outputs": [], + "source": [ + "import mysql.connector\n", + "import json\n", + "conn_param_file = 'C:/Users/end user/OneDrive/Desktop/UPM Master/CTB TFM/Datasets/DISNET_CONNECTION_correct.json'\n", + "# Setting the connection to the database\n", + "\n", + "# The connection configuration is stored in a JSON file\n", + "with open(conn_param_file, 'r') as f:\n", + " config = json.load(f) # The JSON file is translated to a pyhton dictionary\n", + "\n", + "# Stablishing the connection with the parameters in the dictionary\n", + "cnx = mysql.connector.connect(**config)" + ] + }, + { + "cell_type": "code", + "execution_count": 336, + "metadata": {}, + "outputs": [], + "source": [ + "# config['user']\n", + "# connection = create_engine_conn(None)" + ] + }, + { + "cell_type": "code", + "execution_count": 337, + "metadata": {}, + "outputs": [], + "source": [ + "%reload_ext sql" + ] + }, + { + "cell_type": "code", + "execution_count": 338, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
class_nameclass_range
0Certain conditions originating in the perinata...P00-P96
1Certain infectious and parasitic diseasesA00-B99
2Codes for special purposesU00-U85
3Congenital malformations, deformations and chr...Q00-Q99
4Diseases of the blood and blood-forming organs...D50-D89
5Diseases of the circulatory systemI00-I99
6Diseases of the digestive systemK00-K93
7Diseases of the ear and mastoid processH60-H95
8Diseases of the eye and adnexaH00-H59
9Diseases of the genitourinary systemN00-N99
10Diseases of the musculoskeletal system and con...M00-M99
11Diseases of the nervous systemG00-G99
12Diseases of the respiratory systemJ00-J99
13Diseases of the skin and subcutaneous tissueL00-L99
14Endocrine, nutritional and metabolic diseasesE00-E90
15External causes of morbidity and mortalityV01-Y98
16Factors influencing health status and contact ...Z00-Z99
17Injury, poisoning and certain other consequenc...S00-T98
18Mental and behavioural disordersF00-F99
19NeoplasmsC00-D48
20Pregnancy, childbirth and the puerperiumO00-O099
21Symptoms, signs and abnormal clinical and labo...R00-R99
\n", + "
" + ], + "text/plain": [ + " class_name class_range\n", + "0 Certain conditions originating in the perinata... P00-P96\n", + "1 Certain infectious and parasitic diseases A00-B99\n", + "2 Codes for special purposes U00-U85\n", + "3 Congenital malformations, deformations and chr... Q00-Q99\n", + "4 Diseases of the blood and blood-forming organs... D50-D89\n", + "5 Diseases of the circulatory system I00-I99\n", + "6 Diseases of the digestive system K00-K93\n", + "7 Diseases of the ear and mastoid process H60-H95\n", + "8 Diseases of the eye and adnexa H00-H59\n", + "9 Diseases of the genitourinary system N00-N99\n", + "10 Diseases of the musculoskeletal system and con... M00-M99\n", + "11 Diseases of the nervous system G00-G99\n", + "12 Diseases of the respiratory system J00-J99\n", + "13 Diseases of the skin and subcutaneous tissue L00-L99\n", + "14 Endocrine, nutritional and metabolic diseases E00-E90\n", + "15 External causes of morbidity and mortality V01-Y98\n", + "16 Factors influencing health status and contact ... Z00-Z99\n", + "17 Injury, poisoning and certain other consequenc... S00-T98\n", + "18 Mental and behavioural disorders F00-F99\n", + "19 Neoplasms C00-D48\n", + "20 Pregnancy, childbirth and the puerperium O00-O099\n", + "21 Symptoms, signs and abnormal clinical and labo... R00-R99" + ] + }, + "execution_count": 338, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "query_tmp_icd = \"\"\"\n", + " SELECT*\n", + " FROM\n", + " disnet_biolayer.tmp_icd \n", + "\n", + "\n", + " \"\"\"\n", + "\n", + "query_tmp_icd = pd.read_sql_query(query_tmp_icd, con = cnx)\n", + "query_tmp_icd" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following query returns the ICD-10 classification names that correspond to each CUI in DISNET" + ] + }, + { + "cell_type": "code", + "execution_count": 339, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
disease_idclass_nameclass_range
0C0008354Certain infectious and parasitic diseasesA00-B99
1C0178238Certain infectious and parasitic diseasesA00-B99
2C0041466Certain infectious and parasitic diseasesA00-B99
3C0030528Certain infectious and parasitic diseasesA00-B99
4C0152491Certain infectious and parasitic diseasesA00-B99
............
3613C0013182Injury, poisoning and certain other consequenc...S00-T98
3614C0041755Injury, poisoning and certain other consequenc...S00-T98
3615C0085639External causes of morbidity and mortalityV01-Y98
3616C0019699Factors influencing health status and contact ...Z00-Z99
3617C0037316Factors influencing health status and contact ...Z00-Z99
\n", + "

3618 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " disease_id class_name class_range\n", + "0 C0008354 Certain infectious and parasitic diseases A00-B99\n", + "1 C0178238 Certain infectious and parasitic diseases A00-B99\n", + "2 C0041466 Certain infectious and parasitic diseases A00-B99\n", + "3 C0030528 Certain infectious and parasitic diseases A00-B99\n", + "4 C0152491 Certain infectious and parasitic diseases A00-B99\n", + "... ... ... ...\n", + "3613 C0013182 Injury, poisoning and certain other consequenc... S00-T98\n", + "3614 C0041755 Injury, poisoning and certain other consequenc... S00-T98\n", + "3615 C0085639 External causes of morbidity and mortality V01-Y98\n", + "3616 C0019699 Factors influencing health status and contact ... Z00-Z99\n", + "3617 C0037316 Factors influencing health status and contact ... Z00-Z99\n", + "\n", + "[3618 rows x 3 columns]" + ] + }, + "execution_count": 339, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "query_icd = \"\"\"\n", + " SELECT DISTINCT\n", + " d.disease_id, i.class_name, i.class_range\n", + " FROM\n", + " disnet_biolayer.disease d\n", + " INNER JOIN\n", + " disnet_biolayer.has_code hc ON d.disease_id = hc.disease_id\n", + " LEFT JOIN\n", + " disnet_biolayer.tmp_icd i ON 1 = 1\n", + " WHERE\n", + " hc.vocabulary = 'ICD10CM'\n", + " AND SUBSTR(i.class_range, 1, 3) <= SUBSTR(hc.code_id, 1, 3)\n", + " AND SUBSTR(i.class_range, 5, 3) >= SUBSTR(hc.code_id, 1, 3)\n", + "\n", + " \"\"\"\n", + "\n", + "query_icd = pd.read_sql_query(query_icd, con = cnx)\n", + "query_icd" + ] + }, + { + "cell_type": "code", + "execution_count": 340, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
disease_idgene_idsource_idscoresio_id
0C00007317210.10SIO_001121
1C000073167210.10SIO_001121
2C0000731128010.10SIO_001121
3C0000731148210.10SIO_001121
4C0000731181110.10SIO_001121
..................
358204C4540535277810.30SIO_001122
358205C4540536277810.30SIO_001122
358206C4540602277810.30SIO_001122
358207C4543926306010.03SIO_001121
358208C4545381515610.30SIO_001348
\n", + "

358209 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " disease_id gene_id source_id score sio_id\n", + "0 C0000731 72 1 0.10 SIO_001121\n", + "1 C0000731 672 1 0.10 SIO_001121\n", + "2 C0000731 1280 1 0.10 SIO_001121\n", + "3 C0000731 1482 1 0.10 SIO_001121\n", + "4 C0000731 1811 1 0.10 SIO_001121\n", + "... ... ... ... ... ...\n", + "358204 C4540535 2778 1 0.30 SIO_001122\n", + "358205 C4540536 2778 1 0.30 SIO_001122\n", + "358206 C4540602 2778 1 0.30 SIO_001122\n", + "358207 C4543926 3060 1 0.03 SIO_001121\n", + "358208 C4545381 5156 1 0.30 SIO_001348\n", + "\n", + "[358209 rows x 5 columns]" + ] + }, + "execution_count": 340, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "query_disease_gene = \"\"\"\n", + " SELECT*\n", + " FROM\n", + " disnet_biolayer.disease_gene\n", + " \"\"\"\n", + "\n", + "query_disease_gene = pd.read_sql_query(query_disease_gene, con = cnx)\n", + "query_disease_gene" + ] + }, + { + "cell_type": "code", + "execution_count": 341, + "metadata": {}, + "outputs": [], + "source": [ + "#query_disease_gene.to_excel(\"disease_gene_query.xlsx\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Merging querey_disease_gene and query_icd dataframes and that merged df with a df containing the icd10 short version names**" + ] + }, + { + "cell_type": "code", + "execution_count": 342, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
disease_idgene_idclass_rangeicd_class_nameclass_name
0C000074425E00-E90Endocrine, nutritional and metabolic diseasesMetabolic
1C000074427E00-E90Endocrine, nutritional and metabolic diseasesMetabolic
2C0000744238E00-E90Endocrine, nutritional and metabolic diseasesMetabolic
3C0000744338E00-E90Endocrine, nutritional and metabolic diseasesMetabolic
4C0000744348E00-E90Endocrine, nutritional and metabolic diseasesMetabolic
..................
118041C16917792707H60-H95Diseases of the ear and mastoid processEar
118042C16917794036H60-H95Diseases of the ear and mastoid processEar
118043C16917795172H60-H95Diseases of the ear and mastoid processEar
118044C16917798772H60-H95Diseases of the ear and mastoid processEar
118045C169177910265H60-H95Diseases of the ear and mastoid processEar
\n", + "

118046 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " disease_id gene_id class_range \\\n", + "0 C0000744 25 E00-E90 \n", + "1 C0000744 27 E00-E90 \n", + "2 C0000744 238 E00-E90 \n", + "3 C0000744 338 E00-E90 \n", + "4 C0000744 348 E00-E90 \n", + "... ... ... ... \n", + "118041 C1691779 2707 H60-H95 \n", + "118042 C1691779 4036 H60-H95 \n", + "118043 C1691779 5172 H60-H95 \n", + "118044 C1691779 8772 H60-H95 \n", + "118045 C1691779 10265 H60-H95 \n", + "\n", + " icd_class_name class_name \n", + "0 Endocrine, nutritional and metabolic diseases Metabolic \n", + "1 Endocrine, nutritional and metabolic diseases Metabolic \n", + "2 Endocrine, nutritional and metabolic diseases Metabolic \n", + "3 Endocrine, nutritional and metabolic diseases Metabolic \n", + "4 Endocrine, nutritional and metabolic diseases Metabolic \n", + "... ... ... \n", + "118041 Diseases of the ear and mastoid process Ear \n", + "118042 Diseases of the ear and mastoid process Ear \n", + "118043 Diseases of the ear and mastoid process Ear \n", + "118044 Diseases of the ear and mastoid process Ear \n", + "118045 Diseases of the ear and mastoid process Ear \n", + "\n", + "[118046 rows x 5 columns]" + ] + }, + "execution_count": 342, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "disease_gene_icd= pd.merge(query_disease_gene, query_icd.drop(['class_name'], axis=1), on='disease_id')\n", + "disease_gene_icd = disease_gene_icd.drop(['source_id', 'sio_id','score'], axis=1)\n", + "icd_10_short = pd.read_csv('icd10_links.csv')\n", + "disease_gene_icd= pd.merge(disease_gene_icd, icd_10_short, on='class_range')\n", + "disease_gene_icd" + ] + }, + { + "cell_type": "code", + "execution_count": 343, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
class_namedisease_idnum_feature_diseasecaracteristica
0CirculatoryC000294056genes
1CirculatoryC000296254genes
2CirculatoryC00029631genes
3CirculatoryC000296519genes
4CirculatoryC000348695genes
...............
2796SkinC070216644genes
2797SkinC11125704genes
2798SkinC12608741genes
2799SkinC29368461genes
2800SkinC408321219genes
\n", + "

2801 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " class_name disease_id num_feature_disease caracteristica\n", + "0 Circulatory C0002940 56 genes\n", + "1 Circulatory C0002962 54 genes\n", + "2 Circulatory C0002963 1 genes\n", + "3 Circulatory C0002965 19 genes\n", + "4 Circulatory C0003486 95 genes\n", + "... ... ... ... ...\n", + "2796 Skin C0702166 44 genes\n", + "2797 Skin C1112570 4 genes\n", + "2798 Skin C1260874 1 genes\n", + "2799 Skin C2936846 1 genes\n", + "2800 Skin C4083212 19 genes\n", + "\n", + "[2801 rows x 4 columns]" + ] + }, + "execution_count": 343, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "disease_gene_icd_test = disease_gene_icd[['disease_id', 'class_name', 'gene_id']]\n", + "#disease_gene_icd_test['gene_id'] = disease_gene_icd_test['gene_id'].apply(str)\n", + "disease_gene_icd_test = disease_gene_icd_test.groupby(['class_name', 'disease_id']).count()#.agg(num_feature_disease=('gene_id', sum))\n", + "#disease_gene_icd_test\n", + "disease_gene_icd_test = disease_gene_icd_test.reset_index()\n", + "disease_gene_icd_test = disease_gene_icd_test.rename(columns={'gene_id': 'num_feature_disease'})\n", + "disease_gene_icd_test['caracteristica'] = 'genes'\n", + "disease_gene_icd_test\n" + ] + }, + { + "cell_type": "code", + "execution_count": 344, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "count 118046\n", + "unique 17\n", + "top Neoplasms\n", + "freq 27447\n", + "Name: class_name, dtype: object" + ] + }, + "execution_count": 344, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "disease_gene_icd['class_name'].describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 345, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
disease_idgene_idclass_rangeicd_class_name
class_name
Circulatory8345834583458345
Congenital11574115741157411574
Digestive8108810881088108
Ear1770177017701770
Eye5541554155415541
Genitourinary3810381038103810
Immunitary3385338533853385
Infectious3651365136513651
Mental10566105661056610566
Metabolic9825982598259825
Musculoskeletal8066806680668066
Neoplasms27447274472744727447
Nervous9167916791679167
Perinatal497497497497
Pregnancy262262262262
Respiratory2800280028002800
Skin3232323232323232
\n", + "
" + ], + "text/plain": [ + " disease_id gene_id class_range icd_class_name\n", + "class_name \n", + "Circulatory 8345 8345 8345 8345\n", + "Congenital 11574 11574 11574 11574\n", + "Digestive 8108 8108 8108 8108\n", + "Ear 1770 1770 1770 1770\n", + "Eye 5541 5541 5541 5541\n", + "Genitourinary 3810 3810 3810 3810\n", + "Immunitary 3385 3385 3385 3385\n", + "Infectious 3651 3651 3651 3651\n", + "Mental 10566 10566 10566 10566\n", + "Metabolic 9825 9825 9825 9825\n", + "Musculoskeletal 8066 8066 8066 8066\n", + "Neoplasms 27447 27447 27447 27447\n", + "Nervous 9167 9167 9167 9167\n", + "Perinatal 497 497 497 497\n", + "Pregnancy 262 262 262 262\n", + "Respiratory 2800 2800 2800 2800\n", + "Skin 3232 3232 3232 3232" + ] + }, + "execution_count": 345, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "disease_gene_icd.groupby(['class_name']).count()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Processing ncRNA dataset to merge with disnet disease_gene table content**" + ] + }, + { + "cell_type": "code", + "execution_count": 346, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rna_idcausalitytypenamerna_categorydisease_id
0hsa-mir-143nocirculation_biomarker_diagnosis_downColonic NeoplasmsmiRNAC0007102
1hsa-mir-143nocirculation_biomarker_diagnosis_downColonic NeoplasmsmiRNAC0009375
2hsa-mir-145nocirculation_biomarker_diagnosis_downColonic NeoplasmsmiRNAC0007102
3hsa-mir-145nocirculation_biomarker_diagnosis_downColonic NeoplasmsmiRNAC0009375
4hsa-let-7gnocirculation_biomarker_diagnosis_nsColonic NeoplasmsmiRNAC0007102
.....................
587833UCA1nsRegulation [down-regulated]LithiasislncRNAC0023869
587834UphnsLocusRight ventricle hypoplasialncRNAC1848587
587835XISTnsRegulation [up-regulated]collecting duct carcinomalncRNAC0007134
587836XISTnsRegulation [up-regulated]collecting duct carcinomalncRNAC1266044
587837XISTnsRegulation [up-regulated]collecting duct carcinomalncRNAC4049328
\n", + "

587838 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " rna_id causality type \\\n", + "0 hsa-mir-143 no circulation_biomarker_diagnosis_down \n", + "1 hsa-mir-143 no circulation_biomarker_diagnosis_down \n", + "2 hsa-mir-145 no circulation_biomarker_diagnosis_down \n", + "3 hsa-mir-145 no circulation_biomarker_diagnosis_down \n", + "4 hsa-let-7g no circulation_biomarker_diagnosis_ns \n", + "... ... ... ... \n", + "587833 UCA1 ns Regulation [down-regulated] \n", + "587834 Uph ns Locus \n", + "587835 XIST ns Regulation [up-regulated] \n", + "587836 XIST ns Regulation [up-regulated] \n", + "587837 XIST ns Regulation [up-regulated] \n", + "\n", + " name rna_category disease_id \n", + "0 Colonic Neoplasms miRNA C0007102 \n", + "1 Colonic Neoplasms miRNA C0009375 \n", + "2 Colonic Neoplasms miRNA C0007102 \n", + "3 Colonic Neoplasms miRNA C0009375 \n", + "4 Colonic Neoplasms miRNA C0007102 \n", + "... ... ... ... \n", + "587833 Lithiasis lncRNA C0023869 \n", + "587834 Right ventricle hypoplasia lncRNA C1848587 \n", + "587835 collecting duct carcinoma lncRNA C0007134 \n", + "587836 collecting duct carcinoma lncRNA C1266044 \n", + "587837 collecting duct carcinoma lncRNA C4049328 \n", + "\n", + "[587838 rows x 6 columns]" + ] + }, + "execution_count": 346, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "hmdd_lncrna_disnet_to_merge = hmdd_lncrna_disnet.drop(['source_id', 'source_name','vocab'], axis=1)\n", + "hmdd_lncrna_disnet_to_merge" + ] + }, + { + "cell_type": "code", + "execution_count": 347, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rna_idcausalitytypenamerna_categorydisease_id
count587838587838587838587838587838587838
unique1991432336333970
topHOTAIRnsnsstomach cancerlncRNAC0024299
freq93757551454173212793557248114550
\n", + "
" + ], + "text/plain": [ + " rna_id causality type name rna_category disease_id\n", + "count 587838 587838 587838 587838 587838 587838\n", + "unique 19914 3 233 633 3 970\n", + "top HOTAIR ns ns stomach cancer lncRNA C0024299\n", + "freq 937 575514 541732 127935 572481 14550" + ] + }, + "execution_count": 347, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "hmdd_lncrna_disnet_to_merge.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Merging hmdd_lncrna_disnet_to_merge (RNA df) and query_icd (icd terms df) dataframes and that merged df with a df containing the icd10 short version names**" + ] + }, + { + "cell_type": "code", + "execution_count": 348, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rna_iddisease_idclass_rangeicd_class_nameclass_name
0hsa-mir-143C0007102C00-D48NeoplasmsNeoplasms
1hsa-mir-145C0007102C00-D48NeoplasmsNeoplasms
2hsa-let-7gC0007102C00-D48NeoplasmsNeoplasms
3hsa-mir-155C0007102C00-D48NeoplasmsNeoplasms
4hsa-mir-145C0007102C00-D48NeoplasmsNeoplasms
..................
232026hsa-mir-182C0018776H60-H95Diseases of the ear and mastoid processEar
232027hsa-mir-183C0018776H60-H95Diseases of the ear and mastoid processEar
232028hsa-mir-96C0018776H60-H95Diseases of the ear and mastoid processEar
232029hsa-mir-183C0018776H60-H95Diseases of the ear and mastoid processEar
232030hsa-mir-146bC0029882H60-H95Diseases of the ear and mastoid processEar
\n", + "

232031 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " rna_id disease_id class_range \\\n", + "0 hsa-mir-143 C0007102 C00-D48 \n", + "1 hsa-mir-145 C0007102 C00-D48 \n", + "2 hsa-let-7g C0007102 C00-D48 \n", + "3 hsa-mir-155 C0007102 C00-D48 \n", + "4 hsa-mir-145 C0007102 C00-D48 \n", + "... ... ... ... \n", + "232026 hsa-mir-182 C0018776 H60-H95 \n", + "232027 hsa-mir-183 C0018776 H60-H95 \n", + "232028 hsa-mir-96 C0018776 H60-H95 \n", + "232029 hsa-mir-183 C0018776 H60-H95 \n", + "232030 hsa-mir-146b C0029882 H60-H95 \n", + "\n", + " icd_class_name class_name \n", + "0 Neoplasms Neoplasms \n", + "1 Neoplasms Neoplasms \n", + "2 Neoplasms Neoplasms \n", + "3 Neoplasms Neoplasms \n", + "4 Neoplasms Neoplasms \n", + "... ... ... \n", + "232026 Diseases of the ear and mastoid process Ear \n", + "232027 Diseases of the ear and mastoid process Ear \n", + "232028 Diseases of the ear and mastoid process Ear \n", + "232029 Diseases of the ear and mastoid process Ear \n", + "232030 Diseases of the ear and mastoid process Ear \n", + "\n", + "[232031 rows x 5 columns]" + ] + }, + "execution_count": 348, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "hmdd_lncrna_disnet_to_merge_1 = hmdd_lncrna_disnet_to_merge[['rna_id', 'disease_id']]\n", + "icd_rna= pd.merge(hmdd_lncrna_disnet_to_merge_1, query_icd.drop(['class_name'], axis=1), on='disease_id')\n", + "icd_rna\n", + "# disease_gene_icd = disease_gene_icd.drop(['source_id', 'sio_id','score'], axis=1)\n", + "icd_10_short = pd.read_csv('icd10_links.csv')\n", + "icd_rna= pd.merge(icd_rna, icd_10_short, on='class_range')\n", + "icd_rna" + ] + }, + { + "cell_type": "code", + "execution_count": 349, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
class_namedisease_idnum_feature_diseasecaracteristica
0CirculatoryC00029401ncRNA
1CirculatoryC0003486129ncRNA
2CirculatoryC000381120ncRNA
3CirculatoryC0003850135ncRNA
4CirculatoryC0004153301ncRNA
...............
449SkinC00429003ncRNA
450SkinC016281015ncRNA
451SkinC01628202ncRNA
452SkinC01628361ncRNA
453SkinC070216610ncRNA
\n", + "

454 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " class_name disease_id num_feature_disease caracteristica\n", + "0 Circulatory C0002940 1 ncRNA\n", + "1 Circulatory C0003486 129 ncRNA\n", + "2 Circulatory C0003811 20 ncRNA\n", + "3 Circulatory C0003850 135 ncRNA\n", + "4 Circulatory C0004153 301 ncRNA\n", + ".. ... ... ... ...\n", + "449 Skin C0042900 3 ncRNA\n", + "450 Skin C0162810 15 ncRNA\n", + "451 Skin C0162820 2 ncRNA\n", + "452 Skin C0162836 1 ncRNA\n", + "453 Skin C0702166 10 ncRNA\n", + "\n", + "[454 rows x 4 columns]" + ] + }, + "execution_count": 349, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "icd_rna = icd_rna[['disease_id', 'class_name', 'rna_id']]\n", + "#disease_gene_icd_test['gene_id'] = disease_gene_icd_test['gene_id'].apply(str)\n", + "icd_rna_1 = icd_rna.groupby(['class_name', 'disease_id']).count()#agg(num_feature_disease=('rna_id', sum))\n", + "icd_rna_1 = icd_rna_1.reset_index()\n", + "# icd_rna_1 = icd_rna.reset_index()\n", + "icd_rna_1 = icd_rna_1.rename(columns={'rna_id': 'num_feature_disease'})\n", + "icd_rna_1['caracteristica'] = 'ncRNA'\n", + "icd_rna_1" + ] + }, + { + "cell_type": "code", + "execution_count": 350, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
num_feature_disease
class_name
Circulatory5310
Congenital4083
Digestive1146
Ear23
Eye293
Genitourinary964
Immunitary436
Infectious5120
Mental4159
Metabolic2453
Musculoskeletal749
Neoplasms193696
Nervous12389
Perinatal149
Pregnancy371
Respiratory354
Skin336
\n", + "
" + ], + "text/plain": [ + " num_feature_disease\n", + "class_name \n", + "Circulatory 5310\n", + "Congenital 4083\n", + "Digestive 1146\n", + "Ear 23\n", + "Eye 293\n", + "Genitourinary 964\n", + "Immunitary 436\n", + "Infectious 5120\n", + "Mental 4159\n", + "Metabolic 2453\n", + "Musculoskeletal 749\n", + "Neoplasms 193696\n", + "Nervous 12389\n", + "Perinatal 149\n", + "Pregnancy 371\n", + "Respiratory 354\n", + "Skin 336" + ] + }, + "execution_count": 350, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "icd_rna_1.groupby(['class_name']).sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 351, + "metadata": {}, + "outputs": [], + "source": [ + "#icd_rna_1.to_excel('icd_rna_1.xlsx')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Concat function on disease_gene_icd_test and icd_rna dataframes**" + ] + }, + { + "cell_type": "code", + "execution_count": 352, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(0.5, 1.0, 'Gene and ncRNA distribution per ICD10 disease group')]" + ] + }, + "execution_count": 352, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnMAAAInCAYAAADzr9/vAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAACi/UlEQVR4nOzde3xdVZn4/8+TkzRNaAs02qjFNuLB4VoKxHFUVHRSTVrGEWVEv2iDODK2YxOryNcfZqRovIyjjm1m5uswjjZRcXTwwsUm2g6CihdsoVBo0e7BFKnQyinQW5rkJM/vj73P4eRkn2vObZ8879err+bsvS7PWnsnWVn7skRVMcYYY4wxwVRT7gCMMcYYY0z+bDBnjDHGGBNgNpgzxhhjjAkwG8wZY4wxxgSYDeaMMcYYYwLMBnPGGGOMMQFmgzljZhERUREJlzuOQhORFq9ttd7nQRHpLFDZrxGR3yZ8HhaRtkKU7ZX3sIhcUqjyjD8RuUpEfp7w+aiInF7OmIwpFBvMGeNDRN4hIr8WkWMictD7eq2ISLljqzQisllExrxfjodEZKuInJmw/ypvoPWRpHyPJw9iEtK+fSYxqWqHqvZnEXvGwa2q/kxV/2wm8STUt1lEepPKP0dV7ypE+aWUPKgVkReKyH+KyBMickREHhGRG0XkJG+/et9PR0UkIiL/IyJXJJX5dhH5hYgcF5G7fOpcLiI7vP07RGR5vvGr6jxVfTTf/MZUEhvMGZNERD4MbAT+CXgB0Ay8H3g1MKeMoVWyz6nqPGAxsB/4z6T9h4D/KyILMpTT6aUtyKzaTMVm+mYzcaX9XSEiC4FfAg3AK1V1PrACOAV4aULS873z5M+AzcC/iMgNCfsPAV8CPutTxxzgVuAbwKlAP3Crt91g5+tsZoM5YxKIyMnAJ4C1qnqLqh5R1/2qeqWqjnrp6kXk8yLymIgcEJEvi0iDt+8Sb9bpw96s3hMi8p6EOlLm9YnnpSJypzeT8ZSIfFNETknYPywi14rIgyLyrIh8W0TmJuz/iFf/H0Xk6gxtv0tEPiki93gzKz8Wkecl7L/YmzV5RkT+ICJXJZehqiPAd4DlSbv24P6yX5+m/qXA64BrgDeJSHOatCGvD58SkUeBVT5t+Vvv67CI3O31z1Mi8m1v+0+95A94s0VXJBy7/ysiTwJfi21LCuHlIrJbRJ4Wka/F+lySLuV529SL4RrgSuA6r77bvf3xGS7v3PiSd7z+6H1d7+1Le1759NFdIvIZEbnXa/ut3qArtv8vEo7nA5IwS+rl/ZSI3AMcBzJdjvwQcAR4l6oOA6jqH1S1W1UfTE6sqk+p6teBNcD/JyJN3vZtqvod4I8+dVwC1AJfUtVRVd0ECPCGFO1vEpHbROSwiNzL1EHllFlZEVnpHc8jIrJfRK5NSHepiOz0+ukXIrIsYd9HReR/vXy7ReSyhH2+552370xxZ7APichvJc1MtIi8RER+6tWxTUT+VUS+4e2L3V7wXhF5DLhTRGpEpEdE9nnnyYC4P9fi51BS+Ynn3wYRuUXcnyNHROQ+ETk/VWymcthgzpipXgnU484ApPOPwMtwBy1h3BmpjyfsfwFwsrf9vcC/isipWeZNJMBngBcBZwEvBjYkpXk70A68BFgGXAUgIu3AtbgzJGcA2dzn9X+A9wCLcGchr/XKWgIMAn3A873Yd04L1r2k9k7A8Sn7H4D1iQOKJKuB7ar6XdzB35Vp4nwfcClwAdAKXJ4m7SeBH+PO5pzmtQFVfa23/3zvklvsl+0LgIXAUtyBpZ8rgTfhDhBeBvSkqR+vvpuAb+LNYqrqX/kk+xjwF7j9ez7w50llpzuv/KwGrsY9f6LAJgARWQz8EOjFbeu1wHdF5PkJed+N2/75wL4MzWsDvqeqkxnSJbsVd4D251mkPQd4UKeuQfmgt93PvwIngBfi9kG6P2b+E/g7b0bxXOBOABG5EPgq8HdAE/DvwG2xATbwv8BrcI/JjcA3ROSF3j7f8877HtkK3Iz7ffZO4N9EJFU7bgbu9erfgHtckr0O9+fDm3C//68CXo87CJ8H/Euatif7a+C/cc+Lm4EfiEhdDvlNGdhgzpipngc8parR2IaE2YsREXmtiAjuYGK9qh5S1SPAp4F3JJQzDnxCVcdVdQtwFPizLPPGqaqjqlu9mYg/AV/E/cGdaJOq/lFVDwG389ys2NuBr6nqQ6p6jOmDQD9fU9Xf+cywXQlsU9VveW2KqOrOhHzXisgzuLMzF+PzC8dL/2Pg/6aoezXuLw+8/9Ndan077gzNH7x2fyZN2nHcgdmLVPWEqv48TVqASeAGr89HUqT5l4S6P4X7C7kQrsQ9bw56x/tGpval73mVpryvJxz/fwDeLiIh4F3AFlXdoqqTqroV2A6sTMi7WVUfVtWoqo5niLsJeCKnlgJeuU/hDhwymQc8m7TtWdzB5hReG98GfFxVj6nqQ7iXZVMZB84WkQWq+rSq3udtfx/w76r6a1Wd8O7DHMUdcKOq/+197016fwzs5bmBaarz7lJgWFW/5vXtfcB38fmDxPsj6uVeO8a8Mm7ziX+D184R3HPoi6r6qKoeBf4/4B2S/SXYHd5ViXHcnzdzY+01lcsGc8ZMFQGel/iDT1VfpaqnePtqcGemGoEd3iDvGWDI2x4vJ3FAiHupal6WeeNEZJGI/Jd36ecw7v1Cz0tK9qRPPeDOxvwhYV+m2ZV0Zb0YdxYilc97fdQCjJB6gPFxYI2IvCBxo4i8Gndm8b+8TTcD50nqG9xzadt1uDOc94r75Gjay83An1T1RIY0yXW/KEP6bL2IqW1JLjvVeZVKcpx1uOfPUuBvYuegdx5ejDuL5Zc3k0hS3qx4Mz7Px71XLpOjQPI9lwtw/4BI9nzcGb9sz5G34Q5k93mXRl/pbV8KfDipn16Md0xEZHXCJdhncGf1Yt+fqc67pcArksq8EnfWNdmLgEOqejxhm99xSdzmdw7V4t77m414Wd5M6+MU7vw2RWKDOWOm+iXuX95/nSbNU7gDlnNU9RTv38nejd2Z5Jr3M4ACy1R1Ae6MSrZP1D6B+4snZkmW+fz8gaR7jvyo6mNAN7BRfO4DVNVHgO8B1yft6sRt105x71X7tbd9dYqqsm6bqj6pqu9T1RfhXi77N0n/BKum2ReTXHfsHq9juIN1AJIHrVmU/UfcX/Z+ZecjOc7YTNgfcGftTkn4d5KqJj54kE0/xGwDLpMMD0r4+Gvcy7/3ZpH2YWCZN7sds8zbnuxPXrnZniO/UdW/xr3s+QPcWWlw++lTSf3UqKrfEvcez/8APgA0eX/MPIT3/ZnmvPsDcHdSmfNUdY1PaE8AC0WkMWHbi33SJR4rv3MoChxg+vkZYvofki9O2F+De4l4JuegKQEbzBmTQFWfwb209W8icrmIzPNuKF4OnOSlmcT9If7PIrII3HuQRORNWZSfa975uDMSz3j3OX0kRTo/3wGuEpGzvV8GN2TKkMY3gTZxXx1RK+7N5cv9EnqX7P5I6vvNbsS9L+8UAHEfHni7l355wr91wJUpLg99B+gSkdO8e8Y+mipwEfkbETnN+/g07i++Ce/zATLf3O/n7726F+IOTGP32z0AnCPuKzTmMv3Sdqb6vgX0iMjzxX345OO4s7H5elfC8f8EcIuqTnhl/pWIvEnch0nmejfHn5a+uJS+iDtL1u8NcmLn9Rcl4YGBGBFZKCJX4t7X9o+qGvG2h7x+qwVqvLhi92vdhXvcusR9UOQD3vY7k8v32vg9YIOINIrI2aS4bC8ic0TkShE52bu0eJjnzo//AN4vIq8Q10kiskpE5uP+PFDcgSPiPoxybkK5qc67O4CXici7RaTO+/dyETnLpx37cC9/b/DifCXgd69lom/h3pv6EhGZh3sbx7e9Gd3fAXO9NtTh3o9Zn5T/IhF5q/d990HcP25/laFOU2Y2mDMmiap+DvfpvOuAg7i/gP8d916vX3jJ/i/uTf6/8i5/biP9vUuJcsl7I3Ah7r1BP8T9BZVtOwZxX/Nwp1fftF96OZT1GO5lqA/jXhLbiXuDfir/hPvUZvIvClT198DX8QbHwFtwZysHvNmMJ1X1Sdyb0kO4D3ck+w/gR7iDp/tI3y8vB34tIkdx7zfq9mIAd7DV713uyuXddjfj3v/3qPev12vb73AHTdtw759Kvj/vP3HvzXpGRH7gU24v7i/vB4FdXtt6fdJl6+u4rwB5Evfepy4vzj/gzopdjzsY+QPuHwp5/U7w7h18Fe7M369F5AjwP7jnbeLDMA94x8EB/hb33tHEh3/ejXsu/D/cBwtGcI81qjqGe66sBp7BfaDhLd52Px/AvQT9pNcHX0vThHcDw9734/txZ8BR1e249839C+6AzMF7wEhVdwNfwJ3NPwCcB9yTUKbveafufbJvxL1P9o9efP/I9EFVzJW4D2ZFcM+Fb+MOsFL5Ku5x/ynwe9yHQNZ5MT8LrAW+gvsKoWO4l1ET3Qpc4bX33cBbs7hn0pSZqOYyk26MMSYIxH3p7jdU9SvljsUUjrivOHlEVWcy056q7A1AWFXfVeiyTXHZzJwxxhhTobxLsC/1bvdox51R/UGZwzIVxt4WbYwxxlSuF+DeRtCEe0l0jareX96QTKWxy6zGGGOMMQFml1mNMcYYYwLMBnPGGGOMMQFm98wF0POe9zxtaWkpdxjGGGOMKYAdO3Y8paq+KwFlwwZzAdTS0sL27dvLHYYxxhhjCkBEslluMSUbzAVUX18fjuOk3L9//34AFi9eXKqQshIOh1m3bl25wzDGGGOqhg3mAspxHHY+tIeJxoW++0PHnwXgydHKOcSh49mspW2MMcaYXNgDEAF08OBB9u/fz0TjQkbOXOn7b6KxiYnGppT7y/Ev1cCzGvX19dHX15dTnkgkQldXF5FIJK80mfL77Xcch46ODq655ppp21etWpVy9ncmcZhgSD6OhTqudn7MDjM5znaO5M4GcwE0OjrKyMhIucMwaTiOk/YyuJ/+/n527drFwMBAXmky5ffb39vby8jICL/73e+mbT927Bi9vf7Lgs4kDhMMycexUMfVzo/ZYSbH2c6R3NlgzpgKEIlEGBoaQlUZGhpKOeOVKk2m/H77HcdheHg4nmbLli3Ttg8PD08blM4kDhMMycfRcZyCHFc7P2aHmRxnO0fyUzk3VJmsjY2NMTIyQk0oWKt31Jw4jOMcobu7u9yhFJ3jODQ0NGSdvr+/n8nJSQAmJiYYGBhg/fr1WafJlN9v/wMPPDCl/PHxcd/tvb29bN68uSBxmGBIPo69vb0FOa52fswOMznOdo7kx2bmjKkA27ZtIxqNAhCNRtm6dWtOaTLl99ufOCsX47c9+fNM4jDBkHwch4eHC3Jc7fyYHWZynO0cyY/NzAXQnDlzaGho4Nma+eUOJSeTcxcQPr2ZjRs3ljuUost19rGtrY0tW7YQjUapra1lxYoVOaXJlN9v/wMPPDBtoOa3PfkF1TOJwwRD8nE87bTTePzxx2d8XO38mB1mcpztHMmPzcwZUwE6OzupqXG/HUOhEKtXr84pTab8fvt7enqmpKmrq/Pdnvx5JnGYYEg+jj09PQU5rnZ+zA4zOc52juSnKgZzIvICEfkvEflfEdktIltE5LUickuByt8gItdmSPMWETm7EPVlUl9fn9P9WKb0wuEw4XA46/RNTU20t7cjIrS3t9PU1JRTmkz5/faHw+Eps24rV66ctr2lpWVaO2YShwmG5OMYDocLclzt/JgdZnKc7RzJT+Avs4qIAN8H+lX1Hd625cB8Vb3cJ32tqkaLEMpbgDuA3dlmyDeWRYsWsXjxYp589ECuWU2J5LPKRWdnJ8PDw2n/Ek2XJlN+v/09PT2sW7eOF7/4xdO2d3d3T5uVK0QcJhiSj2OhjqudH7PDTI6znSO5E9VgPRGZTETeAGxQ1dcmbW8B7lDVc0XkKmAVMBc4CXgz0Ae0AgrcqKrfFZGjqjrPy385cKmqXiUiG4Cjqvp5EXkfcA0wB3CAdwPLcQdyz3r/3gbMB74MNAL/C1ytqk+LyF3AL4BXA3cCVwEvU9VxEVkAPAicoarjqdrc2tqqr371q6esAFFz4jAymZBlwhsjhipovD4RZd5JjTnNWJniq9Sl31KxJeGMMdVGRHaoamu++SvoN33ezgV2ZJHulcAyVT0kIv8IPKuq5wGIyKk51Pc9Vf0PL18v8F5V7ROR23AHj7d4+x4E1qnq3SLyCeAG4INeGaeo6uu8dC24A80fAO8Avus3kBORa3AHkSxZsmTagMhxjqCjoyyZNwHAgePuFfTmxrEcmlYKY4zu217uIEyCY0dCAIxGnyhzJJk9djRU7hCMMabiVMNgLltbVTW2OGgb7sAJAFV9OodyzvUGcacA84AfJScQkZNxB2x3e5v6gf9OSPLthK+/AlyHO5h7D/A+v0pV9SbgJnBn5pJnJrq7uxndt53rLzycQ1OMgU/ftwAgEOdOLFZjjDHPqYYHIB4GLsoi3bGErwX38mqyxG1zU5SzGfiAN6t3Y5p0WcWiqvcALSLyOiCkqg9lynzw4MGc1/00xhhjgiafda5no2oYzN0J1Hv3sgEgIi8HlqbJ82PgAwnpY5dZD4jIWSJSA1yWIu984AkRqQOuTNh+xNuHqj4LPC0ir/H2vRu4m9QGgG8BX0uTJm50dDTndT+NMcaYoMlnnevZKPCDOXWf4LgMWOG9muRhYAPwxzTZeoFTReQhEXkAeL23/aO4DzLcCaS6gegfgF8DW4FHErb/F/AREblfRF4KdAL/5N07txz4RJp4vgmcijugM8YYY4zJWuCfZq0G3pOzf62q784m/amnnqqvetWrpjwE4TgOc8YPs/HiZ4oUpalWQbpnrvvnpzBWt8CeiDZmloitc33LLQV5bWzFsqdZA05E+oAOYGW5YzHGGGNM8NhgrsxUNecXZs2ZM4dwODxljdPY06zGVLPmxknql4Znxfq+xpjc17merQJ/z5wxxhhjzGxmM3MBVF9fb/cMGWOMqXr2uy47NpgLoEWLFvkuZ/TY0ZC9VNXkbJ+3AkQQzp3HjoY4o9xBGGNKxpbuy44N5qqE/fVi8nWStzZrfQDWZj0DO9eNMSaZDeaqhP31YowxxsxO9gCEMcYYY0yA2WDOGGOMMSbAbDBnjDHGGBNgds9cgPX19aVcgHi/d1P74iLf1B4Oh+1+PWOMMaaMbDAXYI7jsPOhPUw0Lpy2L3T8WQCeHC3eIQ4dP1S0so0xxhiTHRvMBdxE40JGzpy+rGvDI1sAfPcVSqwOY4wxxpSP3TMXQAcPHqSvr6/cYQRWX18ffX19RCIRurq6iEQi8X2RSIQ1a9Zw9dVX09HRgeM4RCIR1q5dy5o1a3Ach66urvj/yXmTtyWK7U8sY82aNaxdu5ZIJJIxf2I5ifHEvs6UL1fJ8cT6JhZvcrrt27ezatWqeJ9laktyfyT2gV//zoTjOPHY0tWfTmL7U+XJ9hgGXTW0M9c25NPmVN8zpjRKfZ6W8/vCBnMBNDo6mvJeOZOZ4zg4jkN/fz+7du1iYGAgvq+/v589e/bw6KOPMjIyQm9vL/39/ezevZs9e/bQ29vLrl274v8n503elii2P7GMPXv2sHv3bgYGBjLmTywnMZ7Y15ny5So5nljfxOJNTrdhwwaOHTsW77NMbUnuj8Q+8Ovfmejt7Y3Hlq7+dBLbnypPtscw6Kqhnbm2IZ82p/qeMaVR6vO0nN8XNpgzs9L4+DhDQ0OoKkNDQ/FZocHBwSnphoeH2bJly5TPqhr/PzFvcnmJEvcnlhGzZcsWBgcHU+ZPLicxnpjBwcGC/UWY3B7Hcab0TayuxHRHjx6Nx7Rly5a0bfHrj8HBwWnb0vVFthzHiffT8PBwfOYwl7qSzw2/PJnOgWpRDe3MtQ35tDn5nCnk96fJrNTnabm/L+yeuQAaGxuLz8zVjGnZ4qg5cRjHOUJ3d3fZYsiH4zhEo1EmJycBmJiYYGBgAFUlGo1OS++3LSYxb3J569evj6fr7++P7/czPj6OiKTMn1jO+Ph4yjJS5ctVYrwTExP09vZO6YdYXYntThRLm6otfv3h1650fZGtxNm42Odly5ZNqz9Tv/udB4l5kvusUMei0lRDO3NtQz5tTj5nCvn9aTIr9Xla7u8Lm5kzs9LY2Fj8B200GmXr1q1s27YN1dwGx4l5k8tLlLg/lVjdfvkTy0kVo6qmzJer5PbEZqKS68rUrlRt8cunqtPalq4vspU4exn77Fd/Pv2emCfTOVAtqqGdubYhnzYnnzOF/P40mZX6PC3394XNzAXQnDlz4ouN73j0QNnimJy7gPDpzWzcuLFsMeSju7ubxx9/nGeffZZoNEptbS0rVqxAVbn99ttzGtAl5t2yZcuU8hK1tbXF96ciIqiqb/7EclLFKCIp8+UqMd7a2lpOO+009u3bF683Vldiu/2kaotff8RmJhPblq4vstXS0jJlQNfS0sKyZcum1Z9PvyfmSe6zQh2LSlMN7cy1Dfm0OfmcKeT3p8ms1Odpub8vqmJmTkReICL/JSL/KyK7RWSLiLyszDFtEZFTvH9rs8xztNhxGVdzczM1Ne7pHwqFWL16NZ2dndTWTv/7xm9bTGLe5PISJe73U1dXF6/HL39iOXV1dSnLSJUvV8nt6enpmdIPsbpStStTW/zy1dXVTWtbur7IVk9Pz7TPfvVn6ne/8yAxT6ZzoFpUQztzbUM+bU4+Zwr5/WkyK/V5Wu7vi8AP5sT9c/77wF2q+lJVPRu4HmguZ1yqulJVnwFOAbIazGWrvr4+PjNnchcOhznrrLNob29HRGhvb6epqYmmpiY6OjqmpG1paWHlypVTPotI/P/EvMnlJUrcn1hGzMqVK+no6EiZP7mcxHhiOjo6UubLVXJ7wuHwlL6J1ZWYbt68efGYVq5cmbYtfv3R0dExbVu6vshWOByO91NLSwvhcNi3/kz9nth+vzyZzoFqUQ3tzLUN+bQ5+Zwp5PenyazU52m5vy+q4TLr64FxVf1ybIOq7hTXPwEdgAK9qvptEbkE2AA8BZwL7ADepaoqIiuBL3r77gNOV9VLReQkoA84D7fPNqjqrSJyFfBmoBF4KfB9Vb0OQESGgVbgs8BLRWQnsBW4EbgVOBWoA3pU9dZcGrxo0SLWrVsXuAcPKkVs+bFIJMLw8PCUv6A6OzvZu3cvo6OjPPHEE/T09HDqqafiOA6qyoc//GE2bdpEV1cXmzZtmpY3ubxEsf2xvF1dXXzhC19AROJ50uVPLCcxni9+8YuoasH/EkxuT6xvEuNNTnfDDTfE+yxTW5L7I7EP/Pp3Jnp6euju7p4yS5eq/nTxxtr/oQ99yDdPpnOgWlRDO3NtQz5tTvU9Y0qj1OdpOb8vJNcbviuNiHQBL1HV9Unb3wa8H2gHngf8BngF8Ge4g6lzgD8C9wAfAbYDe4HXqurvReRbwHxvMPdpYLeqfkNETgHuBS4A/gb4uPf1KPBb4GJV/UPCYG4ecIeqnuvFVQs0quphEXke8CvgDG8weVRV52Vqc2trq27fvp3u7u74cl41Jw4jkwlPA0549wKFijhen4gy76RGmyUMqFzW77U1eI0xpnhEZIeqtuabvxpm5lK5GPiWqk4AB0TkbuDlwGHgXlV9HMCbMWsBjgKPqurvvfzfAq7xvn4j8GYRudb7PBdY4n39P6r6rFfWbmAp8Ic0cQnwaRF5LTAJLMa9JPxkusaIyDWxeJYscatOHEQ5zhF0dJQl8yYAOHDcvYLe3DiWrtgCGGN03/Yi12GK4diREACj0SfSpnvsaKgU4RhjjMlTNQzmHgYu99kuafKMJnw9gdsP6dIL8DZV/e2UjSKvSFFWOlcCzwcuUtVxbwZvboY8qOpNwE3gzswBU2ZKuru7Gd23nesvPJypKGMA+PR9CwAynjOxdMYYYypT4B+AAO4E6kXkfbENIvJy4GngChEJicjzgdfiXh5N5RHgdBFp8T5fkbDvR8A672ELROSCHOI7AsxP+HwycNAbyL0edyYvJ7Y2qzGm2sXWUDbGZBb4mTnvXrPLgC+JyEeBE8Aw8EHc+9UewH0A4jpVfVJEzkxRzoj3CpEhEXmKqQO/TwJfAh70BnTDwKVZxhcRkXtE5CFgEPhH4HYR2Q7sxB1E5sTWZjXGVDv7GWdM9gI/mANQ1T8Cb/fZ9RHvX2Lau4C7Ej5/IGH3T1T1TG/A9q+4D0WgqiPA3/nUuxnYnPD50oSvWxK+/j9JWV+Zoh0ZH34wxhhjjElUFYO5AnqfiHQCc4D7gX8vczy+YmuzJr6axHEc5oxXw1VzU2kOHK9hLOl8M6bYHMehoaGh3GEYEwg2mEugqv8M/HO54zDGGGOMyZYN5gIotjZr4pqosadZjSm05sZJ6peGA7cGrwk2mwk2Jns2mAsgW87LGFPt7GecMdmzwVwAxZbzMsaYamU/44zJng3mqshjR0P2gleTtX3eChCZzpnHjoY4oxQBGWOMyYsN5qqEXZIwuTrJW5u1PsParGdg55cxxlQyG8xVCbskYYwxxsxO9mIyY4wxxpgAs8GcMcYYY0yA2WDOGGOMMSbA7J65AOvr68t6Mer93s3uizPc7F4u4XDY7vszxhhj8mCDuQBzHIedD+1honFhxrSh488C8ORo5R3y0PFD5Q7BGGOMCazK+81ucjLRuJCRM1dmTNfwyBaArNKWWiw2Y4wxxuTO7pkLoIMHD9LX11fuMEyJ9fX18YlPfIJVq1ZNu7weiURYs2YNa9euJRKJ+OaPRCJ0dXXhOA5dXV2+6WJpIpHIlK/TlZdqfzozyZtNWYUsP5d6zVTF6CPr9/QikQhr165lzZo1M+6jSvkeN5nZYC6ARkdHs75XzlQPx3G45557OHbsGL29vVP29ff3s2fPHnbv3s3AwIBv/v7+fnbt2kVvby+7du3yTRdLMzAwMOXrdOWl2p/OTPJmU1Yhy8+lXjNVMfrI+j29/v5+du/ezZ49e2bcR5XyPW4ys8GcMQFx/PhxRkdHARgeHo4P6CORCIODg/F0g4OD0/4ajkQiDA0NoaoMDw+jqgwNDU2bzYqlGRwcZHBw0Dddclq//enMJG82ZRWy/FzqNVMVo4+s39OL9U+M38+CXMsq9/e4yY7dMxdAY2Nj8V/kNWNa5mhmrubEYRznCN3d3eUOpaIlz8b29vayefNm+vv7iUaj8e3j4+MMDAywfv36+Lb+/n4mJyen5J+YmJiSLjHN+Ph4ynTJaf32pzOTvNmUpaoFKz+XegtdR9AVo4+s39Pr7++f8r3r97Mgl7Iq4XvcZMdm5owJCNWpA/fh4WEAtm3bNmWfqrJ169Ypabdt2zZlwAcQjUanpEtMo6rxMpPTJaf125/OTPJmU1Yhy8+lXjNVMfrI+j29bH4W5FJWJXyPm+zYzFwAzZkzJ77w+Y5HD5Q5mpmbnLuA8OnNbNy4sdyhVLQ3velN8cusAC0tLQC0tbVx++23x3+IiwgrVqyYkretrY0tW7ZMGdDV1tZOSZeYRkQA95dBcrrktH7705lJ3mzKUtWClZ9LvWaqYvSR9Xt62fwsyKWsSvgeN9mp+pk5EZkQkZ0i8rCIPCAiHxKRGm9fq4hsKnB9V4nIixI+f0VEzi5kHWZ2WrJkyZTPPT09AHR2dlJb+9zfZXV1daxevXpK2s7OTmpqpn67h0KhKekS09TV1cXLTE6XnNZvfzozyZtNWYUsP5d6zVTF6CPr9/Q6Ozupq6uLf/b7WZBLWZXwPW6yU/WDOWBEVZer6jnACmAlcAOAqm5X1a4C13cVEB/MqerfquruQlZQX18fn5kzs8eyZcuYP38+4M7Kxc6BpqYmOjo64uk6OjpoamqakrepqYn29nZEhJaWFkSE9vb2KekS03R0dNDR0eGbLjmt3/50ZpI3m7IKWX4u9ZqpitFH1u/pxfonxu9nQa5llft73GRnVl1mVdWDInIN8BsR2QC8DrhWVS8VkecDNwNNwG+AduAiVX1KRN4FdAFzgF8Da70i/xNoBRT4KvAH7/M3RWQEeCUwCFwLvBx4iapeB+4Mnlf+Or/yVXUiVTsWLVrEunXr6O7uJnT8UFYv3Q0dd58mqsQX9LorQDSXO4yKt27dOjo6Ouju7o7PysV0dnayd+9eRCTlX8GdnZ0MDw/T1dXFpk2bfNPF0sT2JX6dKW0uZpI3m7IKWX4u9ZqpitFH1u/pdXZ24jgOqjrjPqqU73GTmSTfVF1tROSoqs5L2vY0cCZwFs8N5v4F2K+qnxGRdtxB2PO9f58D3qqq4yLyb8CvgIeBz6rqCq/MU1T1GRG5yytzu7f9LtzB3D7gl6oa9rYPAp8CIn7lq2rKl/MsWbJEL7vsMvbv38/IyEj8Pqr6+vqU/ZCcpqGhoaLWabW1WY0xxsxWIrJDVVvzzT+rZuYSiM+2i4HLAFR1yBvwAfwlcBHubB5AA3AQuB04XUT6gB8CP05Xoar+SUQeFZG/APYCfwbcA/x9ivKnBuzOKF4DMH/+fPY+fD9L5k1AHew7EQLgxXUjqQOI30YxwmNHQywOh+2BA2OMMaYKzLrBnIicDkzgDpjOStyVKgvQr6r/n09Z5wNvwh2QvR24OkP13/bSPQJ8X1VV3BGcb/mJVPUm4CaA5uZmXTJvgusvPAzAp+9bABD/nEksfTFFIhFuvPFGbrjhhvj9En7bTGXYvn071113Hf/0T//ERRddVO5wcmLnlTFmtpsND0DEeffFfRn4F51+ffnnuAMtROSNwKne9v8BLheRRd6+hSKyVESeB9So6neBfwAu9NIfAeanCOF7wFuAd+IO7FKWn64dY2NjHDhe3EPX19c3o/Vfy7XEksnPhg0bmJyc5IYbbih3KDmz88oYM9vNhsFcQ+zVJMA23MuhN/qkuxF4o4jcB3QATwBHvCdRe4Afi8iDwFbghcBi4C4R2QlsBmIza5uBL3t1NiRWoKpPA7uBpap6r7ctVfkpTU5OcmIi1URiYTiOk/f6r+VaYsnkZ/v27Rw9ehSAo0ePsmPHjjJHlD07r4wxZhZcZlXVUJp9dwF3eR+fBd6kqlEReSXwelUd9dJ9m+dm0hJdmLzBm6n7bsKmS5L2X+qTJ1X5RXHgeA1jjpN2+SzHcWhoaEi5P51yLbFk8rNhw4Ypn2+44QbuuOOO8gSTI1s2yBhjZsfMXLaW4D6E8ACwCXhfmeMJrHItsWTyE5uVS/W5ktl5ZYwxs2BmLluquhe4oNxxlEJz4yT1S9M/zTqTRe/LtcSSyc+8efOmDODmzZuXJnVlsWWDjDHGZuZMEZRriSWTn+TLrDfe6HdLaWWy88oYY2wwF0g1NTXMDRX3Zc/hcDjvJcPKtcSSyU9ra2t8Nm7evHmBejWJnVfGGGOXWQNpzpw5NDdOFrWOma7GUK4llkx+NmzYwHXXXReoWbkYO6+MMbNd1S/nVY2am5v1ovP+zF0BAth3xH1gd+n8lMu5TvHY0RBnnHOBrQBhjDHGVABbzmsWqq+v54xznntW46T9+93tWa61egbkfQnVGGOMMZXFBnMBtGjRIptVM8YYYwxgD0AYY4wxxgSaDeaMMcYYYwLMBnPGGGOMMQFm98wFWF9fH47jZJV2v/eQxOIsH5KoJuFweMavWjHGGGMqlQ3mAsxxHHY+tIeJxoUZ04aOPwvAk6Oz65CHjh8qdwjGGGNMUc2u3+xVaKJxISNnrsyYruGRLQBZpa0msXYbY4wx1crumQuggwcP0tfXV+4wqkpfX5/1qckoEonQ1dVFJBIpdyiG9Mcjl2Nlx9UEnQ3mAmh0dDTre+VMdhzHsT41GfX397Nr1y4GBgbKHYoh/fHI5VjZcTVBZ4M5Y4zJQiQSYWhoCFVlaGjIZnHKLN3xyOVY2XE11cDumQugsbGx+CxSzZitrZtOzYnDOM4Ruru706ZzHIeGhoYSRWWCqL+/n8nJSQAmJiYYGBhg/fr1ZY5q9kp3PHI5VnZcTTWwmTljjMnCtm3biEajAESjUbZu3VrmiGa3dMcjl2Nlx9VUA5uZC6A5c+YQDocB2PHogTJHU9km5y4gfHpzxrVsM83cGdPW1saWLVuIRqPU1tayYsWKcoc0q6U7HrkcKzuuphrYzFyRiMiEiOxM+PfRQpVdX18fH8yZwgiHw9anJq3Ozk5qatwfmaFQiNWrV5c5otkt3fHI5VjZcTXVwAZzxTOiqssT/n0224wiknbGdNGiRbaiQYGtW7fO+tSk1dTURHt7OyJCe3s7TU1N5Q5pVkt3PHI5VnZcTTWwy6wlJiIfB/4KaAB+AfydqqqI3OV9fjVwG/CFbMoLHT9EwyNbqDlxGImecDfWhNCaOibnLkhI5z6hNdteouuuANFc7jBMlejs7GR4eNhmbypEuuORy7Gy42qCTlTtachiEJEJYFfCps+o6rdFZKGqHvLSfB34jqre7g3mdqvq2hTlXQNcA7BkyZKL9u3bN2VtVsdxGDl2lPqQIgJSP3/KZUNbm9Vm3YwxxlQmEdmhqq355reZueIZUdXlPttfLyLXAY3AQuBh4HZv37dTFaaqNwE3AbS2tiowZYDS3d3N7x66n6XzJwCoXxrOeNO/McYYY4LP7pkrIRGZC/wbcLmqngf8BzA3IcmxbMqJRqPTlp7Zv38/45MyLa0tU2WMMcZUNxvMlVZs4PaUiMwDLs+nkEgkMm3pmZGRESZ9rpjbMlXGGGNMdbPBXPE0JL2a5LOq+gzubNwu4AfAb/Ip+Nlnn7WlZ4wxxhgD2D1zRaOqoRTbe4Aen+2X5FpHqqVnDhyvYcxx6O7utmWqjDHGmCpnM3MBFHsC2ZaeMcYYY4wN5gJIxH3QIdXSM82Nk4TD7tOs4XB4Vr6OxBhjjJktbDAXYLb0jDHGGGPsnrkAOvnkk6ctPdPQ0MDo8aPT0tp6o8YYY0x1s8FcADU1NXHeeedNmZVbvHgxx54+OC2trXxgjDHGVDcbzAVQbW0tmzZtmrZ9dELYdySECJxRhriMMcYYU3o2mKsS4XB4yvqrdnnVGGOMmR0k9poLExytra26ffv2codhjDHGmAIQkR2q2ppvfnua1RhjjDEmwGwwZ4wxxhgTYDaYM8YYY4wJMHsAIqD6+vpwHMd3X+KDEDMRDoft1SbGGGNMhbPBXEA5jsPOh/Yw0bhw2r7Q8WcBeHI0/8MbOn4o77zGGGOMKR27zBpgE40LGTlz5bR/E41NTDQ2+e7L9p/fILFSRCIRurq6iEQiee33S79mzRrWrl2bdZ5U9eRadz6yraNQseRTTjH6oRR9W4hY8o2zktpX6cp5bs8GxeqX2djfpWqzDeYC6ODBg/FLqdWur6+Pvr6+Kdv6+/vZtWsXAwMDvnky7fdLv2fPHnbv3p11nlT15Fp3PrKto1Cx5FNOMfqhFH1biFjyjbOS2lfpynluzwbF6pfZ2N+larMN5gJodHSUkZGRcodREo7jTLk3MBKJMDQ0hKoyNDQ07a+dTPuTRSIRBgcH458HBwez+gvKr55c685HtnUUKpZ8yilGP5SibwsRS75xVlL7Kl05z+3ZoFj9Mhv7u5RttnvmAmhsbIyRkRFqQsV74XPNicM4zhG6u7uLVkc2HMehoaEh/rm/v5/JyUkAJiYmGBgYYP369VnvT9bf3080Go1/Hh8fz5gnVT2qmlPd+ci2fbn2w0zrK0bdxS6zGLHkG2clta/SlfPcng2K1S+zsb9L2WabmTOBsm3btvjgKxqNsnXr1pz2+5WXuAqKqmbMk6qeXOvOR7Z1FCqWfMopRj+Uom8LEUu+cVZS+ypdOc/t2aBY/TIb+7uUbbaZuQCaM2cODQ0NPFszv2h1TM5dQPj0ZjZu3Fi0OrKRPDPY1tbGli1biEaj1NbWsmLFipz2J2tra+P222+PD+hEJGOeVPWoak515yPb9uXaDzOtrxh1F7vMYsSSb5yV1L5KV85zezYoVr/Mxv4uZZttZs4ESmdnJzU17mkbCoVYvXp1Tvv9yqutfe5vmrq6uox5UtWTa935yLaOQsWSTznF6IdS9G0hYsk3zkpqX6Ur57k9GxSrX2Zjf5eyzTaYKzARmRCRnQn/PlroOurr66fcR1bNwuEw4XA4/rmpqYn29nZEhPb2dpqamqakz7Q/WVNTEx0dHfHPHR0dGfOkqifXuvORbR2FiiWfcorRD6Xo20LEkm+cldS+SlfOc3s2KFa/zMb+LmWb7TJr4Y2o6vJiVrBo0SIWL17Mk48eKGY1FcFvBYrOzk6Gh4fTzkql2++Xfu/evYhITn85+dWTa935yLaOQsWSTznF6IdS9G0hYsk3zkpqX6Ur57k9GxSrX2Zjf5eqzZJ487eZORE5qqrzkrb9JfABVb3M+7wCWKOqbxWRNwI3AvXA/wLvUdWj6ep4/vOfr+effz7j0QkI+YzHJ6IgwsS8RXm3I3T8EMvPPavs98wZY4wx1U5Edqhqa775bWau8BpEZGfC588A3wH+VUSer6p/At4DfE1Engf0AG2qekxE/i/wIeATyYWKyDXANQDz5s1jMjrOWadEgbFpATjP1kKojuWnN8+gGc1TLm8aY4wxpjLZYK7wfC+zisjXgXeJyNeAVwKrgXbgbOAeEQGYA/zSr1BVvQm4CeDkk0/W+pBy/YWHfQP49H0LqF+63GbVjDHGmFnAHoAona8B7wLeCfy3qkYBAbaq6nLv39mq+t5MBakq45OSU+V+y2IZA5W/XmKlx2eMMeVmg7kSUdU/An/Evay62dv8K+DVIhIGEJFGEXlZNuVN5nirY/KyWMbEVPp6iZUenzHGlJsN5gqvIenVJJ9N2PdN4A+quhvAu3/uKuBbIvIg7uDuzJJHbGatSl8vsdLjM8aYSmD3zBWYqobS7L4Y+I+k9HcCLy9kDAeO1zDmOFNWT0he49QYqPz1Eis9PmOMqQQ2M1ciIrIDWAZ8o9yxGBNT6eslVnp8xhhTCWxmrkRU9aJS1dXcOEn90vCUp1mT1zg1Bip/vcRKj88YYyqBzcwZM4tV+nqJlR6fMcZUAhvMBVRNbm8mmbbGqTFQ+eslVnp8xhhTCewyawCJCHU1ub2bxG+NU2Og8tdLrPT4jDGm3Gxt1gA6+eST9aILlvOyU6K++x87GuKMcy6wFSCMMcaYALC1WWehOXPmsPB5z6d+8WLf/WeAXVI1xhhjZgkbzAXQ0qVLueWWW8odhjHGGGMqgD0AYYwxxhgTYDaYM8YYY4wJMBvMGWOMMcYEmN0zF1B9fX04jpNy//79+wFYnOIhiUILh8P2+hNjjDGmDGwwF1CO47DzoT1MNC703R86/iwAT44W/xCHjh8qeh3GGGOM8WeXWQPo4MGD7N+/n4nGhYycudL330RjExONTSn3F/JfqgFlEPX19dHX1zdlm+M4rFq1Ku1MaEwkEqGrq4tIJBL/vHbtWtasWRPflipfcrrksmYin7IKWX+p68q2vGzSlaIfStnXprrZuVQ4QepLG8wF0OjoKCMjI+UOoyo5jjNt0Nbb28uxY8fo7e3NmL+/v59du3YxMDAQ/7x792727NkT35YqX3K65LJmIp+yCll/qevKtrxs0pWiH0rZ16a62blUOEHqSxvMGZOG4zgMDw8DMDw8nHZ2LhKJMDQ0hKoyNDSE4zgMDQ3F9w8ODvr+hRfLl5guljdW1kz+MkyOK5uy8slTyvgKUV426UrRD6Xsa1Pd7FwqnKD1pd0zF0BjY2OMjIxQE6qMpdhqThzGcY7Q3d1d7lBmzHEcGhoa4p+TZ+N6e3vZvHmzb97+/n4mJycBmJiYoLe3l/Hx8fj+8fFxBgYGWL9+/bR8yel6e3unlOWXL1vJcWVTVj558lXourItL5t0peiHUva1qW52LhVO0PrSZuaMSSM2K5fqc6Jt27YRjbrr5UajUYaHh0lc+1hV2bp1q2++5HTDw8NTyvLLl63kuLIpK588pYyvEOVlk64U/VDKvjbVzc6lwglaX9rMXADNmTOHhoYGnq2ZX+5QAJicu4Dw6c1s3Lix3KHMWPLsYktLy5QBXEtLS8q8bW1tbNmyhWg0Sm1tLaeddhr79u2LD9REhBUrVvjmu/3226ekW7p0KY8//ni8LL982UqOK5uy8slTyvgKUV426UrRD6Xsa1Pd7FwqnKD1ZcXMzIlIs4jcLCKPisgOEfmliFyWZ1lfEZGzva+vL3Cc7xeR1YUs01Sunp6etJ8TdXZ2UlPjfkuFQiF6enqoq6uL76+rq2P16umnTmdn57R0PT09U8ryy5et5LiyKSufPKWMrxDlZZOuFP1Qyr421c3OpcIJWl9WxGBORAT4AfBTVT1dVS8C3gGclk95qvq3qrrb+1iwwZyI1Krql1V1xo+2iEgo37z19fVT7usyhRMOhwmHw1M+x2bjWlpapuxL1tTURHt7OyJCe3s74XCY9vb2+P6Ojg6amppS5ktMF8sbK8svX7aS48qmrHzylDK+QpSXTbpS9EMp+9pUNzuXCidofVkpl1nfAIyp6pdjG1R1H9DnDXo+C1wC1AP/qqr/LiKXABuAp4BzgR3Au1RVReQu4FrgcqBBRHYCD6vqlSLyIeBqr5qvqOqXRKQFuENVzwUQkWuBeaq6wSvrF8CrgdtEZD5wVFU/7+37NfB64BTgvar6M6+8rwMnefV8QFV/4cV8A/AEsFxEvgs8paobvXo/BRxQ1U3pOmvRokUsXryYJx89kF3vmqz5rWLR09NDd3d32lm5mM7OToaHh+N/xXV2duI4Dqqa9i87v3TJZc1EPmUVsv5S15VtedmkK0U/lLKvTXWzc6lwgtSXknjjddmCEOkCXqKq0x4VEZFrgEWq2isi9cA9wN8AS4FbgXOAP3rbP6KqP48N5lR1u4gcVdV5XlkXAZuBvwAEdyD2LuBp0g/mdqvqWm/fBqYO5nao6odFZCXwIVVtE5FGYFJVT4jIGcC3VLXVG8z9EDhXVX/vDfq+p6oXikgNsBf4c1VN+wx0a2urtrS08KenIhBKGI9PTrj/14Rgwr1xc8r+YpmIMu+kxrSzVoViy4YZY4ypNiKyQ1Vb881fKTNzU4jIvwIXA2PAPmCZiFzu7T4ZOMPbd6+qPu7l2Qm0AD9PU/TFwPdV9ZiX53vAa4DbMoT07TT7vuf9v8OrH6AO+BcRWQ5MAC9LSH+vqv4eQFWHRSQiIhcAzcD9qQZy3qD2GoAlS5bQ0tLCSbUTLJk3Fk+z74h75Xbp/FEOHHevoDc3jk0vrCjGGN23vag1PHY07yvTxhhjTNWqlMHcw8DbYh9U9e9F5HnAduAxYJ2q/igxgzfLNZqwaYLM7ZEU26NMvX9wbtL+Y2nKjMWQWP964ABwvlfuiTRlfQW4CngB8NVUlajqTcBN4M7MLV68mNHoE1x/4eF4mk/ftwBgyrZqEmufMcYYY55TEQ9AAHcCc0VkTcK2Ru//HwFrRKQOQEReJiInJReQxngsL/BT4C0i0uiVcRnwM9yB1yIRafIu5V46k8bgzh4+oaqTwLuBdFNK3wfagZfjtjWj2NqsxhSD3/q0pVLqtRCDtPaiMcakUhGDOXVv3HsL8DoR+b2I3Av0A/8Xd+ZqN3CfiDwE/Du5zSjeBDwoIt9U1ftw75m7F/d+ua+o6v2qOg58wtt2B/DIDJv0b0CniPwK9xJrypk9VR0DfgJ8R1Unsinc1mY1xeS3Pm2plHotxCCtvWiMMalUxAMQs5n34MN9wN+o6t5s8jQ3N2traysvrntm1l1mrV/aWhUvJ65ksRcnl7qfI5EI73znOxkbG6O+vp6bb765qK8DKHV9xhiTSlU+ADFbeC82vgP3oYysBnLw3NqsB8YrYmK1ZA4cr2HMcapiDdhKlrw+bamUei3EoK29aIwxqcyu0UCFUdXd3kuSP1zuWIwpt1KvhRi0tReNMSYVm5kLoNjarM11o5kTV5Hmxknql4btMmuRlWvms9RrIQZt7UVjjEnFZuaMMRWh1GshBm3tRWOMScUGcwFka7OaYkpen7ZUSr0WYtDWXjTGmFTsMmsAxdZm3fvwwSkv0o2tAFGtL9d97GiIM8odxCxQzuXSSr0WYpDWXjTGmFRsMBdQfjMnJ3kvEq5fvLjU4ZTEGfi321SPpqYmNm3aVLX1GWNMMdhgLqBssXljjDHGgN0zZ4wxxhgTaDaYM8YYY4wJMBvMGWOMMcYEmN0zF0AHDx6c9mLX/d7DD4tn8PBDOBy2e/GMMcaYgLHBXACNjo6y86E9TDQujG8LHX8WgCdH8zukoeOHChKbMcYYY0rLBnMBNdG4kJEzV8Y/NzyyBWDKtlzE8htjjDEmWOyeuQAaGxuj5sThcodREH19ffT19cU/RyIR1q5dy5o1a4hEIvFtXV1d8c/J/PYnb0uVJl1djuOwatUqHMdJGX9imkxxJsfmOE5W6XNta6ptpjrMhmNbaW2stHiMSWaDuQCanJxEJsfLHUZBOI4zZbDU39/P7t272bNnDwMDA/Ftu3btin9O5rc/eVuqNOnq6u3t5dixY/T29qaMPzFNpjiTY+vt7c0qfa5tTbXNVIfZcGwrrY2VFo8xyWwwZypGJBJhaGgo/nlwcBDHcRgaGkJVGRoamvaXcSxP4v7kbX5lZKpry5YtDA8PAzA8POw7O+c4zpQ0g4ODKeP0i3d4eDhj+lzbmmqbqQ6z4dhWWhsrLR5j/Ng9cwaAmhOHcZwj056SLTbHcWhoaADcv37Hx5+bcRwfH6e3t5fJyUkAJiYmGBgYYP369fE0/f390/ar6pRtfmWoatq6EveBOwO3efPmadsSxfL4xekXb0y69Knypmprqm2ZyjbB4HcOVNuxrbQ2Vlo8xvixmTlTMbZt24aqxj/HZq+i0SgA0WiUrVu3TsuTvD95m18ZmepKFpuBy7QtVZx+8WaTPlXeVG1Ntc1Uh9lwbCutjZUWjzF+bGbOADA5dwHh05vZuHFjSetNnAlsa2vj9ttvjw+yRISlS5fy+OOPE41Gqa2tZcWKFVPyt7W1sWXLlin7Y5dJY9tOO+20aWWoatq6krW0tPhu8xvQ+cXpF2826XNta6ptpjr4nQPVptLaWGnxGOMnkDNzInK03DEAiMiLROQW7+vlIpLfe0EMAJ2dndTV1cU/19XV0dPTQ02Ne5qGQiFWr149LU/y/uRtfmVkqitxH0BPT8+0eJO3xfL4xekXb0y69Lm2NdU2Ux1mw7GttDZWWjzG+AnkYK5SqOofVfVy7+NyIKfBnIjkNTNaU1OD1tRlThgA4XCYcDgMQFNTE+3t7fF9HR0dhMNh2tvbERHa29tpamqakj+WJ3F/8ja/MjLVtXLlyvhsXEtLSzzG5NgT03R0dKSM0y/elpaWjOlzbWuqbaY6zIZjW2ltrLR4jPET6MusInIJcCNwAHcw9T1gF9ANNABvUdX/FZHNwAhwJrAUeA/QCbwS+LWqXuWVd1RV53lfXw5cqqpXefkPA63AC4DrVPUWEWkB7gAuBD4BNIjIxcBngN8DX/LiGAHeo6q/FZGrgFXAXOAkEdkP3KKqt3r1fhP4tqrelqrdc+bMYXLugvw7roIkLx/W2dmJ4zioavwv4M7OToaHh9POdiXvT96WKk26up5++mm6u7t9Z+Vienp64mlOPfXUtHEmx9bV1cWmTZty+ks/m7am2maqw2w4tpXWxkqLx5hkkngTeFDEBl3eYO4HwFnAIeBR4CuqeoOIdAMvUdUPeoOxucA7gTcDXwdeDTwM/AZ4r6ruzDCYOwm4AndAeJuqhmODOVU91xuktarqB7z8C4DjqhoVkTZgjaq+zUvXCyxT1UMi8jpgvaq+RUROBnYCZ6iq/534QHNzs5559jnPbagJwYSXPOSOz7WmLqcBX+j4IZafe1bJ75kzxhhjZjsR2aGqrfnmD/TMnOc3qvoEgIj8L/Bjb/su4PUJ6W5XVRWRXcABVd3l5XkYaMEdRKXzA1WdBHaLSHMWcZ0M9IvIGYACiddFt6rqIQBVvVtE/lVEFgFvBb7rN5ATkWuAawBOPfVU5jU2MHLsKPUhZen8UQ4cd6+YNzeO8djREDJnDuHTswkzptn3UqIxxhhjKls1DOZGE76eTPg8ydT2jfqkSU6XOE05N009kkVcnwR+oqqXeTN4dyXsO5aU9uvAlcA7gKv9ClPVm4CbAFpbWzUcDvO7h+5n6fwJrr9w6tJen75vAfVLwwWbZYtEItx4443ccMMNdr9IlbFjawrBziNjyssegJjqgIicJSI1wGU55j0CzE/4fDKw3/v6qgx5NwMfBFDVhzNVdPDgQfbv358p2TTJ66Bmy5ayqV52bE0h2HlkTHnZYG6qj+I+0HAn8ESOeX8CnC0iO0XkCuBzwGdE5B4glC6jqh4A9gBfy6ai0dFRRkZGcgxv+jqo2bClbKqXHVtTCHYeGVN+gXwAotqISCPuPX4XquqzmdKfeuqpesEFF1CjE4RPjk67zNr981MYq1sw7R642NJZt9xyS9axffGLX5zywsxVq1bZUjZVwo6tKQQ7j4yZuZk+AGEzc2XmPen6CNCXzUCu1Gwpm+plx9YUgp1HxpRfNTwAEWiqug1YkkueOXPm0NDQwOSJI777mxsnfR+ASFw6K1u2lE31smNrCsHOI2PKz2bmTFq2lE31smNrCsHOI2PKzwZzAVRfX09DQ0PO+RKXzsqWLWVTvezYmkKw88iY8rPLrAG0aNEiFi9ezO+ePphTvuSls7JlS9lULzu2phDsPDKmvOxp1gBqbW3VV7/61ex6YKe3AsTElP2PHQ1xxjkX2NJcxhhjTADYcl6zVDgcjr84uH7x4in7zvD2G2OMMab62cxcALW2tur27dvLHYYxxhhjCsDeM2eMMcYYM4vZYM4YY4wxJsBsMGeMMcYYE2D2AERA9fX14ThO/HPsYYjFSQ9D+AmHw3m/psQYY4wxlcUGcwHlOA47H9rDRONCAELH3WVdnxxNf0hDxw8VPTZjjDHGlI4N5gJsonEhI2euBKDhkS0A8c+pxNIZY4wxpjrYPXMBdPDgwfhl1XLr6+ujr68PcGcLV61aNeXyb4zjOHR0dHDNNdcQiURyqiNduQCRSISuri4cx5nyf3I9sXSJ2/22ZbMvnVzrqXQzib3Y7c62/CD3f7WyYzJVIX/eVJNqb1+h2GAugEZHRxkZGSl3GIA70IoNsnp7ezl27Bi9vb3T0vX29jIyMsLvfvc7BgYGcqojXbkA/f397Nq1i97e3in/J9cTS5e43W9bNvvSybWeSjeT2Ivd7mzLD3L/Vys7JlMV8udNNan29hWKDeZMQTiOw/DwMADDw8NTZtES9wFs2bIl67+y0pUL7l9tQ0NDqCrDw8NT/h8aGorXk5gutt1vm1+5yfvSybWeSjeT2Ivd7mzLD3L/Vys7JlMV8udNNan29hWS3TMXQGNjY4yMjFATyn31jpoTh3GcI3R3dxckFsdxaGhomDZr1tvby+bNm+NfJxofH2dgYID169dnLD9dueD+1TY5Oembd2JiIl5PYrrYdlWdti0Wk1/6bOLNtZ5Kl28/zDRvIcsvdhwmd3ZMpirkz5tq6sdqb18h2cycKYjEmbfkz8n7ALZu3TrjcgG2bdtGNBr1zRuNRuP1JKaLbffb5ldu8r50cq2n0s0k9mK3O9vyg9z/1cqOyVSF/HlTTaq9fYVkM3MBNGfOHBoaGni2Zn7OeSfnLiB8ejMbN24sSCyxGb558+ZNGWi1tLRM+Tp5ELZixYqsyk/Om1guQFtbG1u2bPEd0NXW1sbrSUwX266q07b5lZu8L51c66l0+fbDTPMWsvxix2FyZ8dkqkL+vKkm1d6+QqramTkROZpFmteIyMMislNEGnIs/y0icnbC50+ISFs+sVaDnp6elJ+T99XV1bF69eoZlwvQ2dlJTY3/aRwKheL1JKaLbffb5ldu8r50cq2n0s0k9mK3O9vyg9z/1cqOyVSF/HlTTaq9fYVUtYO5LF0JfF5Vl6tqro+HvgWID+ZU9eOquq2QwaVSX19PQ0NOY8+iCYfD8X+xWbOWlhbC4fCUNIkzaitXrqSpqSnr8lOVC9DU1ER7ezsiQktLy5T/29vb4/Ukpott99vmV27yvnRyrafSzST2Yrc72/KD3P/Vyo7JVIX8eVNNqr19BaWqVfkPOOr9fwlwF3AL8AjwTUCAvwUOAb8Hvuml/QjwG+BB4MaEslZ72x4Avg68KiHvTuClwGbgci/9XwL3A7uArwL13vZh4Hne163AXd7Xr/PK2enlm5+ubRdddJF2dXXpa9+wQl996RX66kuv0Ne+oU1f+4a2+OdU/177hhXa1dWlxbB3715duXKl7t2713dfe3u7vu9979OnnnqqYOWqqj711FO6bt063bt375T/k+uJpUvc7rctm33p5FpPpZtJ7MVud7blB7n/q5Udk6kK+fOmmlR7+2KA7TqDMY+4ZVQfETmqqvNE5BLgVuAc4I/APcBHVPXnIrIZuENVbxGRNwKXA3+HO9i7DfgcEAG+B7xaVZ8SkYWqeigxr1ffZuAO799e4C9V9XciMgDcp6pfEpFhoNUrpxV3VvASEbkd+Kyq3iMi84ATqjrlJjARuQa4BuDUU0+96A1veEP8XXOjo6NMTEwQCoWor6/P2DcNDQ1ZreFaSLYerDHGGONPRHaoamu++WfLAxD3qurjACKyE2gBfp6U5o3ev/u9z/OAM4DzgVtU9SkAVc20uOmfAb9X1d95n/uBvwe+lCbPPcAXReSbwPdisSZS1ZuAmwCam5v1+DMHWTJvAoB9J0LU1cDSeWNAFleLo88wuu+JzOkK5LGjoZLVZYwxxsw2s2UwN5rw9QT+7RbgM6r671M2inQBuUxfSpp9UZ67T3FubKOqflZEfgisBH4lIm2q+kiqQsbGxqivUa6/8DAAn75vAUD8c6WJxVcpYsuPzfaZwkgkwo033khXVxebNm3ihhtusHtSTNnEzkc7D43JXdYPQIhIo4j8g4j8h/f5DBG5tHihldyPgKu9y5yIyGIRWQT8D/B2EWnyti/00h8B/N4N8gjQIiKxO/XfDdztfT0MXOR9/bZYBhF5qaruUtV/BLYDZ6YLdHJykhMT6caMJp3EJchms+Rl0Gy5HFNOtmyTMfnL5WnWr+HOcL3S+/w44L9YZgCp6o+Bm4Ffisgu3Acm5qvqw8CngLtF5AHgi16W/wI+IiL3i8hLE8o5AbwH+G+vnEngy97uG4GNIvIz3BnCmA+KyENe+SPAYNEaagz+y6DZcjmmXGzZJmNmJpfLrC9V1StE5J0AqjoiIhU7PaSq87z/78J9mjW2/QMJX1+VlGcjMO1tuqraj3vvW+K2e0h4NQlwVcK+/wEu8CnnZ8DLfLZX9fW+A8drGHOcgi0hNlOxJchmM79l0Gy5HFMutmyTMTOTy8zcmPdiXQX30iBT70UzxgSE3zJotlyOKRdbtsmYmcllZu4GYAh4sffU5atJmI0yJpXmxknql4YLtoTYTFXKDGE5+S2DZsvlmHKxZZuMmZmsZ+ZUdSvwVtwB3Ldw35d2V3HCMsYUk98yaLZcjikXW7bJmJnJdTmvxUAImAO8VkTeWviQTCY1NTXMDVXny55LIbb82GzmtwyaLZdjysWWbTJmZrK+zCoiXwWWAQ/jPqEJ7v1z3ytCXCaNOXPm0Nw4mTmh8TXb3y8X09nZyfDwcPw9czYbYsopdj7aeWhM7rJezktEdqvq2ZlTmmJrbm7Wi877s+dWgDjirrCwdP5Eumxl89jREGecc0HF3DNnjDHGVJJSLuf1SxE5W1V351uZKYz6+nrOOOe5N5+ctH+/u73E661m6wyY9Zc1jTHGmGLJZTDXjzugexL3lSQCqKouK0pkJqVFixbZLJcxxhhjgNwGc1/FXZoqtqqBMcYYY4wps1wGc4+p6m1Fi8QYY4wxxuQsl8HcIyJyM3A7CSs/qKo9zWqMMcYYUya5DOYacAdxb0zYZq8mKaO+vj4cx8kpz37vYYnFFfqwRCbhcNheLWKMMcYkyHowp6rvKWYgJneO47DzoT1MNC7MOk/o+LMAPDmayzi+MoSOHyp3CMYYY0zFyeWlwXOB9wLnAHNj21X16iLEZbI00biQkTNXZp2+4ZEtADnlqRSx2I0xxhjznFyW8/o68ALgTcDdwGnAkWIEZdI7ePAgfX195Q7DBEBfX1/O50okEqGrq4tIJJJzfbG8juPkXUapOY7DqlWrcr5lIR/Z9q1fupkcl6CajW0Gt91r165lzZo1JWv7bO3rapHLYC6sqv8AHFPVfmAVcF5xwjLpjI6OluQXjwk+x3FyPlf6+/vZtWsXAwMDOdcXy9vb25t3GaXW29vLsWPH6O3tLXpd2fatX7qZHJegmo1tBrfdu3fvZs+ePSVr+2zt62qRy2Bu3Pv/GRE5FzgZaCl4RMaYsolEIgwNDaGqDA0N5fRXemLe4eHhvMooNcdxGB4eBmB4eLiofyRl27d+6WZyXIJqNrYZnmt3zODgYNHbPlv7uprkchf8TSJyKvAPwG3APODjRYnKpDU2Nhb/pVMzlt3autWg5sRhHOcI3d3d5Q4lMBzHoaGhIev0/f39TE667wSfmJhgYGCA9evX55w3JtcySi15Nq63t5fNmzcXpa5s+9YvnarmfVyCaibnYpD19/czPj4e/zw+Pl70ts/Wvq4mWc/MqepXVPVpVb1bVU9X1UWq+uViBmeMKa1t27YRjUYBiEajbN26Na+8MbmWUWqxWblUnwsp2771SzeT4xJUs7HN4LZb9bk/0lW16G2frX1dTXJ5mrUeeBvupdV4PlX9ROHDMunMmTMnvnD9jkcPlDma0pmcu4Dw6c22Lm0Ocp3FbGtrY8uWLUSjUWpra1mxYkVeeWNyLaPUWlpapgzgWlpailZXtn3rl05V8z4uQTWTczHI2trauP322+MDOhEpettna19Xk1zumbsV+GsgChxL+Fd1RERF5OsJn2tF5E8icscMyrw+y3TDIvK8dGnq6+vjgzlj0gmHwzmdK52dndTUuD8WQqEQq1evzitvTK5llFpPT0/az4WUbd/6pZvJcQmq2dhmcNtdV1cX/1xXV1f0ts/Wvq4muQzmTlPVK1T1c6r6hdi/okVWXseAc0UkdrPRCmD/DMvMajCXjUWLFtkqCCYr69aty+lcaWpqor29HRGhvb2dpqamvPK2tLTkVUaphcPh+GxcS0tLUf9IyrZv/dLN5LgE1WxsMzzX7piOjo6it3229nU1yeUBiF+IyHmquqto0VSWQdzXr9wCvBP4FvAaABE5CejDfTVLLbBBVW8VkauANwONwEuB76vqdSLyWaBBRHYCD6vqlSLyA+DFuC9g3qiqN+UTZOj4oZxephs67j6l1PDIFmpOHEYmxzPkKKLJCff/mlB26Sei9gBEgaRbFq2zs5Ph4eG8/jqP5e3q6mLTpk2B+Au/p6eH7u7uos7KxWTbt37pZnJcgmo2thncdjuOg6qWrO2zta+rhSTeaJk2ochuIAz8HneNVgFUVZcVL7zyEJGjwKtwn9Z9F/Ar4IPAtap6qYh8Gtitqt8QkVOAe4ELgL/x8lyA20e/BS5W1T+IyFFVnZdQx0JVPeTN/v0GeJ2qRkRkGGhV1aeSYroGuAZgyZIlF+3bt2/Ga7M6joOOHmHJvImcyiiUfUfcQdzS+eWpf7Z67GiIM865wO49NMaYCiEiO1S1Nd/8uczMdWQI5FRVfTrfQCqNqj4oIi24s3LJU19vBN4sItd6n+cCS7yv/0dVn4X4AHgp8AefKrpE5DLv6xcDZwApX+7jzdzdBNDa2qrAjC+1dnd3M7pvO9dfeHhG5eTr0/ctAChb/bNVrN+NMcZUh1xeTbLP719Ckv8pQnzldhvwedxLrIkEeJuqLvf+LVHVPd6+0YR0E/gMmEXkEqANeKWqng/cT8J6t5nYcl4mqPJZXswYY0x6uTwAkYkUsKxK8VXgEz73Cf4IWCciAiAiF2RR1riIxB5ROhl4WlWPi8iZwF/kEpQt52WCKp/lxYwxxqRXyMFc1S1FoKqPq6rfjUWfBOqAB0XkIe9zJjd56b8JDAG1IvKgl/dXhYrZGGOMMbNL1g9AZCxI5D5VvbAghZm0Tj31VH3Vq14149coOI7DnPHDbLz4mcIEliO7Z648un9+CmN1C8ryrsLY8mK33HJLyes2xphKNdMHIOwyqzHGGGNMgOWynNdLgcdVddS7gX8ZMKCqz3hJ/rLg0RlfseW8ZvpqidjTrGZ2aW6cpH7pzM+ffNg7Ao0xpvBymZn7LjAhImHgP4GXADfHdqrqoQLHZowxxhhjMsjlPXOTqhr13o32JVXtE5H7ixWYSc3WZjVBZeetMcYUXi6DuXEReSfQCfyVt60uTXpTJLY2qwkqO2+NMabwchnMvQd4P/ApVf29iLwE+EZxwjKl8tjRUNlWBIgt52UrEpTWY0dDnFHuIIwxxhRM1oM5Vd0NdIG7dBcwX1U/W6zATPGV+5LXSd46sfWLF5c1jtnmDMp/7I0xxhROLk+z3gW82cuzE/iTiNytqh8qTmim2OySlzHGGBN8uTzNerKqHgbeCnxNVS/CXV/UGGOMMcaUSS6DuVoReSHwduCOIsVjjDHGGGNykMtg7hO4C8w7qvobETkd2FucsIwxxhhjTDYKtjarKZ3W1lbt7OzEcZz4tv3ewwSLc3yYIBwO271zxhhjTBnNdG3WXB6AmAu8FzgHmBvbrqpX51u5yZ/jOOx8aA8TjQsBCB1/FoAnR7N/20zouC3aYYwxxgRdLpdZvw68AHgTcDdwGnCkGEGZ9A4ePMj+/fuZaFzIyJkrGTlzJRONTUw0NsU/Z/MvNhAshr6+Pvr6+ohEIqxZs4a1a9eyY8cOVq1aheM4RCIR1q5dy5o1a4hEIjiOw8qVK3nPe97D2rVriUQibN++nde//vW86U1vwnGc+Oerr74ax3Ho6urCcZx4+ZFIJF5/JBKhq6srvi25vmTJ6VNty1Zi3pmUky/HceJ97RdTqljTpUuXpxjyiatYdZdKpfR9oQUx5mKotH6otHhM/nIZzIVV9R+AY6raD6wCzitOWCad0dFRRkZGyh1GWo7j4DgO/f397Nmzh927d3PDDTdw7Ngxent76e/vZ/fu3ezZs4eBgQF6e3s5fvw4v//979m9ezcDAwNs2LABVWV0dJTe3t7450cffZTe3l527dpFb29vvPyBgYF4/f39/ezatSu+Lbm+ZMnpU23LVmLemZSTr97e3nhf+8WUKtZ06dLlKYZ84ipW3aVSKX1faEGMuRgqrR8qLR6Tv1wGc+Pe/8+IyLnAyUBLwSMyVWN8fJzBwcH456NHjwIwPDzMli1b4tt/+MMfMjw8PCXvD3/4w3j6WJ7kz6o6Jd/g4GB8JmxoaAhVZWhoCMdxGBoampYuJjm9Xxm5/OWamHdwcDDvcvLlOE68X4aHh+MzoX5xpOqrdPHOpG+ylU9cxaq7VLMW2dRbrthmIogxF0Ol9UOlxWNmJpflvG7yVn74B+A2YB7w8aJEZdIaGxtjZGSEmtDMHl6pOXEYxzlCd3d3gSJ7juM4RKNRotGo7/7E7X5pUuVLZ3x8nIGBAVSVyclJACYmJujt7WV8fHxauvXr1wPuX6eJ6f3KSEyfSWJ5ifXmWk6+EmfjYp+XLVvm257ktvf29mZst19/FbpN+cRVrLpLccyyrbdcsc1EEGMuhkrrh0qLx8xM1jNzqvoVVX1aVe9W1dNVdZGqfrmYwZlgGxsbo5RPS6sqW7duZdu2bfHBYDQajc/iJaeLSU7vV0Zi+kwS86pqvO5cy8lX8izn8PBwyvb49VWmds+kb7KVT1zFqrsUxyzbessV20wEMeZiqLR+qLR4zMxknJkTkbTLdanqFwsXjsnGnDlzaGho4Nma+TMqZ3LuAsKnN7Nx48YCRfac7u5uHn/8cQ4dOlSyAZ2IsGLFClSVLVu2EI1Gqa2t5bTTTmPfvn3xOGLpYtra2qak9ysjMX0mieWJCOAO6nItJ18tLS1TBnQtLS0sW7bMtz3JbT/ttNN4/PHH07bbr78KLZ+4ilV3KY5ZtvWWK7aZCGLMxVBp/VBp8ZiZyWZmbr73b17C14nbjPHV3NxMba3/3wuJ2/3SpMqXTl1dHatXr6azs5OaGvfUDoVC9PT0UFdXNy1dTHJ6vzIS02eSmLeuri5ed67l5Kunp2fa51Tt8eurTO2eSd9kK5+4ilV3KY5ZtvWWK7aZCGLMxVBp/VBp8ZiZyTiYU9UbVfVG4KXAxoTPm6jgByBEREXk6wmfa0XkTyKSdikyEVkuIiuzKP8qEfmXHGM66v3/IhG5JZe8ierr62loaMg3e0mEw2HOOussOjo64tvmzXPH/i0tLaxc+VwXr1q1ipaWlin5V61aFU8fy5P8WUSm5Ovo6KCpqYmmpiba29sREdrb2wmHw7S3t09LF5Oc3q+MxPSZJObt6OjIu5x8hcPheL+0tLQQDodTtidVX6WLdyZ9k6184ipW3aU4ZtnWW67YZiKIMRdDpfVDpcVjZiaX6Y9lqvpM7IOqPi0iFxQ+pII5BpwrIg2qOgKsAPZnkW850ApsyZAub6r6R+DyfPMvWrSIxYsX8+SjBwoYVWHFVpWIRCLs3bsXEeG9730vH//4x+np6eHUU0/FcRxUldWrV/P000/T1dVFc3MzDQ0NrF69mte85jV85CMfYc6cOfT09PDMM8/wkY98hJe85CVcf/31bNq0ia6uLr7whS8gItNm24aHh6fMQCXWlyw5fapt2UrOm285+erp6aG7u3vKLF2q9vj1VaZ4Z9I32conrmLVXSqV0veFFsSYi6HS+qHS4jH5y3o5LxF5ALhEVZ/2Pi8E7lbVinzXnDcLtgm4T1VvEZEB4GHgNap6qYicBPThviuvFtgADAIO0IA78PsM8HvgS962EeA9qvpbEbkKuAyoB14C3OzNWMbuM4ytjPEVVf1SLCZVnSciLcAdqnquiISAf8R9GbMC/6GqfenatmTJEj3vvPM4euw4hLzx+IT39Gfs8+SE+39NKHVBE1HmndRIOBxOV50xcbb8mzHGFF7JlvMCvgD8wrs8qMDbgU/lW3GJ/Bfwce/S6jLgq8BrvH0fA+5U1atF5BTgXmAb7utWWlX1AwAisgB4rapGRaQN+DTwNq+MPwfOBY4DvxGRH+L2zXuAVwAC/FpE7lbV+1PEeA3uYPACrw7fZRlE5BovLfPnz0dHj3DWKRPAGAAHjrtXzJsb3c/7jriDuKXzRzN00Rij+7ZnSGMMPHY0zR8GxhhjyibrwZyqDojIduANuIOUt6rq7qJFVgCq+qA3C/ZOpl82fSPwZhG51vs8F1jiU8zJQL+InIE7UKtL2LdVVSMAIvI94GIvzfdV9VjC9tcAqQZzbcCXVTXqxey7YKqq3gTcBNDc3KxL5k1w/YWHUzWdT9+3ACBtGmNyETunjDHGVJZcVoBAVXer6r+oal+lD+QS3AZ8HvhW0nYB3qaqy71/S1R1j0/+TwI/UdVzgb/CHfTFJF+jVq/cXIhPOWmNjY3FZ+KMMaYaxdZ3NqYSbd++nTe84Q3s2LGj3KEAOQ7mAuqrwCdUdVfS9h8B68R7EVjCwxxHcF+7EnMyzz04cVVSGStEZKGINABvAe4Bfgq8RUQavfvyLgN+lia+HwPvF5FaLw7fy6yJJicnOTGR65jRGGOCI7a+szGVaMOGDUxOTnLDDTeUOxRgFgzmVPVxVfV7K+4ncS+ZPigiD3mfAX4CnC0iO0XkCuBzwGdE5B4g+aahnwNfB3YC31XV7ap6H7AZ9x68X+M+AJHqEivAV4DHvDgeAP5PHs00xhhjTAls3749vlb40aNHK2J2LuunWU3lOPnkk/VVrefz7697OmUau2fOFFr3z09hrG6BPf1sSsJxHBoaGrjllrxfyWlMUVx66aXxwRy471C94460r7DNaKZPs1b9zJwxxhhjTKEkDuT8PpdD7msmGWNmpebGSeqXhouylq8xybq7u8sdgjG+5s2bN21mrtxsZs4YY4wxJksbNmyY8vnGG28sTyAJbGYugGpqapgbsnsdjTHVy+7NNJWqtbU1Pjs3b948LrroonKHZIO5IJozZw6jk5L2Ja6xFSDsRa+mUB47GuKMcgdhZg1bNs5Usg0bNnDddddVxKwc2GAukOrr6znjnAvSpjlpv/tqvPrFi0sRkpkFzsBmS4wxBtzZuTvvvLPcYcTZYC6AFi1aZDehG2OMMQawByCMMcYYYwLNBnPGGGOMMQFmgzljjDHGmACze+YCrK+vL+VC1Pu9ByAWl/kBiHA4bE+lGWOMMUVkg7kAcxyHnQ/tYaJx4bR9oePPAvDkaPkOcej4obLVbYwxxswWNpgLuInGhYycuXLa9oZHtgD47iuVWAzGGGOMKR67Zy6ADh48SF9fX7nDMJ6+vj76+vqIRCKsWbOGtWvXEolEMuaLRCJ0dXURiUSmfJ0u/dq1a1mzZk3G8rMprxiyjbGY8eXar6VWipj86ohtcxyn4vqk0mX7/Wn9ahKl+z4s9Hlig7kAGh0dTXmvnCk9x3FwHIf+/n727NnD7t27GRgYyJivv7+fXbt2MTAwMOXrdOl3797Nnj17MpafTXnFkG2MxYwv134ttVLE5FdHbFtvb2/F9Umly/b70/rVJEr3fVjo88QGc8YUwPj4OIODg/HPg4ODGf+KHxoaQlUZHByMfz00NOSbL5Y+m/ITy05VXjFkG2Mx48u1X0utFMfGr47EbcPDwxXVJ5Uum2NWru85U7kyfR8W+jyxe+YCaGxsLD4zVzOmZY4mtZoTh3GcI3R3d5c7lKJyHIdoNEo0Go1vGx8fZ2BggPXr1/vm6e/vZ3JyMp42ZmJiwjdff3//lHTpyk8sO1V5xZBtjMWML9d+LbVSHBu/OlQ1vi2mUvqk0mVzzMr1PWcqV6bvw0KfJzYzZ0wBjI2NofrcwFpV2bp1a8r027Ztiw/+VDWeNxqN+ubbtm1b1uUnlp2qvGLINsZixpdrv5ZaKY6NXx2J22IqpU8qXTbHrFzfc6ZyZfo+LPR5YjNzATRnzpz4guc7Hj1Q5mhSm5y7gPDpzVW/jmx3dzePP/44hw4dig8eRIQVK1akzNPW1saWLVuIRqOICOAOPmpra33ztbW1cfvtt2dVfmLZqcorhmxjLGZ8ufZrqZXi2PjVoarxbTGV0ieVLptjVq7vOVO5Mn0fFvo8KerMnIioiHw94XOtiPxJRO4oZr0J9Q2LyPOKmU9ELsnUHhFZLiIZ3xGSTVmmMjU3N1Nb+9zfRnV1daxevTpl+s7OTmpqauJp6+rqAAiFQr75Ojs742kylZ9YdqryiiHbGIsZX679WmqlODZ+dSRui6mUPql02Ryzcn3PmcqV6fuw0OdJsS+zHgPOFZEG7/MKYH+R66xEy4GCvfCtvr4+PjNnyi8cDnPWWWfR0dER39bR0UFTU1PKPE1NTbS3tyMidHR0xL9ub2/3zRdLn035iWWnKq8Yso2xmPHl2q+lVopj41dH4raWlpaK6pNKl80xK9f3nKlcmb4PC32elOIy6yCwCrgFeCfwLeA1ACKyATiqqp/3Pj8EXAr8CfgOcBoQAj6pqt8WkZcDG4GTgFHgL4G3Aa2q+gGvjDuAz6vqXYlBiMiHgKu9j19R1S+JyEl+9STkaQC+D3wXuBnoA87D7bcNqnprUh0nJafx2v8JoEFELgY+A/we+BLQAIwA71HV32bboYsWLWLdunVV/2BBUMSWK4tEIuzduxcRyeovrs7OToaHh+NpE79Old5xHFQ1Y/nJZZdKtjEWM75c+7XUSnFs/OqIbevq6mLTpk0V1SeVLptjVq7vOVO50n0fFvo8kcQblgtNRI4CrwI+DrwL+BXwQeBaVb00zWDuIqBdVd/nbT8Zd9DzCHCFqv5GRBYAx71yfQdzIjIMtAJLgc3AXwAC/NrLd3pyPar6rJfvEuArwICqDojIp4HdqvoNETkFuBe4AHh5QntSpfmbpBgXAMdVNSoibcAaVX2biFwSKytdv7a2tmpnZydDQ0McPXYcQj5j8gnv3hi/fZMT7v81oXTVZKQ1dUzOXZByf+j4IZafe1bV3zNnjDHGzISI7FDV1nzzF31mTlUfFJEW3Fm5bNd32gV8XkT+EbhDVX8mIucBT6jqb7xyDwPxm5wzuBj4vqoe8/J8D3d2cCi5noQ8twKfU9Vvep/fCLxZRK71Ps8FliTVk00agJOBfhE5A1CgzifNFCJyDXANwJIlS9zZj9EjnHXKBDA2Lf2B4+4V9ObG6fv2HXEHcUvnj2aqNqXHjoaQOXMIn96cJlWzXQ42xhhjiqxUT7PeBnwed7Yr8SJxlKn37c0FUNXfichFuPeZfUZEfgz8AHfgk8y3jCS+Iz6/elT1E97ue4AOEblZ3elLAd6WfDlURBJHM6nSvCKp6k8CP1HVy7yB7l1+8SXFehNwE7gzcwBL5k1w/YWHM2Wd5tP3ubNp+eRNLKN+adhm3YwxxpgyK9V75r4KfEJVdyVtHwYuBBCRC4GXeF+/CPcy5DdwB4EX4l5ifZF33xwiMl9Ear0ylotIjYi8GPhzn/p/CrxFRBq9+9ouA36Wop6YjwMR4N+8zz8C1ok3FSgiF/jUkyrNEWB+QrqTee5BkKt8yknr4MGD7N9fGc+RxNYlNcHjOA6rVq0q+dJwM1mb0Na/NMaY6UoymFPVx1XVbwrnu8BCEdkJrAF+520/D7jX2/4xoFdVx4ArgD4ReQDYijsLdw/uAwW7cAdk9/nUfx/uPXP34t4v9xVVvd+vnqSsHwTmisjncGfT6oAHvXv7PunTnlRpfgKcLSI7ReQK4HO4M4H34D54kZPR0VFGRkZyzVYUsXVJTfD09vZy7NgxenuTT/vimsnahLb+pTHGTFfUByBMcTQ3N2traysvrnumzJdZn7tX0y63BovjOPzt3/5t/PNXvvKVktzfGIlEeOc738nY2Bj19fXcfPPNWT+eP5O8xhhTyWb6AIQt5xVAY2NjjIyMxB9yKIcDx2vis3KVcsnXZC95Nq5Us3N+6xWWIq8xxlQzG8wZMwsNDw+n/VwsM1mb0Na/NMYYfzaYC6A5c+bQ0NBAc+Nk2WJobpwkHA4TDodZvHhx2eIw+WlpaUn7uVja2triy57lujbhTPIaY0w1s8FcANXX19PQ0JA5YQnEBnQmWHp6etJ+LpaZrE1o618aY4w/G8wF0KJFiypmNmzdunXx5axMcITD4fhsXEtLS8kG5DNZm9DWvzTGGH+lemmwKYLHjobiT6bmIrYCRD55E+s+I+/cphL09PTQ3d1dslm5mJmsTWjrXxpjzHT2apIAiq3Nmu/73WJPn850di8cDtusnDHGGDNDFb82qykOG0QZY4wxBuyeOWOMMcaYQLPBnDHGGGNMgNlgzhhjjDEmwOyeuQDr6+vL6SGIQj34EAT2cIYxxpjZwgZzAeY4Djsf2sNE48Ks0oeOPwvAk6PVfdhDxw+VOwRjjDGmZKr7t/osMNG4kJEzV2aVtuGRLQBZpw+qWDuNMcaY2cDumQuggwcP0tfXV+4wjMlZX19fVueu4zisWrXK9zaCSCRCV1cXkUgk5/pT5fXbnrgtlzrzzZdrzLmmKWb9xYwj2zKL2QeZlKvucrZ5poIceyWywVwAjY6O5v3CYGPKyXGcrM7d3t5ejh07Rm9v77R9/f397Nq1i4GBgZzrT5XXb3vitlzqzDdfrjHnmqaY9RczjmzLLGYfZFKuusvZ5pkKcuyVyAZzxpiK4jgOw8PDAAwPD08Z/EUiEYaGhlBVhoaGcvqrPlVev+2J2wYHB7OuM998ucaca5p85VJ2MeLItsxi9kGhYqyWegshyLFXKrtnLoDGxsbiv+Bqxmw5tmQ1Jw7jOEfo7u4udygmieM4NDQ0pE2TPBvX29vL5s2bAfev+cnJSQAmJiYYGBhg/fr1WdWdKq/fdlWNbxsfH4+XkanOxLJyyZdrzLmmyVcuZRcjjmzLLGYfFCrGaqm3EIIce6WymTljTEWJzcr5fd62bRvRaBSAaDTK1q1bsy43VV6/7YnbVJXYGtaZ6sw3X64x55omX7mUXYw4si2zmH1QqBirpd5CCHLslcpm5gJozpw5hMNhAHY8eqDM0VSeybkLCJ/ezMaNG8sdikmSzWxpS0vLlAFcS0tL/Ou2tja2bNlCNBqltraWFStWZF13qrx+21U1vk1EAHdwlqnOxLJyyZdrzLmmyVcuZRcjjmzLLGYfFCrGaqm3EIIce6UK/MyciKiIfCHh87UisqHAdbSIyEOFLNMY46+npyfl587OTmpq3B9boVCI1atXZ11uqrx+2xO31dXVUVdXl1Wd+ebLNeZc0+Qrl7KLEUe2ZRazDwoVY7XUWwhBjr1SBX4wB4wCbxWR55U7kFKpr6+Pz8wZEyThcDjjuRsOh+OzcS0tLVPSNzU10d7ejojQ3t5OU1NT1nWnyuu3PXFbR0dH1nXmmy/XmHNNk69cyi5GHNmWWcw+KFSM1VJvIQQ59kpVDZdZo8BNwHrgY4k7ROT5wJeBJd6mD6rqPSKyEPgqcDpwHLhGVR/0ZvReCiwGXgx8TlX/I6nMFuDrwEnepg+o6i9E5IXAt4EFuP26RlV/JiJHgX8F2oCngeuBz3kxfVBVbxORc4CvAXNwB9hvU9W9qRq8aNEi1q1bR3d3N6Hjh7J+SW7ouPvEULW/VNddAaK53GEYH9kusdbT00N3d/e0WTpw/6ofHh7Oe6bLL6/f9uRt2daZb75cY841TTHrL2Yc2ZZZzD7IpFx1l7PNMxXk2CuRxG7QDSpvsPQi4EHgfOB9wDxV3SAiNwP/pqo/F5ElwI9U9SwR6QOeUtUbReQNwBdVdbk3mLsM+Avcwdr9wCtwB1l3qOq5ItIITKrqCRE5A/iWqraKyIeBuar6KREJAY2qekREFFipqoMi8n2v3FXA2UC/V28f8CtV/aaIzAFCqjqSqs2tra26ffv2+Nqs+/fvZ2QkZfK40dFRwJ3Zq3YNDQ2zYg3amZpN6/UaY0w+SrHWt4jsUNXWfPNXw8wcqnpYRAaALiBxVNMGnB27ERlYICLzgYuBt3l57xSRJhE52UtzqzeQGhGRnwB/DuxMKLMO+BcRWQ5MAC/ztv8G+KqI1AE/UNVYnjFgyPt6FzCqquMisgto8bb/EviYiJwGfM9vVk5ErgGuAViyxJ1ojJ1c3d3d7H34fpbMm0jfUXWxLzIP/AIv+gyj+54odxQV79iREACjUesrY4xJ9tjRULlDyEpVDOY8XwLuw71cGVMDvDJ5lksSRncJNOn/5O0x64EDuLOANcAJAFX9qYi8FnfW7esi8k+qOgCM63PTn5O49/ihqpMiUut9fbOI/NrL+yMR+VtVvXNKEKo34V5OprW1ddp06pJ5E1x/4WGfZhmT2qfvWwBg544xxviI/YysdNXwAAQAqnoI+A7w3oTNPwY+EPvgzaYB/BS40tt2Ce4l19hvs78Wkbki0gRcgjvjluhk4AlVnQTeDYS8cpYCB7177P4TuDDb2EXkdOBRVd0E3AYsS5fe1mY1xhhjSifbdaXLpWoGc54vAIlPtXYBrSLyoIjsBt7vbd8Q2w58FuhMyHMv8EPgV8AnVfWPSXX8G9ApIr/CvcR6zNt+CbBTRO7HvYSby0vOrgAeEpGdwJlA2sXqbG1WY4wxpnSyXVe6XAL/AEQheQ9AHFXVz5c7lnROPfVUfdWrXhV/ZYPjOMwZP8zGi58pb2AmcOwyqzHGpNb981MYq3N/TjY0NHDLLbcUpZ6ZPgBRbTNzxhhjjDGzSjU9ADFjqrqh3DFkI7acV2y5qu7ubkb3bS9zVMYYY0x1aW6cpH5p5b+k32bmjDHGGGMCzGbmAsiW8zLGGGNKp9J/59pgLoBiy3kZY4wxpvgq/XeuDeaqxGNHQ4F5uaGpHPu8FSDs3DHGmOkeOxrijHIHkQUbzFWBSp/+NZXrJG9t1npbm9UYY6Y5g2D8jrXBXBWo9OlfY4wxxhSPPc1qjDHGGBNgNpgzxhhjjAkwG8wZY4wxxgSY3TMXYH19fWkX/t3v3dy+uEg3t4fDYbtfzxhjjCkzG8wFmOM47HxoDxONC333h44/C8CTo4U/zKHjhwpepjHGGGNyZ4O5gJtoXMjImSt99zU8sgUg5f6ZiJVtjDHGmPKye+YC6ODBg/T19ZU7jIrV19eXd/84jsOqVavSXr7OVSQSoaurC8dx6OrqIhKJxLdFIhHftMnbM+0rpsR6k2OIRCKsWbOGtWvXZhVXMdqQbZ8Vu/8KXb5fXxei/GzLyZSuXOdjpQhC+4MQoykMG8wF0OjoaEEHG9XGcZy8+6e3t5djx47R29tbsHj6+/vZtWsXvb297Nq1i4GBgfi2gYEB37TJ2zPtK6bEepNj6O/vZ8+ePezevTuruIrRhmz7rNj9V+jy/fq6EOVnW06mdOU6HytFENofhBhNYdhgzhiP4zgMDw8DMDw8XJABcyQSYWhoCFVleHgYVWVwcJDBwUFUlaGhoSkzL7G0idsz7SumxHoHBwenxOA4DoODg/G0g4ODaeMqRhuy7bNUfV4ohW5bcnmO4xSk/GzjzJSuXOdjpQhC+4MQoykcu2cugMbGxuIDjZoxLUsMNScO4zhH6O7uLkv96TiOQ0NDQ875kmfjent72bx584xi6e/vZ3Jycsq28fHx+NcTExMMDAywfv36KWkTtyeXk7yvmBLrTY67t7eXaDQ6pV3p4ipGG7Lts1R9XiiFbltyeb29vQUpP9s4M6Ur1/lYKYLQ/iDEaArHZuaM8cRm5VJ9zse2bdumDHgAVBVVdxAejUbZunXrtLSJ2zPtK6bEepPjjs00xqhq2riK0YZs+yxVnxdKoduWXN7w8HBBys82zkzpynU+VoogtD8IMZrCsZm5AJozZ0584d8djx4oSwyTcxcQPr2ZjRs3lqX+dPKdLWxpaZkygGtpaZlxLG1tbWzZsmXKgE5EAHeAUVtby4oVK6alTdyeaV8xJdabHPdpp53Gvn374oMkEUkbVzHakG2fperzQil025LLO+2003j88cdnXH62cWZKV67zsVIEof1BiNEUzqycmRMRFZEvJHy+VkQ2lDGknNTX18cHc2a6cDicV//09PSk/ZyPzs5OamqmfpvV1dVRW+v+HRUKhVi9evW0tInbM+0rpsR66+rqqKuri8fQ09MTb0dsf7q4itGGbPssVZ8XSqHbllxeT09PQcrPNs5M6cp1PlaKILQ/CDGawpmVgzlgFHiriDwvn8wiUtYZzUWLFtnKC2msW7cur/4Jh8Px2biWlpaCDJibmppob29HRGhpaUFE6OjooKOjAxGhvb2dpqamaWkTt2faV0yJ9XZ0dEyJIRwO09HREU/b0dGRNq5itCHbPkvV54VS6LYllxcOhwtSfrZxZkpXrvOxUgSh/UGI0RTObL3MGgVuAtYDH0vcISLPB74MLPE2fVBV7/Fm7l4EtABPichLgatV9WEv313Ah4HfA18FTgeOA9eo6oNe/qOq+nkv/UPApcCfgO8ApwEh4JOq+u1sGxI6fijlC3xDx92nl4rxgl93BYjmgpdbbj09PXR3dxdkVi6ms7OT4eFhurq62LRpU/wv5OHhYd8ZD7/tmfYVU3K9iV93dnayd+9eRCSruIrRhlz6rJj9V+i2JZdXqPKzLSdTunKdj5UiCO0PQoymMCTxBubZQkSO4g7MHgTOB94HzFPVDSJyM/BvqvpzEVkC/EhVz/IGY38FXKyqIyKyHjhFVW8QkRcCd6vqy0SkD3hKVW8UkTcAX1TV5WkGcxcB7ar6Pm/7yar6rE/M1wDXACxZsuSiffv20dfXx913383IyIhvO0dHRwH3smwxNDQ0FG3dV1N8xVq719bsNcaY3IjIDlVtzTf/bJ2ZQ1UPi8gA0AUkjobagLNjN0wDC0Rkvvf1baoaS/sdYCtwA/B24L+97RcDb/PquFNEmkTk5DSh7AI+LyL/CNyhqj9LEe9NuLOJtLa2KriXEx3HYe/D97Nk3sT0THWxL/wHezMWfYbRfU8Up2xTdMeOhAAYjRbuGD52NFSwsowxxmRn1g7mPF8C7gO+lrCtBnhlwqANiD+BeCz2WVX3i0hERJYBVwB/F0vqU4/iXtpNvEdxrlfO70TkImAl8BkR+bGqfiJd0LHlvGKzH0vmTXD9hYczNNWYqT593wKAgp47sTKNqXSxJf9sFtlUg9n6AAQAqnoId4btvQmbfwx8IPZBRJanKeK/gOuAk1V1l7ftp8CVXt5LcC+5HgaGgQu97RcCL/G+fhFwXFW/AXw+liYdW87LGGNmZibL/hlTaWb1YM7zBSDxqdYuoFVEHhSR3cD70+S9BXgH7oAwZkMsP/BZoNPb/l1goYjsBNYAv/O2nwfc623/GFC4RUGNMcYYU/Vm5WVWVZ2X8PUBoDHh81O4l02T82zw2XaApD70Zvv+2iftCPBGn3CGgR9lHTzPLefV3d2N4zjMGbcxuakMB47XMOadm8ZUsnyX/TOmEtkowBhjjDEmwGblzFzQxZbz2rhxI93d3Yzu217ukIwBoLlxkvql4Ypc5s2YRDZ7bKqJzcwZY4wxxgSYzcwFkK3NaowxM2M/Q001scFcANnarMYYMzP2M9RUExvMVYHHjobsZa0mZ/u8FSAKee48djTEGQUrzRhjTDZsMBdwdqnA5Oskb23W+gKuzXoGdk4aY0yp2WAu4OxSgTHGGDO72dOsxhhjjDEBZoM5Y4wxxpgAs8GcMcYYY0yA2T1zAXTw4EG6u7vZ793AvjiLG9jD4bDdX2eMMcZUIRvMBdDo6Cg7H9oDKABPjqY/jKHjh0oQlTHGGGPKwS6zBtRE40ImGpuYaGxi5MyVaf9NNC4sd7gpRSIRurq6iEQi5Q6lKKq9faY87LwyxiSywVwAjY2NUXPicMnr7evro6+vr6Bl9vf3s2vXLgYGBgpabqWo9vaZ8rDzyhiTyAZzATQ5OYlMjpe8XsdxcBynYOVFIhGGhoZQVYaGhqpulqHa22fKw84rY0wyu2duFqg5cRjHOUJ3d/eMynEch4aGhgJF5c4uTE5OAjAxMcHAwADr168vWPnlVu3tM+Vh55UxJpnNzJmy2bZtG9FoFIBoNMrWrVvLHFFhVXv7THnYeWWMSWYzc7PA5NwFhE9vZuPGjTMqZ6Yze8na2trYsmUL0WiU2tpaVqxYUdDyy63a22fKw84rY0wym5kzZdPZ2UlNjXsKhkIhVq9eXeaICqva22fKw84rY0yyWTWYE5EJEdkpIg+JyH+LSGMOeV8kIrfMoO4PZlOfiNwlIq3p0tTU1KA1dfmGkrdwOEw4HC5YeU1NTbS3tyMitLe309TUVLCyK0G1t8+Uh51Xxphks+0y64iqLgcQkW8C7we+mCmTiNSq6h+By2dQ9weBbwDHZ1AGAHPmzGFy7oKZFpOzYqwg0dnZyfDwcNXOLlR7+0x52HlljEkkqlruGEpGRI6q6jzv6/cDy4CPAH3AebiD2w2qequIXAWsAuYCJwFXA3eo6rnevjcDjcBLge+r6nVeuf8PeDnQANyiqjeISBfweeC3wFOq+nq/dF7+u4BrVXV7qnY0NzfrmeeeT2wFiIlG9y/zmhOH/V9ZMhFl3kmN02bVclkOrFxsGTJjjDHVTkR2qGraq3LpzLaZOcCdaQM6gCHgY8Cdqnq1iJwC3Csi27ykrwSWqeohEWlJKmY5cAEwCvxWRPpU9Q/Ax7z0IeB/RGSZqm4SkQ8Br1fVp7z8fukeTBPzNcA1AKeeeirLzz0rYTDWDIDjHEFHR1kyb8KnhDFG900dHx47EgJgNPpE2v4ql8eOhsodgjHGGFPxZttgrkFEdnpf/wz4T+AXwJtF5Fpv+1xgiff1VlVNtbDp/6jqswAishtYCvwBeLs38KoFXgicDfgN0rJNB4Cq3gTcBNDa2qp+T6Z2d3czum8711+Y3eoQn77PvVSbbfpSi8VnjDHGmNRm1QMQePfMef/WqeoYIMDbErYvUdU9XvpjacoaTfh6AqgVkZcA1wJ/qarLgB/iDg6nyDZdKgcPHiz4slqV6MDxmvjsoyk8W9/TGGOqw2wbzPn5EbBORARARC6YQVkLcAeAz4pIM+6l3JgjwPws0mU0Ojpa0GW1KtWJCWFkZKTcYVQtW9/TGGOqgw3m4JNAHfCgiDzkfc6Lqj4A3A88DHwVuCdh903AoIj8JEM6Y4rO1vc0xpjqMavumYs9yZq0bQT4O5/tm4HNCZ+HgXNT7Ls04eurUtTdh/vUbKZ0l6RpAgBjY2M4jjNtRQbHcZgzbuNzk5mt72mMMdXDfvMbMwvZ+p7GGFM9ZtXMXLWYM2cO4XB42lqrsadZjcnE1vc0xpjqYTNzxsxCtr6nMcZUDxvMBVB9fX1B10itVHNDSkNDQ7nDqEq2vqcxxlQPu8waQIsWLZoVS1w1N05SX8FLjQWdre9pjDHVwQZzVeaxo6GsV07Y5y3nVakrLTx2NMQZ5Q6iijU1NbFp06Zyh2GMMWaGbDBXRXK99HqSt7pCpc5+nUHubTLGGGNmGxvMVZHZcOnVGGOMMVPZAxDGGGOMMQFmgzljjDHGmACzwZwxxhhjTIDZPXNVoq+vD8dxUu7f7z3ssLhCH3YolnA4bPcSGmOMqWo2mKsSjuOw86E9TDQu9N0fOv4sAE+Ozp5DHjp+qNwhGGOMMUU3e36zV5m+vj5g6hOsE40LGTlzpW/6hke2AKTcX41ibTbp+Z1LxhhjgsMGcwGV7pKqMbmwc8kYY4LNHoAwxhhjjAkwm5kLqP379zMyMkJ3dzfgzq7UjGmZo6osNScO4zhH4n1k/DmOQ0NDQ7nDMMYYkyebmTPGGGOMCTCbmQuo2CtGNm7cCEB3dzc7Hj1QzpAqzuTcBYRPb473kfFnM5fGGBNsVTOYE5EJYBdum/YAnap6vLxRGWOMMcYUV9UM5oARVV0OICLfBN4PfDG2U0RCqjpRptgKLhwOlzsEUyXsXDLGmGCrpsFcop8By0TkEuAG4AlguYicB3wWuASoB/5VVf9dRGqAfwFeB/we917Cr6rqLSIyDPQDfwXUAX+jqo+IyJ8DXwIagBHgPar6WxG5Cngz0Ai8FPi+ql4HICLtwKeBEPAUsAL4LfAqVf2TF8fvgL9Q1afSNdDeCWYKxc4lY4wJtqobzIlILdABDHmb/hw4V1V/LyLXAM+q6stFpB64R0R+DFwEtADnAYtwL9N+NaHYp1T1QhFZC1wL/C3wCPBaVY2KSBvuIO1tXvrlwAXAKPBbEekDTgD/4eX5vYgsVNVJEfkGcCXuwLANeCDTQC6V0PFDKV+UGzoeAWbXi3TdFSCayx2Gr0zLr5VC4hJvtuyZMcYEVzUN5hpEZKf39c+A/wReBdyrqr/3tr8Rd8bucu/zycAZwMXAf6vqJPCkiPwkqezvef/vAN6akLdfRM4AFHfWLuZ/VPVZABHZDSwFTgV+GotFVWNrTX0VuBV3MHc18DW/xnkD0WsAlixZMm1/pktl+/dHAVi8uDIHN8XRXLGXEB3HYe/D97NkXvmu/B87EgJg7zMHyxaDMcaYmaumwVz8nrkYEQE4lrgJWKeqP0pKtypD2aPe/xM812efBH6iqpeJSAtwl0/6xDyCO+ibQlX/ICIHROQNwCtwZ+mmUdWbgJsAWltbp5VjsyrBs2TeBNdfeLhs9X/6vgVlq9sYY0zhzLb3zP0IWCMidQAi8jIROQn4OfA2EakRkWbce+oyORnY7319VRbpfwm8TkRe4tW9MGHfV4BvAN8p9kMakUiErq4uIpFIMasxGezfv58Dxyv726+vry++bqsxxpjKVdm/TQrvK8Bu4D4ReQj4d9xZs+8CjwOxbb8Gns1Q1ueAz4jIPbgPNKSlqn/CvUz6PRF5APh2wu7bgHmkuMRaSP39/ezatYuBgYFiV2XSGBkZ4cSElDuMtBzHKft9fcYYYzKrmsusqjrPZ9tdJFz+9O6Ju977N4WIXKuqR0WkCbgX9511qGpLQv7teLN2qvpL4GUJRfyDt30zsDkhz6UJXw8Cgz7hn4/74MMj6Vs5M5FIhKGhIVSVoaEhVq9eTVNTUzGrNMYYY0yRVc1grgDuEJFTgDnAJ1X1yVJUKiIfBdaQ4l65Qurv72dychKAiYkJBgYGWL9+fbGrNRXuwPEaxhxn2koQtmarMcYEw2y7zJqSql6iqstV9Wxvdq1U9X5WVZeq6s+LXde2bduIRt2nWqPRKFu3bi12lcYYY4wpMpuZm0Xa2trYsmUL0WiU2tpaVqxYUe6QTAVobpykfml42hq2tmarMcYEg83MzSKdnZ3U1LiHPBQKsXr16jJHZIwxxpiZssHcLNLU1ER7ezsiQnt7uz38UEYNDQ3MDU17XWBFCYfDFfvSZWOMMc+xy6yzTGdnJ8PDwzYrV2aLFy9m7zMHy/ri3n3eChAi7jIoyexF1MYYEww2mJtlmpqa2LRpU7nDmPUqYcbrpKS1WY0xxgSTDeaMKQOb9TLGGFMods+cMcYYY0yA2WDOGGOMMSbAbDBnjDHGGBNgds9cgPX19WVcCH1/wk3uhRIOh+2eL2OMMaZC2GAuwBzHYedDe5hoXJgyTej4swA8OVqYQx06fqgg5RhjjDGmMGwwF3ATjQsZOXNlyv0Nj2wBSJsmF7HyjDHGGFMZbDAXQAcPHqSvr6/cYVS0WP+kuxzsOA7d3d1s3Lgx43vWIpEIN954IzfccMOUlTNSbS+kXOuIRCL09PQgInzyk5+sqJU+/NpSij40LuvryhXkYzM+Ps7jjz/OiRMnyh1KxZs7dy6nnXYadXV1BS3XBnMBNDo6mvFeudkum/7p7e3l2LFj9Pb2snnz5rRp+/v72bVrFwMDA6xfvz7j9kLKtY7+/n727NkDUNS48uHXllL0oXFZX1euIB+bxx9/nPnz59PS0oKIlDuciqWqRCIRHn/8cV7ykpcUtGx7mtXMSo7jMDw8DMDw8HDawV8kEmFoaAhVZWhoiEgkknZ7IeVaRyQSYXBwMP55cHCwKHHlw68tpehD47K+rlxBPzYnTpygqanJBnIZiAhNTU1FmcG0mbkAGhsbiw8+asZKu1h7zYnDOM4Ruru7S1pvrhzHoaGhIeX+3t7eaZ9Tzc719/czOTkJwMTERPwv51TbCynXOvr7+4lGo/HP4+PjFfOXvl9bVLXofWhcpThfTX6q4djYQC47xeonm5kzs1JsVi7V50Tbtm2LD5Ci0Shbt25Nu72Qcq1j27ZtqD43wFfVosSVD7+2lKIPjcv6unLZscnf5s2b+eMf/5hzvi9/+csMDAyk3H/XXXfxi1/8Iuv05WYzcwE0Z86c+A37Ox49UNK6J+cuIHx6Mxs3bixpvbnKNHPY0tIyZQDX0tKSMm1bWxtbtmwhGo1SW1vLihUr0m4vpFzraGtr4/bbb48P6ESkKHHlw68tqlr0PjSuUpyvJj92bFyx9udi8+bNnHvuubzoRS/KqZ73v//9adPcddddzJs3j1e96lUAGdOXW2Bn5kRkQkR2ishDInK7iJxS4PJ/kTnVtDzXFzIGUzw9PT1pPyfq7Oykpsb9VgmFQqxevTrt9kLKtY7Ozs4pPwzr6uqKElc+/NpSij40LuvrylWNx2ZgYIBly5Zx/vnn8+53v5vbb7+dV7ziFVxwwQW0tbVx4IA7EbFhwwauueYa3vjGN7J69WqGh4d5zWtew4UXXsiFF144ZXbsc5/7HOeddx7nn38+H/3oR7nlllvYvn07V155JcuXL2dkZIQdO3bwute9josuuog3velNPPHEEwBccsklXH/99bzuda9j48aNbNiwgc9//vMAbNq0ibPPPptly5bxjne8g+HhYb785S/zz//8zyxfvpyf/exnU9I7jkNbWxvnn38+F154If/7v//L0aNH+cu//EsuvPBCzjvvPG699daS9ndgB3PAiKouV9VzgUPA3xeycFV9VfI2EQllyJbTYE5cOR+D+vr6jK/SmO3C4XDaPgqHw/HZuJaWlrRpm5qaaG9vR0Rob2+PvzYg1fZCyrWOpqYmOjo64p87Ojoq5jUHfm0pRR8al/V15aq2Y/Pwww/zqU99ijvvvJMHHniAjRs3cvHFF/OrX/2K+++/n3e84x187nOfi6ffsWMHt956KzfffDOLFi1i69at3HfffXz729+mq6sLcB/m+sEPfsCvf/1rHnjgAa677jouv/xyWltb+eY3v8nOnTupra1l3bp13HLLLezYsYOrr76aj33sY/F6nnnmGe6++24+/OEPT4n3s5/9LPfffz8PPvggX/7yl2lpaeH9738/69evZ+fOnbzmNa+Zkv7KK6/k7//+73nggQf4xS9+wQtf+ELmzp3L97//fe677z5+8pOf8OEPf3jKLS/FVi2XWX8JLAMQkZcC/wo8HzgOvE9VHxGRvwFuACaAZ1X1tSJyFXAZUA+8BLhZVW/0yjmqqvNE5BIv3xPAcuBsEfkB8GJgLrBRVW8Skc8CDSKyE3hYVa8UkQ8BV3sxfkVVvyQiLcAg8BPglcAPROQUVV3v1fs+4CxV/VCqxi5atIh169ZV/EMI5ZTNcmM9PT10d3ennZWL6ezsZHh4eNpfzKm2F1KudXR2drJ3715EpOL+wvdrSyn60LisrytXNR2bO++8k8svv5znPe95ACxcuJBdu3ZxxRVX8MQTTzA2Njbl1RxvfvOb4w+sjY+P84EPfICdO3cSCoX43e9+B7j3Fb7nPe+hsbExXmay3/72tzz00EPxy9QTExO88IUvjO+/4oorfONdtmwZV155JW95y1t4y1vekrZtR44cYf/+/Vx22WWA+964WNzXX389P/3pT6mpqWH//v0cOHCAF7zgBRn7qxACP5jzZsv+EvhP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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df_to_plot = pd.concat([disease_gene_icd_test, icd_rna_1])\n", + "fig, ax = plot.subplots(figsize = (9, 9)) \n", + "plot.xlim(0, 400)\n", + "ax = sns.boxplot(data=df_to_plot, x='num_feature_disease', y='class_name', hue='caracteristica')\n", + "ax.set(xlabel='num_feature_disease', ylabel='class_name')\n", + "ax.set(title='Gene and ncRNA distribution per ICD10 disease group')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**DISEASE_VARIANTS_RNAs Boxplot generation**" + ] + }, + { + "cell_type": "code", + "execution_count": 353, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
disease_idvariant_idsource_idscore
0C0000737rs105751880610.70
1C0000737rs105751888610.70
2C0000744rs14606471410.70
3C0000744rs19942221910.70
4C0000744rs19942222010.80
...............
210493C4540536rs14803359210.70
210494C4540536rs6174969810.70
210495C4540602rs14803359210.70
210496C4540602rs6174969810.70
210497C4543822rs104439610.01
\n", + "

210498 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " disease_id variant_id source_id score\n", + "0 C0000737 rs1057518806 1 0.70\n", + "1 C0000737 rs1057518886 1 0.70\n", + "2 C0000744 rs146064714 1 0.70\n", + "3 C0000744 rs199422219 1 0.70\n", + "4 C0000744 rs199422220 1 0.80\n", + "... ... ... ... ...\n", + "210493 C4540536 rs148033592 1 0.70\n", + "210494 C4540536 rs61749698 1 0.70\n", + "210495 C4540602 rs148033592 1 0.70\n", + "210496 C4540602 rs61749698 1 0.70\n", + "210497 C4543822 rs1044396 1 0.01\n", + "\n", + "[210498 rows x 4 columns]" + ] + }, + "execution_count": 353, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "query_variants = \"\"\"\n", + " SELECT*\n", + " FROM\n", + " disnet_biolayer.disease_variant\n", + " \"\"\"\n", + "\n", + "query_variants = pd.read_sql_query(query_variants, con = cnx)\n", + "query_variants" + ] + }, + { + "cell_type": "code", + "execution_count": 354, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
disease_idclass_nameclass_range
0C0008354Certain infectious and parasitic diseasesA00-B99
1C0178238Certain infectious and parasitic diseasesA00-B99
2C0041466Certain infectious and parasitic diseasesA00-B99
3C0030528Certain infectious and parasitic diseasesA00-B99
4C0152491Certain infectious and parasitic diseasesA00-B99
............
3613C0013182Injury, poisoning and certain other consequenc...S00-T98
3614C0041755Injury, poisoning and certain other consequenc...S00-T98
3615C0085639External causes of morbidity and mortalityV01-Y98
3616C0019699Factors influencing health status and contact ...Z00-Z99
3617C0037316Factors influencing health status and contact ...Z00-Z99
\n", + "

3618 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " disease_id class_name class_range\n", + "0 C0008354 Certain infectious and parasitic diseases A00-B99\n", + "1 C0178238 Certain infectious and parasitic diseases A00-B99\n", + "2 C0041466 Certain infectious and parasitic diseases A00-B99\n", + "3 C0030528 Certain infectious and parasitic diseases A00-B99\n", + "4 C0152491 Certain infectious and parasitic diseases A00-B99\n", + "... ... ... ...\n", + "3613 C0013182 Injury, poisoning and certain other consequenc... S00-T98\n", + "3614 C0041755 Injury, poisoning and certain other consequenc... S00-T98\n", + "3615 C0085639 External causes of morbidity and mortality V01-Y98\n", + "3616 C0019699 Factors influencing health status and contact ... Z00-Z99\n", + "3617 C0037316 Factors influencing health status and contact ... Z00-Z99\n", + "\n", + "[3618 rows x 3 columns]" + ] + }, + "execution_count": 354, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "query_icd" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we generate a df merging query_variants and query_icd dataframes to associate the ICD10 classification disease groups to the CUIs of the diseases associated to variants." + ] + }, + { + "cell_type": "code", + "execution_count": 355, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
class_namedisease_idnum_feature_diseasecaracteristica
0CirculatoryC00029407variants
1CirculatoryC000296264variants
2CirculatoryC00029632variants
3CirculatoryC00029654variants
4CirculatoryC00034869variants
...............
1623SkinC04063171variants
1624SkinC040997417variants
1625SkinC04774741variants
1626SkinC07021668variants
1627SkinC40832122variants
\n", + "

1628 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " class_name disease_id num_feature_disease caracteristica\n", + "0 Circulatory C0002940 7 variants\n", + "1 Circulatory C0002962 64 variants\n", + "2 Circulatory C0002963 2 variants\n", + "3 Circulatory C0002965 4 variants\n", + "4 Circulatory C0003486 9 variants\n", + "... ... ... ... ...\n", + "1623 Skin C0406317 1 variants\n", + "1624 Skin C0409974 17 variants\n", + "1625 Skin C0477474 1 variants\n", + "1626 Skin C0702166 8 variants\n", + "1627 Skin C4083212 2 variants\n", + "\n", + "[1628 rows x 4 columns]" + ] + }, + "execution_count": 355, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "disease_variant_icd= pd.merge(query_variants, query_icd.drop(['class_name'], axis=1), on='disease_id')# query_disease_variant es un df de la tabla #disease_variant y query_icd un df de la consulta icd\n", + "disease_variant_icd = disease_variant_icd.drop(['source_id','score'], axis=1)\n", + "icd_10_short = pd.read_csv('icd10_links.csv')\n", + "disease_variant_icd= pd.merge(disease_variant_icd, icd_10_short, on='class_range')\n", + "disease_variant_icd\n", + "\n", + "disease_variant_icd_test = disease_variant_icd[['disease_id', 'class_name', 'variant_id']]\n", + "disease_variant_icd_test = disease_variant_icd_test.groupby(['class_name', 'disease_id']).count()\n", + "disease_variant_icd_test = disease_variant_icd_test.reset_index()\n", + "disease_variant_icd_test = disease_variant_icd_test.rename(columns={'variant_id': 'num_feature_disease'})\n", + "disease_variant_icd_test['caracteristica'] = 'variants'\n", + "disease_variant_icd_test" + ] + }, + { + "cell_type": "code", + "execution_count": 357, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
disease_idpathway_id
0C0000731WP117
1C0000731WP138
2C0000731WP15
3C0000731WP1533
4C0000731WP1544
.........
400696C4540602WP734
400697C4545381WP306
400698C4545381WP322
400699C4545381WP3611
400700C4545381WP51
\n", + "

400701 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " disease_id pathway_id\n", + "0 C0000731 WP117\n", + "1 C0000731 WP138\n", + "2 C0000731 WP15\n", + "3 C0000731 WP1533\n", + "4 C0000731 WP1544\n", + "... ... ...\n", + "400696 C4540602 WP734\n", + "400697 C4545381 WP306\n", + "400698 C4545381 WP322\n", + "400699 C4545381 WP3611\n", + "400700 C4545381 WP51\n", + "\n", + "[400701 rows x 2 columns]" + ] + }, + "execution_count": 357, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "query_pathways = \"\"\"\n", + " SELECT DISTINCT\n", + " dg.disease_id,\n", + " gp.pathway_id\n", + " FROM\n", + " disnet_biolayer.disease_gene dg\n", + " INNER JOIN\n", + " disnet_biolayer.gene g ON dg.gene_id = g.gene_id\n", + " INNER JOIN\n", + " disnet_biolayer.gene_pathway gp ON g.gene_id = gp.gene_id\n", + " \"\"\"\n", + "\n", + "query_pathways = pd.read_sql_query(query_pathways, con = cnx)\n", + "query_pathways" + ] + }, + { + "cell_type": "code", + "execution_count": 359, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
class_namedisease_idnum_feature_diseasecaracteristica
0CirculatoryC0002940120pathway
1CirculatoryC000296296pathway
2CirculatoryC00029638pathway
3CirculatoryC000296579pathway
4CirculatoryC0003486139pathway
...............
2423SkinC05495679pathway
2424SkinC06003361pathway
2425SkinC070216681pathway
2426SkinC11125704pathway
2427SkinC408321231pathway
\n", + "

2428 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " class_name disease_id num_feature_disease caracteristica\n", + "0 Circulatory C0002940 120 pathway\n", + "1 Circulatory C0002962 96 pathway\n", + "2 Circulatory C0002963 8 pathway\n", + "3 Circulatory C0002965 79 pathway\n", + "4 Circulatory C0003486 139 pathway\n", + "... ... ... ... ...\n", + "2423 Skin C0549567 9 pathway\n", + "2424 Skin C0600336 1 pathway\n", + "2425 Skin C0702166 81 pathway\n", + "2426 Skin C1112570 4 pathway\n", + "2427 Skin C4083212 31 pathway\n", + "\n", + "[2428 rows x 4 columns]" + ] + }, + "execution_count": 359, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "disease_pathways_icd= pd.merge(query_pathways, query_icd.drop(['class_name'], axis=1), on='disease_id')# query_disease_pathways es un df de la tabla #disease_pathways y query_icd un df de la consulta icd\n", + "#disease_pathways_icd #= disease_pathways_icd.drop(['source_id','score'], axis=1)\n", + "icd_10_short = pd.read_csv('icd10_links.csv')\n", + "disease_pathways_icd= pd.merge(disease_pathways_icd, icd_10_short, on='class_range')\n", + "disease_pathways_icd\n", + "\n", + "disease_pathways_icd_test = disease_pathways_icd[['disease_id', 'class_name', 'pathway_id']]\n", + "disease_pathways_icd_test = disease_pathways_icd_test.groupby(['class_name', 'disease_id']).count()\n", + "disease_pathways_icd_test = disease_pathways_icd_test.reset_index()\n", + "disease_pathways_icd_test = disease_pathways_icd_test.rename(columns={'pathway_id': 'num_feature_disease'})\n", + "disease_pathways_icd_test['caracteristica'] = 'pathway'\n", + "disease_pathways_icd_test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#disease_pathways_icd_test.to_excel('pathway.xlsx')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**ncRNA, genes, variants and pathways distribution per ICD10 disease group boxplots' chart**" + ] + }, + { + "cell_type": "code", + "execution_count": 380, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(0.5, 1.0, 'ncRNA, genes, variants and pathways distribution per ICD10 disease group')]" + ] + }, + "execution_count": 380, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtgAAAMDCAYAAACYXWJdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAACduklEQVR4nOzde3xcdZ3/8ddn0ksS0hJbtZWGUG2CKwIWDV52Uet90S6KeFtZFwTBy+r81MXLb0WtWoX15yoGdF1WFLygKHjBugoqFBVcISWRQgVmkAIDbe2FlObaJvn8/jhn2umQmUzSMzlzeT8fjzwmc+bMOZ85c+acz3znez5fc3dERERERCQaibgDEBERERGpJUqwRUREREQipARbRERERCRCSrBFRERERCKkBFtEREREJEJKsEVEREREIqQEW0Qqnpm1m9mAmTXEHUtUzGyVmWVmaV3LzczNbM5srC9KZrbGzL4T/h/pfmBmXzOzj4f/R/p+mNkLzeyeqJYnhZnZejN7R/j/6WZ2fdwxiSjBFilBeAAfCU/uO8zsR2b2lJzH14QJzBtzps0Jpy3PW1Z23ufO4kuoau7+oLu3uPv4oS7LzC43s7VRxFWpzGyzmb087jiiVup+YGZnmtnvS1jeu9z9M1HEFn6mO3KW/Tt3f3oUy55Nk33RMLNXmdlvzWyPmW03s5vM7JTwsTPNbDw8Ng6Y2f1m9k0zOzpvGZea2T1mNmFmZ06y3g+Y2VYz221m3zCz+TOJ392/6+6vnMlzRaKkBFukdO919xagA2gBvpD3+C7g08Va18zMgLeF855RrkBrSTW2ukrlq6VfQ2aqlM+Wmb0B+CHwLaANWAJ8AviHnNn+EB4bDwdeDgwDG8zs2Jx5/gS8B7h9knW8Cvgo8DJgOfA04FPTf0W1S8fB6qMEW+pK2LJ3npndEbaUXGVmjTmPv9bM+szsMTO7z8z+Pn8Z7t4P/ARYmffQL4G9wD8VCeGFwBHA/wHeYmbzphH7U3NakX5tZl/J/nQePv58M7vFzPrN7E9mtirnsfVm9hkzuzl8/vVm9sQSn3ummf0lfN79ZnZ6CbG+xcx68qZ9wMyuDf9/jZn1htv5ITNbkzNftjvD2Wb2IHCD5XVxMLO3m9mfw5j+YmbvzHn+KjPLmNm/mtlfzWyLmb09fOxc4HTgw2Fr28/C6R8xs4fD5d1jZi8r8LpKifsMM3vQgl86PpbzeJMFreePmtkm4MQptqGbWTJ8fTvM7P+ZWSJ8bIWZ3WBmO8PHvmtmreFj3wbagZ+Fr/HDOYs9PT82M2s0s+Hs/mBm55vZmJktDO+vNbOLSnj9Pzez9+W9hjvM7HUW+FL4fuwOp+cmX7nPeaoFLaR7zOxXQO5+mr8fPG7fNLNnAF8DXhC+/v5w3svN7D/N7H/MbBB4iU3ya4aZ/Vu4fTbn7uuW0w0hZ92/D///bTj5T+E632x5LcFm9oxwGf1mdpeFLcA5sX0l3IZ7zOyPZraiwPbJboNzzeyRcP/+15zHE2b2UQuOXzvN7Admtijvufs/W5OtI2dZBnwR+Iy7f93dd7v7hLvf5O7n5M/v7uPufp+7vwe4CViT89hX3P03wMgkqzoDuMzd73L3R4HPAGcWiesVZnZ3uC9dAljOY7nvS8H9zszmm9kXws/DNgu6CzWFjz3BzNZZ0Fr/aPh/W946Jj0mmtlZFhybHjWz68zsqCKv45/N7IHwffq45fzyZMEvnVeb2XfM7DHgTDM7wsyuNbNdZpY2s3NylnXQvjzJ/rfZzP6vmW0KY/um5Zz7pAzcXX/6q5s/YDNwK0GSuwj4M/Cu8LHnAruBVxB8+VwG/E342HrgHeH/i4FfAz/NWe4a4DvAKcBfgLnAHMCB5TnzXQb8IHx8J/D6acT+B4JW83nAScBjwHfCx5aFy3t1GPsrwvtPyon/PuBooCm8f+FUzwUOC9fz9HDepwDPLCHWZmAP0Jkz7TbgLeH/q4DjwvUdD2wDXhc+tjzcbt8K19+UM21OOM9rgBUEJ9YXA0PAs3OWPQZ8OtzOrw4ff0L4+OXA2py4ng48BByRs/4VBV5XKXH/dxjzs4BR4Bnh4xcCvyPY744E7gQyRbahAzeG87cD93JgH+wI36f54fv0W+CivP385Tn3p4rtt8Bp4f/XE+wrJ+c8dmoJr/9NwB9z1vksgv1oHvAqYAPQGr5nzwCeUmQ//2L42l5EsB99J+91zKHIvkmQnP0+b7mXE3y+/y6MvzF3X+DAfpNd94uBwZzlr89u/8nWEcbVkbevZML/5wJp4N/C7fHS8HU9PSe2XQTHoDnAd4HvF9g+2W3wvXAbHAdsz77fwPuB/yVobZ4P/BfwvUKfrQL7eDbuvwnnf2qR/fRx2zqcfhawbZLpvwfOzJv2J+DNOfefGK538STPf2L4vr8h3K4fCN+3d+THQ5H9DrgIuJbg87UA+BlwQc4x/jSC49gCghb8n4SPFdvvXhe+z88I38fzgVsKbLdjgAGCY/k8gmP7vpz3cU14/3UE+2sTwZeWrxLsuyvD9/1lBY5r+9/HnGPCnQTHnkXAzbnz6y/6P7VgSz3qdvdH3H0XwUF1ZTj9bOAb7v4rD1ppHnb3u3OfZ2a7gR0EB/mDWusA3P1agoPeO/IfM7Nm4I3Ale6+D7iaEruJmFk7QYvnJ9x9r7v/nuDkkPVPwP+4+/+Esf8K6CFILrO+6e73uvswQZK/ssTnTgDHmlmTu29x97umitfdh4CfAv8Yxt9JcLK+Nnx8vbtvDNd3B0Gy8OK8xaxx98Ew3vzl/9yDljJ395sIksIX5syyD/i0u+9z9/8hOJEV6g87TpCIHGNmc919s7vfV+B1lRL3p9x92N3/RJA4PCuc/ibgs+6+y90fAroLxJPr38P5HyRICP4xjCMd7qej7r6dICnMj2MyhWK7CXixBS3Dx4exvThs4TqR4IvBVK//p0Bn+F5D0BXqKnffS/B+LCDYB8zd/+zuW/KDy9nPPx6+tt8SfEYLme6++VN3vzmMf7KWVHLWfRPwc4L37VA9n6Bb2YXh5/cGYB3h+xn6kbvf6u5jBAn2yimW+anw87ER+GbOst4JfMzdM+4+SpCovcEO7mJQ8LOVZ3F4+7j3qgSPECRypWgh+PKTlf1/wSTzvhrY5O5Xh8fRi4CtBZY76X4XtsyfA3wg/HztAT4HvAXA3Xe6+zXuPhQ+9lkO/nwV2u/eSZCk/zl8Hz8HrCzQiv0G4Gfu/vvwM/IJgi8Vuf7g7j9x9wmCc85JwEfcfcTd+4CvE3zOSnWJuz8Unvs+y8H7n0RMCbbUo9yD8RDBwR2Cb/aTJlahpLsfTpCAPIGghWgy5wMfI2hlyHUqQUvL/4T3vwucbGZPKiHmI4BdYeKa9VDO/0cBbwx/fu634GfxkwhaV7IKve6Cz3X3QeDNwLuALeFP2H9TQrwAV3LgAP5WghagIQAze56Z3Rj+BLs7XP4T857/EAWY2clm9r/hT6X9BCfd3OfvDE9wk73eg7h7mqDVbw3wVzP7vpkdUWC9pcRdaDsfkfeaHij0+nLkz39EGMeTwzgfDn8+/s4kcUymUGw3EbR4PRvYCPyKIKF4PpB29x3hegu+/jCZ+wHwTxZ0ZflH4NvhYzcAlwBfAbZZcMHbwkniOwJ4NNzvcl/348xw3yy4T4UmW/ek+8I0HQE8FCZKuctelnO/0HtTyKT7BsHn+cc5n+U/E3yJXFLgucXsDG+fUnSuyS0jaJUvxQCQuz9k/98zybwHfY7c3Snweorsd08iaJ3ekLOdfhlOx8yazey/wu4bjxH8itNqZg1T7HdHAV/OWeYugpbz3Pe50OsY4sD2znoob/7sl4Gs/H1oKoX2GSkDJdgiBzxE0O2gqLDFaC3wlbAlJP/xXxH8TPievIfOIDhpPmhmWwl+dpxLaa0IW4BFYSt41pF5sX/b3Vtz/g5z9wtLWHbR57r7de7+CoKT7N0E3QxKcT3wRDNbSfAar8x57EqC1uwjwy8tXyOnH2UovzUHCPpOAtcQ/KS6xN1bCb60PO69KOBxy3X3K939JIITpAP/XuC5pcRdyBYOfs/aS3hO/vyPhP9fEMZ5vLsvJPgVIjeOSbddEbcQtPCfCtzk7pvC9b2GIPnOmur1X0HQx/1lwJC7/2F/QO7d7v4c4JkEXZU+NEkcW4AnmNlhOdMKbqci+2ah1z/Vdpls3dltPkiQlGUtnWJZuR4Bjgy/eOQu++FpLCNfoX3jIYLuPbmf50Z3z11XqfvHPeHyTptBfKcS/vJRgrs48GsK4f/b3D0/4YS8z1F4DD5ykvmAgvvdDoILMZ+Zs40O9+BCTYB/Jfg8PC/8fL0ou7pwmYX2u4eAd+Zt+yZ3v6XA68jt193EgV8M9oef8/8jBOeA3Fb93H2olP2z0D4jZaAEW+SAy4C3m9nLLLhQaFmRFrErgCcT9LmezMeA/ReXmdkygqRjNcFPvysJTiL/TthNxA5cgLQ8f2Hu/gBBt401ZjbPzF7AwVfxfwf4BwvKaTVYcOHaKsu5MKeIgs81syVmdkqYdIwStDSNTxVvGPMYQTeY/0fwU/Gvch5eQNAaM2JBucK3lhBn1jyCLh3bgTEzOxmYTlmubQRVCghfx9PN7KVh4j5CcOItVAbuUOL+AfB/LbiAqo1JuhhN4kPh/EcSXBh7VU4cA0B/uG/lJ6sHvcaphK1nG4B/4UBCfQvBT965CXbR1x8m1BPAfxC2XgOY2Ylh6/dcgkRghEm2cc5+/qlwPz+Jg/fz/Yrtm+Hrb7NpXEScI7vuFxJ8Xn8YTu8DXh+2bnYQdCnLVWyb/5HgdX/YzOZacBHxPwDfn0F8WR8PY3km8HYO7BtfAz5rYbcEM3uSmb12JisIW4c/GK7r7Wa2MDw2nmRml+bPHx4/nmpmFxP8IvKpnMfmWdDlyIC54XEmm4N8CzjbzI4xsycQ/Ap4eYGwfg4808xeb0G3lyQFvuwU2u/CXxL+G/iSmT05nHeZBdVMINjPhwk+X4uAT+Yss9h+9zWCz/gzw3kPt5zSrXmuJjju/m24n36KIl/WPehWdgtwQbjtjifYB78bztIHvNrMFpnZUoJf5fL9S3hcX0RwPcBVk8wjEVGCLRJy91sJTlRfIugDeBNBi+Zk8+4l6Kf68QKP30xwMWXW24A+d7/e3bdm/8JlHG/Ble1HEvxsV6hV63TgBQQ/I64lODiOhut7CHgtwUFzO0FLyoco4TM+xXMTBK05jxD83PliDrTMTxUvBC2eLwd+mNdl4z0EJQ33EPQ9/MFUcebEu4fgpPoD4FGCJO/aok862GUE/a37zewnBMn6hQStWlsJvjj9W4HnzjhughPoA8D9BK373y4+OxD0a95AcPL8eRh7dlnPJthPfw78KO95FwDnh6/xvBLju4ngF5Vbc+4vIPh5PKuU1/8tggvvvpMzbSFBQvMowTbYyePLXGa9FXgewf72yXB5kym2b95A0Cq61cx2FHj+ZLaGMT5CkLi8yw9ch/ElgipB2wi+YH8377lrgCvCbX5Qv+3weHEKcDLBfvZV4J/94Gs8pusmgl/KfgN8wd2zg6t8meDzcH34Pv0vwfacEXe/mqBLxFkE22UbwfHnpzmzvcDMBggu/ltP8H6fGP7al3U9QdL6t8Cl4f8vCtfxS+DzBBf1PhD+fZJJhN2V3kjwmd0JdBJcsDeZYvvdRwi23/9a0A3k1xy4TuMigosKdxBsv1/mLLPgfufuPyZoNPl+uMw7Cd7zyV7HXQRfsr9P0Jq9B/gr4TG9gH8kuFD1EeDHwCfDX0whOJ78ieBixuuZPHm+MnzsL+FfTY8HEDcLvqCKSNzM7Hxgu7v/V4nzXwXc7e6TnojKbbrxyvSYmRNUYUnHHct0mNk/A+eGXW4kYuEvRvcDc/O+tEoVM7MWoJ/gM39/GZa/maDSyq+jXrZMToXLRSqEuxdtTTCzEwlaTO4n6BLxWoJWnFhMFa/UHwuuEXgPQQutiBRhZv9A8AuEEbSsbyRogZYaoC4iItVjKcHPrwMEXUve7e69sUYkEgr7r24n6EJw5RSzi0jQSPJI+NdJME6AuhXUCHURERERERGJkFqwRUREREQipD7YVeaJT3yiL1++PO4wREREROrehg0bdrj74waMU4JdZZYvX05PT0/cYYiIiIjUPTObdLRZdREREREREYmQEmwRERERkQipi4iIzLru7m7S6aoaP0VE6kgmkwGgra2tbOvo6OggmUyWbfkSLyXYIjLr0uk0vRs3MdG8KO5QREQeJzG0G4Bto+VJkxJDu8qyXKkcSrCloO7ubgB9w5aymGhexMgxq+MOQ0TkcRo3rQMo2zEqu3yZvmrJTZRgS0H6CV9EREQqSbXkJkqwpaBMJsPw8HDFf0uU6pNKpbC9GkVWROqTjTxGKrVH59cZSKVSNDU1xR3GlFRFREREREQkQmrBloKyV09n+zuJRCWZTLLhvq1xhyEiEgtvXEjniqU6v85AtbT6K8GWgjo6OuIOQURERGS/aslNzF39IKtJV1eXa6j02aN6zeWRSqUYGByChir5jj8xHtwmGuKNQ6qeJ+bijQvjDkOmkBjaCcBE8+IyLX8XJxx3jFqwa4CZbXD3rvzpVXJ2E4lHOp3m3jtvp71lPO5QasqRc4FWgL3xBlKiB/YEifVRC0ZjjkSq2YMDDdi8eXSuWBp3KDKFTGYMgLa2cr1XS6umJVZmRgm2FFQttSbLrb1lnPO7BuIOQ2K0tqcFQPuBHJK1PS00Lu9Uq2WJdA6SaqYEWwpS1wgREYmLzkFSzZRgS0Gqgx30FZ63T9UsReTQbRtKsDeVqutj6nRUS71jkckocxARERERiVDVt2Cb2VLgIuBEYBTYDFwIJN39DREsfw0w4O5fKDLP64B73X3Toa6vkqgOdtD3b2TzbXGHISI1YEnzhPpgT4Na+qWaVXWCbWYG/Bi4wt3fEk5bCSyYLLk2sznuPlaGUF4HrANKTrDLGEtkdIWziIjERecgqWZVnWADLwH2ufvXshPcvc/MlpvZne5+rJmdCbwGaAQOM7NTgIuBLsCBT7n7NWY24O4tAGb2BmC1u5+ZuzIzOwc4F5gHpIG3ASuBU4AXm9n5wGnAAuBrQDNwH3CWuz9qZuuBW4C/A24IYzva3feZ2ULgDqDT3fdFvJ1mRK0HQT/0Xf1zOOfGw+MORSKyd8IAmJcofQyA0fHgOdoP5FDsmzCOjTuIKqJzkFSzak+wjwU2lDDfC4Dj3X2Xmf07sNvdjwMwsydMY30/cvf/Dp+3Fjjb3S82s2uBde5+dfjYHcD73P0mM/s08Eng/eEyWt39xeF8ywmS/58AbwGumSy5NrNzCRJ72tvbpxGuRGF8Lgy1WtxhSFT6g5ux6bynYXW+oRbtBzJD/dDS2KJWWZE6Ue0Jdql+5e67wv9fTpDMAuDuj05jOceGiXUr0AJclz+DmR1OkETfFE66AvhhzixX5fz/deDDBAn224FzJlupu18KXArBSI7TiPeQqAZp0A99u21nYtVE3KFIRBLrg2u79Z7KbEqsT9C5rLNmjqc6P4gUV+0J9l1AKRcyDub8bwRdQ/LlTmsssJzLgde5+5/C7h2rSlh3wVjc/eawO8uLgQZ3v3MGyysb1SAVEZHJ6PwgUly1J9g3AJ8zs3Nyum6cSND3uZDrgfcSdtkwsyeErdjbzOwZwD3AqcCeSZ67ANhiZnOB04GHw+l7wsdw991m9qiZvdDdf0fQT/umSZaV9S3ge8BnSni9s0p1sIM6rKihU0QO1UBwPKmV46lqVIsUV9V1sN3dCZLhV5jZfWZ2F7AGeKTI09YCTzCzO83sTwQXSgJ8lKASyA3AlgLP/TjwR+BXwN05078PfMjMes1sBXAG8P/CvtgrgU8Xiee7wBMIkmwRERERqXLV3oKNuz8CvGmSh44NH7+coGtHdv4BggQ4fzlXA1dPMn1Nzv//CfznJPPcDByTN/n5k8y3apI4TwKudvf+SR6LlepgB/0Lex/ujTsMEal2LdC5rHZqYNdKS7xIuVR9gl3NzOxi4GTg1XHHMhld7S4iIpPR+UGkOCXYMXL398UdQzFqoQj1H6g8ITWgP7jReyqzqh9YFncQ0dH5QaQ4JdgiRaiVpvbcveduxsbGmD80P+5QZBaMjo4CMH9+zO/3vODCcSWm0evo6NB2lYqjBFukCB20a08ymeTuvj6eNDYWdygyC7JXrFfE+z04SP+OHXFHUVO2xh2ASAFKsKUgDSQgtWopcDYalbEeXBYOcaD3uzZdNumwFlIKnePLSwm2FKSBBERERGqTzvHlpQRbCtJAM1KLUqlUdQ8AICL77QS219AAPrNJgwWVl84zIiIiIiIRUgu2FKSBZqQWJZNJ+vv64g5DRCKwGGjtrJ0BfGaTWv3LSwm2FKQSdSIiIrVJ5/jyUoItBenbrdSqraj6QL3IlunT+12btgKtcQdRpXSOLy8l2CJSV9RqU18GMhkAWsMub1JbWtFnWiqTEmwRqStqtRERkXJTFRERERERkQgpwRYRERERiZASbBERERGRCCnBFhERERGJkBJsEREREZEIqYqIiMy67u5u0ul03GGIiDxOJizt2DZJaceOjg5VIpKSKMEWkVmXTqfp3biJieZFcYciInKQxNBuALaNzsmbviuOcKRKKcGWgrq7uwHVDZbymGhexMgxq+MOQ0TkII2b1gE87viUnV7PlBeUTgm2FKSf8EVERCRLeUHplGBLQZlMhuHhYX1TlcilUilsr8cdhohIyWzkMVKpPXV9TkylUjQ1NcUdRlVQFRERERERkQipBVsKyl5Bne1zJRKVZDLJhvu2xh2GiEjJvHEhnSuW1vU5sZ5b76dLCbYU1NHREXcIIiIiUiGUF5TO3NUPspp0dXV5T09P3GFIzKq9jnQqlWJgcAgaquQ7/sR4cJtoiDcOiZQn5uKNC+MOQypMYmgnABPNi/Om7+KE446p6xZseTwz2+DuXfnTq+TsJiK50uk09955O+0t43GHMiNHzgVaAfbGG0iJHtgTJNZHLRiNORKJyoMDDdi8eXSuWBp3KFJhMpkxANra8veNpWrBlZIpwZaCVO+ysrW3jHN+10DcYdSFtT0tANreNWRtTwuNyzvVGjlDOj+IFKcEWwqq5i4IIiJSPjo/iBSnMn0iIiIiIhFSC7YUpIFmKlcqlWLePn0/FpmpbUMJ9qZSOr7NkAYcESlOZ2gRERERkQhVfQu2mS0FLgJOBEaBzcD73f3eGGP6H+Ct4d23uvtXS3jOgLu3lDey6dFAM5UrmUwysvm2uMMQqVpLmid0keMhUMu/SHFVnWCbmQE/Bq5w97eE01YCS4DYEmx3f3UYy3LgPcCUCXYlUjkiERGZjM4PIsVV9UAzZvZSYI27vyhvugGfB04GHFjr7leZ2SpgDbADOBbYAPyTu7uZvRr4YvjY7cDT3H21mR0GXAwcR/CFZI27/9TMzgROAZqBFcCP3f3D4fo3A13AJcBrgXuAXwGfAn4KPAGYC5zv7j8Nn1NSC7YGmpldlTqgSyqVYnhwgPkN1fv5PVR7JwyAeYnyb4PR8WBd9bK9GxucJc0TcYdRVg8ONHD0sc9WC7aIHJJaHWgmmyTnez2wEngW8ETgNjP7bfjYCcAzgUeAm4G/M7Me4L+AF7n7/Wb2vZxlfQy4wd3PMrNW4FYz+3X42MpweaPAPWZ2sbs/lPPcjwLHuvtKADObA5zq7o+Z2ROB/zWza32Kbzlmdi5wLkB7e/sUm0SilE6n6b2rNxwUpYI0B39DWNyRxKc/uBlrnYVtEJa/Hmqpg+3dD4m5C2hc3hl3JGV1NGqFFZHyqfYEu5CTgO+5+ziwzcxuIuij/Rhwq7tnAMysD1hOcPr8i7vfHz7/e4QJLfBK4BQzOy+83whks9zfuPvucFmbgKOA3AQ7nwGfM7MXARPAMoLuLFuLvRh3vxS4FIIW7KlefFQ0kECoFSZW1XZrXjVKrA+u0dZ7E63E+gSdy9Q3eTI6JopIqao9wb4LeMMk04s1M+WOdTxOsA2KzW/Aae5+z0ETzZ5XYFnFnA48CXiOu+8Lu5I0TvGc2FRi1wgRkbjomCgipar2BPsGghbhc9z9vwHM7ETgUeDNZnYFsAh4EfAh4G8KLOdu4GlmttzdNwNvznnsOuB9Zva+sK/2Ce7eW2J8e4AFOfcPB/4aJtcvIWjxrliqgx30dUYNpFJPBoL9vp4/94Wo9rOIlKqqE+ww4T0VuMjMPgqMEJbpA1qAPxFc5Phhd99qZpMm2O4+bGbvAX5pZjuAW3Me/gxBGcA7wosnNwOrS4xvp5ndbGZ3Ar8A/h34Wdjnu48gsRcRERGRGlLVCTaAuz8CvGmShz4U/uXOux5Yn3P/vTkP3+jufxMm0V8BesJ5hoF3TrLey4HLc+6vzvl/ec7/b+VgLyjwOiqqBjaoDjYEfS17Hy71BwuRGtCC+mAXoFZ9ESlV1SfYETrHzM4A5gG9BFVF6pqusBcROUDHRBEpVVXXwa5HqoM9u5LJZGWW6RPYSdABTM0E0RqDluYWOjujLdOXyWSAA7+MSXl1dHSoxV1kFtRqHWyRslKLVeW689E78bExjtwXdyQ1aHCQ/r6+SBe5J7zt37Ej0uXK4xWt+yois0IJthSkmq/1/dorXTKZpL+vj7PrebCdKnIZwa+ler/KL7utZXp0zpMoKcGWglTzVURE6oXOeRIlJdhSkOpgSyVLpVIk4g5CpALtBLarlvm0qc65REnnJxERERGRCKkFWwpSHWypZNk+2CJysMVAa6dqmU+XWvwlSkqwpSBV0BARkXqhc55ESQm2FKRv81LptqKKCdViS3ir96v8tqLS/TOhc55ESQm2iFQltTZVl4FwoJlWDTRTdq3o8yESNyXYIlKV1NokIiKVSlVEREREREQipARbRERERCRCSrBFRERERCKkBFtEREREJEJKsEVEREREIqQEW0REREQkQirTJwV1d3eTTqfjDkNilgnrF7epfnFN6ejoUKlDEZEyUYItBaXTaXo3bmKieVHcoUiMEkO7Adg2qsNFrUgM7Yo7BBGRmqYzphSUyWTwxBxGjlkddygSo8ZN6wC0H9SQ7Htaabq7uwENIiQi1U8JthQ0PDyMTeyLOwwRqRPqkiYitUIJtohInbGRx0il9lRcS3EqlaKpqSnuMEREDpmqiIiIiIiIREgt2CIidcYbF9K5Yun+Ps+VotJa1EVEZkoJthTU1NTEnr0edxgiUic6OjriDkFEJBLmrgSqmnR1dXlPT8+srCuZTKpMX4Wykcdm7wLU8bHgtkHfx2fdxHhwm2iIdrnjY7Qc1kxnZ2e0y5XIqE65SHUwsw3u3pU/XWdMKUitSZUrldqDj47S3jJe9nVtGwou1VjSvLfs65KDPbAnSKyPWjBahqXvZWTzbWVYrhyqBwci/kIlIrNOCbYUpVaUypRMJhnZfBvndw3EHYqU0dqeFgC9z3Um+77LoVFddYmTEmwpSDVpRUSkWukcJnFSgi0FZTIZhoeH9e2/AqVSKebtU5VNkVq0bSjB3lRKx95DpLrqEiedoUVEREREIlTTLdhmNg5sBOYCY8AVwEXuPmFmXcA/u3tkTQRmdiZwvbs/Et7/OvBFd98U1TpmU1tbG0DF1cqVA32wRaT2LGmeoHF5p469h0i/AEicajrBBobdfSWAmT0ZuBI4HPiku/cAUde7OxO4E3gEwN3fEfHyZ5WqiIiISLXSOUziVNN1sM1swN1bcu4/DbgNeCLwYuA8d19tZk8iSL4Xh4//PfAcd99hZv8EJIF5wB+B94SLuwzoAhz4BvAQcDnwMDAMvAD4BXAecCLwVHf/cBjHmeHy3zfZ8t29YO212ayDLUHrfSVeKJNKpRgeHGB+Q3V+fvdOGADzEtUZ/2wZHQ+2Uzne58YGZ0nzROTLlUP34EADRx/7bLVgi1QB1cEG3P0vZpYAnpz30CeBG9z9AjP7e+BcADN7BvBm4O/cfZ+ZfRU4HbgLWObux4bztbp7v5m9lyBp7wmnZ5d/NfAH4MPh/TcDny2y/G/lBmdm52Zjam9vj2hrSCnS6TS9d/VCa9yR5GkO/oawKWetSP3BzVhrlcY/W8LqfEMtEW+nfkjMXUDjcg00U4mORq2vItWurhLs0GRnqpOAUwHc/Zdm9mg4/WXAc4DbwmS5Cfgr8DPgaWZ2MfBz4PpiK3T37Wb2FzN7PpACng7cDPxLgeXnP/9S4FIIWrCn82IPhWqIhlphYpVa+qKUWB9cX63tGo/E+gSdy9THd7p0TBSRUtVVgh12ERknSGKfkftQoacAV7j7/51kWc8CXkWQJL8JOGuK1V8Vznc38GN3dwuy6kmXXwkqsWuEiEhcdEwUkVLVTYId9rP+GnBJmNzmPvx7guT3383slcATwum/AX5qZl9y97+a2SJgATAI7HX3a8zsPoK+1wB7wscn8yPgY8ADwEeKLd/dH4jgJR8y1cEO+jqjRlapNQPBvl3Pn+2ZUF1lESlVrSfYTWbWx4Eyfd8GvjjJfJ8CvmdmbwZuArYAe8KLHM8Hrg/7bu8jaLEeBr4ZTgPItkBfDnzNzLIXOe7n7o+a2SbgGHe/NZy2qcDyKyLBFhEREZHpq+kE290bijy2Hlgf3t0NvMrdx8zsBcBL3H00nO8qgu4d+Z49yTKvAa7JmbQq7/HVkzyn0PJjpzrYQV/L3od74w5DJFotqA/2DKjFX0RKVdMJ9jS0Az8IW5H3AufEHE9F0FXsIiIH6JgoIqVSgg24ewo4Ie44Ko1aa0L9B6peSET6gxtt15j0A8viDqL66JgoIqVSgi1ShFqsyiPjGQDalrXFHElpshf81ox5wWtSwhitTCbcr9uqY7+uRR0dHdqvpSIowRYpQgdqgWA/uLuvj6VxBxKlwUH6d+yIO4qasie81XaNx9a4AxDJoQRbCtKgCiIHLAXOrtaRM2VWXEYwDpj2k3hkt7/MjM750VKCLQVpUAUREZH6oHN+tJRgS0EaaEYkkEql0OWYIpVtJ7BdAyjNmAZSipbOGSIiIiIiEVILthSkgWZEAslkkv6+vrjDEJEiFgOtnRpAaabU8h8tJdhSkErUiYiI1Aed86OlBFsK0rdZkQO2oioFUtyW8Fb7STy2Aq1xB1HFdM6PlhJsEZEpqGVHSjEQDjTTqoFmYtGKPqtSOZRgi4hMQS07IiIyHaoiIiIiIiISISXYIiIiIiIRUoItIiIiIhIhJdgiIiIiIhFSgi0iIiIiEiFVERGRsuru7iadTke+3ExYEq1tBiXROjo6VBlERETKRgm2iJRVOp2md+MmJpoXRbrcxNBuALaNTu8wlhjaFWkcIiIi+ZRgi0hZZTIZPDGHkWNWR7rcxk3rAKa93Ozz4tbd3Q2oxraISC1Sgi0iZTU8PIxN7Is7jIpTjm4zIiJSGZRgi0hdsZHHSKX2xN5ynEqlaGpqijUGEREpD1URERERERGJkFqwRaSueONCOlcs3d8HOi5xt6CLiEj5KMEWkbJqampiz16PO4yK09HREXcIIiJSJkqwRaSs2tra2P7opsirdySGdgLTrwoSlOlbGmksM6EWbBGR2qUEW6QKlWvwlnLIZDK0NM6FiT2RLnfUglbx+dNdbuNcMplMVSS4hzKYjkhUNDCTyPQpwRapQul0mnvvvJ32lvG4Q5nSEwHmlmHB+5c5PP3njvUzsnlLlNGUxeCeBgBGxio/VqlNDw40xB2CSFVSgi0FaSCMytbeMs75XQNxhyFltLanBUDvs8Qmuw+WQucMkQOUYEtB1dIFQURE4qdzhsgBSrCloEwmw/DwsFojKlAqlWLePpWxF5Hy2jaUYG8qVdJ5QIMniRygM7SIiIiISITUgl0GZjYObMyZ9H13vzCueGYqW7kg7gE55PGSySQjm2+LOwwRqXFLmidoXN5Z0nlAv3aKHKAEuzyG3X3lTJ5oZnPcfSzieGZEA2GIiEipdM4QOUAJ9iwys08A/wA0AbcA73R3N7P14f2/A64F/iO2IPOk0+mKa5VQbeCgr+Pw4BzOufHwuEOpKI0NzpLmibjDiMwDYZm+6VRyEInSgwMNHF3ivJV2rhCJkxLs8mgys76c+xe4+1XAJe7+aQAz+zawGvhZOE+ru794soWZ2bnAuQDt7e1lCzpfOp2m965eaJ21VZZmd3Cz3bbHG0ecmoO/ISzuSCpHPyTmLqBxeWfckUTmsPDLZGMdf5mUeB2NWqZFZkIJdnkU6iLyEjP7MEF6tAi4iwMJ9lWFFubulwKXAnR1dXm0oRaWyWRgDkysqqwWwcT64NrcSotL4pVYn6Bz2dR9RVWrV0REyk0J9iwxs0bgq0CXuz9kZmuAxpxZBmMJrIjh4WGoiN7gItFRrV4RESk3JdizJ5tM7zCzFuANwNUxxiNSWwaCvulTtUyrVq+IiJSbEuzyyO+D/Ut3/6iZ/TdB+b7NgGqsiYiIiNQgJdhl4O4NBaafD5w/yfRV5Y5JpOa1UFIfbPW9FhGRclOCLQU1NTUxMDEQdxgikVJFBBERKTcl2FJQW1sb2+/avr9qR8XoD24qLi6JVz+wbOrZqrkFu7u7u+4u0lTdeymmo6Ojqj/TUruUYEtBldrSl/HwhLtMJ1zJsaxy99mopNNp7u7rY2ncgcyiPeFt/44dscYhlWdr3AGIFKEEW4pS64BIZVkKnF1HAwxdRlD6v55es5Qmu2/UC9Xwry5KsKWgevspWkREpFLpnFxdlGBLQZlMhuHhYX1bFqkQqVQKXXkgEtgJbC+h9n2tUA3/6qJjtYiIiIhIhNSCLQVlr9qfqq6wiMyOZDJJf19f3GGIVITFQGvn1LXva0W9tNTXCiXYUlCtV2QQERGpFjonVxcl2FKQvi2LVJ6t1Ff1hC3hbT29ZinNVqA17iBmkc7J1UUJtohIlajHFqyBcKCZVg00I3laqc/PhFQHJdgiIlVCLVgiItVBVURERERERCKkBFtEREREJEJKsEVEREREIqQEW0REREQkQkqwRUREREQipARbRERERCRCKtMnBZ111ln09/fvHzJdpB50dHSoHJ6IiBwSJdhS0JYtWxgYHGLbqHYTqQ+JoV1xhyAiIjVAmZMUNDo6CmaMHLM67lBEZkXjpnVxh3CQ7u5uQAPMiIhUGyXYUtDExAS4xx2GSN1Kp9NxhyAiIjOgBFtEJGQjj5FK7amYFuNUKkVTU1PcYYiIyDSpioiIiIiISITUgi0iEvLGhXSuWLq/73PcKqUlXUREpkcJthSUSCQY94m4wxCpWx0dHXGHICIiM2Cui9iqSldXl/f09MzKuk4++WQGBoeYWLBkVtZXiWzkMWxiX9xhSJQmxoPbRMPjHxsfo+WwZjo7O2c3JtlPdchFpJqY2QZ378qfrhZsKegpT3lKONDM0rhDiU0qtQcfHaW9ZTzuUCQiD+wJEuujFowWmGMvI5tvm72AZL8HByb50iMiUoWUYEtBK1euBOq7H2gymWRk822c3zUQdygSkbU9LQB6TytQ9r2R6VG9dJHKowRbClINXhGRyqdjtUjlUYItBWUyGYaHh+u6VSSVSjFvn6pZisyGbUMJ9qZSdX3MmQnVSxepPMocREREREQipBbsiJnZOLAxZ9L33f3CuOI5FG1tbQAVUxM4Dtk+2CJSfkuaJ2hc3lnXx5yZUIu/SOVRgh29YXdfGXcQUVANXhGRyqdjtUjlUYI9C8zsZcB73f3U8P4rgHe7++vN7JXAp4D5wH3A2929IsobqFUk6Ie+q38O59x4eNyhSJ69EwbAvMT0avmPjgfP03taXo0NzpLm6Q1U9eBAA0eXKZ5apmO1SOVRgh29JjPry7l/AfAD4Ctm9iR33w68HfimmT0ROB94ubsPmtlHgA8Cn85doJmdC5wL0N7ePgsvQXKNz4WhVos7DMnXH9yMTfe9Cb++DrXoPS2bfkjMXUDj8ukN2HM0ao0VkdqgBDt6k3YRMbNvA/9kZt8EXgD8M/D3wDHAzWYGMA/4Q/5z3f1S4FIIRnIsW+TyOG1tbWy37Uys0pDxlSaxPrhGW+9N5UmsT9C5TH2pRaR+KcGePd8EfgaMAD909zELsupfufs/xhva5DR4gYjI7NOxV6T6KcGeJe7+iJk9QtAl5BXh5P8l6DrS4e5pM2sG2tz93tgCzaHBC0REZp+OvSLVTwl29PL7YP/S3T8a/v9d4EnuvgnA3beb2ZnA98xsfjjP+UBFJNgaaCYYwAH1QBCZnoHgs1PPx45DoYFjRKqfEuyIuXtDkYdPAv47b/4bgBPLGpSIiIiIzBol2LPEzDYAg8C/xh1LqTTQTNAHsvfh3rjDEKkuLegix0Ogln+R6qcEe5a4+3PijmG6VC5LRGT26dgrUv3MXVXfqklXV5f39PTEHUbdSCaT9N7VC61xRxKjAWAs7iAmkY2pnpsJxsPbYh3T4jAGLc0tdHZOrw52reno6FBrtEiNM7MN7t6VP72eT00iU1JLUnDB1fi+QZbGHUieneHt4n2xhhGrLeHtUyrxQtzBQfr7+uKOIjZb4w5ARGKlBFsKUi3W+n7tWclkkv6+Ps5GIx9WmssIfoHUe1N5su+NlEbnG6k1SrClINViFRGR2aDzjdQaJdhSkOpgCwRdRBJxByFSZXYC21ULvGSq/S21RudNEREREZEIqQVbClIdbIEDfbBFpHSLgdZO1QIvlVr6pdYowZaCVEFDRERmg843UmuUYEtBalGQrK2oKkIlypbp03tTebZS3+Xzp0vnG6k1SrBFpCi1LFWugUwGgNawO5dUjlb02RGpZ0qwRaQotSyJiIhMj6qIiIiIiIhESAm2iIiIiEiElGCLiIiIiERICbaIiIiISISUYIuIiIiIREhVRESK6O7uJp1Oxx2GTCITlqhrU4k6kcfp6OhQBSCRGCnBFikinU7Tu3ETE82L4g5F8iSGdgOwbVSHMZFciaFdcYcgUvd0ZpKCuru7AdVBnmhexMgxq+MOQ/I0bloHoPdGJE/2syHR0LlQZkIJthSkrhEiIlLvdC6UmVCCLQVlMhmGh4fr+lt7KpXC9nrcYYiIlMxGHiOV2lPXx+4opVIpmpqa4g5DqoyqiIiIiIiIREgt2FJQtjpDtv9ZPUomk2y4b2vcYYiIlMwbF9K5YmldH7ujpF8CZCbUgi0iIiIiEiG1YEtBHR0dcYcgIiISK50LZSaUYEtB+lksuNAzsWcnzT1XxB2K5BsfA5id92ZiPLhNNJR/XVIRPDEXb1wYdxgzEtTBXhp3GDVD50KZCSXYIlM4bM447S174w5D8mwbCnq4LWku/3vzwJ4gsT5qwWjZ1yXxe3CgAZs3j84V1ZqkLlWrq0jMlGBLQSquH1zoOTK2hfO7BuIORWK0tqcFQPtBnVjb00Lj8k5dJDgDOm+IBJRgS0Eqri8iItOh84ZIQAm2FKSBZoIBBubtU7EdkXqybSjB3lSqro99M6VBWUQCyhxERERERCJUES3YZrYE+BLwfOBRYC/weXf/8QyW9XXgi+6+ycz+zd0/F2Gc7wKG3P1bUS2zkmmgmaAf4cjm2+IOQ0Rm0ZLmCfXBniG1+osEYk+wzcyAnwBXuPtbw2lHAafMZHnu/o6cu/8GRJJgm9kcd/9aRMtqcPfxKJZVTroKXUREpkPnDZFA7Ak28FJgb27y6u4PABebWQNwIbAKmA98xd3/y8xWAWuAHcCxwAbgn9zdzWw9cB7wBqDJzPqAu9z9dDP7IHBWuJqvu/tFZrYcWOfuxwKY2XlAi7uvCZd1C/B3wLVmtgAYcPcvhI/9EXgJ0Aqc7e6/C5f3beCwcD3vdfdbwpg/CWwBVprZNcAOd/9yuN7PAtvcvaKaTNLpdF23SKRSKYYH53DOjYfHHUpN2TthAMxLeMyRlGZ0PIhX+8HsamxwljRPzPp6Hxxo4OhZX2ttqOfzhUiuSkiwnwncXuCxs4Hd7n6imc0Hbjaz68PHTgif+whwM0ES/PvsE939o2b2XndfCWBmzwHeDjwPMOCPZnYTQZeUYlrd/cXhMtbkPTbH3Z9rZq8mSJ5fDvwVeIW7j5hZJ/A9oCuc/7nAse5+f5iI/wj4spklgLeEjz+OmZ0LnAvQ3t4+RbjRSafT9N7VG3x9qFfNwd8QFncktaU/uBlrrZLtGlbnG2qpknhrQT8k5i6gcXnnrK/6aNQSKyKHphIS7IOY2VeAkwj6YT8AHG9mbwgfPhzoDB+71d0z4XP6gOXkJNiTOAn4sbsPhs/5EfBC4NopQrqqyGM/Cm83hOsHmAtcYmYrgXE4qCHkVne/H8DdN5vZTjM7AVgC9Lr7zslW4u6XApcCdHV1zVqTXyaTgTkwsWr2W5CktiXWB9dXa9+SQhLrE3Quq61+0KoRLVI/KiHBvgs4LXvH3f/FzJ4I9AAPAu9z9+tynxB2t8gdUm2cqV9LoaanMQ6uptKY9/hgkWVmY8hd/weAbcCzwuWOFFnW14EzCca0/UaR9cRieHg42DoiInLIVCNapH5UQoJ9A/A5M3u3u/9nOK05vL0OeLeZ3eDu+8zsaODhaSx7n5nNdfd9wG+By83sQoJk+1TgbQTJ8JPNbDHBD8GrgV8ewus5HMi4+4SZnQE0FJn3x8CnCVq933oI6xQRqS0DwTUQtdTaqxrRIvUj9gQ7vDDxdcCXzOzDwHaClt6PAD8k6Hpxe1htZDvwumks/lLgDjO7PbzI8XLg1vCxr7t7L4CZfZrggsX7gbsP8SV9FbjGzN4I3EiRFnB332tmNwL91VBVRERERESmZu7VcRV/LQovbrwdeKO7p0p5TldXl/f09JQ3sNDJJ5/MwN4BJl6nfrISLfXBlqkk1ic4YdkJNdUHO9saX0uvSaTemdkGd+/Knx57C3a9MrNjgHUEF16WlFzPtqamJgYmBuIOQ0SkJqgyiUj9UAt2lZnNFuxkMqkyfVIe/eFtawzrHkAX71aDMWhpbqGzc3bK9GUyGeDACLYSvY6OjprqUy8CasGWGVBri5RLxsNkZtnsJzOpVIrxfYMsnfU1y7QNDtLf1zcrq9oT3vbv2DEr66s3W+MOQGSWKcGWotTiILUmmUzS39fH2Ro8SHJcRvBrrvaL8shuX5ke1U6vXkqwpSDVbBUREYmPzsPVSwm2FJTJZBgeHtY3Z6kpqVTqoJGlRKT8dgLba6yu+WxQ7fTqpfOMiIiIiEiE1IItBWWvplfNVqkl2T7YIjJ7FgOtnZ06n0yTWvyrlxJsKUhVREREROKj83D1UoItBembs9SqraiqgRxsS3ir/aI8tqIhFWZC5+HqpQRbROqKWoRkMgPhQDOtGmimLFrRZ0/qixJsEakrahESEZFyUxUREREREZEIKcEWEREREYmQEmwRERERkQgpwRYRERERiZASbBERERGRCCnBFhERERGJkMr0Sd3o7u4mnU7HHUYkMmHN3jbV7I1ER0eHyveJiEhklGBL3Uin0/Ru3MRE86K4QzlkiaHdAGwb1Uf4UCWGdsUdgoiI1BidnaWg7u5uoLYG5phoXsTIMavjDuOQNW5aB1ATryVu2W1ZjWrxMyoiUguUYEtBtdKdQqRW6TMqIlKZlGBLQZlMhuHh4ZppHUulUthejzsMqTA28hip1J6q3M9TqRRNTU1xhyEiInlURUREREREJEJqwZaCshUqsv08q10ymWTDfVvjDkMqjDcupHPF0qrcz6ux1V1EpB4owZaCOjo64g5BRIrQZ1REpDKZu/qkVpOuri7v6emZlXXVUt1oCPqrDgwOQUMNfK8cHwtuq/W1TIwHt4mGeOMAGB+j5bBmOjs7446k6qmeuIjUGzPb4O5d+dOr9OwssyGdTnPvnbfT3jIedyiROHIu0AqwN95AIrBtKLh8Yklzdb6WB/YEifVRC0ZjjiRrLyObb4s7iKr24EAFfFkSEakQSrCloEwmw/yEc37XQNyhSI1Z29MCoH2rhmTfUzl0qm8uUv2UYEtBw8PDTIxb3GGIiNSVWuqaJ1KvlGCLiMgh2zaUYG8qpVbXCKi+uUj1Ux1sEREREZEIVV0LtpkNuHvsnf3M7Aig293fYGYrgSPc/X9iDktEJBZLmidoXN5ZlfXEK41+BRCpflWXYFcKd38EeEN4dyXQBZScYJvZHHcfK0NokWlqamJ832NxhyEiUldU31yk+lVtgm1mq4BPAdsIEtwfARuB/wM0Aa9z9/vM7HJgGPgb4Cjg7cAZwAuAP7r7meHy9reMm9kbgNXufmb4/McIEuilwIfd/WozWw6sA54NfBpoMrOTgAuA+4GLwjiGgbe7+z1mdibwGqAROMzMHgaudvefhuv9LnCVu18b9faaiba2Nu6986+qDiCRy5bp075VOx4caODouIOoEWrBFql+VZtgh54FPAPYBfwF+Lq7P9fM/g/wPuD94XxPAF4KnAL8DPg74B3AbWa20t37pljPU4CTCJL0a4Grsw+4+14z+wTQ5e7vBTCzhcCL3H3MzF4OfA44LXzKC4Dj3X2Xmb0Y+ADwUzM7HPhbguS/IqgVJShVODw8HHcYNWefBfWvH9o3f8bLGB0NljF//syXIdFpbm3SMUNEJFTtCfZt7r4FwMzuA64Pp28EXpIz38/c3c1sI7DN3TeGz7kLWA70TbGen7j7BLDJzJaUENfhwBVm1gk4MDfnsV+5+y4Ad7/JzL5iZk8GXg9cM1m3ETM7FzgXoL29vYTVR0OtKME26L2rNxygRiLTHNzsY9/MlxGOsbOv+RCWIdHoh87OTh0zRERC1Z5g5w4DN5Fzf4KDX9voJPPkz5c7ZnxjkfWUUhj6M8CN7n5q2JVkfc5jg3nzfhs4HXgLcNZkC3P3S4FLIRgqvYT1R0KDHYRaYWLVRNxRSJ7E+qAIkt6b+GXfi3qnY6aIZFV7gh2lbWb2DOAe4FRgzzSeuwdYkHP/cODh8P8zp3ju5cCtwFZ3v2sa6yw7DXYgIlI6HTNFJEsJ9gEfJbho8SHgTmA6V1/dCHzUzPoILnL8PEEXkQ8CNxR7ortvM7M/Az+ZQcxlle1/XM+tMalUKvidQ0QKGwg+K/V8rAANECMiB1Rdgp2t9OHu68npeuHuq3L+3/9YtkpI+P9m4Nic+7mPXU3OxYuTzZO3/v3LCvtUn5j31NwL6j8eznc5QYv1fmbWDHQC38tft4iIiIhUn6pLsGtJWGHkG8AX3X133PHka2trA6jrgSOSySS9D/fGHYZIZWuBzmUaZKbeW/BF5AAl2DFy918Ds1cWZJpUcktEpHQ6ZopIlrnPWlEKiUBXV5f39PTEHUbdUJk+YACoxDFHszGpmSBe48AEtBzWQmdnZ9zRyCHq6OhQS7zINJjZBnfvyp+uU5NIEWqRCi7cGt83yNK4A8mzM7xdrDLYsdoS3j5pcJD+vr44Q5FDtDXuAERqiBJsKUg1Xev7tWclk0n6+/o4u6QS8FJvLguHEND+Uf0uQ79oR0HnTgEl2FKEarqKiIhMj86dAkqwpQjVwRYIuohonD6R2rcT2K565odM9dAF0HlTRERERCRKasGWglQHW+BAH2wRqW2LgdZO1TM/VPoFQEAJthShChoiIiLTo3OngBJsKULfwiVrK6owIJPLlunT/lH9tlLfJf+jonOngBJsEZmCWmOkmIFMBoDWsEuZVK9W9HkXiYoSbBEpSq0xIiIi06MqIiIiIiIiEVKCLSIiIiISISXYIiIiIiIRUoItIiIiIhIhJdgiIiIiIhFSgi0iIiIiEiGV6ZOCuru7SafTcYchMcuEdY7bVOdYZFo6OjpU5lKkTinBloLS6TS9Gzcx0bwo7lAkRomh3QBsG9XhQqRUiaFdcYcgIjHSGVMKymQyeGIOI8esjjsUiVHjpnUA2g9EpiH7ualV3d3dgAaiEilECbYUNDw8jE3sizsMERGpMOo+KFKcEmwREZGI2chjpFJ7araFN5VK0dTUFHcYIhVLVURERERERCKkFmwREZGIeeNCOlcs3d9XudbUasu8SFSUYEtBTU1N7NnrcYchIiIVpqOjI+4QRCqaEmwpqK2tje2Pbqr5q+GLsZHHdKHn+BgAzT1XRLfMifHgNtEQ3TLlcTwxF29cGHcYdSko07c07jDKRi3YIsUpwZaC1EIBqdQefHSU9pbxuEOJzbah4FKNJc17I1vmA3uCxPqoBaORLVMO9uBAAzZvHp0rajfJq2xLdQwVqWNKsKWoeh+JLJlMMrL5Ns7vGog7lJqytqcFQNu1jNb2tNC4vLNm+wBHTXWdRSRKSrClINU5FZF6oeOdiERJCbYUlMlkGB4erusWnVQqxbx9qmYp1WfbUIK9qVRdf36nQ3WdRSRKyhxERERERCI0ZQu2mS0BPgcc4e4nm9kxwAvc/bKyRzdDZjbg7i1TzPNC4GvAPoLXMzyN5b8OuNfdN4X3Pw381t1/PfOoK09bWxtAXffhzPbBFqk2S5on1Ad7GtTSLyJRKqUF+3LgOuCI8P69wPvLFM9sOh34gruvnE5yHXodcEz2jrt/otaSawgucNRV8CJSD3S8E5EomXvxgUTM7DZ3P9HMet39hHBan7uvnI0AZyLbgm1mq4A1wA7gWGAD8E/A2cDngd3ALe5+upl9CHgTMB/4sbt/MlzWPwPnAQ7cAfwnsC587m7gNODjwDp3v9rMXgZ8geDXgduAd7v7qJltBrrcfYeZdREk96vM7MXAl8PQHXiRu+8p9Nq6urq8p6cngq0kpXj961/Prh3bmd9QvwPu7J0wAOYlotsGo+PBMut5u5aqscFZ0jwx7ec9ONDA0cc+Wy3YIiJlZGYb3L0rf3opFzkOmtliguQPM3s+QWJZLU4Angk8AtwM/J27f93MTuJAUvxKoBN4LmDAtWb2ImAn8LHwOTvMbJG77zKza7PPBTALkgUzayRo8X+Zu99rZt8C3g1cVCS+84B/cfebzawFGMmfwczOBc4FaG9vP7StIdM2PheGWi3uMOLTH9yMRbkNwup8Qy11vF1L0Q+JuQtoXN457acejWrZi4jEpZQE+4PAtcAKM7sZeBLwhrJGFa1b3T0DQcs7sBz4fd48rwz/esP7LQQJ97OAq919B4C775piXU8H7nf3e8P7VwD/QvEE+2bgi2b2XeBH2VhzufulwKUQtGBPEUNkVBc2HM3StjOxavotiLUisT7oSVbP2yAuifUJOpepH3UxOk6JSCWaMsF299vDbgxPJ2jdvcfdq2ns6Nyh4saZ/DUbcIG7/9dBE82ShC33JSrWHDfGgT7vjdmJ7n6hmf0ceDXwv2b2cne/exrrLBvVhRWRSqfjlIhUolKqiDQQJH/Lw/lfaWa4+xfLHNtsug74jJl9190HzGwZQXWR3wA/NrMvufvObBcRYA+wYJLl3A0sN7MOd08DbwNuCh/bDDwH+AVBv20AzGyFu28ENprZC4C/CZcTO9XBDmrjooZbictAsA/W82dwKqpfLSKVqJQqIj8DzgQWEySV2b+a4e7XA1cCfzCzjcDVwAJ3vwv4LHCTmf0JyH6p+D7wITPrNbMVOcsZAd4O/DBczgRBKUCATwFfNrPfEbSkZ73fzO4Mlz9MkICLiIiISJUqpYrIHe5+/CzFI1OYzSoi2Vazeu7/mUwm6X24t677H6sPdnwS6xOcsOyEuv4MTkXHKRGJ06FUEfmFmb0ybOWVOqIKBCJS6XScEpFKVEoL9qnAdwi6k+wjuJDP3X1h+cOTfKqDPbuSySS9d/VCa9yRxKg/vG2NMYZqMkBwSXMUxqCluYXOzumX6atVmUxQaCk70qyUpqOjQ335RcrgUFqw/wN4AbDRp8rGRWqMWscgE1aObFumhKYUqVSK8X2DLI1qgYOD9Pf1RbW0qpcdhat/x45Y46gmW+MOQKQOlZJgp4A7lVxLPVKLj0xXMpmkv6+Ps4tW7ZSZuiysnKrtW7rLplVtVkSiUEqCvQVYb2a/IKemdI2V6ZNJaAAHERGpBzrfSdRKSbDvD//mhX9SJzSAg4iI1AOd7yRqpYzk+KnZCEQqjwaaEZm+VCpV0gADIrNlJ7BdAxYVpQGLJGqljOT4JODDwDM5eIjvl5YxLhERERGRqlRKF5HvAlcBq4F3AWcA28sZlFSGbBksDeAgUrrsRY4ilWIx0NrZqWN5EWrdl6iVkmAvdvfLzOz/uPtNBMOG31TuwCR+KlEnIiL1QOc7iVopCfa+8HaLmb0GeARQQdw6oG/0IjOzFZVGK5ct4a22b+m2onGipqLznUStlAR7rZkdDvwrcDGwEPhAWaMSEalSagkrr4FwJMdWjeRYsla0X4rMtimHSpfKoqHSRURERCrDjIdKD6uInAMsz53f3c+KMkARERERkVpQSheRnwK/A34NjJc3HBERERGR6lZKgt3s7h8peyQiIiIiIjWglAHH1pnZq8seiYiIiIhIDSglwf4/BEn2sJk9ZmZ7zOyxcgcmIiIiIlKNpuwi4u4LZiMQERGJX3d3N+l0Ou4w6k4mLD/YpvKDsevo6FBdbDlkpfTBFhGROpFOp+nduImJ5kVxh1JXEkO7Adg2qtNynBJDu+IOQWqEPslSUHd3N6ARrkTqzUTzIkaOWR13GHWlcdM6AG33mGXfh0Ol86cowZaC9DOxiIjI9On8KaUMNLMCyLj7qJmtAo4HvuXu/eUNTeKWyWQYHh7WN3CROpJKpbC9GuFX6pONPEYqteeQz3upVIqmpqaIopJqVEoVkWuAcTPrAC4DngpcWdaoRERERESqVCldRCbcfczMTgUucveLzay33IFJ/LJXs2f7kolI7Usmk2y4b2vcYYjEwhsX0rli6SGf9/TLr5SSYO8zs38EzgD+IZw2t3whSaXo6OiIOwQREZGqo/OnmHvxvnZmdgzwLuAP7v49M3sq8GZ3v3A2ApSDdXV1eU9PT9xhSMxUq1imMtO6yqlUioHBIWjQNfCzanwsuI1ou3tiLt64MJJl1ZPE0C5OOO4Y/XIrJTOzDe7elT+9lIFmNgHJcCFPABYouRaJVzqd5t47b6e9ZTzuUKRCDe5pAGBkbMu0nnfkXKAVYG/UIUkR24aCS6KWNB/6dn9woAGbN4/OFUsPeVn1Z6lanyUSpVQRWQ+cEs7bB2w3s5vc/YPlDU3ipjqela29ZZzzuwbiDkMq1NqeFgDtI3VobU8Ljcs71QpbIp3rpBxK+S3qcHd/zMzeAXzT3T9pZneUOzCJn7ogiIhIrdO5TsqhlDJ9c8zsKcCbgGiGOBIRERERqVGltGB/GrgO+L2732ZmTwNS5Q1LKoEGmqlcqVSKeftK+X4sIvVm21CCvamUjt0l0qAwUg6lXOT4Q+CHOff/ApxWzqBERERERKpVKRc5NgJnA88EGrPT3f2sMsYVGzNz4Dvu/rbw/hxgC/BHd189w2X+m7t/roT5NgNd7r5jJuuJmgaaqVzJZJKRzbfFHYaIVKAlzRO6yHEa1NIv5VDKb8zfBpYCrwJuAtqAPeUMKmaDwLFmlv296BXAw4e4zH87xOfHoqOjQ+WKRESkpulcJ+VQSh/sDnd/o5m91t2vMLMrCfpk17JfAK8Brgb+Efge8EIAMzsMuBg4jmD7rXH3n5rZmQTlDJuBFcCP3f3DZnYh0GRmfcBd7n66mf0EOJLgF4Evu/uls/jaSqZv9ZU7oEsqlWJ4cA7n3Hh43KHUhb0TBsC8RPGBuSrJ6HgQs/aRytLY4CxpnijrOh4caODosq6htuhcJ+VQ0lDp4W2/mR0LbAWWly2iyvB94BNmtg44HvgGYYINfAy4wd3PMrNW4FYz+3X42ErgBGAUuMfMLnb3j5rZe919Zc7yz3L3XWEr+W1mdo277ywUjJmdC5wL0N7eHtmLlKml02l67+oNB96oIM3B3xAWdyT1oT+4GWutou0dlr8eaqmimGtdPyTmLqBxeWdZV3M0GqpbJG6lJNiXhiM4fhy4FmgBPlHWqGLm7neY2XKC1uv/yXv4lcApZnZeeL8RyGa9v3H33QBmtgk4CnhoklUkzezU8P8jgU6gYIIdtnBfCsFQ6dN+QTOk4vuhVphYVd4WJ6lsifVBbzrtB3IoEusTdC5T3+hDpXOTVINSqoh8Pfz3JuBp5Q2nolwLfAFYBSzOmW7Aae5+T+7MZvY8gpbrrHEm2b5mtgp4OfACdx8KR8pszJ+vElRi1wgREalvOjdJNSiYYJtZ0aHQ3f2L0YdTUb4B7Hb3jWFSnHUd8D4ze5+7u5md4O69Uyxrn5nNdfd9wOHAo2Fy/TfA88sSfQRUBzvo64waLUUkCgPBMaWej6lRUN1qqQbFWrAXzFoUFcjdM8CXJ3noM8BFwB1mZsBmYKryfZeG898OnAW8Kxxu/h7gf6OKWURERETiVzDBdvdPzWYglcLdWyaZth5YH/4/DLxzknkuBy7Pub865/+PAB/Jmf3kAutePpOYy0V1sIM+fr0PT/UDhYhICVpQH+wI6BcAqQZT1sE2syvCahnZ+08ws2+UNSqpCKoNKiIilUbnJqkG5l68KIWZ9br7CVNNk9nR1dXlPT09cYdRN5LJZGWW6ZPZtRNwSqu7JJVvPLxtmOX1jkFLcwudneUt01eLOjo61HItFcnMNrh7V/70Uk4XCTN7grs/Gi5oUYnPE6l6aiURgDsfvRMfG+PIfVPPK5VvS3j7lDguYB4cpL+vL4YVV6+tcQcgMgOlJMr/AdxiZlcTtOG8CfhsWaOSiqBao/X92uWAZDJJf18fZ2tgn5pwGcEvt3o/q0P2/ZLCdL6uPKXUwf6WmfUALyWoAf16d99U9sgkdqo1KiIiUvl0vq48JXX1CBNqJdV1RnWwRQKpVGrqK8JFpCx2AttVP7wo1QavPDpniIiIiIhESBcrSkGqgy0SyPbBFpHZtxho7VT98GLUul95Skqww8ohnq0kIvVBFTREREQqn87Xladggm1m7cDngZcB/cEkWwjcAHzU3TfPRoASH30jFjlgK6pmUCuyZfr0flaHrWgogqnofF15irVgXwVcBJzu7uMAZtYAvBH4PvD8skcnIlIB1DpUWwYyGQBaw25wUtla0WdQqk/BkRzNLOXukw43VewxKS+N5CgiIiJSGWYykuMGM/sqcAXwUDjtSOAMoDf6EEVEREREql+xBPufgbOBTwHLCAaZeQj4GXBZ+UMTEREREak+BRNsd98L/Gf4JyIiIiIiJZjRQDNm9omoAxERERERqQUzHcnxHZFGISIiIiJSI4rVwX6s0EOABrwXEREREZlEsYsc+4ET3X1b/gNm9tDjZ5da093dTTqdjjsMkdhlwrrJbaqbLFL3Ojo6NLCLTKlYgv0t4CjgcQk2cGV5wpFKkk6n6d24iYnmRXGHIhKrxNBuALaNFjtkikitSwztijsEqRLFqoicX+Sxj5QnHKkkmUwGT8xh5JjVcYciEqvGTesA9FkQqXPZY0G96u7uBjQ0eymmdZGjma0pUxxSgYaHh7GJfXGHISIiIhUgnU6r62iJpvt75ynAmjLEISIiIlLRbOQxUqk9dduCm0qlaGpSnYtSTLdMn5UlChERERGRGjHdFuznlCUKERERkQrnjQvpXLF0f1/kelOvLfczUTTBNrOXAO8Dnh5O+rOZXeLu68sdmMSvqamJPXs97jBERESkAnR0dMQdQtUoNtDMa4BLgE8DnyLoHvJs4Btm9l53/5/ZCVHi0tbWxvZHN9X1VdM28pgu9CyHifHgNtEQbxylGh8DoLnnipgDmR2emIs3Low7DJGKE5TpWxp3GLFRC3bpirVgfwh4nbv/KWdan5n1ABcDSrBrnL6pQiq1Bx8dpb1lPO5QasoDe4LE+qgFozFHUpptQ8HlKkua98YcSfk9ONCAzZtH54r6TSJECluqc6OUpFiCvTQvuQbA3e8wsyVljEkqSL2PWJVMJhnZfBvndw3EHUpNWdvTAqDtWoHW9rTQuLyzbvuYzoRqA4tIvmIJ9uAMH5MaoVqXIiJT07FSRPIVS7BXmNm1k0w34GllikcqSCaTYXh4uK5bZVKpFPP2TbeapUj12jaUYG8qVdef++lSbWARyVcswX5tkce+EHUgIiIiIiK1oFiCvQl4krtvyp1oZs8E/lrWqCJgZg58x93fFt6fA2wB/ujuq4s8byVwxFRVUszsTKDL3d87jZgG3L3FzI4Aut39DaU+Nw5tbW0Add0XM9sHW6ReLGmeUB/saVJrv4jkK/bb98XAkyaZ3gZ8uTzhRGoQONbMsr/bvQJ4uITnrQReXa6gANz9kUpPriG4wFFXS4uIFKdjpYjkM/fJBxIxs7vc/ZkFHrvT3Y8ta2SHyMwGgG7gdne/2sy+BdwFvNDdV5vZYQRfIo4jaMlfA/wCSANNBMn4BcD9wEXhtGHg7e5+T9iCfSowH3gqcKW7fypc9weBs8JQvu7uF2VjCluwlwPr3P1YM2sA/h14FeDAf7v7xYVeV1dXl/f09Bz6BpKSJJNJ7r3z9rou07dtKMHIuEW6zNFwefMbNJDRodg7EWzHeYnotuPouNF0WAudnZ2RLbPW1Ht1JRE5wMw2uHtX/vRiXUTmzvCxSvJ94BNmtg44HvgG8MLwsY8BN7j7WWbWCtwK/Br4BDldP8xsIfAidx8zs5cDnwNOC5fxXOBYYAi4zcx+TpAkvx14HsEFoX80s5vcvbdAjOcSJOgnhOtYlD+DmZ0bzkd7e/uMN4ZMn1qlYG8qxZAPQGuECw2r8w21RJu4153+4GasNdrtOMAAvQ8XOmTVuf64AxCRalAswU6Z2avz+yKb2cnAX8obVjTCmt3LgX/k8QPjvBI4xczOC+83ApNlr4cDV5hZJ0HynPvl4lfuvhPAzH4EnBTO82N3H8yZ/kKg0Nnq5cDX3H0sjHnXJK/jUuBSCFqwi73mKKm2a32/9qxkMknvw71MrJqIOxTJk1gf9PLTezN7sttcpkfnE6k3xRLsDwDrzOxNwIZwWhfwAqDgRYIV6FqCqiergMU50w04zd3vyZ3ZzJ6X9/zPADe6+6lhsr4+57H8ZNfD5U6HTbKciqDariIiEgWdT6TeFEyw3f1eMzsOeCtBNwiAm4B3uvvIbAQXkW8Au919o5mtypl+HfA+M3ufu7uZnRB249gDLMiZ73AOXBx5Zt6yXxF26RgGXkfQ73oCuNzMLiRInk8F3lYkvuuBd5nZ+mwXkclaseOgOtgCQY1f1EAqEhgIPhM6Lk6PaoVLvSnWgo27jwLfnKVYysLdM0xe9eQzBBcv3mFmBmwmaJm/EfiomfURXOT4eYIuIh8Ebshbxu+BbwMdBBc59gCY2eUEfbohuMixWGfGrwNHh3HsA/4buGRaL1JEREREKkbBBNvM9jB51wUD3N0Xli2qCLh7yyTT1hN28XD3YeCdk8yzCzgxb/LROf9/PJzvcuDyAuv+IvDFQjG5+2bCXwXCvtcfDP8qiupgCxzogy0iQAt0LlOd8OlSi7/Um2JdRBYUekzqgypoiIhIFHQ+kXpTtIuI1De1OMh+/aqeUJH6gxu9N7OoH1gWdxDVR+cTqTdKsEWkqIGBAVrmtQTV3mVKo6OjAMyfP7/86/JwXUPlX5eE5gUXgCeTSQ04IyIFKcEWkaJaWloYHxxkadyBVIkt4e2TxsZmb6WzuS6BwUHu3rEj7ihEpIIpwZaCNDCAZC0Fzp52iff6dFl4bbi2V227rDKHL4idzhsiASXYUpAGBhARkenQeUMkoARbCtJAMwLBABG6hE7kYDuB7Rpw5nE0oIxIQOdNEREREZEIqQVbCtJAMwJBX8r+vr64wxCpKIuB1k4NOJNPLfoiASXYUpAGBhARkenQeUMkoARbClJLhGRtRVUTSpUt06ftVdu2Aq1xB1GBdN4QCSjBFpGi1CI1PQOZDACtYRcrqU2t6LMhIoUpwRaRotQiJSIiMj2qIiIiIiIiEiEl2CIiIiIiEVKCLSIiIiISISXYIiIiIiIRUoItIiIiIhIhVRERKaK7u5t0Oh13GCKRyoSlBNvqsJRgR0eHKuOISNkpwRYpIp1O07txExPNi+IORSQyiaHdAGwbra9TQGJoV9whiEidqK+jq0xLd3c3oDrIE82LGDlmddxhiESmcdM6gLrbr7OvezI63olIlJRgS0HqGiEi9ULHOxGJkhJsKSiTyTA8PFzXLTqpVArb63GHISIRsJHHSKX2THpMS6VSNDU1xRCViNQiVREREREREYmQWrCloGyFgWzfxHqUTCbZcN/WuMMQkQh440I6Vyyd9JhWz7/UiUj0lGBLQR0dHXGHICIyK3S8E5EoKcGWgtSiE0gM7SpafUCk2iSGdgLFq2rUoqBM39JJH9PxTkSipARbpIhKbdXKXoAqs2N0dBSA+fPnxxxJNEYtuHB3/sSemCOZZY1zyWQyZUumNYiNiGQpwRYpolJPlslkknvvvJ32lvG4Q6kLD4w0AHDk3Br5UjM3+0+NvJ7pGOtnZPOWyBf74EBD5MsUkeqlBFsK0sALla29ZZzzuwbiDqMurO1pAdD2loKy+4jMjM43UmuUYEtBGnhBRERmg843UmuUYEtBGmimcqVSKebtUxl7kUqxbSjB3lRKx8sZ0kA/Umt0hhYRERERiVDZWrDNzIHvuPvbwvtzgC3AH919dbnWm7P+zUCXu+8o1/PMbBVwXrHXY2YrgSPc/X8OdVmzTQPNVK5kMsnI5tviDkNEQkuaJ2hc3qnj5Qyp5V9qTTm7iAwCx5pZk7sPA68AHi7j+irVSqALKJpgV6JKLVEnIiK1RecbqTXl7oP9C+A1wNXAPwLfA14IYGZrgAF3/0J4/05gNbAd+AHQBjQAn3H3q8zsRODLwGHAKPAy4DSC1ub3hstYB3zB3dfnBmFmHwTOCu9+3d0vMrPDJltPznOagB8D1wBXAhcDxxFsszXu/tO8dRyWP0/4+j8NNJnZScAFwP3ARUATQY2st7v7PdPaqrNELQpB630lXnyTSqUYHpzDOTceHncoB9k7YQDMS3jMkURrdDx4XZW2vStVY4OzpHki7jBm1YMDDRwddxBVTOcbqTXlTrC/D3wiTHyPB75BmGAX8ffAI+7+GgAzO9zM5gFXAW9299vMbCElFnA1s+cAbweeBxjwRzO7CXha/npyntYSxv4td/+WmX0OuMHdzzKzVuBWM/t13qo+lj8P8GvgExz8JWAh8CJ3HzOzlwOfI/iiUOw1nAucC9De3l7Ky5aIpNNpeu/qhda4I8nTHPwNYXFHcrD+4GastcLiOlRhdb6hlhp7XeXQD4m5C2hc3hl3JLPqaNQKKyIHlDXBdvc7zGw5Qet1qV0kNgJfMLN/B9a5++/M7Dhgi7vfFi73MQCzkk52JwE/dvfB8Dk/Ikjyf5m/npzn/BT4vLt/N7z/SuAUMzsvvN8I5Ge6pcwDcDhwhZl1Ak7OkA+FuPulwKUAXV1ds9Y0qLqkoVaYWFVfrXEzlVgfXDet7VW/EusTdC5TX2QdP0Xq22yU6bsW+AKwClicM32Mg6uYNAK4+71hq/OrgQvM7HrgJwTJaL5Jl5Fn0ix8svW4+6fDh28GTjazK93dw2Wclt+Vw8yW5K1nsnmel7fqzwA3uvup4ZeP9ZPFVwkqsWuEiEg10PFTpL7NRoL9DWC3u28MK2VkbSboc42ZPRt4avj/EcAud/+OmQ0AZwIXAkeY2YlhF5EFBF1ENgPvMbMEsAx47iTr/y1wuZldSJAEnwq8rcB6sj4BfBz4KvBu4DrgfWb2Pnd3MzvB3Xvz1lNonj3Agpz5DufAxZ5nUsFUBzvo64waY0VKNxB8bur5uAGq6yxS78peB9vdM+7+5UkeugZYZGZ9BEnsveH04wj6OPcR9Gte6+57gTcDF5vZn4BfEbRW30xw0eBGglby2ydZ/+3A5QR9ov9IcJFj72TryXvq+4FGM/s8QavzXOCO8GLMz0zyegrNcyNwjJn1mdmbgc8TtJjfTHBxpYiIiIjUEAt6QEi16Orq8p6enllZV7YFqp77UiaTSXof7lWf4hKpD7Yk1ic4YdkJdX3cAB0/ReqFmW1w96786RoqXQrSFfEiIjOj46dIfVOCLQXVex/K/foPtMzKFPqDG22vmAwQXPodpzFIDakPdiaTAer7YseOjo663w+kfinBFilCrVDTk/EgqWhb1hZzJPUplUoxvm+QpXEHMjhIf19f3FHEak94279jR6xxxGVr3AGIxEwJthSkOq71/dql+iSTSfr7+ji70gYgqkOXhZVl6/W9uGzSyrqSpfNr7VOCLQXV80+bIiIi5aLza+1Tgi0FqQ62SHVJpVLlr70qUoKdwHbVQy9IddJrn47FIiIiIiIRUgu2FNTWFlyopjquItUh2wdbJG6LgdbOTp0/ClDLfu1Tgi0FqYKGiIhI9HR+rX1KsKUgfcMWqT5bUQWHSrAlvK3X92Ir0Bp3EBVM59fapwRbRKRGqFWscgyEA820ttVnTfhWtD9KfVOCLSJSI9QqJiJSGVRFREREREQkQkqwRUREREQipARbRERERCRCSrBFRERERCKkBFtEREREJEJKsEVEREREIqQyfSIyI93d3aTT6bjDEBGJVCasYd5WpzXMq1lHR0fFlCtVgi0iM5JOp+nduImJ5kVxhyIiEpnE0G4Ato0qRaomiaFdcYdwEO09UlB3dzegwSuksInmRYwcszruMEREItO4aR2Ajm1VpnHTOjKZDN3d3RWRtyjBloL087+IiIhUi+Hh4YrJXZRgS0GZTIbh4eGK+CYolSeVSmF7Pe4wREREsJHHGB4f2d+HPm6qIiIiIiIiEiG1YEtB2Suos32xRXIlk0k23Lc17jBERETwxoU0TVjFVH9Rgi0FdXR0xB2CiIiISEmampoqJncxd/WhrCZdXV3e09MTdxgSs0qoQZ1KpRgYHIIGfU+PzcR4cJtoiDcOqSmemIs3Low7jNgkhnYCMNG8OOZIZDoSQ7s44bhjZv1XdzPb4O5d+dN1ZhSpQul0mnvvvJ32lvHYYjhyLtAKsDe2GOrdA3uCxPqoBaMxRyK14sGBBmzePDpXLI07lNhkMmMAtLXV7zaoTksrpvUalGBLEaqDXdnaW8Y5v2sg7jAkRmt7WgC0H0hk1va00Li8U9feHCKdP0UJthQUdxcEERGRaqTzpyjBloJUB7typVIp5u1TlU0Rida2oQR7Uykd9w9RKpWiqakp7jAkRjpDi4iIiIhEqKpbsM3MgS+6+7+G988DWtx9TYTrWA6sc/djo1pmtVAd7MqVTCYZ2Xxb3GGISI1Z0jyhPtgR0C8AUtUJNjAKvN7MLnD3HXEHU2sq6WpcERGRaqHzp1R7gj0GXAp8APhY7gNm9iTga0B7OOn97n6zmS0CvgE8DRgCznX3O8xsDbACWAYcCXze3f87b5nLgW8Dh4WT3uvut5jZU4CrgIUE2/Td7v47MxsAvgK8HHgU+Dfg82FM73f3a83smcA3gXkEXXZOc/dUFBvnUOkbeGXUm55MKpVieHAO59x4eNyhxGbvhAEwL1G/tfxHx4NtUM/7wWxobHCWNE/EHcaseHCggaPjDqIG6Pwp1Z5gQ5DA3mFmn8+b/mXgS+7+ezNrB64DngF8Cuh199eZ2UuBbwErw+ccDzyfIIHuNbOf5y3zr8Ar3H3EzDqB7wFdwFuB69z9s2bWADSH8x8GrHf3j5jZj4G1wCuAY4ArgGuBdwFfdvfvmtk84HEjRpjZucC5AO3t7fkPSxml02l67+oN6z1XkObgbwiLO5L49Ac3Y611vA3C6nxDLXW8DcqtHxJzF9C4vDPuSGbF0aj1VSQKVZ9gu/tjZvYtIAkM5zz0cuAYs/0nnoVmtgA4CTgtfO4NZrbYzLLNPz9192Fg2MxuBJ4L9OUscy5wiZmtBMZh/xf924BvmNlc4Cfunn3OXuCX4f8bgVF332dmG4Hl4fQ/AB8zszbgR5O1Xrv7pQQt9XR1dc1ac53qeIZaYWJVfbReVZPE+uAabb03Uk6J9Qk6l6lP8qHS+UTqTdUn2KGLgNsJulpkJYAXhAnzfpaTcefwvNv86VkfALYBzwqXPwLg7r81sxcBrwG+bWb/z92/BezzA2PRTxD0GcfdJ8xsTvj/lWb2x/C515nZO9z9htJednlVYtcIERGpPjqfSL2piTJ97r4L+AFwds7k64H3Zu+Erc4AvwVOD6etAna4+2PhY681s0YzWwysImiZznU4sMXdJ4C3EXbnMLOjgL+GfbYvA55dauxm9jTgL+7eTdBl5PhSnysiIiIiladWWrAB/oOchJqgy8hXzOwOgtf5W4L+zmuAb4bTh4Azcp5zK/BzgosQP+Puj4QXNmZ9FbjGzN4I3AgMhtNXAR8ys30EvSL/eRpxvxn4p/C5W4FPT+O5ZaWBZoKLCVEPBJH6NRAcB+r5OBgFDbwi9aaqE2x3b8n5fxsHLi4kLNv35kmeswt4bYFF3uvu5+bNvxk4Nvw/xcEtzP83nH4FwUWLxeJbM9lj7n4BcEGBeERERESkylR1gi3lpYFmggtyeh/ujTsMEYlLC7rIMQL6BUDqjRLsUJSjP9YKlWoSEZEo6Hwi9cYOFLmQatDV1eU9PT1xh1E3kslkZdbBlv11sPXe1LgBgiHF4jIGLc0tdHbWRx3sTCYDHPgFU2auo6NDLfd1wMw2uHtX/nS1YIsUoVaXypXxMBFYpkSglqVSKcb3DbI0ziAGB+nv64szglmzJ7zt37Ej1jiq3da4A5DYKcGWgjQwQH2/dpFKkEwm6e/r4+x6HrV0Fl0WDv+g7X1oLnvcMBoymVrOM5RgS0EaGEBERETKpZbzDCXYUpDqYItI3FKpVG2MiCZ1ZSewXfXTp1TL9dF13BIRERERiZBasKUg1cEWkbhl+2CLVJPFQGun6qdPpZZb+JVgS0GqoCEiIiLlUst5hhJsKaiWv1mKSPXYiqoyzJYt4a2296HZikr0l6KW8wwl2CIiUrFquYWrEg2EA820aqCZQ9KK9t16pwRbREQqVi23cIlI7VIVERERERGRCCnBFhERERGJkBJsEREREZEIKcEWEREREYmQEmwRERERkQipiohIjenu7iadTscdhohIVcqEpQrbplGqsKOjQxVv5CBKsEVqTDqdpnfjJiaaF8UdiohI1UkM7QZg22hpKVJiaFc5w5EqpQRbCuru7gZUh7YaTTQvYuSY1XGHISJSdRo3rQMo+Rianb/eKWc4mBJsKUjdDERERKQUyhkOpgRbCspkMgwPD+vbaJVJpVLYXo87DBGRumAjj5FK7an7c2UqlaKpqSnuMCqGqoiIiIiIiERILdhSUPYK6my/KqkOyWSSDfdtjTsMEZG64I0L6VyxtO7PlfXegp9PLdgiIiIiIhFSC7YU1NHREXcIIiIiUgWUMxzM3HUxVDXp6urynp6euMOQmBUbTCaVSjEwOAQN+v4ci4nx4DbREG8cMilPzMUbF8YdhlSwxNBOACaaF5c4/y5OOO6Yuu8iUq/MbIO7d+VP1xlYpAql02nuvfN22lvGH/fYkXOBVoC9sxyVADywJ0isj1owGnMkku/BgQZs3jw6VyyNOxSpYJnMGABtbaXuJ0vVeiuPowRbClLR+MrW3jLO+V0DcYchedb2tADovalAa3taaFzeqZbGAnTMF4mOEmwpSEXjRUTqh475ItFRgi0FaaCZypVKpZi3T0WARKZj21CCvamUjmkFaKAQkejoDC0iIiIiEqG6bME2Mwe+6O7/Gt4/D2hx9zWxBlZhNNBM5Uomk4xsvi3uMESqypLmCfXBLkIt+yLRqcsEGxgFXm9mF7j7juk+2czmuPtYGeKqKLoqWkSkfuiYLxKduqyDbWYDwGcJWq0/ltuCbWZPAr4GtIezv9/dbzazNcARwHJgB7ACOMvd7wqXuR74V+B+4BvA04Ah4Fx3vyN8/oC7fyGc/05gNbAd+AHQBjQAn3H3qwrFrjrYAvD617+eXTu2M7+h/j6/lWTvhAEwL3HgfRgdD6bpvak8o+NG02EtdHZ2AkFCqVZbETkUqoP9eF8B7jCzz+dN/zLwJXf/vZm1A9cBzwgfew5wkrsPm9kHgDcBnzSzpwBHuPsGM7sY6HX315nZS4FvASuLxPH3wCPu/hoAMzs8fwYzOxc4F6C9vT3/YalT43NhqNXiDqO+9Qc3Y7nvQ1idb6hF700lGmCA3od79793IiLlULcJtrs/ZmbfApLAcM5DLweOMdt/clxoZgvC/6919+y8PwB+BXySINH+YTj9JOC0cB03mNniyZLmHBuBL5jZvwPr3P13k8R6KXApBC3Y03ulM6eaqJWrra2N7badiVUTcYdS1xLrg+vE9T5Un+x7JwfTcV8kGnWbYIcuAm4HvpkzLQG8ICeRBiBMuAez9939YTPbaWbHA28G3pmddZL1ODDGwVVbGsPl3GtmzwFeDVxgZte7+6cP5UVFRTVRRUTqi477ItGo6wTb3XeZ2Q+Aswn6TQNcD7wX+H8AZrbS3fsKLOL7wIeBw919Yzjtt8DpwGfMbBWwI2wt30zQ5xozezbw1PD/I4Bd7v6dsG/4mRG+xEOiOtiVK5VKgRpNRWZuIPgc6fh2MNXCFomGfiOD/wCemHM/CXSZ2R1mtgl4V5HnXg28haC7SNaa7POBC4EzwunXAIvMrA94N3BvOP044NZw+seAtYfyYkREREQkXnXZgu3uLTn/bwOac+7vIOjykf+cNZNM20beNnT3XcBrJ5l3GHjlJOFsJriQsuKoDnblSiaTwYVaIjIzLdC5TDWx86lFXyQadZlgS2lUE1VEpL7ouC8Sjbqsg13NVAdbIGzBvqsXWuOOZBYNEFwqXEmy8dRDU8V4eNsQaxTRGYOW5gM1sWuVan2LlJfqYIvUkHpsZUqlUozvG2Rp3IHk2BneLt4XaxizYkt4+5Raurh2cJD+vr64oyibrXEHIFLHlGBLQaqHWrnq8T1JJpP09/Vx9qSVMKXcLiP4tVPbv3pk3zOZHp37JApKsKUg1UMVEZF6o3OfREEJthSkOthSSVKplOqKikzDTmC7an1Pm2qBSxR0vhIRERERiZBasKUg1cGWSpLtgy0ipVkMtHaq1vd0qcVfoqAEWwqqx0oVIiJS33TukygowZaC9C1eKs1WVBkhLtkyfdr+1WMr9VUqPyo690kUlGCLSFVQq1K8BjIZAFrDrmNS+VrR50YkLkqwRaQqqFVJRESqhaqIiIiIiIhESAm2iIiIiEiElGCLiIiIiERICbaIiIiISISUYIuIiIiIREgJtoiIiIhIhFSmT0QqUnd3N+l0Ou4w6lomrH3dptrXFa2jo0NlLEUqjBJsEalI6XSa3o2bmGheFHcodSsxtBuAbaM6VVSqxNCuuEMQkUnoqCkFdXd3AxrgQ+Iz0byIkWNWxx1G3WrctA5A70EFa7r9yv2/NIhI5VCCLQXp53kRkcpmE/sYHh6OOwwRyaMEWwrKZDIMDw+rBVtikUqlsL0edxgiIiLTpioiIiIiIiIRUgu2FJStHJDtiy0ym5LJJBvu2xp3GCIiItOmBFsK6ujoiDsEEREpwhNzaWpqijsMEcmjBFuKSqfT6oNdgeqhPnEqlSIxOERzzxVxhxILT8zFGxfGGkNiaCdwoJqIVB6bGKvp44BItVKCLQWl02nuvfN22lvG4w5F8gzuaQBgZGxLzJGUz5FzgVaAvfEGEoMHBxqwefPoXLE01jgymTEA2trijUOKWapfG0UqkBJsKSiTyTA/4ZzfNRB3KJJnbU8LgN6bGrW2p4XG5Z26/mEGVL9fRCqBEmwpaHh4mIlxizsMEZGSqX6/iFQCJdgiIhVm21CCvamUWmFnIJVK6aI/EYmd6mCLiIiIiESoblqwzWwc2Ejwmv8MnOHuQyU+9wig293fMMN1vx+4dKr1mdl64Dx375nJekSkNixpnlAf7BlSq7+IVIJ6asEedveV7n4sQVmCd5XyJDOb4+6PzDS5Dr0faD6E58eiqamJxgYNVS0i1aOjo0NVNUQkdnXTgp3nd8DxZnYYcDFwHMG2WOPuPzWzM4HXAI3AYWZ2FrDO3Y8NHzuFIGFeAfzY3T8MYGb/CZwINAFXu/snzSwJHAHcaGY73P0lk803a698Gtra2rj3zr/ur1ghleOBsEyf3pva9OBAA0fHHUSVUgu2iFSCukuwzWwOcDLwS+BjwA3ufpaZtQK3mtmvw1lfABzv7rvMbHneYlYCJwCjwD1mdrG7PwR8LJy/AfiNmR3v7t1m9kHgJe6+I3z+ZPPdUcaXPSMDAwPY/AU8tC/uSOIzOjoKwPz582OO5GD7LIjroX2VFddsa2pqqslBNo5GI6mKiFSzekqwm8ysL/z/d8BlwC3AKWZ2Xji9EWgP//+Vu+8qsKzfuPtuADPbBBwFPAS8yczOJdiuTwGOASZLnEudj3Ad5wLnArS3txeaLXItLS0M7B0IB/uoU+EYJ/uaK+xbRtjhaB8VFtds6ofOTvVTFhGRylNPCfawu6/MnWBmBpzm7vfkTX8eMFhkWaM5/48Dc8zsqcB5wInu/qiZXU6QsB+k1PlyufulwKUAXV1ds9YpOpPJwByYWDUxW6usOIn1wWUK9bwNKlViXWL/kPEiIiKVpJ4ucpzMdcD7wkQbMzvhEJa1kCAp321mSwi6oWTtARaUMF9FGR4ehrG4oxApYCzcR0VERCpMPbVgT+YzwEXAHWGSvRlYPZMFufufzKwXuAv4C3BzzsOXAr8wsy3hRY6F5hMRERGRKlc3Cba7P67cgrsPA++cZPrlwOU59zcDxxZ4bHXO/2cWWPfFBNVKpppvVZGXICIiIiJVoN67iIiIiIiIREoJthTU1NRUR79xSNWZE+6jIiIiFUbpkxTU1tbG9ru276+kUZf6g5u63gaVaoySa2B3d3eTTqfLHJBUqmy1mThrpnd0dGgQHJE6ogRbCtJAF5Dx8MS8rPYGM6l6y0rfR9PpNHf39bG0zCFJZdoT3vbv2FF0vnLZGstaRSROSrClKLW6SK1YCpyNxR2GxOAyguED4nr/s+svJjtgko63IrVBCbYUpJ/URURmh463IrVFCbYUlMlkGB4eVouKVL1UKqUruiU2O4HtqVTRY2kqldJFuyI1ROccEREREZEIqQVbCspecZ/tGyhSrZLJJP19fXGHIXVqMdDa2Vn0WKpfCkVqixJsKUhVREREZoeOtyK1RQm2FKQWFaklWymtmoPUni3hbVzv/1agdYp5dLwVqS1KsEWk5ql1sL4NhAPNtMY00Ewr2gdF6o0SbBGpeWodFBGR2aQqIiIiIiIiEVKCLSIiIiISISXYIiIiIiIRUoItIiIiIhIhJdgiIiIiIhFSgi0iIiIiEiGV6RMREZGq0d3dTTqdLtvyM2Hd9FWrVqnEp8yYEmwRERGpGul0mt6Nm5hoXlSW5SeGdsP4WFmTeKl9SrBFRESkamQyGTwxh5FjVpdl+Y2b1pEY2nnQtO7ubkCDVknplGCLiIhI1RgeHsYm9s3qOtWaLdOlBFtEREQk18Q4qVRqf4t1KpWiqakp5qCkmqiKiIiIiIhIhNSCLSIiIpIr0UBnZ6f6XsuMKcEWERGRqtHU1MSevT6r6+zo6JjV9Un1U4ItIrOu3HVsa0W2Hm9bW1vMkUg96ujoqMiW27a2NrY/uonGTevKsvzE0E4YHztoWiVuB6lsSrBFZNal02nuvfN22lvG4w6log3uaQBgZGxLzJFIvXlwoCHuEAoqd2tyJjM2K+uR2qYEW6QI9b8rn/aWcc7vGog7jIq2tqcFQNtJZl1236tEs3E8zh77RWZKCbZIEerGICJSf3Tsl0OlBFukiEwmw/DwsFqwI5ZKpZi3T1VCRSrVtqEEe3PqQNcb1b2WQ6UznIiIiIhIhGqiBdvMxoGNBK/nz8AZ7j4Ub1RSC7LVG9QfL1rJZJKRzbfFHYaIFLCkeYLG5Z11e+yr15Z7iU5NJNjAsLuvBDCz7wLvAr6YfdDMGtxd5Qpk2nQVuYhI/dGxXw5VrSTYuX4HHG9mq4BPAluAlWZ2HHAhsAqYD3zF3f/LzBLAJcCLgfsJus18w92vNrPNwBXAPwBzgTe6+91m9lzgIqAJGAbe7u73mNmZwClAM7AC+LG7fxjAzP4e+BzQAOwAXgHcA/ytu28P47gXeL677yjb1pFpUStG+Tw40BBLpYJtQwlGxm3W1zsTo2Gc59x4+LSfu3fCmGPOUxeqbUGm78GBBo6OO4gY6dgvh6qmEmwzmwOcDPwynPRc4Fh3v9/MzgV2u/uJZjYfuNnMrgeeAywHjgOeTNDF5Bs5i93h7s82s/cA5wHvAO4GXuTuY2b2coLE+bRw/pXACcAocI+ZXQyMAP8dPud+M1vk7hNm9h3gdIJk/eXAnyZLrsPYzwVob28/1M0kErs4W4f2plIM+QC0xhZC6cLqfEMtM/hCsAOcOTQuf3a0MUldOBq14oocilpJsJvMrC/8/3fAZcDfAre6+/3h9FcStGy/Ibx/ONAJnAT80N0ngK1mdmPesn8U3m4AXp/z3CvMrBNwgtbtrN+4+24AM9sEHAU8AfhtNhZ33xXO+w3gpwQJ9lnANyd7ce5+KXApQFdX16yND6sa0FIuce5TyWSS3od7mVg1EVsMsyFxTYJEIlG3fWhFROJUKwn2/j7YWWYGMJg7CXifu1+XN99rplj2aHg7zoHt9RngRnc/1cyWA+snmT/3OUaQiB/E3R8ys21m9lLgeQSt2RVDdUBFqpjDxERtf4kQEalUtZJgl+I64N1mdoO77zOzo4GHgd8DZ5jZFcCTCPpoXznFsg4PnwtwZgnr/gPwFTN7ak4XkWwr9teB7wDfrrQLMVUDWmpRKpUC5Z0iIlJG9VQH++vAJuB2M7sT+C+CLxjXABkgO+2PwO4plvV54AIzu5ngosWi3H07QR/qH5nZn4Crch6+FmihQPcQEREREaku5j5rXXorlpm1uPuAmS0GbgX+zt23ztK6u4AvufsLS5m/q6vLe3p6yhxVINtyrT6cUkvqpg/21QkarIH169fHHYqISM0ysw3u3pU/vZ66iBSzzsxagXnAZ2Yxuf4o8G4qrO91lq4gF6liBolEPf1IKSJSOZRgA+6+Kqb1XkhQm7siqe+11Kx+SKyv8eTTYf78+XFHUXbd3d1Vc0F2JpMBDowQK1Pr6OjQuUiqkhJsEakr9fLLTMYztLa2xh1G2aXTae7u62Np3IGUYE94279DY4mVYlZ+ShYpEyXYIlJX1BpWe5YCZ1P5o3NeFlZrrYZYK8Flj69uK1I1avw3UhGpRN3d3bp4VkSqjo5dUiq1YIvIrKuWPrMiIrl07JJSKcEWkVmnQYwkKqlUSj/F1qidwPZUqqKOE6lUiqamprjDkCqg45KIiIiISITUgi0isy5bpkx9GeVQJZNJ+vv64g5DymAx0NrZWVHHiUpqTZfKpgRbRGZdvZTKE5HaomOXlEoJtojMOrUCSZS2Uh0l3baEt9UQayXYCrTGHUQeHbukVEqwRUSkalVTi+JAOJJjq0ZyLEkr1fX+iuRSgi0iIlVLLYoiUolURUREREREJEJKsEVEREREIqQuIiIiIiJ1Yt++fWQyGUZGRuIOpao0NjbS1tbG3LlzS5pfCbaIiIhInchkMixYsIDly5djZnGHUxXcnZ07d5LJZHjqU59a0nPURURERESkToyMjLB48WIl19NgZixevHharf5qwZaCuru7SafTcYcRq0xYVqtNZbUkJh0dHaqUISKRUnI9fdPdZkqwpaB0Ok3vxk1MNC+KO5TYJIZ2A7BtVB8VmX2JoV1xhyAiIjOgrEEKymQyeGIOI8esjjuU2DRuWgdQ19tA4pPd/6Sw7u5uQPWwReLW3d3Nf/7nf/LsZz+b7373uyU/b/Pmzdxyyy289a1vLWN0s08JthQ0PDyMTeyLOwwRkYLqvRubSKX46le/yi9+8YuSLwLM2rx5M1deeeW0E+zx8XEaGhqm9ZzZpARbRKRC2chjpFJ71DpbRCqVoqmpKe4wROrau971Lv7yl79wyimn8Ja3vIX77ruPjRs3MjY2xpo1a3jta1/L5s2bedvb3sbg4CAAl1xyCX/7t3/LRz/6Uf785z+zcuVKzjjjDJ7whCfQ09PDJZdcAsDq1as577zzWLVqFS0tLXzwgx/kuuuu4z/+4z/YvHkz3d3d7N27l+c973l89atfrZikW1VERERERGTGvva1r3HEEUdw4403Mjg4yEtf+lJuu+02brzxRj70oQ8xODjIk5/8ZH71q19x++23c9VVV+1vOLjwwgt54QtfSF9fHx/4wAeKrmdwcJBjjz2WP/7xjyxevJirrrqKm2++mb6+PhoaGqbVNaXc1IItIlKhvHEhnSuW7u9nLI+n1n2RynL99ddz7bXX8oUvfAEIygI++OCDHHHEEbz3ve/dnwzfe++90152Q0MDp512GgC/+c1v2LBhAyeeeCIQdGt98pOfHN0LOURKsKWgpqYm9uz1uMMQESmoo6Mj7hBEJIe7c8011/D0pz/9oOlr1qxhyZIl/OlPf2JiYoLGxsZJnz9nzhwmJib238+tPd3Y2Li/C4i7c8YZZ3DBBReU4VUcOiXYUlBbWxvbH91U15UMEkM7gcqr5mAjj+kC1GoyMR7cJqbZN3B8TH2wS1RsG6mWuMjsedWrXsXFF1/MxRdfjJnR29vLCSecwO7du2lrayORSHDFFVcwPh4cFxcsWMCePXv2P3/58uV89atfZWJigocffphbb7110vW87GUv47WvfS0f+MAHePKTn8yuXbvYs2cPRx111Ky8zqkowZaC1DIEmcwYAG1tS2OO5GCp1B58dJT2lvG4Q5ESPLAnSKyPWjA6g2fvZWTzbdEGVEceHKiMC55E6sXHP/5x3v/+93P88cfj7ixfvpx169bxnve8h9NOO40f/vCHvOQlL+Gwww4D4Pjjj2fOnDk861nP4swzz+T9738/T33qUznuuOM49thjefaznz3peo455hjWrl3LK1/5SiYmJpg7dy5f+cpXKibBNnd1AagmXV1d3tPTMyvrUn3ZypVMJhnZfBvndw3EHYqUYG1PC4Derxis7WmhcfmJ6sdeIh33a9+f//xnnvGMZ8QdRlWabNuZ2QZ378qfVy3YUpDqy4qI1Bcd90WioQRbCspkMgwPD6slowKlUinm7VOVTZGpbBtKsDeV0nGsRKorLhINnaFFRERERCKkFmwpqK2tDUB9FytQtg+2iBS3pHmCxuWdOo6VSC39ItGoyhZsMxs3sz4zu9PMfmZmrREv/5YZPOffooxBRERERKpTVSbYwLC7r3T3Y4FdwL9EuXB3/9v8aWY2Va2naSXYFqjo7d/R0aFSfSIidUTHfZFo1EIXkT8AxwOY2QrgK8CTgCHgHHe/28zeCHwSGAd2u/uLzOxM4FRgPvBU4Ep3/1S4nAF3bzGzVeHztgArgWPM7CfAkUAj8GV3v9TMLgSazKwPuMvdTzezDwJnhTF+3d0vMrPlwC+AG4EXAD8xs1Z3/0C43nOAZ7j7B8uypaZJPxUG3WMq8ar6VCrF8OAczrnx8Gk9b++EATAvofKcs2l0PNju032/yqmxwVnSPDH1jFXuwYEGjo47iCqi4379+Zf3n8e2HbsiW96SJy7iKxd9IbLlbd68mWc84xk8/elPZ+/evXR1dXHZZZcxd+5c1q9fz0te8hKuvfZa/uEf/gGA1atXc95557Fq1SoAtm/fzhFHHMEll1zCO9/5zsjimkpVJ9hhq/LLgMvCSZcC73L3lJk9D/gq8FLgE8Cr3P3hvO4kzwWOJUjGbzOzn7t7fpHp5wLHuvv94f2z3H2XmTWFz7nG3T9qZu9195VhXM8B3g48DzDgj2Z2E/Ao8HTg7e7+HjM7DLjDzD7s7vvC5zzu3Tezc4FzAdrb22e4tWQm0uk0vXf1QmvckeRpDv6GsOk9rz+4GWud5vPk0ITlr4daKmS790Ni7gIal3fGHUnZHY0GzRIpZtuOXdz/lFXRLXDL+uiWFVqxYgV9fX2Mj4/zile8gh/84AecfvrpQHC92Gc/+9n9CXa+H/7whzz/+c/ne9/7nhLsEmRbi5cDG4BfmVkL8LfAD832n8Tmh7c3A5eb2Q+AH+Us51fuvhPAzH4EnATkJ9i35iTXAEkzOzX8/0igE9iZ95yTgB+7+2DOsl8IXAs84O7/C+Dug2Z2A7DazP4MzHX3jfkv1t0vJfjyQFdX16w1PWrAgVArTKyqjZa+xPqgV1KtvB6ZmcT6BJ3LdOFfKXQcFIne5s2bOfnkkznppJO45ZZbWLZsGT/96f9v797Do6ru/Y+/vwkRGiJEyJG7BE5QLuUiCYgIVn9aSv1xiRKFFqm0VJDL4ak93jiKxSM++lN67A+tUmwVtQgKeAG1LdqWm1w03BREnXjkFgQSlBwCBCFZ54/ZhBAykITJ7Mzk83qeeWZmz95rf9dk1uxv1qy99lvk5uZyxx13kJeXR3x8PAsWLCA+/tQI3fj4eHr37k1ubm7psu7du3P8+HHee+89fvjDH56xr3nz5vHb3/6Wn/70p+Tm5tKqVauI1LFWjwE+i6Neb3Fb4AKCY7DjgIPe2OyTt04Azrk7gAcIJsSbzKypV075ZLWi5PXwyQfekJHrgSudc92BjQSHipR3tm6qw+We/xEYTbD3+oWzbBdxOTk5tXJ4hIhIpOh7UKRmBAIBJk6cyNatW0lOTmbRokWMHDmSiRMnsnnzZlavXk2LFi1O26aoqIh169YxcODA05Y/8MADTJ8+/Yx97Nq1i71799K7d29uueUWXn311RqtU1nR2oMNgHOuwMwmA28BzwJfmdnNzrkFFuzG7uac22xm/+qcW0dwqMZggok2wA/NrAlwFMjk1JjpUBoD3zrnjphZR6BPmdeOm1mCN9RjBcEe88cIJts3AqNC1GGdmbUBeuKNJa8tdKGZ4BcA6uyVWFMY/GzX5bZdWbrwikjNaNeuHT169AAgPT2dr776itzcXG68MThIoEGDU/2XX375JT169CAQCJCVlUW3bqenS/379wdg5cqVpy2fP38+t9xyCwAjRoxgzJgx/PrXkTnNLVp7sEs55zYCm4ERwEhgjJltBrYCQ73VnjCzT8xsC8Hkd7O3fBXwMrAJWFTB+Ovy/grUM7OPgYeBtWVem01wPPVc59wGYA7wIbCO4EmOG89S7mvAB865bytRZREREZGoVr9+/dLH8fHxfPtt6BTo5BjsnJwc1q5dy+LFi89Y5/777+eRRx45bdm8efOYM2cOqampDBkyhM2bNwc7ziIgKnuwnXNJ5Z6XHdk+sNzqOOduKr/MG6e93zk3KVT5zrllwLIyy48BPw4R073AvWWe/xfwX+XW2U7wpMry+gFPVlSun3ShmeC4y425Z/vfSCQKJaEx2JWkXn6RyGjUqBGtW7fmzTffJDMzk2PHjlFcXHzaOi1atOCxxx7j0UcfZciQIae9NmDAAKZOncqePXsA+Pzzzzl8+PBp47V/85vfMH/+fKZOnVrj9YnKBDtWeDOafAhsds793edwzqAz70WkrtP3oMS6ZilNwjrzR7OUJtXe9uWXX2bcuHE8+OCDJCQksGDBAuLiTh9skZmZybRp084YDgLBXuyhQ4ODF+bNm1c63OSkYcOGMWLEiIgk2Oac5sONJhkZGS47+1wjWSRcJk+eXDun6auug959so8x+K0QOOF3ED47AUmJSXToEPvT9MWC3bt3A6d+Vawr0tLS9AtCDdi2bRudOnXyO4yoVNF7Z2brnXMZ5ddVD7bIWcRa79Vu5x2oW9WtA3VZgUCA4uOHae53IH47fJiDmzb5HYVUwiHv/mB+vq9xRNJevwMQOU9KsCUkzf9at+seqyZPnszBTZsYU9WL9Ij45E/eDLJ16TP7pwpnzZWq0DHcX0qwJSTN/SoiIhKddAz3lxJsCUnzYEssCgQC0T8/qUiMOwDkaa7286I53P2l44yIiIiISBipB1tC0jzYEotOjsEWkdqrKZDcQXO1nw/1/vtLCbaEFGszaIiIiNQVlT2GT7lzIgUHwjdvS+OmzXn0yd+HrbxopQRbQtJ/vxKr9qJZCiR6fO3d16XP7F7q9nT94VDZY3jBgb3cl/ZF2Pb7mM6tBJRgi0gdo19mJNoUeheaSa5DF5pJRm01lj388MPMnTuXNm3akJKSQnp6OjfeeCMTJ04kLy+PxMREnnvuOTp27Mjo0aNp1KgR2dnZ7N27l8cff5ysrCwAnnjiCV577TWOHTvGjTfeyEMPPcThw4e55ZZb2L17N8XFxUydOpXhw4dHvI5KsEWkTtEvMyIi/snOzmbRokVs3LiREydO0LNnT9LT0xk7diyzZs2iQ4cOrFu3jgkTJvCPf/wDgK+//ppVq1bx2WefMWTIELKysli6dCmBQIAPP/wQ5xxDhgxhxYoV5OXl0bJlS9555x0ACgoKfKmnEmwRERERiYhVq1YxdOjQ0ikEBw8eTFFREatXr+bmm28uXe/YsWOljzMzM4mLi6Nz587s27cPgKVLl7J06VIuv/xyAAoLCwkEAvTv35+77rqLe++9l0GDBtG/f/8I1u4UJdgiIiIiEhHOnXkuQUlJCcnJyWwKMcNT/fr1z9jeOceUKVMYN27cGeuvX7+ed999lylTpjBgwAAefPDB8ARfBZoHW0REREQiol+/fixZsoSioiIKCwt55513SExMpF27dixYsAAIJs+bN28+azk/+tGPeP755yksLAQgNzeX/fv3s2fPHhITE7n11lu566672LBhQ43XqSLqwRYRERGpoxo3bR7WmT8aN21+1td79erFkCFD6N69O23btiUjI4PGjRszd+5cxo8fz/Tp0zl+/DgjRoyge/fuIcsZMGAA27Zt48orrwQgKSmJP//5z+Tk5HD33XcTFxdHQkICzz77bPgqVwVWUVe91F4ZGRkuOzvb7zBEREQkCm3bto1OnTr5GkNhYSFJSUkcOXKEq6++mtmzZ9OzZ09fY6qMit47M1vvnMsov656sEVEREQkYsaOHcunn35KUVERt912W1Qk11WlBFukFpo5cyY5OZqtP1bs9uYxbh3BeYzT0tI0JaGI1EqvvPKK3yHUOCXYIrVQTk4OGz/5lJLEJn6HImEQdyQ4D+u+Y5H5yo078k1E9iMiIhVTgi0hzZw5E9CFOfxSktiEos6D/A5DwqDBp28DROzveXJ/1aF2LyJy/pRgS0gaoiBS96jdi4icPyXYEtLu3bs5evSoerJ8EAgEsO80w49UjxX9D4HAoWq13UAgUHqFNRERqR4l2CIiIiJ11KR/n8S+A/vCVl6zps14+rdPh6288m644QZeeeUVkpOTq7ztm2++yaWXXkrnzp3DH1g5SrAlpJMzHpwckymRM3nyZNZ/udfvMCRKuQaN6PCvzavVdvWLlUjdsu/APvak7wlfgevDV1RZzjmcc7z77rvVLuPNN99k0KBBEUmwdal0CSktLY20tDS/wxCRCFK7F5GadO+99/LMM8+UPp82bRoPPfQQ1113HT179qRr16689dZbAGzfvp1OnToxYcIEevbsya5du0hNTSU/Px+AzMxM0tPT6dKlC7Nnzy4tMykpifvvv5/u3bvTp08f9u3bx+rVq1m8eDF33303PXr04Msvv2TmzJl07tyZbt26MWLEiLDWU1dyjDK6kmNk+TUfdSAQoPDwEYjXj0zVUlIcvI+L9zeOk4pPBO8j9fcsPkFSw0Q6dOgQmf1JlWiOcvFT+asR3jz65rD2YLdc35IFcxaEfH3jxo386le/Yvny5QB07tyZv/71ryQnJ9OoUSPy8/Pp06cPgUCAHTt20L59e1avXk2fPn0ASE1NJTs7m5SUFL755huaNGnC0aNH6dWrF8uXL6dp06aYGYsXL2bw4MHcc889NGrUiAceeIDRo0czaNAgsrKygrG2bMlXX31F/fr1OXjw4DmHnehKjiJhkpOTwxdbNnBJUnFE99smAUgG+C6i+40VOw4FE+u2Fx7zOZKgfUeCPxY2S4zk3/M7irZ/FMH9SWXsLKwl//SJ+OTyyy9n//797Nmzh7y8PC666CJatGjBnXfeyYoVK4iLiyM3N5d9+4Ljwtu2bVuaXJc3c+ZM3njjDQB27dpFIBCgadOmXHDBBQwaFJwWNT09nffee6/C7bt168bIkSPJzMwkMzMzrPVUgi0haT7coEuSinkgo9DvMKQKpmcnAejvJrXOyc+mVJ+OTdEvKyuLhQsXsnfvXkaMGMHcuXPJy8tj/fr1JCQkkJqaSlFREQANGzassIxly5bx/vvvs2bNGhITE7nmmmtKt0lISMDMAIiPj+fEiRMVlvHOO++wYsUKFi9ezMMPP8zWrVupVy88qbESbAlJ8+GKiEhto2NT9BsxYgS33347+fn5LF++nNdee42LL76YhIQE/vnPf7Jjx45zllFQUMBFF11EYmIin332GWvXrj3nNhdeeCGHDh0CoKSkhF27dnHttdfSr18/XnnlFQoLC6s1O0lFlGBLSJoHOzgW+oLjOhdYRMJj35E4vgsE6vT36vnSXO3h1axps7DO/NGsabNzrtOlSxcOHTpEq1ataNGiBSNHjmTw4MFkZGTQo0cPOnbseM4yBg4cyKxZs+jWrRuXXXZZyGEkZZ1M7GfOnMn8+fMZM2YMBQUFOOe48847w5ZcgxJsERERkTqrJuesPptPPvmk9HFKSgpr1qypcL0tW7ac9nz79u2lj//yl79UuE1h4anhgVlZWaUnNV511VV8+umnpa+tWrWqynFXlhLsMDCz+4GfAsVACTAOeBXIcM7ll1t3tXOub+SjrDrNgx0c46cTxUQkXJolltAgtUOd/l49X+r9l2igBPs8mdmVwCCgp3PumJmlABeEWj9akmtAc+GKiEito2OTRAMl2OevBZDvnDsGcLLH+uTZq2b2PeANYJFz7jkzK3TOJZnZNcA0IB/4PsERULe6WjQxeU30Evg1r3R1BQIBjh6ux+3/bOx3KGHxXUnwc3lBXK35mNWIY8XBesbK362sBvGOZoklfoch1bSzMJ5L/Q4iyqkHW6KBEuzztxR40My+AN4HXnXOLfdeSwLmAy85516qYNvLgS7AHuAD4CrgjAFBZjYWGAtwySWXhL0CkZSTk8PGrRu9OZ6jQGLwdgTzO5LwOBi8O5EcI/UJxRt+dyQpxup5EOISLqRBqi4gE60uRT2wInWBEuzz5JwrNLN0oD9wLfCqmd3nvfwW8Lhzbm6IzT90zu0GMLNNQCoVJNjOudnAbAheyTGsFTiLGptrNBlKrlEPnB/ilgVnRNH7H53ilsXRoVXsjN/VfMYiEquUYIeBc64YWAYsM7NPgNu8lz4Afmxmr4QY+lH2MnPF1LK/RzQN5RCR6KPvGBGJVbUqoYtGZnYZUOKcC3iLegA7gK7Ag8BU4BlgvC8BnoeamAc7EAgE51kRkaorDLahWOnx1XzGIv67Z9IkDu7bH7bykptdzONPh3fqvzlz5jBgwABatmwJQGpqKtnZ2aSkpIR1P+GkBPv8JQFPmVkycALIITheepD3+q+A583scefcPb5EKCIiIlKBg/v2M3LfvrCVF2pM7PmYM2cO3//+90sT7GigBPs8OefWAxVNvZda5vHPy6yf5N0vIzis5OTySTUS4HmoiXmwJ0+ezMbcjWErT6ROSSKmxmDHSk+8iFTN9u3bGThwIFdccQUbN27k0ksv5aWXXmLGjBksWbKEo0eP0rdvX/7whz+waNEisrOzGTlyJN/73vdKL0jz1FNPsWTJEo4fP86CBQvo2LEjXbt2ZeXKlTRu3JiUlBSefPJJfvaznzFq1Chuu+020tLSGDVqFIcPHwbg6aefpm/fvowaNYqsrCyGDh0KwMiRIxk+fDhDhgypdh11DWgJKS0tTWe7i0iN0XeMSN31+eefM3bsWD7++GMaNWrEM888w6RJk/joo4/YsmULR48e5e233yYrK4uMjAzmzp3Lpk2bSoeVpaSksGHDBsaPH8+MGTOA4JUaP/jgA7Zu3Ur79u1ZuXIlAGvXrqVPnz5cfPHFvPfee2zYsIFXX3219J/8X/7yl7zwwgsAFBQUsHr1am644Ybzqp96sCWkGutdOnhqNguJsIPBO73/Ueog0MrvIMJHPdgidVebNm246qqrALj11luZOXMm7dq14/HHH+fIkSN88803dOnShcGDB1e4/U033QRAeno6r7/+OgD9+/dnxYoVtG3blvHjxzN79mxyc3Np0qQJSUlJFBQUMGnSJDZt2kR8fDxffPEFAD/4wQ+YOHEi+/fv5/XXX2fYsGHUq3d+KbISbIko9Vb5a3dwVkhat2rtcyT+OXnyblS6IBi/EtPI2b3bazOt626bqSlpaWn6LNdhJy/IV/b5hAkTyM7Opk2bNkybNo2ioqKQ29evXx+A+Ph4Tpw4AcDVV1/N73//e3bu3MkjjzzCG2+8wcKFC+nfvz8ATz75JM2aNWPz5s2UlJTQoEGD0vJGjRrF3LlzmT9/Ps8///x5108JtkSUvkzFb5MnT+azTZto7ncg1XX4MAfz8/2Oos445N3rPQ+vvX4HIL7buXMna9as4corr2TevHn069eP1atXk5KSQmFhIQsXLiQrKwuACy+8kEOHDp2jxGCveH5+Pt999x3t27enX79+zJgxg6e9WU0KCgpo3bo1cXFxvPjiixQXF5duO3r0aHr37k3z5s3p0qXLeddPCbaEpItASKxqDoyJlatzSo36E8FLGOjzEl4n31epmpo4Lic3uzisM38kN7u4Uut16tSJF198kXHjxtGhQwfGjx/Pt99+S9euXUlNTaVXr16l644ePZo77rjjtJMcQ7niiitKE+f+/fszZcoU+vXrB8CECRMYNmwYCxYs4Nprr6Vhw4al2zVr1oxOnTqRmZlZxRpXTAm2hKSLQIiIiNQeNXFcDvec1ZUVFxfHrFmzTls2ffp0pk+ffsa6w4YNY9iwYaXPt2/fXvo4IyODZcuWlT5/+eWXSx/37duXkpJTF9/o0KEDH3/8cenzRx99tPTxkSNHCAQC/OQnP6lWfcpTgi0h1cSFZkT8FggENH2SiM8OAHkxdNGkSNHFmWrG+++/zy9+8Qt+/etf07hx47CUqQRbRERERCImNTWVLVu2+B1Gqeuvv56dO3eGtUwl2BJSTVxoRsRvkydP5uCmTX6HIVKnNQWSO8TORZMiJVw9/s65M2bxkLNzrmrnDSjBlpA0pZ6IiEjtEY7jcoMGDThw4ABNmzZVkl1JzjkOHDhw2rR+56IEW0LS2DiJVXvRLAZSOV979/q8hNdeINnvIKJQOI7LrVu3Zvfu3eTl5YUhorqjQYMGVZoPXwm2iNQp+mVGqqLQu9BMsi40E1bJqC36JSEhgXbt2vkdRsxTgi0idYp+mRERkZqm2apERERERMJICbaIiIiISBhZVacdEX+ZWR6wI8TLjYGCShZV2XVTgPxKlhmrqvK+RlIk46qJfYWjzOqWUZ3t1L5qhtqX2ldVt1H7qjy1r5pvX22dc/9yxhrOOd1i5AbMDve6QLbf9fL7VpX3NVbjqol9haPM6pZRne3Uvmrmpval9lXVbdS+Ivs5iPa4/GpfGiISW5bU0Lp1XW19ryIZV03sKxxlVreM6myn9lUzaut7pfal9hULaut7FfPtS0NE5KzMLNs5l+F3HCKxSO1LpOaofYmf1IMt5zLb7wBEYpjal0jNUfsS36gHW0REREQkjNSDLSIiIiISRkqwRURERETCSAm2iIiIiEgYKcEWEREREQkjJdhSaWbW0MxeNLPnzGyk3/GIxBoza29mfzKzhX7HIhJrzCzTO369ZWYD/I5HYpsS7DrOzJ43s/1mtqXc8oFm9rmZ5ZjZfd7im4CFzrnbgSERD1YkClWljTnn/ts5N8afSEWiTxXb15ve8Ws0MNyHcKUOUYItc4CBZReYWTzwe+DHQGfgJ2bWGWgN7PJWK45gjCLRbA6Vb2MiUjVzqHr7esB7XaTGKMGu45xzK4Bvyi3uDeR4vWnfAfOBocBugkk26LMjUilVbGMiUgVVaV8W9P+AvzjnNkQ6VqlblCRJRVpxqqcagol1K+B1YJiZPQss8SMwkRhRYRszs6ZmNgu43Mym+BOaSNQLdQz7N+B6IMvM7vAjMKk76vkdgNRKVsEy55w7DPw80sGIxKBQbewAoAO/yPkJ1b5mAjMjHYzUTerBlorsBtqUed4a2ONTLCKxSG1MpOaofYnvlGBLRT4COphZOzO7ABgBLPY5JpFYojYmUnPUvsR3SrDrODObB6wBLjOz3WY2xjl3ApgE/A3YBrzmnNvqZ5wi0UptTKTmqH1JbWXOOb9jEBERERGJGerBFhEREREJIyXYIiIiIiJhpARbRERERCSMlGCLiIiIiISREmwRERERkTBSgi0iIiIiEkZKsEVEagEzKwxjWb8zs6vDVV6IfUwzs7tqch/efvqb2VYz22Rm3yv32mQz22Zmc6tRbqqZ/TR8kYbczwwz+z81vR8RqV2UYIuIxBAzawL0cc6t8DuWUCyossefkcAM51wP59zRcq9NAG5wzo2sRhipQJUTbDOLr+ImTwH3VXU/IhLdlGCLiNQiXvL5hJltMbNPzGy4tzzOzJ7xenPfNrN3zSyrgiKygL+WKW+7mT1kZhu88jp6y0/rgfb2l+rdPjOzP3rL5prZ9Wb2gZkFzKx3mX11N7N/eMtvL1PW3Wb2kZl9bGYPectSvd7mZ4ANQJty9b7OzDZ6MT5vZvXN7JfALcCD5XupzWwW0B5YbGZ3mllDb7uPvHKGltnvSq/+G8ysr1fEY0B/r2f8TjMbbWZPlyn/bTO7xntcaGb/aWbrgCvN7FYz+9Db9g9mFu/d5pT5u90J4JzbATQ1s+bn+NOLSAxRgi0iUrvcBPQAugPXA0+YWQtveSrQFfglcGWI7a8C1pdblu+c6wk8C1RmWEca8P+BbkBHgj29/bxt/6PMet2A/+vF8qCZtTSzAUAHoLdXj/Qyw1UuA15yzl3uJZ4AmFkDYA4w3DnXFagHjHfO/RFYDNxdvpfaOXcHsAe41jn3JHA/8A/nXC/gWoLvW0NgP/BDr/7DgZleEfcBK72e8SfP8X40BLY4564ADnjlXOWc6wEUE+xl7wG0cs5936vDC2W230Dw7yIidYQSbBGR2qUfMM85V+yc2wcsB3p5yxc450qcc3uBf4bYvgWQV27Z6979eoJJ+rl85Zz7xDlXAmwF/u6cc8An5bZ/yzl31DmX78XTGxjg3TYSTCw7Eky4AXY459ZWsL/LvH1+4T1/EajqGPIBwH1mtglYBjQALgESgOfM7BNgAdC5iuVCMIle5D2+DkgHPvL2dR3BnvT/Btqb2VNmNhD4nzLb7wdaVmO/IhKl6vkdgIiInMaquLy8owSTy7KOeffFnPreP8HpnSwNKlgfoKTM8xJOP264cvtxXpyPOuf+UPYFM0sFDoeIubJ1OxsDhjnnPi+332nAPoK/CMQBRSG2P9v7UeScKy6znxedc1POCMCsO/AjYCLBoS2/KFNW+fHjIhLD1IMtIlK7rACGe2N6/4VgT+6HwCpgmDcWuxlwTYjttxEc4nEu24GeAGbWE2hXjViHmlkDM2vqxfMR8DfgF2aW5JXdyswuPkc5nwGpZnYy7lEEe+6r4m/Av5mZefu93FveGPja640fBZw8SfEQcGGZ7bcDPbz3tw3B3viK/B3IOlknM2tiZm3NLAWIc84tAqbivbeeS4EtVayPiEQx9WCLiNQubxAc07yZYI/wPc65vWa2iOBwhC3AF8A6oKCC7d8BxgF/PMd+FgE/84Y5fOSVWVUfevu7BHjYObcH2GNmnYA1Xq5bCNxKsPe8Qs65IjP7ObDAzOp58cyqYiwPA78DPvaS7O3AIOAZYJGZ3UxwGMvJXvSPgRNmtpng+O/fAV8RHAazheDwlopi/dTMHgCWWnAmlOMEe6yPAi/YqdlRpgCYWQLBf3iyq1gfEYliFhxWJyIitZ2ZJTnnCr0e4w8Jnmi3t4L1VgGDnHMHIx2jnM7MbgR6Ouem+h2LiESOerBFRKLH22aWDFxAsMf4jOTa8+8Ee5UPRiguCa0e8Fu/gxCRyFIPtoiIiIhIGOkkRxERERGRMFKCLSIiIiISRkqwRURERETCSAm2iIiIiEgYKcEWEREREQmj/wWIc5BHmbBp1QAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df_to_plot = pd.concat([icd_rna_1, disease_gene_icd_test, disease_variant_icd_test, disease_pathways_icd_test])\n", + "df_to_plot= df_to_plot.rename(columns={'caracteristica': 'feature'})\n", + "fig, ax = plot.subplots(figsize = (11, 13)) \n", + "#plot.xlim(0, 400)\n", + "ax.set_xscale(\"log\")\n", + "ax = sns.boxplot(data=df_to_plot, x='num_feature_disease', y='class_name', hue='feature', showfliers = False)\n", + "ax.set(xlabel='log (number of features)', ylabel='ICD-10 class name')\n", + "ax.set(title='ncRNA, genes, variants and pathways distribution per ICD10 disease group')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The distribution of ncRNAs per diseases is significantly different than the other feature-disease distributions. The least homogeneous ncRNA distribution per diseases of all is that of neoplasms where a disease can be in an association with less than 100 ncRNAs or more than 10000 ncRNAs.\n", + "\n", + "ncRNA-gene-variant-pathway:\n", + "Neoplasms: 50% of the diseases have less than 100 ncRNA-disease associations and its third quartile between 100 and 1000. However there are outlier diseases that have about 1000 and 10000 disease associations. About gene-neoplasm associations, 50% of the total neoplasms have less than 50 genes-disease associations and the 100% of the neoplasms has less than 100 genes associated. However there are outlier diseases that have between 1000 and 10000 genes associated." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Genes vs miRNAs vs lncRNAs vs circRNAs Boxplot generation**" + ] + }, + { + "cell_type": "code", + "execution_count": 362, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rna_idcausalitytypenamerna_categorydisease_id
0hsa-mir-143nocirculation_biomarker_diagnosis_downColonic NeoplasmsmiRNAC0007102
1hsa-mir-143nocirculation_biomarker_diagnosis_downColonic NeoplasmsmiRNAC0009375
2hsa-mir-145nocirculation_biomarker_diagnosis_downColonic NeoplasmsmiRNAC0007102
3hsa-mir-145nocirculation_biomarker_diagnosis_downColonic NeoplasmsmiRNAC0009375
4hsa-let-7gnocirculation_biomarker_diagnosis_nsColonic NeoplasmsmiRNAC0007102
.....................
587833UCA1nsRegulation [down-regulated]LithiasislncRNAC0023869
587834UphnsLocusRight ventricle hypoplasialncRNAC1848587
587835XISTnsRegulation [up-regulated]collecting duct carcinomalncRNAC0007134
587836XISTnsRegulation [up-regulated]collecting duct carcinomalncRNAC1266044
587837XISTnsRegulation [up-regulated]collecting duct carcinomalncRNAC4049328
\n", + "

587838 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " rna_id causality type \\\n", + "0 hsa-mir-143 no circulation_biomarker_diagnosis_down \n", + "1 hsa-mir-143 no circulation_biomarker_diagnosis_down \n", + "2 hsa-mir-145 no circulation_biomarker_diagnosis_down \n", + "3 hsa-mir-145 no circulation_biomarker_diagnosis_down \n", + "4 hsa-let-7g no circulation_biomarker_diagnosis_ns \n", + "... ... ... ... \n", + "587833 UCA1 ns Regulation [down-regulated] \n", + "587834 Uph ns Locus \n", + "587835 XIST ns Regulation [up-regulated] \n", + "587836 XIST ns Regulation [up-regulated] \n", + "587837 XIST ns Regulation [up-regulated] \n", + "\n", + " name rna_category disease_id \n", + "0 Colonic Neoplasms miRNA C0007102 \n", + "1 Colonic Neoplasms miRNA C0009375 \n", + "2 Colonic Neoplasms miRNA C0007102 \n", + "3 Colonic Neoplasms miRNA C0009375 \n", + "4 Colonic Neoplasms miRNA C0007102 \n", + "... ... ... ... \n", + "587833 Lithiasis lncRNA C0023869 \n", + "587834 Right ventricle hypoplasia lncRNA C1848587 \n", + "587835 collecting duct carcinoma lncRNA C0007134 \n", + "587836 collecting duct carcinoma lncRNA C1266044 \n", + "587837 collecting duct carcinoma lncRNA C4049328 \n", + "\n", + "[587838 rows x 6 columns]" + ] + }, + "execution_count": 362, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "hmdd_lncrna_disnet_to_merge" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Generating dataframes for miRNA, lncRNA and circRNA only based on hmdd_lncrna_disnet_to_merge" + ] + }, + { + "cell_type": "code", + "execution_count": 363, + "metadata": {}, + "outputs": [], + "source": [ + "hmdd_lncrna_disnet_drop = hmdd_lncrna_disnet_to_merge\n", + "hmdd_lncrna_disnet_mirna = hmdd_lncrna_disnet_drop[hmdd_lncrna_disnet.rna_category == \"miRNA\"]\n", + "hmdd_lncrna_disnet_lncrna = hmdd_lncrna_disnet_drop[hmdd_lncrna_disnet.rna_category == \"lncRNA\"]\n", + "hmdd_lncrna_disnet_circrna = hmdd_lncrna_disnet_drop[hmdd_lncrna_disnet.rna_category == \"circRNA\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 364, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rna_idcausalitytypenamerna_categorydisease_id
528ZEB1nsExpression [high expression]Colonic NeoplasmslncRNAC0007102
529ZEB1nsExpression [high expression]Colonic NeoplasmslncRNAC0009375
530ZFAS1nsExpression [high expression]Colonic NeoplasmslncRNAC0007102
531ZFAS1nsExpression [high expression]Colonic NeoplasmslncRNAC0009375
2475E2F4nsnsColorectal NeoplasmslncRNAC0009402
.....................
587833UCA1nsRegulation [down-regulated]LithiasislncRNAC0023869
587834UphnsLocusRight ventricle hypoplasialncRNAC1848587
587835XISTnsRegulation [up-regulated]collecting duct carcinomalncRNAC0007134
587836XISTnsRegulation [up-regulated]collecting duct carcinomalncRNAC1266044
587837XISTnsRegulation [up-regulated]collecting duct carcinomalncRNAC4049328
\n", + "

572481 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " rna_id causality type \\\n", + "528 ZEB1 ns Expression [high expression] \n", + "529 ZEB1 ns Expression [high expression] \n", + "530 ZFAS1 ns Expression [high expression] \n", + "531 ZFAS1 ns Expression [high expression] \n", + "2475 E2F4 ns ns \n", + "... ... ... ... \n", + "587833 UCA1 ns Regulation [down-regulated] \n", + "587834 Uph ns Locus \n", + "587835 XIST ns Regulation [up-regulated] \n", + "587836 XIST ns Regulation [up-regulated] \n", + "587837 XIST ns Regulation [up-regulated] \n", + "\n", + " name rna_category disease_id \n", + "528 Colonic Neoplasms lncRNA C0007102 \n", + "529 Colonic Neoplasms lncRNA C0009375 \n", + "530 Colonic Neoplasms lncRNA C0007102 \n", + "531 Colonic Neoplasms lncRNA C0009375 \n", + "2475 Colorectal Neoplasms lncRNA C0009402 \n", + "... ... ... ... \n", + "587833 Lithiasis lncRNA C0023869 \n", + "587834 Right ventricle hypoplasia lncRNA C1848587 \n", + "587835 collecting duct carcinoma lncRNA C0007134 \n", + "587836 collecting duct carcinoma lncRNA C1266044 \n", + "587837 collecting duct carcinoma lncRNA C4049328 \n", + "\n", + "[572481 rows x 6 columns]" + ] + }, + "execution_count": 364, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "hmdd_lncrna_disnet_lncrna" + ] + }, + { + "cell_type": "code", + "execution_count": 365, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
disease_idclass_nameclass_range
0C0008354Certain infectious and parasitic diseasesA00-B99
1C0178238Certain infectious and parasitic diseasesA00-B99
2C0041466Certain infectious and parasitic diseasesA00-B99
3C0030528Certain infectious and parasitic diseasesA00-B99
4C0152491Certain infectious and parasitic diseasesA00-B99
............
3613C0013182Injury, poisoning and certain other consequenc...S00-T98
3614C0041755Injury, poisoning and certain other consequenc...S00-T98
3615C0085639External causes of morbidity and mortalityV01-Y98
3616C0019699Factors influencing health status and contact ...Z00-Z99
3617C0037316Factors influencing health status and contact ...Z00-Z99
\n", + "

3618 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " disease_id class_name class_range\n", + "0 C0008354 Certain infectious and parasitic diseases A00-B99\n", + "1 C0178238 Certain infectious and parasitic diseases A00-B99\n", + "2 C0041466 Certain infectious and parasitic diseases A00-B99\n", + "3 C0030528 Certain infectious and parasitic diseases A00-B99\n", + "4 C0152491 Certain infectious and parasitic diseases A00-B99\n", + "... ... ... ...\n", + "3613 C0013182 Injury, poisoning and certain other consequenc... S00-T98\n", + "3614 C0041755 Injury, poisoning and certain other consequenc... S00-T98\n", + "3615 C0085639 External causes of morbidity and mortality V01-Y98\n", + "3616 C0019699 Factors influencing health status and contact ... Z00-Z99\n", + "3617 C0037316 Factors influencing health status and contact ... Z00-Z99\n", + "\n", + "[3618 rows x 3 columns]" + ] + }, + "execution_count": 365, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "query_icd" + ] + }, + { + "cell_type": "code", + "execution_count": 366, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
class_namedisease_idnum_feature_diseasecaracteristica
0CirculatoryC000348610miRNA
1CirculatoryC000381120miRNA
2CirculatoryC00071925miRNA
3CirculatoryC0010054125miRNA
4CirculatoryC0018799337miRNA
...............
195SkinC00381652miRNA
196SkinC00429003miRNA
197SkinC016281015miRNA
198SkinC01628202miRNA
199SkinC01628361miRNA
\n", + "

200 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " class_name disease_id num_feature_disease caracteristica\n", + "0 Circulatory C0003486 10 miRNA\n", + "1 Circulatory C0003811 20 miRNA\n", + "2 Circulatory C0007192 5 miRNA\n", + "3 Circulatory C0010054 125 miRNA\n", + "4 Circulatory C0018799 337 miRNA\n", + ".. ... ... ... ...\n", + "195 Skin C0038165 2 miRNA\n", + "196 Skin C0042900 3 miRNA\n", + "197 Skin C0162810 15 miRNA\n", + "198 Skin C0162820 2 miRNA\n", + "199 Skin C0162836 1 miRNA\n", + "\n", + "[200 rows x 4 columns]" + ] + }, + "execution_count": 366, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "icd_mirna= pd.merge(hmdd_lncrna_disnet_mirna, query_icd.drop(['class_name'], axis=1), on='disease_id')\n", + "icd_10_short = pd.read_csv('icd10_links.csv')\n", + "icd_mirna_1= pd.merge(icd_mirna, icd_10_short, on='class_range')\n", + "icd_mirna_1\n", + "\n", + "icd_mirna_1 = icd_mirna_1[['disease_id', 'class_name', 'rna_id']]\n", + "#disease_gene_icd_test['gene_id'] = disease_gene_icd_test['gene_id'].apply(str)\n", + "icd_mirna_2 = icd_mirna_1.groupby(['class_name', 'disease_id']).count()#agg(num_feature_disease=('rna_id', sum))\n", + "icd_mirna_2 = icd_mirna_2.reset_index()\n", + "# icd_rna_1 = icd_rna.reset_index()\n", + "icd_mirna_2 = icd_mirna_2.rename(columns={'rna_id': 'num_feature_disease'})\n", + "icd_mirna_2['caracteristica'] = 'miRNA'\n", + "icd_mirna_2\n" + ] + }, + { + "cell_type": "code", + "execution_count": 367, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
num_feature_disease
class_name
Circulatory782
Congenital75
Digestive319
Ear23
Eye56
Genitourinary220
Immunitary75
Infectious488
Mental179
Metabolic280
Musculoskeletal303
Neoplasms2809
Nervous171
Perinatal31
Pregnancy20
Respiratory179
Skin192
\n", + "
" + ], + "text/plain": [ + " num_feature_disease\n", + "class_name \n", + "Circulatory 782\n", + "Congenital 75\n", + "Digestive 319\n", + "Ear 23\n", + "Eye 56\n", + "Genitourinary 220\n", + "Immunitary 75\n", + "Infectious 488\n", + "Mental 179\n", + "Metabolic 280\n", + "Musculoskeletal 303\n", + "Neoplasms 2809\n", + "Nervous 171\n", + "Perinatal 31\n", + "Pregnancy 20\n", + "Respiratory 179\n", + "Skin 192" + ] + }, + "execution_count": 367, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "icd_mirna_2.groupby(['class_name']).sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 368, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
class_namedisease_idnum_feature_diseasecaracteristica
0CirculatoryC00029401lncRNA
1CirculatoryC0003486118lncRNA
2CirculatoryC0003850131lncRNA
3CirculatoryC0004153269lncRNA
4CirculatoryC0007193121lncRNA
...............
294RespiratoryC12608811lncRNA
295RespiratoryC13190181lncRNA
296RespiratoryC18007061lncRNA
297SkinC00225482lncRNA
298SkinC0033860122lncRNA
\n", + "

299 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " class_name disease_id num_feature_disease caracteristica\n", + "0 Circulatory C0002940 1 lncRNA\n", + "1 Circulatory C0003486 118 lncRNA\n", + "2 Circulatory C0003850 131 lncRNA\n", + "3 Circulatory C0004153 269 lncRNA\n", + "4 Circulatory C0007193 121 lncRNA\n", + ".. ... ... ... ...\n", + "294 Respiratory C1260881 1 lncRNA\n", + "295 Respiratory C1319018 1 lncRNA\n", + "296 Respiratory C1800706 1 lncRNA\n", + "297 Skin C0022548 2 lncRNA\n", + "298 Skin C0033860 122 lncRNA\n", + "\n", + "[299 rows x 4 columns]" + ] + }, + "execution_count": 368, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "icd_lncrna= pd.merge(hmdd_lncrna_disnet_lncrna, query_icd.drop(['class_name'], axis=1), on='disease_id')\n", + "icd_10_short = pd.read_csv('icd10_links.csv')\n", + "icd_lncrna_1= pd.merge(icd_lncrna, icd_10_short, on='class_range')\n", + "\n", + "icd_lncrna_1 = icd_lncrna_1[['disease_id', 'class_name', 'rna_id']]\n", + "#disease_gene_icd_test['gene_id'] = disease_gene_icd_test['gene_id'].apply(str)\n", + "icd_lncrna_2 = icd_lncrna_1.groupby(['class_name', 'disease_id']).count()#agg(num_feature_disease=('rna_id', sum))\n", + "icd_lncrna_2 = icd_lncrna_2.reset_index()\n", + "# icd_rna_1 = icd_rna.reset_index()\n", + "icd_lncrna_2 = icd_lncrna_2.rename(columns={'rna_id': 'num_feature_disease'})\n", + "icd_lncrna_2['caracteristica'] = 'lncRNA'\n", + "icd_lncrna_2" + ] + }, + { + "cell_type": "code", + "execution_count": 369, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
num_feature_disease
class_name
Circulatory4251
Congenital3982
Digestive769
Eye237
Genitourinary733
Immunitary361
Infectious4618
Mental3955
Metabolic2150
Musculoskeletal414
Neoplasms189868
Nervous12205
Perinatal118
Pregnancy351
Respiratory175
Skin124
\n", + "
" + ], + "text/plain": [ + " num_feature_disease\n", + "class_name \n", + "Circulatory 4251\n", + "Congenital 3982\n", + "Digestive 769\n", + "Eye 237\n", + "Genitourinary 733\n", + "Immunitary 361\n", + "Infectious 4618\n", + "Mental 3955\n", + "Metabolic 2150\n", + "Musculoskeletal 414\n", + "Neoplasms 189868\n", + "Nervous 12205\n", + "Perinatal 118\n", + "Pregnancy 351\n", + "Respiratory 175\n", + "Skin 124" + ] + }, + "execution_count": 369, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "icd_lncrna_2.groupby(['class_name']).sum()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#icd_lncrna_2.to_excel('icd_lncrna_2.xlsx')" + ] + }, + { + "cell_type": "code", + "execution_count": 370, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
class_namedisease_idnum_feature_diseasecaracteristica
0CirculatoryC00034861circRNA
1CirculatoryC00038504circRNA
2CirculatoryC000415332circRNA
3CirculatoryC00071931circRNA
4CirculatoryC001005432circRNA
...............
88NeoplasmsC28541228circRNA
89NervousC00023951circRNA
90NervousC002676912circRNA
91SkinC000114410circRNA
92SkinC070216610circRNA
\n", + "

93 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " class_name disease_id num_feature_disease caracteristica\n", + "0 Circulatory C0003486 1 circRNA\n", + "1 Circulatory C0003850 4 circRNA\n", + "2 Circulatory C0004153 32 circRNA\n", + "3 Circulatory C0007193 1 circRNA\n", + "4 Circulatory C0010054 32 circRNA\n", + ".. ... ... ... ...\n", + "88 Neoplasms C2854122 8 circRNA\n", + "89 Nervous C0002395 1 circRNA\n", + "90 Nervous C0026769 12 circRNA\n", + "91 Skin C0001144 10 circRNA\n", + "92 Skin C0702166 10 circRNA\n", + "\n", + "[93 rows x 4 columns]" + ] + }, + "execution_count": 370, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "icd_circrna= pd.merge(hmdd_lncrna_disnet_circrna, query_icd.drop(['class_name'], axis=1), on='disease_id')\n", + "icd_10_short = pd.read_csv('icd10_links.csv')\n", + "icd_circrna_1= pd.merge(icd_circrna, icd_10_short, on='class_range')\n", + "\n", + "icd_circrna_1 = icd_circrna_1[['disease_id', 'class_name', 'rna_id']]\n", + "#disease_gene_icd_test['gene_id'] = disease_gene_icd_test['gene_id'].apply(str)\n", + "icd_circrna_2 = icd_circrna_1.groupby(['class_name', 'disease_id']).count()#agg(num_feature_disease=('rna_id', sum))\n", + "icd_circrna_2 = icd_circrna_2.reset_index()\n", + "# icd_rna_1 = icd_rna.reset_index()\n", + "icd_circrna_2 = icd_circrna_2.rename(columns={'rna_id': 'num_feature_disease'})\n", + "icd_circrna_2['caracteristica'] = 'circRNA'\n", + "icd_circrna_2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Genes vs miRNAs vs lncRNAs vs circRNAs**" + ] + }, + { + "cell_type": "code", + "execution_count": 371, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(0.5, 1.0, 'Genes, miRNA, lncRNA and circRNA distribution per ICD10 disease group')]" + ] + }, + "execution_count": 371, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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ALsrIiISe//zyfNZ++KGgRccpCl7TuYHV/Y5QlZZK/lEDcDdnwfel2fWrHD+QoJblpnl2wgSqd7l3AjcmGf6gpzXPwJ+lGeZe4EDek1+Y57l5uaJ8yjgRnffmGfeqNE4aoWRaaMmUtLqoHHa0MekK5a41OzJ4Kx9cQNPvXpu4Qp8YWnhyiox8WotWoHM7CqCwXkjve0JQc9FjSclInGkzycZyNe+9jX2339/3v72t/P+97+fyy+/nCeffJJ3vvOdHHrooRx99NE89thjAJx55pkkk0ne9KY3se+++3LjjS/X0Xz729/msMMOY/bs2Xz5y18GYOvWrbz73e/moIMOYtasWdxwww15YyiGsqhRK2Xufl7UMWToF2sBbYxfrzmRnWwM/vR5nm4Epo1SLIOgzyfpT0tLCzfddBPLly9nx44dHHLIIRx66KHMnz+fH//4xzQ2NnLffffx8Y9/nLvuuguAF154gb/97W889thjHHfccZx88sncfvvtpFIp7r//ftyd4447jnvuuYd169ax11578fvf/x6ATZs2jdq+KVGTompubi6r3lqDGSQ0nU5TN64O2kcrqtJSU1PT7/GT0ZH28Fye1sf/xTQ9sUFKx9/+9jeOP/74bIeT//qv/6Kzs5O///3vvPe9780u19XVlX39nve8h0QiwQEHHMDatWsBuP3227n99ts5+OCDgeARU6lUiqOPPprzzz+fz33uc8ybN4+jjz561PZNiZoUVWtrK4+tWMHUqAMpkEw34I0vvtjnMnXk74UisAaob4xPuycRKQ/uu4641dPTw6RJk1ixYkXedcaPH7/L+u7OhRdeyEc/+tFdll+2bBl/+MMfuPDCC3nHO97BxRdfXJjgB6BETbKKNaDkVOAjlMdI+NeEQ+2Vy/6MtmvyDl9YfBosVaS8HXXUUXz0ox/lwgsvZMeOHfz+97/n7LPPZp999uE3v/kN733ve3F3HnroIQ466KA+yzn22GP50pe+xGmnnUZdXR3PPfccY8eOZceOHUyePJkPfvCD1NXVsXDhwlHbNyVqklVOtyhFcuncFhldU/acXNCemlP2nNzv/MMOO4zjjjuOgw46iL333pumpiZ23313rrvuOj72sY9xySWXsH37dk499dR+E7V3vOMdPProoxxxxBEA1NXV8ctf/pLW1lY++9nPkkgkGDt2LD/60S6DPxSN5asulHhramrylpaWgpd74okn0tHRQWNjY8HKTKVSJLZu5YIyqYFSjdrIfAunZ7fdCnqODUZmsNSbb755VLcrUikeffRRXve610UaQ1tbG3V1dbS3t3PMMcdw9dVXc8ghh0QaUz75jpWZLXP3pnzLq0ZNRERESt78+fNZtWoVnZ2dnHHGGbFM0oZDiZpkFWPA22QyycY+GnJK5dkDmBRBZwK1TRMpf9dff33UIRSFEjXJUld8KVc6t0WkVClRk6xi1TqsIbrefoX2Qvi3XPZntK0BJkWwXdWoiUipUqImRVVuNRlt4YC3kzRg67BMovzOCRGRYlKiJkWlmgwREZHhU6ImIiIiBXXhp/6HTevXFKy83feYytev+MGIy7n11ltZtWoVn//851mwYAE/+clPeOUrX8m2bdv40pe+xPvf/34geGj7HXfcwb/+9S/Gjx/Piy++SFNTE6tXr86WdcUVV3DhhReydu1adt999xHH1hclaiIiIlJQm9av4fMNTxSsvG8UaMzq4447juOOOy77/lOf+hTnn38+qVSKQw89lJNPPpmxY8cCUFVVxbXXXsvHPvaxvGUtXryYww47jN/+9receeaZhQkwj0TRShYREREZJatXr2b//ffnv//7v5k1axannXYad955J0ceeSSNjY3cf//9LFy4kHPPPXeXdRsbG6mtreWll17KTvvkJz/JFVdcwY4dO3ZZ/sknn6StrY1LLrmExYsXF3W/lKiJiIhIWWhtbeUTn/gEDz30EI899hjXX389f/vb37j88su57LLL+lzvwQcfpLGxkVe96lXZadOnT+eoo47iF7/4xS7LL168mPe///0cffTRPP744/z73/8uyv6AEjUREREpE/vssw8HHnggiUSC17/+9bz1rW/FzDjwwAN3al+WccUVV/Da176WN7zhDSxYsGCX+V/4whf49re/TU9Pz07Tf/WrX3HqqaeSSCQ48cQT+c1vflOkPVIbNalAzc3NZfWQ7nQ4ZEi9hgyhoaFBPY1FKtj48eOzrxOJRPZ9IpHIewsz00bt5ptv5kMf+hBPPvkk1dXV2fkNDQ3MmTOHX//619lpDz30EKlUire//e0AbNu2jX333Zf/+Z//Kco+KVGTitPa2srylavoqZ0cdSgFkWjfBMDarsq+nBPtG6IOQURK1IknnsiiRYtYtGgRH/3oR3ea98UvfpF3v/vd2feLFy9mwYIFXHjhhdlp++yzD08//TR77713wWOr7E922Unm+YuVUCPRUzuZzgPmRR1GQVSvWgJQNvszXJnjUEoq6ZqTyrL7HlML1lMzU16xXXzxxXzgAx/g7LPP3mn661//eg455BAefPBBILjtedttt+20zAknnMCvfvUrPve5zxU8LiVqklVOtwNFSoGuOSlXhRjzbKhmzJjBww8/nH2/cOHCvPMyQ2n0bpN26KGH8vjjj++yLsDNN9+cff3UU0/tsu3vfve7I4i8f0rUJCudTtPR0VH2v+5TqRS2Tc/qLDfWuZlUaktJnb+pVIqampqowxCRGFOvTxEREZGYUo2aZGV6DWbazZSrZDLJsicL92gTiQevnkjjzKkldf6WUu2fiERDiZpkNTQ0RB2CSEXRNSciA1GiJlmV9Os+0b6hJHsJ5pNoXw+UZq/HQgqG5yh+z7BCqqRrTkSGR4maFFUcB5d97LHHGGs9jO/ZUtBya2pqIhl0Np0OBnGsry+tJKXwpqqGSkTKjhI1KarW1laeePhBptd1Rx1Klm2vYizwmrEdBSvzmbYq6hsbS6p9lIhIsZz7mXNZu35twcqbsscUvv+d7/e7TF1dHW1tbUMue+nSpRx//PHsu+++dHR0MG/ePC6//HIgGKbjrLPOYsWKFcyePRuAWbNmsWTJEmbMmAHA8uXLOeSQQ/jjH//IscceO+TtD0SJmmQVa/DN6XXdXNQ09IunWC5pqQMoaEyZMnvTgKYiUonWrl/L84c+X7gClxWuqHyOPvpolixZQkdHBwcffDAnnHACRx55JBB0tLv00ku54YYb8q67ePFijjrqKBYvXlyURE3Dc0hWa2tr7G5TljodUxGR0bV06VLmzp3LySefzP77789pp52GezB25gMPPMCb3vQmDjroIA4//HC2bNm5CUxNTQ1z5szhueeey06bN28ejzzySHYw3Fzuzo033sjChQu5/fbb6ezsLPj+qEZNsoox4G0qlWLc9vL/PbC2PcG2VGqXY6cBTUVERt/y5ct55JFH2GuvvTjyyCO59957OfzwwznllFO44YYbOOyww9i8efMun88vvfQSqVSKY445JjstkUhwwQUXcNlll7Fo0aKdlr/33nvZZ599mDlzJnPnzuUPf/gDJ554YkH3pfy/QUVERKSiHH744dTX15NIJJgzZw6r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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df_to_plot = pd.concat([disease_gene_icd_test, icd_mirna_2, icd_lncrna_2, icd_circrna_2])\n", + "df_to_plot_1 = df_to_plot.rename(columns={'caracteristica': 'feature'})\n", + "fig, ax = plot.subplots(figsize = (9, 13)) \n", + "#plot.xlim(0, 500)\n", + "ax.set_xscale(\"log\")\n", + "ax = sns.boxplot(data=df_to_plot_1, x='num_feature_disease', y='class_name', hue='feature', showfliers = False)\n", + "ax.set(xlabel='log_number_feature_disease', ylabel='class_name')\n", + "ax.set(title='Genes, miRNA, lncRNA and circRNA distribution per ICD10 disease group')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Variants vs miRNAs vs lncRNAs vs circRNAs**" + ] + }, + { + "cell_type": "code", + "execution_count": 372, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(0.5, 1.0, 'Variants, miRNA, lncRNA and circRNA distribution per ICD10 disease group')]" + ] + }, + "execution_count": 372, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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jh2kUina2tqiDqUolJeXU11dzciRI/u8jj71JaOhoQEgVrUKnZXjaTtsVtRhRK58ZXBvah2Lwkgf36EWx/ecSH+kUinGjBnDlClT2HUPecnF3dm4cSOpVIoDDzywz+spUZMMXWYUGVp6z0mxa2trU5LWR2bGPvvsw/r16/u1nhI1yUilUrS2tsbm130ymcS2684ZUnjWtpVksmnIz/1kMklFRcWQblMk35Sk9d1AjpV6fYqIiIjElGrUJCPdozDdbiZq9fX1LHl+bdRhyDDg5WOpnTpxyM/9uNReixSruXPn8u53v5v999+/X+vddNNNVFZW8pGPfCTn/IULFzJq1Cje8pa39Gn5QlKiJhk1NTVRhyAyrOg9J7LLzp07GTGif2nJ3LlzmTZtWr8StZ07d3LBBRf0uMzChQupqqrKJGq9LV9IStQkI46/7hMtmyLrkdcf1rYV69xRuA107ASgcvG8wZXT2RE8JsoGGVB8eWIkXj62X+sEw3NMLExAPYjje04kH2699Vauv/56zIzp06fzwQ9+kKuuuort27ezzz77cNtttzFhwgTmzJnDyy+/zKpVq9h333255pprOOecc9i2bRsA3//+9zPJ0nXXXcfPf/5zEokEJ510EnV1dSxevJizzz6biooKHn/8cVauXMnnPvc5mpub2XfffZk7dy777bcfM2fO5C1veQuLFi3i5JNPpqmpiaqqKi655BIaGhq46aabGDFiBIcddhjXXnstN910E2VlZfziF7/gxhtv5I9//GNm+cbGRi644ALWr19PWVkZv/rVr5gwYQIf+MAHePXVV9mxYwdXXXUVH/jAB/JyLJWoSWwVU21DMtmEt7czuaqjIOWvawmak06o3D6oclY3BQnaAWPaBx1THL3YXIaNGkXt1P4mXROL6nwTibMVK1Zw9dVXs2jRIvbdd182bdqEmfHXv/4VM+MnP/kJ1113Hd/+9rcBWLJkCX/+85+pqKigpaWFBx98kPLycpLJJB/60IdYvHgxDzzwAPfddx9/+9vfqKysZNOmTYwfP57vf//7XH/99dTV1bFjxw4uuugifv3rX/Pa176WO+64g8suu4xbbrkFgM2bN/Poo48CMGfOnEy81157LS+88AKjR49m8+bNjBs3jgsuuCCTmAH88Y9/zCx/9tln86UvfYnZs2fT1tZGZ2cno0aN4t5772Xs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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df_to_plot = pd.concat([disease_variant_icd_test, icd_mirna_2, icd_lncrna_2, icd_circrna_2])\n", + "fig, ax = plot.subplots(figsize = (9, 13)) \n", + "#plot.xlim(0, 500)\n", + "ax.set_xscale(\"log\")\n", + "ax = sns.boxplot(data=df_to_plot, x='num_feature_disease', y='class_name', hue='caracteristica', showfliers = False)\n", + "ax.set(xlabel='num_feature_disease', ylabel='class_name')\n", + "ax.set(title='Variants, miRNA, lncRNA and circRNA distribution per ICD10 disease group')\n", + "#ax.set(title='Pathway and RNA distribution per ICD10 disease group')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Pathways vs miRNAs vs lncRNAs vs circRNAs**" + ] + }, + { + "cell_type": "code", + "execution_count": 373, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(0.5, 1.0, 'Pathways, miRNA, lncRNA and circRNA distribution per ICD10 disease group')]" + ] + }, + "execution_count": 373, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmoAAAMECAYAAAAPWwnhAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAACR5ElEQVR4nOzde3wcdb3/8ddn00sS0lIL2kJDKTRBLqUWCN641aOiHCtSQEERragcVIg3Dl5ArQqInCoaUPkhYotiRbnJ6REVxAJWVFJaaanQDVJgC6290NI06S35/P6Y2e023dx3M7O77+fj0Ud2d2a+85np7OxnvvP9fsfcHRERERGJn0TUAYiIiIhIbkrURERERGJKiZqIiIhITClRExEREYkpJWoiIiIiMaVETURERCSmlKhJwZiZm1ld1HEUkplNNLNWM6uIOpY0M1toZh+LOo6omdlcM7tyAMs9aWbT8x/R0Mj+/zez88zsD3ksO7NvzGy2mf08j2V/2cxuzld50r3sc7OZ3WhmX4k6JumeEjXZg5mtMrP2MPlYa2Y/NbOaPixXlsmBuz/v7jXu3gGZ/bAt3H/rzewuMzsgPX/44+Zm9t6sz4aFn03KLjtr3tcP2QbtXvd0M+sMt2OLmT1tZh/pMo+b2TIzS2R9dqWZze0y3z5hOb8dovAHxd2PcveF/V0ujvvM3W9z91P7EHufktqB7psc65tuZqkuZV/t7kV3DumasFqg0cyWm9lWM0uZ2a/N7Ohw+lwz2xEeI1vC+b5lZvtmlXGAmd1rZi92c24YaWa3mNkrZrbGzD430Pjd/SJ3/+ZAl5fCU6Imubzb3WuAY4HjgSsijqfYXBzuvzqgBpjTZfpG4Bs91cKZmQHnh/N+uFCB9uLFcDtGA58Ffmxmr+0yz4HAub2UczawHTg1O2ktRmY2rJdZSnKf9WG7y0If98P3gU8DjcBY4DDgHuBdWfNc6+6jgFcDHwHeCCwys33C6Z3A74CzulnHbKAeOBh4C3CZmb2zP9tSysJkuWTym5LZEMk/d18N3AdMMbNXmdkCM1tnZi+Hr2sBzOwq4CTghrAW4IasYt5mZslwmR+ECQhm9pyZHRe+/mB41Xhk+P5jZnZP+Pr1ZvaomW0ys5fM7AYzGxFO+4GZfSc7ZjP7XzP7TPj6C2a2Oqt246192W4LahX/28yeCK+If2Jm48zsvrCsB8zsVeG8k8LY9zqBu/smghP0tC6TfgfsAD7YQxgnEfygfxo4N73N/WVms8zsz2Y2J/w/eNbMTsuaPtaCWtMXw+n35NgOd/ffEiSNU7tMvhb4ei8/YB8GbgSeAM7rJd7vm9kLYU3BYjM7KWvabDP7lZndGv4/PGlmDVnTjzGzx8NptwOVvazr42b2z3D+FWZ2bPj5KjN7W9Y67zCzn5vZK8CsGO6zt5vZU2a2OfzuWda0WWb25/C1mdl1ZvbvcN4nzGyKmV0YruOy8Pv7v1n74Qtm9gSw1YKa38y+CVWa2e3hPnzczF6Xte49mj5YWGtnQTJyH3BguL5WMzvQ9q6ZOj38P95kQU31EVnTVpnZpeE2bA5jyPn/He6DRWZ2fTjvU9nnAjPbN/yOvxSeL6608CIqa9nrzGwjQYLU0/9FPfAp4P3u/qC7b3f3trBm85qu87v7Nnd/DDgd2I8gacPd17r7D4HHulnVh4BvuvvL7v5P4MfArB7i+u9w+140swu6TMvUpprZ/hac2zeZ2UYze8TChCf8P7rTgt+AZ82sMauMns7TOY+7cNpIC85Nz1twB+dGM6vqZhsqzOw7FtypeNbMLrasc294jFxlZouANuBQM3uzmT0WrvcxM3tzVnl7HMvZx5/tPq9fGO6zl8zs893t30JToibdMrODgP8ElhAcKz8luIKbCLQDNwC4++XAI4Q1Se5+cVYxMwhq5V4HvA94R/j5Q8D08PXJwL+AU7LePxS+7iComdgfeBPwVuCT4bR5wPuzTiT7h9PnW1CLcTFwfHjl+g5gVT82/yzg7QRXw+8m+GH5chhHguBquUdmth9wJtDSZZIDXwG+ZmbDu1n8w8D/AreH72f0I/au3gA8TRD7tcBPzCz9Y/4zoBo4CngNcF3Xhc0sYWanh8t33Za7gFfo5kfCzCYS/D/fFv77UC+xPkaQ2I4FfgH8ussP8OnAL4ExwL2Ex2D4o3BPuD1jgV/TfW0EFtx6nh3GMzosd0M3s78HuCNc523EaJ+Fx/ydBLXe+wPPACd0M/upBN+tw8JtOQfY4O43heu5Nvz+vjtrmfcT1ASNcfddOcp8D8G+Tv9/3dPDMQ2Au28FTiOsfQz/vdhluw4D5gOfIah1+i3wv7bnBcv7gHcChxAkw7N6WO0bCM4x+wNfA+4ys7HhtHnALoIa8GMI9tPHciz7GuCqnraN4PyTcve/9zLfHtx9C3A/wQVajyy4SDwQ+EfWx/8gOB5zzf9O4FKC81k98LZc84U+D6QI9vk4gnOeh+fY/w3XM4FgOz9jZunzeU/n6ZzHXTjt2+Hn0wj2/wTgq93E9nGC42Yawd2eM3LMcz5wITAK2AL8H9BEkAR/F/i/8LzcV28h2GenAl+0PS9ShowSNcnlHjPbBPyZIGG62t03uPud4dXhFoIT1ik9FRK6xt03ufvzwJ/YXbv0UNbyJwHfynp/Sjgdd1/s7n91913uvgr4f+n5wpPhZoKTAgS3kxa6+1qCE8dI4EgzG+7uq9z9mX7sg+vDq9rVBEno39x9ibtvB+4mOKF3p8nMNgPrCU5cl3Sdwd3vBdax5w8CAGZWDbwX+IW77yRIEgZz+/M5d/9x2I5uHnAAMM6CW2qnAReFV+Y73f2hrOUODI+DdoJt/py7L+m6KQRJ51fNbGSOdX8IeMLdVxD88B5lZt3uO3f/eXis7XL37xD8H2bfOvyzu/823JafEVwAQHDraDjwvXA77qD72ggI9vu17v5YWPvV4u7PdTPvo+5+j7t3EvzQxGmf/Sewwt3vCI+V7wFrupl3J8EP2OGAufs/3f2lbuZNa3L3F9y9vZvpi7PW/V2CWsw39lJmX5wD/J+73x+WPQeoAt6cNU+Tu7/o7hsJkohpPZT3b3YfG7cTXLi8y8zGEfx/fsbdt7r7vwkS7+xb0y+6+/XhMdndfkjbD+htn3bnRYKEtzfpNsObsz7bTPB/m8v7gJ+6+/IwSZ7dQ9k7Cc4PB4f76hF3d4KL7Ve7+zfcfYe7/4ugFu9c6Pk8TTfHXXix+HHgs+6+MfxduZrumwW8D/i+u6fc/WVgrxpKYK67PxleVJwKJN39Z2Fc84GnCC68++rr4XGxjKCi4v39WDZvlKhJLme4+xh3P9jdP+nu7WZWbWb/z4Jblq8ADwNjrPfejtk/Gm3sPsk8BJxkZuOBCoKaoxMsaDS7L7AUgivrsCp+TbjeqwmSn7R57L6F+EGCH2/cvYXganw28G8z+6WZHdiPfbA263V7jvc9dbBodPd9Ca7yXwXUdjPfFcDl7H2LbibBFX66IfltwGlm9uq+hb6XzP+Bu7eFL2uAg4CN4UkvlxfdfQxBjVMT8B+5ZvLgFt/zBFeyXX2IIH7CWpOH6CHpNLPPW3A7cnOY8OzLnv/fXY+nyvDWx4HA6vBHJa27xAuCbe9r4v5Cl+XitM8OzI4v3P4Xcs3o7g8S1ED+AFhrZjeZ2ehuyk3LWVau6WEimwpjGqwDyfr/C8t+gaDGJa27c0suuY6NAwnuEAwHXgpv220iSDJekzVvb/sg2waCRGcgJhDcKu9Na/g3+/9uNEENUi57HCP0/L34H4Ia4D+Y2b/M7Ivh5wcTXoRk7acvE9S69Xie7uG4ezVBzfTirDJ/F37el+3I9f+S/dkex1DWtk+g77rut3wc2/2mRE366vMENRtvcPfRBFXZsLs9jOdcqhthItVGcAvx4fBqag3BD9efwxMzwI8IroLqw/V+OWudAD8H3mNB25gjCG5/pdfxC3c/keAk4wTV7EMmvAq7Esi0zesy/X6Ck+Inu0z6MMGPzvNmtobg1tJw8n819wIw1szG9DRTWIv4BeBoMzujm9nSSWd1+oOwPUg98KXwBL6G4DbS+y1H+ywL2qN9geDK+VVhwrOZPf+/u/MSMKHLfp7Yw/wvAJP7UC7seWzHap8RbPdBWctb9vsccTW5+3EEt8kOA/47xzbusUh3ZYWy150guChJ38ZsI2vbgPH9KPdFgu9tuuz0dq3uZbnu5Do2XiT4/9wO7B9enI5x99Hunn0bsT/ntj8CtZbVdrIvLOhZ/zaC2vsehRcJL7G7Npnw9ZPdLLLHMUIP3wt33+Lun3f3Qwlqnj5nQXu+F4Bns/bRGHcf5e7/GS7a43m6m+NuPcFF71FZZe7rQWec7rYj+6I313Ge/X+1xzGUte3pY2gr3R+fudaRPmaGnBI16atRBF+qTWHbjq91mb4WOLSfZT5E0I4sfetoYZf36fW+ArSa2eHAJ7ILcPcUwS2unwF3pm9NmNlrzew/wltL28LY00NoTDezfiWWgzCP4Or89G6mXw5cln5jZun2HzMIbuVMIzgJf5uwViWroeukwQQW3va6D/ihBZ1FhpvZyd3MuwP4Dt20H/FgyIZl7Fnz82GCdjdHZm3LFIKT42nsbRRBTeI6YJiZfZU9aw168mi4bKMFjd7PBHoa1uRm4FIzO84CdWbW9aS+lxjus/8juDV6ZpjINZL7BwczO97M3hC2IdtK8L3oCCcP5PsLcFzWuj9DkPT8NZy2FPiABY3A38meTSXWAvtZ1pAUXfyK4NbkW8N4Px+W/ZcBxAjBd7Ax/P96L8FF3W/D/88/AN8xs9EWtC2cbGZ9adaxF3dPAj8kaCc73cxGmFmlmZ2bVTuVYUFj+uMILjBfJri9lp5WSXDrH2Ck7dlW81bgivAYPJzgFuLcbsL6FUEnmCMtaFbR9dydHc+M8LtgBOfdjvDf34FXLOhcUhX+n04xs+PDRbs9T3d33IUX4z8GrjOz14TzTrDd7d5ybcenw3nGEFwI9eS3wGFm9oHwnHAOwfdqQTh9KUFHreFhYn12jjK+YsHdpKMIOnrcnmOeglOiJn31PYI2IusJTsS/6zL9+8DZFvSCa+pjmQ8RfMEf7uY9BI1gP0BQrf9jcn9R5gFHE972DI0kaMOwnqCm7jUEV3kQXCU92scYByX8sW4iaJOUa/oigpNg2vnAUnf/g7uvSf8Ly5hqQW+pgwiq4Qdau5DtfII2JE8RtOP5TA/z3gJMNLPu2nhcQdjGJvxReR9BW781Wf+eJfh/ynUr7/cESdBKgu3bRh9vO4X7+UyCBuUvE7RxuquH+X9N0M7yFwTH1j30rX0QxGifuft6gvaM1xDcdqsHFnWzrtEE36GXCfbvBnYPHfMTgvacmyxHL9Ye/IZgX79MsF/ODNuUQdBj+d3AJoJepZly3f0pgvZ3/wrXucctJXd/mqApw/UE3+F3EwwbtKMfsWX7G8G+WU/w/362u6cbtH8IGAGsCLfjDgZ++xKCZDl9q28TwS32mQTt6NIuM7MtBLc6bwUWA28O25CltbP7NudT4fu0r4XlPkdw3vwfd+96TgbA3e8jOH8/SFCD/2APsdcDD4TrfRT4obsv9KBN6LsJLhyeJdiPNxM0TYCez9M9HXdfCGP6qwW3TB9gzzap2X5MkFQ/QdDB7bcEF2cduWYO/39nECT5GwguiGeE3xkIzsmTw7i+TnAu6OqhML4/AnPcPW+DR/eH7XnbXqT4hDUaPwcmZd0y7Wn+m4Ffu/vvCx5cAZjZFcA6d/9/UcciEndmNgv4WNgMQkqEBcMM3ejuvdaED6DsSQQJ6XDP3dt5SGkQQylqYXX6p4Gb+5KkAXgRjn6ezd37/VgkEZFiZsH4am8hqFUbR1CreHekQQ0R3fqUomXBAJibCG5TfC/SYEREpJCM4BblywS3Pv9J92OulRTd+hQRERGJKdWoiYiIiMSU2qgVof33398nTZoUdRgiIiKSB4sXL17v7jkH+1WiVoQmTZpEc3Nz1GGIiIhIHphZt0+M0K1PERERkZhSoiYiIiISU7r1KVIEmpqaaGlpiTqMWEmlUgDU1nb3zPvyU1dXR2NjY9RhiEgeKVETKQItLS0sWbaCzuq+PuWo9CXaNgOwdrtOYwCJto1RhyBlZOfOnaRSKbZt2xZ1KEWlsrKS2tpahg8f3udldIaTjKam4BGduiKPp87qsWw7ckbUYcRG5Yrg2craJ4H0/igmOucUr1QqxahRo5g0aRLBM9ylN+7Ohg0bSKVSHHLIIX1eTomaZOjWmogMJZ1zite2bduUpPWTmbHffvuxbt26fi2nRE0yUqkU7e3turqNoWQyie3QU0Ske7btFZLJLUX1/U0mk1RVVUUdhgyQkrT+G8g+U69PERERkZhSjZpkpHvPpduNSHw0Njay+Jk1UYchMeaVo6mfPL6ovr/FVPsn8TN37lxOPfVUDjzwwH4td+ONN1JdXc2HPvShnNMXLlzIiBEjePOb39yn+QtNiZpk1NXVRR2CiJQRnXMkbdeuXQwb1r+UZO7cuUyZMqVfidquXbu46KKLepxn4cKF1NTUZBK13uYvNHNXu5di09DQ4HqEVLwUepyzZDJJ69Y2qBjktVVnR/A3UTH4oKLWsSv422WfeGI4Xjk6goCilWjbyDFHH1lUNWpSvP75z39yxBFH5Jx26623MmfOHMyMqVOn8r73vY8rr7ySHTt2sN9++3Hbbbcxbtw4Zs+ezYsvvsiqVavYf//9ufrqqzn//PPZunUrADfccEMmWbr22mv52c9+RiKR4LTTTqOhoYFZs2YxYcIEqqqqePTRR1mxYgWf+9znaG1tZf/992fu3LkccMABTJ8+nTe/+c0sWrSI008/nS1btlBTU8Oll15KU1MTN954I8OGDePII4/kmmuu4Y1vfCMVFRW8+tWv5vrrr+ePf/xjZv6WlhYuuugi1q1bR0VFBb/+9a8ZN24c73nPe3j55ZfZuXMnV155Je95z3v6te/MbLG7N+SaXzVqInnQ0tLCyuWPM7GmoyDlHzQcGAOwY1DlPLclSNAOHrV9sCFFbm1b0MR2XPXuffJ8awU2YgT1k8dHFVaExquGSiL35JNPctVVV7Fo0SL2339/Nm7ciJnx17/+FTPj5ptv5tprr+U73/kOAIsXL+bPf/4zVVVVtLW1cf/991NZWUkymeT9738/zc3N3Hfffdxzzz387W9/o7q6mo0bNzJ27FhuuOEG5syZQ0NDAzt37uSSSy7hN7/5Da9+9au5/fbbufzyy7nlllsA2LRpEw899BAAs2fPzsR7zTXX8OyzzzJy5Eg2bdrEmDFjuOiiizKJGcAf//jHzPznnXceX/ziF5k5cybbtm2js7OTESNGcPfddzN69GjWr1/PG9/4Rk4//fS8dbZQoiYZGtNocCbWdHBFQ2vUYfToyuYagNjHOVBXNtdQOam+37VKOvZF8uPBBx/k7LPPZv/99wdg7NixLFu2jHPOOYeXXnqJHTt27DGG2Omnn57p+btz504uvvhili5dSkVFBStXrgTggQce4CMf+QjV1dWZMrt6+umnWb58OW9/+9sB6Ojo4IADDshMP+ecc3LGO3XqVM477zzOOOMMzjjjjB63bcuWLaxevZqZM2cCweC16bi//OUv8/DDD5NIJFi9ejVr165l/Pj8XDAqUZMMjWkk5UrHvkh+uPteNUmXXHIJn/vc5zj99NNZuHDhHjVa++yzT+b1ddddx7hx4/jHP/5BZ2dnJhHKVWau9R511FE8+uijOadnryfb//3f//Hwww9z77338s1vfpMnn3yyx3Xkctttt7Fu3ToWL17M8OHDmTRpUl6f2KBETTI0jtrAJZNJRuzUaDdRW9uWYEcy2e9jWON5ieTHW9/6VmbOnMlnP/tZ9ttvPzZu3MjmzZuZMGECAPPmzet22c2bN1NbW0sikWDevHl0dARNSU499VS+8Y1v8IEPfGCPW5+jRo1iy5YtALz2ta9l3bp1PProo7zpTW9i586drFy5kqOOOqrb9XV2dvLCCy/wlre8hRNPPJFf/OIXtLa2MmrUKF555ZW95h89ejS1tbXcc889nHHGGWzfvp2Ojg42b97Ma17zGoYPH86f/vQnnnvuucHswr3ol0VERETy4qijjuLyyy/nlFNO4XWvex2f+9znmD17Nu9973s56aSTMrdEc/nkJz/JvHnzeOMb38jKlSsztWDvfOc7Of3002loaGDatGnMmTMHgFmzZnHRRRcxbdo0Ojo6uOOOO/jCF77A6173OqZNm8Zf/vKXHmPt6Ojggx/8IEcffTTHHHMMn/3sZxkzZgzvfve7ufvuu5k2bRqPPPLIHsv87Gc/o6mpialTp/LmN7+ZNWvWcN5559Hc3ExDQwO33XYbhx9++CD34p5KotenmY0HvgccD2wHVgHXAI3ufnYeyp8NtLr7nB7mOQNY6e4rBru+3hSq12e6FkK9xvqvsbGRbasei33br/Joo3Z8v49hHfsi/dNTr0/pWdn1+rTgxvXdwDx3Pzf8bBowKleSZmbD3H1XAUI5A1gA9DlRK2AsA6IeY1KudOyLSFwVfaIGvAXY6e43pj9w96VmNsnMlrv7FDObBbwLqAT2MbPTgeuBBsCBr7v7nWbW6u41AGZ2NjDD3Wdlr8zMPg5cCIwAWoDzgWnA6cApZnYFcBYwCrgRqAaeAS5w95fNbCHwF+AE4MEwtsPcfaeZjQaeAOrdfWee91Ov1DZtcJ5vreDK5hrWtiXY1hHPZ+BtD+P6+J/2jTiSwtjeYVQNoI1aWjl9B1KpFLD7iSS51NXVldU+EYmjUkjUpgCL+zDfm4Cp7r7RzL4NbHb3owHM7FX9WN9d7v7jcLkrgY+6+/Vmdi+wwN3vCKc9AVzi7g+Z2TeArwGfCcsY4+6nhPNNIkgi7wHOBe7MlaSZ2YUECSITJ07sR7gyFLJrZHYkk7R5azjuWcyEdzzbauKZSOZDK60sWb0k6jDib3PwZ52tyz1905BFIiI9KIVEra/ud/eN4eu3ESRFALj7y/0oZ0qYoI0BaoDfd53BzPYlSMYeCj+aB/w6a5bbs17fDFxGkKh9BPh4rpW6+03ATRC0UetHvH2msaQGLnufNTY2smT1Ejqnd0YYkUjPEguDvmTdHafp6XGh85OUq1JI1J4E+tJhYGvWayO45dlV9meV3ZQzFzjD3f8R3rac3od1dxuLuy8Kb9OeAlS4+/IBlJcXGktKROJK5ycpV6WQqD0IXG1mH8+6JXk8Qduw7vwBuJjwVqSZvSqsVVtrZkcATwMzgS05lh0FvGRmw4HzgNXh51vCabj7ZjN72cxOcvdHCNqxPZSjrLRbgfnAN/uwvQWjcdTyI5lMgirTpNi1BsdyXM4HGutOylXRJ2ru7mY2E/iemX0R2EYwPMdneljsSuAHZrYc6AC+DtwFfJGg5+YLwHKCW5tdfQX4G/AcsIwwOQN+CfzYzBoJavg+DNxoZtXAvwhua3bntjCm+b1sroiISOx86jOXsnb9xt5n7KNx+4/lB9/rdkSsAZk7dy6nnnoqBx54IACTJk2iubm5x7Hd4qDoEzUAd38ReF+OSVPC6XMJblmm528lSKS6lnMHcEeOz2dnvf4R8KMc8ywCjuzy8RtzzDc9R5wnAne4+6Yc04ZMuveXxpIanHQbNZGiVgP1E/r/3NRCiUvNnuS2dv1Gnj1gev4KfGlh/soKzZ07lylTpmQStWIRr9aiZcjMricYnDfS254Q9FzUeFIiEkc6P0lXq1at4vDDD+fDH/4wU6dO5eyzz6atrY1vfOMbHH/88UyZMoULL7wQd+eOO+6gubmZ8847j2nTptHe3g7A9ddfz7HHHsvRRx/NU089BcDRRx/Npk2bcHf2228/br31VgDOP/98HnjgAVatWsVJJ53Esccey7HHHpt5AsL555/Pb37zm0x85513Hvfee++gt7MkatSKmbtfEnUMabpizaNN8es1J7KHTcGfbo/TTcCEIYqlD3R+klyefvppfvKTn3DCCSdwwQUX8MMf/pCLL76Yr371q0CQPC1YsICzzz6bG264gTlz5tDQsPsBAPvvvz+PP/44P/zhD5kzZw4333wzJ5xwAosWLeLggw/m0EMP5ZFHHuFDH/oQf/3rX/nRj35EIpHg/vvvp7KykmQyyfvf/36am5v52Mc+xnXXXcd73vMeNm/ezF/+8pcen23aV0rUpKCamppKqrdWXwYJTaVS1Iyogbahiqq4VFVV9bj/ZGikPDyWJ3TzfzFBT2yQ+DvooIM44YQTAPjgBz9IU1MThxxyCNdeey1tbW1s3LiRo446ine/+905lz/zzDMBOO6447jrrrsAOOmkk3j44Yc5+OCD+cQnPsFNN93E6tWrGTt2LDU1NWzevJmLL76YpUuXUlFRwcqVKwE45ZRT+NSnPsW///1v7rrrLs466yyGDRt8mqVETQqqpaWFp5YuZXzUgeRJuhvwpvXru52nhty9UATWALX18Wn3JCLFLXiK5J7vP/nJT9Lc3MxBBx3E7Nmz2bZtW7fLjxw5EoCKigp27Qqe6HjyySfzgx/8gOeff56rrrqKu+++mzvuuIOTTjoJgOuuu45x48bxj3/8g87OTiord4/mdf7553Pbbbfxy1/+kltuuSUv26hETTIKNaDkeOCjlMZI+D8Jh9orle0Zaj/JOXxh4WmwVJHS9Pzzz/Poo4/ypje9ifnz53PiiSfyl7/8hf3335/W1lbuuOMOzj47GGp11KhRbNmSa9StPR100EGsX7+eHTt2cOihh3LiiScyZ84cbrjhBgA2b95MbW0tiUSCefPm0dHRkVl21qxZvP71r2f8+PEcddRRedlGJWqSUUq3KEWy6dgWKaxx+4/Na0/NcfuP7dN8RxxxBPPmzeO//uu/qK+v5xOf+AQvv/wyRx99NJMmTeL444/PzDtr1iwuuugiqqqqePTRR3ss9w1veEMmATvppJP40pe+xIknngjAJz/5Sc466yx+/etf85a3vIV99tlnd9zjxnHEEUdwxhln9HOLu2fu0VzhysA1NDR4c3Nz3ss988wzaW9vp76+Pm9lJpNJElu3clmJ1ECpRm1wrsXp3GefvB5jfZEeLDXdBkVEBuef//wnRxxxRKQxrFq1ihkzZrB8eWQP9NlLW1sbRx99NI8//jj77rtvznly7TszW+zuDbnmV7c0ERERkUF64IEHOPzww7nkkku6TdIGQrc+JaMQA942NjayaenSvJUnxW0/YEwEnQnUNk2k9EyaNClWtWlve9vbeP755/NerhI1yVBXfClVOrZFpFgpUZOMQtU6rCG63n759lL4t1S2Z6itAcZEsF7VqIlIsVKiJgVVajUZreGAt2M0YOuAjKH0jgkRkUJSoiYFpZoMERGRgVOiJiIiIoPypc9+is0b1uStvH33G8+3rvvBoMu59957WbFiBV/84heZPXs2P/7xj3n1q1/Njh07+MpXvsL73/9+IBhj7f777+df//oXI0eOZP369TQ0NLBq1apMWddddx1f+tKXWLt2bV57dfZGiZqIiIgMyuYNa/hi3cq8lXdNnsaoPv300zn99NMz7z/72c9y6aWXkkwmOe644zj77LMZPnw4EDxG6pZbbuETn/hEzrLmz5/P8ccfz913382sWbPyE2AfaBw1ERERKTqrVq3i8MMP52Mf+xhTpkzhvPPO44EHHuCEE06gvr6ev//978ydO5eLL754r2Xr6+uprq7m5Zdfznz2mc98huuuuy7zzM9szzzzDK2trVx55ZXMnz+/oNvVlRI1ERERKUotLS18+tOf5oknnuCpp57iF7/4BX/+85+ZM2cOV199dbfLPf7449TX1/Oa17wm89nEiRM58cQT+dnPfrbX/PPnz+f9738/J510Ek8//TT//ve/C7I9uShRExERkaJ0yCGHcPTRR5NIJDjqqKN461vfiplx9NFH79G+LO26667jta99LW94wxuYPXv2XtO//OUv8z//8z90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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df_to_plot = pd.concat([disease_pathways_icd_test, icd_mirna_2, icd_lncrna_2, icd_circrna_2])\n", + "fig, ax = plot.subplots(figsize = (9, 13)) \n", + "#plot.xlim(0, 500)\n", + "ax.set_xscale(\"log\")\n", + "ax = sns.boxplot(data=df_to_plot, x='num_feature_disease', y='class_name', hue='caracteristica', showfliers = False)\n", + "ax.set(xlabel='num_feature_disease', ylabel='class_name')\n", + "ax.set(title='Pathways, miRNA, lncRNA and circRNA distribution per ICD10 disease group')\n", + "#ax.set(title='Pathway and RNA distribution per ICD10 disease group')" + ] + }, + { + "cell_type": "code", + "execution_count": 375, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
class_namedisease_idnum_feature_diseasecaracteristica
0CirculatoryC0002940120pathway
1CirculatoryC000296296pathway
2CirculatoryC00029638pathway
3CirculatoryC000296579pathway
4CirculatoryC0003486139pathway
...............
88NeoplasmsC28541228circRNA
89NervousC00023951circRNA
90NervousC002676912circRNA
91SkinC000114410circRNA
92SkinC070216610circRNA
\n", + "

3020 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " class_name disease_id num_feature_disease caracteristica\n", + "0 Circulatory C0002940 120 pathway\n", + "1 Circulatory C0002962 96 pathway\n", + "2 Circulatory C0002963 8 pathway\n", + "3 Circulatory C0002965 79 pathway\n", + "4 Circulatory C0003486 139 pathway\n", + ".. ... ... ... ...\n", + "88 Neoplasms C2854122 8 circRNA\n", + "89 Nervous C0002395 1 circRNA\n", + "90 Nervous C0026769 12 circRNA\n", + "91 Skin C0001144 10 circRNA\n", + "92 Skin C0702166 10 circRNA\n", + "\n", + "[3020 rows x 4 columns]" + ] + }, + "execution_count": 375, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_to_plot" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Boxplot comparing the genes, variants, pathways, miRNA, lncRNA and circRNA distributions per ICD-10\n", + "disease group**" + ] + }, + { + "cell_type": "code", + "execution_count": 376, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(0.5, 0, 'log_num_feature_disease'), Text(0, 0.5, 'class_name')]" + ] + }, + "execution_count": 376, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmoAAARxCAYAAACRE6sdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOzdfXxT5d0/8M83NPSBomg7xRUhSsvUqaAW5+YT3g62diii3PfYvCXuQfdomOg23UrlcdNN5n5lc9zOeRs2h86HadXWgU6mc9utRRhq1abOVIqKpgqjtIWUXL8/knM4SU+e2iTnJP28Xy9fTXKuc13fkyZy9co5n4hSCkRERERkPw6rCyAiIiIic5yoEREREdkUJ2pERERENsWJGhEREZFNcaJGREREZFOcqBERERHZVJHVBVD6KisrlcvlsroMIiIiyoAtW7YElFIfMdvGiVoecrlcaGtrs7oMIiIiygAR6Yq3jR99EhEREdkUJ2pERERENsWJGhEREZFN8Rw1spWmpiZ0dnZaXYbluru7AQCTJk2yuBL7q66uhsfjsboMolElGAyiu7sbAwMDVpeSV0pKSjBp0iQ4nc6U9+FEjWyls7MTW19qR6jsSKtLsZSjbw8AYNd+vkUTcfR9YHUJRKNSd3c3xo8fD5fLBRGxupy8oJRCT08Puru7cdxxx6W8H/8VIF1TUxMAWL46ESo7EgMnzbW0BquVtD8GAKP+eUhGe57sJt57KRAIYPny5Vi2bBmUUkNuezweNDU14ZJLLsHKlStx7bXXYt26dVi5ciW8Xq++fdmyZaioqMhK7YFAAA0NDQCA6667bkTjacebbt1mNRj7MHvuRlpjNp/TQjQwMMBJWppEBBUVFXj//ffT2o8TNdLxI0eizIj3XvJ6vdi+fTu8Xi+UUkNur1y5El1dXXjllVcQCoXws5/9DEopNDY2Yt++ffp2r9eLJUuWZKV2r9eL9vZ2ABjxeNrxptuPWQ3GPsyeu5HWmM3ntFBxkpa+4TxnvJiAiCgHAoEAWltboZRCS0uL6W2/3w+lFAYHBwGEPyoBgN7e3qjtra2t6OnpyUqNLS0t+v2RjGc83nT60faLrUH7Ge+5G2mN2XpOKX1NTU048cQTcfnll6e1n9/vx+9///ssVWUdrqiRrru7G/39/ZZ+9Onz+SAHlGXjU36RgX/D59tr+cf1sXw+H0pLS6Me01Z/gPCJ2Brj7VSFQqGsrAB5vV59kjjS8YzHm04/Xq834XMS77kbaY3Zek4pfbfffjtaW1vTOo8LODRR++IXv5jWfgcPHsSYMWPS2ieXuKJGRJQDmzZt0icWSil9gmC8napgMIiNGzdmpUazWoYznvF40+knXg2aeM/dSGvM1nNK6fn617+Of/3rX7j44ouxevVqfPnLX8bMmTNx2mmn4ZFHHgEQnpCde+65OP3003H66afjb3/7GwDghhtuwLPPPosZM2bgtttuw913341vf/vbet9z587F5s2bAQDl5eVobGzEJz7xCfz973/H7373O5x55pmYMWMGvva1r+HgwYM5P/Z4uKJGOi0KQjsR2goejwdb3njXsvEpv6iSw1AzdaKlr1kzZit8s2fPRktLC4LBoH6eilIq6naqnE4n5syZk5liY2psbm4eUstwxjMebzr9xKtBE++5G2mN2XpOKT3r1q3DE088gaeffho/+9nP8B//8R+46667sHv3bpx55pn49Kc/jaOOOgqbNm1CSUkJfD4fvvCFL6CtrQ0333wzbr31Vjz2WPgio7vvvjvuOPv27cPJJ5+MFStW4NVXX8Utt9yC5557Dk6nE9/85jdxzz33YNGiRTk66sS4oka66upqVFdXW10GUd4zey+53W59YuF0OvUcJePtVDkcDrjd7swUG1NjUdHQv9+HM57xeNPpx+12J3w+4j13I60xW88pDd/GjRtx8803Y8aMGZg1axYGBgbw1ltvIRgM4qqrrsIpp5yC//zP/9QvPEnHmDFjcNlllwEAnnrqKWzZsgUzZ87EjBkz8NRTT+Ff//pXpg9n2LiiRjo7nOfT3d0Nx94elLV5rS4l+0KRpXWHybkRB8PnCY2K52EkQgcBTLS6iiHM3kuVlZWoq6tDc3Mz6uvroZQacnvKlCno6urCmDFjMDg4CBGBUgrl5eXYt2+fvr2uri4rURKVlZWor6/XP2JyuVzDHs94vOnUre0XW4PWR7znbqQ1Zus5peFTSuHBBx/Exz72sajHly1bhqOPPhr//Oc/EQqFUFJSYrp/UVERQqGQft8YzltSUqKfl6aUgtvtxo9//OMsHMXIcaJGtjOu6CAmlx+wuoys69ob/p/ElPH7h2zb1Rde7D66rPCfh+F6q3cMpGx8XqwCG/PE/H4/3G63fiWj2+1GT08P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r0kiGu04USNdJnPUfD4fBgcPZqAqspO+wYPwDfPL04djpJldRET5jjlqRERERDbFFTXSZTJHzePxoOvVV0bcD9lLWdGYnJ6jxnPTiChT7r77bsyZMwcf/ehHAQAul0v/YnY740SNdPl+JRkVHr4mifLDt6/7Nnb17MpYf0dXHI1frPlFxvoDwhO1k08+WZ+o5QtO1EiX6dWLvQcG9Sso84kWz5GPtWeb9tzkClfUiPLDrp5dePuMtzPX4ZbkTfx+Pz772c/iE5/4BLZu3Ypp06Zh/fr1uPXWW/Hoo4+iv78fn/rUp/A///M/ePDBB9HW1obLL78cpaWlejDu2rVr8eijjyIYDOL+++/HCSecgFNOOQXPPvssDj/8cFRWVuK2227DokWLcMUVV8DtdqO6uhpXXHEF9u3bBwD4xS9+gU996lO44oorsGDBAsybNw8AcPnll+Pzn/88Lr744hE9FZyoUVbk80pIssDb0S6ff7dEVFhef/11/OY3v8HZZ5+NL3/5y7j99tvx7W9/G42NjQCAK664Ao899hgWLFiAX/ziF7j11ltRW1ur719ZWYkXX3wRt99+O2699VbceeedOPvss/Hcc89hypQpOP744/Hss89i0aJF+Mc//oFf/epXcDgc2LRpE0pKSuDz+fCFL3wBbW1t+OpXv4rbbrsN8+bNw549e/C3v/0NXq93xMfIiRplBVdCiIgo24499licffbZAID//u//RlNTE4477jj85Cc/QV9fHz744AN8/OMfx0UXXWS6/6WXXgoAOOOMM/DQQw8BAM4991w888wzmDJlCr7xjW/gjjvuwM6dO3HkkUeivLwce/bswbe//W1s27YNY8aMQUdHBwDg/PPPx7e+9S289957eOihh3DZZZehqGjk0yxe9UlERER5SUSG3P/mN7+JBx54AC+99BKuuuoqDAwMxN2/uLgYADBmzBgMDoZP7TjvvPPw7LPP4tlnn8WsWbPwkY98BA888ADOPfdcAMBtt92Go48+Gv/85z/R1taGAwcO6P1dccUVuOeee/C///u/+NKXvpSRY+REjYiIiPLSW2+9pZ9vtmHDBpxzzjkAwh9p9vb24oEHHtDbjh8/Hnv37k3a57HHHotAIACfz4fjjz8e55xzDm699VZ9orZnzx4cc8wxcDgc+O1vf4uDBw9lhl555ZX4+c9/DgD4+Mc/npFj5ESNiIiI8tKJJ54Ir9eLU089FR988AG+8Y1v4KqrrsIpp5yCSy65BDNnztTbXnnllfj617+OGTNmoL+/P2G/n/jEJzBt2jQA4Y9Cd+7cqU8Cv/nNb8Lr9eKss85CR0cHxo0bp+939NFH48QTT8zYahoAiFIqY51RbtTW1qq2tjaryyAiolHq1VdfxYknnqjftyKew+/3Y+7cuXj55ZczNu5I9fX14ZRTTsGLL76Iww8/3LRN7HMHACKyRSlVa9aeFxMQERHRiGQ68ywfPfnkk/jyl7+MJUuWxJ2kDQcnakRERJR3XC6XrVbTPv3pT+Ott97KeL88R42IiIjIpjhRIyIiIrIpTtSIiIiIbIoTNSIiIiKb4sUEVLCamprQ2dlpdRnDMtq+b7S6uppfO0ZEGdfc3Iz29nbccMMNWLZsGX7961/jIx/5CA4cOIClS5fiC1/4AoBwxtqmTZvwr3/9C8XFxQgEAqitrYXf79f7uu2223DjjTdi165dGb2qMxlO1KhgdXZ2YutL7QiVHWl1KWlz9O0BAOzaX/hvUUffB1aXQEQj9L1vfxu7d72Xsf4mHH0UfvKLkUd+XHzxxbj44ov1+9deey2uv/56+Hw+nHHGGViwYAGcTieA8NdI3XXXXfjGN75h2teGDRswc+ZM/PGPf8SVV1454tpSVfj/ClDKmpqaABTWF6qHyo7EwElzrS4jbSXtjwFAXtaeLu1Y7eyWW27B//3f/+HXv/41lFK47rrr0NXVhWuvvRbr1q3Dd7/7Xfz0pz/F2rVrMWHCBCxfvhzLli1DRUUFOjo64PF4cPTRR8PpdKKoqAirV69GRUUFnn/+eXz3u9/FcccdhzVr1qCioiJq3EAggOXLl2PRokVYunQpKioqEAgEcOyxx+L73/8+br75ZnR3d+PYY4/FLbfcou/f0dGBa665Bkop3H777fjggw8SjhNLG1c7BrNtHo8HTU1NWLRoERobG7F27VpUV1en3K9SKu4YlH9273oPl+/KXODtPSm08fv9+OxnP4tzzjkH//jHPzB9+nR86Utfwk033YT33nsP99xzD9rb29HW1oZfxEz6ampqUFZWhg8//BBHHXUUAOA73/kObrvtNlx11VVDxnrjjTfQ29uLn/70p/jRj36U04kaz1EjXWdnZ95+VEiUTf/4xz8QCATg9Xrh9Xrx5ptvIhQK4Wc/+xn27duHVatWYd++fVixYgW8Xi+2b98Or9cLAFi1ahX6+vrw5ptvoqOjA+3t7fo2bcLyr3/9S3/MSOvrpptuQl9fH3bs2IH+/n50dHRg5cqV8Pl8+n3j/qtWrUJ/fz8GBgawYsWKpOPEGzdRTStXrtRr0449nX4TjUGUqs7OTixevBjbt2/Ha6+9ht///vf461//iltvvRU/+tGP4u734osvoqamRp+kAcDkyZNxzjnn4Le//e2Q9hs2bMAXvvAFnHvuuXj99dfx3nuZWz1MhhM1IqIEAoEAPvgg/PFsS0sLHn30UX2b9hV8g4ODAMJ/4be0tEAphdbWVrzwwgtR57hoWlpa8NRTT6G3t1d/7LHHHkNPT0/UuK2trVBKRbXTxPb7+OOPo6enBx0dHVHb/H5/wnHMjlcbt7W1NW5Nfr8/qja/35/wDz3jvi0tLVHPU6J6iBI57rjjcMopp8DhcODjH/84LrzwQogITjnlFNP33m233YaPfexj+MQnPoFly5YN2f6DH/wAP/3pTxEKhaIev/fee7Fw4UI4HA5ceumluP/++7N0REPxo0/SdXd3o7+/v2A++vT5fJAD/C5bu5OBf8Pn22vb192OHTv0CVkwGESy70cOBoMAgFAohJtuuilum9WrV0c9Njg4CK/XiyVLlgAIrz6l813MwWAQXq8X27ZtS9gudpxYxnFDoVBaNa1YsQLr169P2q/2HJmNQZSO4uJi/bbD4dDvOxwO/Q8oI+0ctYceegiLFi3CG2+8gZKSEn17dXU1ZsyYgT/84Q/6Y9u3b4fP58Ps2bMBAAcOHMDxxx+Pb33rW9k6rChcUSMiSuDDDz/Ub6c7cTJbCdP6MftHZOPGjfrtTZs2RU1oUrFx40bTVYRE48QyjhsMBtOqKdHYxn2VUlGTtkT1EGXDpZdeitraWtOP3n/4wx/i1ltv1e9v2LABy5Ytg9/vh9/vx9tvv42dO3eiq6srJ7VyRY10WhSEdlFBvvN4PNjyxrtWl0FJqJLDUDN1om1fd2vWrMEjjzwCABCRlCdrTqcTxcXFppM1EcGYMWOGTNbmzJmj3549ezZaWlrSmqzNmTMH27ZtSzpZM44Tyziu0+lMqyaXy5VSvyICIDxhix2DKFcaGxvxxS9+ccjFAx//+Mdx+umn48UXXwQQ/tiztbU1qs38+fNx77334vvf/37W65R0/kIke6itrVVtbW0Z77fQrvrUJmr5eOXkaLvq8wwbT9QCgQAWLFiAUCiEsWPHYnBwcMj5K0ZOpxPBYBDFxcX40Y9+hOuuu25Im7Fjx+LGG2/E8uXL9ceKiopw//3361dABgIBLFy4EAcOHEipTqfTiT/84Q/o6enBV7/61bjtYscxO15t3OLiYtx7770p13TXXXfFvfLTuO/YsWOhlNKfJ+MYlB9effVVnHjiifp9u8Zz2FHscwcAIrJFKVVr1p4raqSzwwQtkyG1Pp8Pjn19KGuz8Kqy0MHwT8eY9PY7GF5psaJ25XBClRyWs/HCOWoTczZeuiorK3HRRRehubkZ9fX1UEoNWWErKirC4OAgXC4Xpk+fjubmZtTV1WHmzJlwuVxDVrjq6+tx4YUXYs2aNfqK29y5c6MmK5WVlairq0NzczPGjRs3ZGUutt/Pfe5zqKioQEVFRdQ2l8uFQCAQdxyz49XGrauri1vTlClT0NXVpdfmcrkSxnMY99WeR7MxKD8V6qTKDjhRI1vp7OxEx8svYnL5wRH3dawTwAQASG1FIhu69oYnaFPG709rv1194dNHjy7Lbe1v9Y6BjB2Lmqm5nDhNTJq/pTHmcPX09GDx4sVYuXIl1q1bhx07duCXv/wlqqurh7S75pprEAqFMGXKlKi8sVTGqaiogNvtht/vh9vthlIKL774Inbs2IGvfe1r+O1vf4vvfve7uPnmm7Fr1y6cf/758Pv9uOiii3DNNdfgmmuuwdKlS6Ny1NxuNwKBAI466ij09vbi+OOPh9vtHlKHNu4ll1yC5cuXQ0QwduxYTJkyZUiOmnH/hoYGPUetsbERfr8fK1aswOTJk03HiTfuRRddhK9//esAoGe/aduMOWoNDQ0YO3Ysenp6Ej63F110EZ588kmcd955uPPOO3HiiSemVA/RaMaJGuns8tHn5PKDaKg1Pwk736xqKweAvDmeVW3lKHHV2OZjyNjXpDF7a9u2bdi3bx8aGxv11SLtqsPYdv39/QCg540lu8LQuP+SJUtQWVmJtWvX6ttPP/10dHd3491339XPXbn77rvh9/vR1NSE9evXY82aNdi+fTueffZZPPHEE0PGWLNmDd58801ccsklcevRxl2zZg2A8DldxxxzDO68804AwG9+8xvT/aZNm4Y//elP+v1HHnkEIoLTTz89pdUr47jt7e36cxL7XGg/58yZg+bm5qTP7aOPPoq+vj40NTWhq6sL8+bN42oaURK86pN0DLwluzG+Jo05XI8//rj+0Z7xI0G/34+2tjbTdhotbyyeRDli8bYbs8tia0i1j0T1tLS0RB1jOu/TdMZKNG5LS4vpvqn2b5bBxgw1ouS4okY6O+So+Xw+jA3y7wer7Opz4IDPZ/mqqsbn86G0tBRA/ByuWI2NjQnbaXljw8kRi7c9NrvMWEOqfSSqJ/Y4EuWVpXs8ifYzXpUa73lLtX+zDDZmqBElx38RiSgvpJor1tvbm7TdcHPE4m2PXbUz1pBqH4nqiZVKVtpwxordzzixUkqZ7ptq/2a/P2aoESXHFTXS2SFHzePxYMD/gmXjj3ZHl4VsdY6acWUv1Vyx8vJy7N+/P2G74eaIxdsem11mrCHVPhLVo11lqkmUV5bu8STar7m5WZ+siYjpvqn2b/b7Y4YajUR5eXncUOlENm/ejHnz5uH4449Hf38/5s6dqwfc3n333fjyl7+Mbdu24dRTTwUAnHzyyXjsscf0993WrVtx+umn44knnsBnPvOZjB1PPJyokS7VK++IcsX4mnS73fqJ+1pWmZkVK1bghhtuiNvO6XQmvNLQOI7D4RjS1mz73Llzo7LLjDWk2keiemInOI2NjXHbp3s8qY4b73lLtX9jO0069ZC9Xfed76In8GHyhimqqDwCa37+04z1F+vcc8/FY489hv7+fpx22mmYP38+zj77bADhRYvVq1fjvvvuM913w4YNOOecc7BhwwZO1Ci37HJe0lu9Y/SrJfNd554ihBRw1dOHW11KSvYfFJSmeI5ad3c3gEMrsdmk1TN+/Hj09PTgsMMOQ29vL/bv3w+Hw6EH0BYXF2P9+vWm7TSHHXYY7rnnnrjHmChHLN52Y3aZy+VCbW1t2n3EU1lZifr6en1VLVleWbrHk+q49fX1pvum2r9ZBhsz1ApHT+BD1B49L2P9te16JHmjiM2bN2PZsmWorKzEyy+/jDPOOAO/+93vICJ44YUXsHjxYuzbtw/FxcV46qmnovYtLS3FjBkzsHPnTv2xuXPn4plnnsHrr7+Oj33sY1HtlVJ44IEHsGnTJpx77rkYGBiI+q7QbOBEjWyl4Fb1Xn4ZB0NB9B0pVleSsl70YuvOrckb7gn/eF/ez25BRgqAEwggAJQCOAAcHH8Q6AVwEBgoGwjXHttOm6eNAQJ7AkmvmjTmpqW6vaGhAYsXL9ZXu4bTR6J62tvbsXPnzrRW04YzVux+Pp9Pvz3S/mMz2LiaRpmydetWvPLKK/joRz+Ks88+G8899xzOPPNMfP7zn8d9992HmTNn4t///rd+cZLmww8/hM/nw3nnnac/5nA48L3vfQ8/+tGPhnwX6HPPPYfjjjsOU6dOxaxZs9DS0oJLL700q8fGiRrp7JCjZpdVvUzxeDzYunMrQrPif+VQvnJsDl+LlG/HptWdSGxuWirbp02bFvXR3nD6AA59O8e2bdtw/fXX41Of+hQaGhoAhFfTPvzwQ9TV1eG73/0ufvzjH+PAgQP42c9+hilTpqChoQH79u1DV1cXpk6dih/84AdoamqKel/Fhvkmex7WrVuXsE0qx2rWLpX2RKk688wz9dX9GTNmwO/34/DDD8cxxxyDmTNnAgivpmueffZZnHrqqXj99ddxww03YOLE6JDvL37xi1i9ejXefPPNqMc3bNiAhQsXAgAWLlyI3/72t5yoUe4wQ43IetokDQiH4vp8Pj10FgBuuukm7Nu3D6tWrdLjM5YuXYoLL7wwqt0bb7yBlStXoqurS/+pRWQYw3yJCkFxcbF+e8yYMRgcHIRSCiLmn2Zo56h1dHTgnHPOwfz58zFjxgx9e1FREa677jrccsst+mMHDx7Egw8+iObmZqxevRpKKfT09GDv3r0YP3581o6N8RxERDby/vuHPkpWSuHRRx+N2q5d5WbMOOvt7R3SDoAeLKv9bGlpQUtLC8NmaVQ44YQT8Pbbb+OFF8JJAnv37o163wDhlfAbb7wxakKmufLKK/Hkk0/q78knn3wS06dPx44dO+D3+9HV1YXLLrsMDz/8cFaPgytqpLND4G2h8fl8QH59Mlj4esO/F7u+zo0nNQPQL5RIJpV2xitHGTZLhW7s2LG47777cM0116C/vx+lpaV48sknh7T7+te/jltvvXXIx5xjx46Fx+PB4sWLAYQ/9pw/f35Um8suuwy/+tWvcMUVV2TtOCQ2KTofichEAD8HMBPh04b9AL6jlOqwsKYWAF+M3P2iUur2FPbpVUolvdyxtrZWtbW1jbTEIS699FL09/ejpqYm432PVj6fD72hXoTmFt5sLW/PUXvMgXJHuW1f57HfcpBNZWVlpt9DSpTMq6++ihNPPFG/n2/xHFaKfe4AQES2KKVqzdrn/YqahD+A/iMAr1JqYeSxGQCOBmDZRE0pVR+pxQXgmwCSTtSsZofA20KjXUxANlIO1FTZJ9Q3lvHqs0zTztdRSjFsljKqUCdVdlAI56hdACColNIvTVJKbQPwVxH5qYi8LCIvicjnAUBEZonIZhF5QEReE5F7IpM9iEh95LG/ikiTiDwWeXyciNwlIi+IyFYRmRd5/EoReUhEnhARn4j8RKtBRPwiUgngZgBTRWRbpJ5yEXlKRF6M1JW54JkRqq6uLrx4DKI8YzyhGQhHBaQilXZOpxNFRUV6e8ZjENlf3q+oATgZwBaTxy8FMAPAdACVAF4QkWci204D8HEAbwN4DsDZItIG4H8AnKeUelNENhj6+iGAPyulviwiEwA8LyLaB90zIv3tB/C6iKxVSu0w7HsDgJOVUjMAQESKAMxXSv07MpH7h4g0Kxt8Bp3Jc3a0iAErZTqQtbq6enjP0e7UIiHyzu7wj7w7tt0AqqwuIr6mpiacf/75+hVrF110UdRXSGlfm1NUVKSfGF1eXo4LL7zQ9Kumurq69IDZ+vp6KKXSDr8lIusUwkQtnnMAbFBKHQSwS0T+gvA5bP8G8LxSqhsARGQbABfCkZn/UkppZxNuAHB15PYcABeLyPWR+yUAJkduP6WU2hPpqx3AFADGiVosAfAjETkP4dPMqxD+mPbdRAcjIldr9UyePDlRU1vo7OzEa9u2YWLyplmzN/JzdyAw4r4S/nISsGKFMhgM6gn5Tqcza+N0q8hEuCr730yQTFrHXGX/YOXvfOc7uO2223DdddfhU5/6FHw+n/5dml/5ylfQ2NgYlaO2cuVKTJkyBT6fL26OmhYwq10FytU0ovxQCBO1VwAsMHk8URT8fsPtgwg/D4naC4DLlFKvRz0o8ok4fSVyOYCPADhDKRUUET/CE7+ElFJ3ALgDCF9MkKz9cGQ68HYigK8kfFqz6zcIP02ZqEHryyiV58uKKwvXrFmD9vZ21NTUjJor+grtmOfPnx91dVls6KwWrPsf//EfUY+bhdOaBcwybJYof+TZZxam/gygWESu0h4QkZkAPgTweREZIyIfAXAegOcT9PMagOMjJ/8DwOcN2/4E4BrDuWynpVHfXgDGJLzDAbwXmaRdgPAKnC10dnZa/nFlPrHj8xUIBNDa2jqqcrJG4zET0eiR9ytqSiklIvMB/FxEbgAwgEg8B4ByAP9E+Jv/vqeUeldETojTT7+IfBPAEyISQPSkbiXC8R/bI5M1P4C5KdbXIyLPicjLAFoB3ALg0cg5cdsQniDaQiZz1Hw+X0H8FaDpAfB+TPaWz+cb8r1xVtOS54HRk5M1Go+ZiMytW7cOZWVlWLRoUUrtN2/ejHnz5uH4449Hf38/5s6di1tvvRUAcPfdd+PLX/4ytm3bhlNPPRUAcPLJJ+Oxxx6Dy+UCEP6O0dNPPx1PPPEEPvOZz2TlmPJ+ogYASqm3AfyXyabvRv4ztt0MYLPh/rcNm59WSp0QmYz9EkBbpE0/gK+ZjHs3gLsN9+cabrsMt7+IaJ+McxxJM9SIEtm0aZMeahoMBrFx48aCn7SMxmMmspslnmsQMHyrxkhVfuQj+FlT+h/Rf/3rXzd9fHBwUL/iOZb2dVL9/f047bTTMH/+fJx99tkAwhejrV69Gvfdd5/pvhs2bMA555yDDRs2cKKWI1eJiBvAWABbEb4KdNTIZI6ax+PB7hwGd2ZbBYAJNdHZW3ZMtp89ezZaWlr0E89HQ07WaDxmIrsJvP8+PjZmMHnDFL2e4qRv/fr1uPXWWyEiOPXUUzF16lSUl5fj+uuvx6xZs/CpT30Kzz33HC6++GKcd955WLx4Mfbt24fi4mI89dRTUX2VlpZixowZUd8OMnfuXDzzzDN4/fXX8bGPfSyqvVIKDzzwADZt2oRzzz0XAwMDKClJesp52jhRM1BK3QbgNqvrsIrdr4SzGzs+X263Wz/RfLTkZI3GYyYi4JVXXsHq1avx3HPPobKyEh988MGQhYbdu3fjL3/5Cw4cOIATTjgB9913H2bOnIl///vfQ05d+fDDD+Hz+aJCpx0OB773ve/hRz/6Ebxeb1T75557DscddxymTp2KWbNmoaWlBZdeemnGj5MTNdJleoXoXZhfLZkr70R+ZqKGdwFMiHnMjitqlZWVqKurG1U5WYV4zMYcwkznAQ7XsHMEibLkz3/+MxYsWIDKykoAwJFHHjmkzec/H74u8PXXX8cxxxyDmTNnAgAOO+wwvc2zzz6LU089Fa+//jpuuOEGTJwYHSz1xS9+EatXrx7yXaAbNmzAwoULAQALFy7Eb3/7W07UKH/YYbWpN/IP3IQM/AM3AfY4plS43e5Rl5NVaMfc2dmJV156FRPKjsKevnAioOy37mrW3X3vWTY2UTxaKHQi48aNS9pWO0eto6MD55xzDubPnx/1DSFFRUW47rrrcMstt+iPHTx4EA8++CCam5uxevVqKKXQ09ODvXv3Yvz48SajDB8napQV/MvbOpWVlaMuJ6sQj3lC2VG44ISFePq1ewEAF5yw0LJatBqI7OTCCy/E/Pnzce2116KiogIffPBB3LYnnHAC3n77bbzwwguYOXMm9u7dO+Sjz2nTpuHGG2/ELbfcgg0bNkRtu/LKK/GTn/wEe/eG/3B68sknMX36dPzpT3/S27jdbjz88MO44oorMniUhZGjRhnS1NRk2y+qJiLr9A58qH8ES2QXH//4x/HDH/4Q559/PqZPn57wau+xY8fivvvuwzXXXIPp06dj9uzZGBgYGNLu61//Op555pkhH3OOHTsWHo8H770XXl3esGFDVCg1AFx22WX4/e9/n4Eji8YVNdLZLbyViOxhMBREf7/lX0dMNlb5kY+kfKVmqv2lwu12xz3lYfPmzVH3Z86ciX/84x9Rj82aNQuzZs3S75eWlupXfR533HG48sor9W0ej0f/tOjuu+8eMt7FF1+Miy++OKW608GJGukyGXhLRMPn8/kQOmDd168RpWs4mWeUGn70SURERGRTXFEjXSYDb4lo+DweD3a+we8sJSJO1MggX+IniCi3ihxOlJZmPnGd8lsq8RgUTfte4nRwokY6npuWedrqJJ9bStfuvvfw9Gv36hlmVkZkDIaCmDSJf8jRISUlJejp6UFFRQUnaynSstbS/ZopTtTIVgKBAJYvX45ly5YVRMK89tVGnKhROoyr26q7HwBQNcm690MVKrjiTlEmTZqE7u5uvJ/BKz1Hg5KSkrS/ZYQTNbIVr9eL7du3w+v1JszEyRd9fX1Wl0B5iBN7sjun04njjjvO6jJGBV71SbYRCATQ2toKpRRaW1vR05P/J1MrpYZ1TgIRERHAiRrZiNfr1Sc1oVAIXq/X4oqIiIisxYka2camTZsQDAYBAMFgEBs3brS4IiIiImtxoka2MXv2bDidTgDh8x/mzJljcUVERETW4kSNbMPtduuXeTscjrjf35ZPRISXrhMR0bBxoka2UVlZibq6OogI6urqCiKeo6ysDGVlZVaXQUREeYrxHGQrbrcbfr+/IFbTAKCurs7qEoiIKI8JowPyT21trWpra7O6DCIiIsoAEdmilKo128aPPomIiIhsihM1IiIiIpviRI2IiIjIpjhRIyIiIrIpTtSIiIiIbIoTNSIiIiKb4kSNiIiIyKY4USMiIiKyKU7UiIiIiGyKEzUiIiIim+J3fVLBampqQmdnp9Vl5Fx3dzcAYNKkSRZXYp3q6mp4PB6ryyAiGjFO1KhgdXZ2YutL7QiVHWl1KTnl6NsDANi1f3S+vR19H1hdQko6OjqwePFirFy5EnfeeScA4LrrrsOaNWuG3F69ejWUUli+fDmWLVuGiooKBAKBqPsAEAgE0NDQoO9jfDy2bSqM+8WOn85xGWtJR7p1D/c4M90HUSaNzv+Tk6mmpiYAKKiViFDZkRg4aa7VZeRUSftjADDqjlujHb/dXXvttdi3bx8aGxvR29sLAFi5ciX8fv+Q216vF0opbN++HV6vF0uWLIHX6426r7Vrb2/Xbxsfj22bCuN+sePHs2rVqiHHle64ZuOnsv9wjzPTfRBlEs9RI11nZ+eo/KiQKNc6Ojqwd+9eANAnMwD0iVns7ccffxytra1QSqG1tRU+ny/qfk9PDwKBAFpaWvR9Wlpa9Mdj26bCuF9LS0tKfXR0dOh1G49LqyUd6dY93OPMdB9EmcYVNdJ1d3ejv7+/YFbUfD4f5ICyugzKMRn4N3y+vbZ+Hb/66qtptQ8GgxARAEAoFMLKlSuhlNLvayteg4ODUftoj8e2TXV1StsvGAzqjyfqY9WqVXHrH85qXjp1p9s+W30QZRpX1IiIcmz//v1p72OcNPn9fn3yFAwGsXHjRmzatElvo7XXHo9tmwrjfsbJXqI+jKuAsbWnOq7Z+KnUPdzjzHQfRJnGFTXSaVcJaueq5TuPx4Mtb7xrdRmUY6rkMNRMnWjr1/GiRYviTmriEREopeB0OlFVVYWdO3ciGAzC6XRizpw5UEqhublZn1CJiP54S0tLVNtUzJ49W99PW83Txo/Xh8vlMj0urZZ0GMdPpe5022erD6JM44oaEVGOaVdmpsrpdMLpdAIAHA4Hli5dqk+eHA4H3G433G43ioqKovbRHo9tmwrjfrHjx+sj3nFptaQj3bqHe5yZ7oMo0zhRI111dTWqq6utLoOo4E2bNg3jx48HAJSXl+uPu1wu09uf+9znUFdXBxFBXV0dampqou5XVFSgsrIS9fX1+j719fX647FtU2Hcr76+PqU+pk2bptdtPC6tlnSkW/dwjzPTfRBlGj/6JJ0dTr7OZEitz+eDY18fytq8GelviNDB8E/HmOz0P1wHwyeUp3rcyuGEKjksmxXlVDhHbaLVZSR12223YfHixVixYkXSHDW32w2lFPx+v77K43a7o+5rj/l8Pv228fHYtqkw7hc7fjwNDQ1Djmu4K1Pp1j3c48x0H0SZJMaTTyk/1NbWqra2NqvLyAqPx4OOl1/E5PKDVpeSVNfe8ARtynh71bqrL7xQfnRZKGnbt3rHQIrHo6amJttlDZt28rzL5YLT6Yy6D4RPYD/66KPh9/tRXV2NsrIy/ZsJMhVeGttPsn6tCGpNpe9UQ2uH07cVq0/pjD+SWq0+Tip8IrJFKVVrto0raqSzS+Dt5PKDaKjtTd7QYqvawh/t5EOt8axqK0eJq8a2J943NTXhxRdfRF9fH2pqarBkyRKsWbMG7e3tqKmpgVIK7e3teO+99xAKhXDgwAF9FQfIXHhpbD/J+rUiqDWVvlMNrR1O31bEWKQz/khqtfo4aXTjOWqkY+At2c2rr76KN9980zTo1RjCqoWr+v1+/TWcqfDS2H7MwmYTtc9FUGsqfacaWjucvq0Ih01n/JHUavVxEnFFjXR2CLz1+XwYG+TfD7myq8+BAz6f5auo8bz++utRAaTGoFdjCKvRihUrsH79+oyFl8b2YxY2a+zXiqDWVPpONbR2OH1bEQ6bzvgjqdXq4yTiv4hEZFuxSfvGoFdjCKuRluOVqfDS2H7MwmYTtc9FUGsqfacaWjucvq0Ih01n/JHUavVxEnFFjXR2CLz1eDwY8L9g2fijzdFlIVufozZ//nz9o6bYoFdjCKuRdpFBpsJLY/sxC5tN1D4XQa2p9J1qaO1w+rYiHDad8UdSq9XHScQVNdIxR43s5qyzzoLDEf7fVGzQqzGE1aixsRFA5sJLY/sxC5tN1D4XQa2p9J1qaO1w+rYiHDad8UdSq9XHScQVNdLZ5Tylt3rH6FdU2pkWz5GNWnf1OTBwUDLeb6z9BwWlNj5HDQCOOOII9PT0oLy8HN///vf1iZsWGNvT0wOHw4FQKITi4uKo1cHx48fr+y5fvnzYNRj7Wbt2bdJ+k23X4kOAQyGrzc3NGQ9ZNfZdX1+vf81UJsbJZt2ZHn8ktVp9nEScqJGt5NOK3rjubgBASeQj40w64POhT/UCEzLe9RC96MXWnVuzP9BwKQBOIIAAsCfmfuT2wdKDwF5goGwg+lgMbQM7AxmpIbAzkLzfRNt3D22ezZDV4YTWDqdvK6Qz/khqtfo4aXRj4G0eylbgrV1y1Cj8O9i6cytCs5KH1o4mjs3h1bR8fl4cmx04reo0254XGPv/gUAgoH+H5+rVq7miRJQFiQJveY4a6ZijRkSx/x/wer1ob29He3s7vN4sfR0bEcXFiRoREZkKBAJoaWnR77e0tDDwlSjHeI4a6ewQeEthPp8PyN9P9yiR3vDv167vM5/Ph9LSUgDh1bTYLDsGvhLlVsGvqInIQRHZJiKviMg/RWSJiDgi22pFJKMniojIlSLyUcP9O0XkpEyOQUSUC5s2bYrKqVNKMfCVKMdGw4pav1JqBgCIyFEAfg/gcAA3KaXaAGT6rPwrAbwM4G0AUEp9NcP9Z40dAm8pTLuYgApQOVBTZd+QYeNK3+zZs9Hc3KxP1kSEga9EOVbwK2pGSqn3AFwN4NsSNktEHgMAEfmIiGwSkRdF5H9EpEtEKiPb/ltEno+szP2PiIyJ/He3iLwsIi+JyLUisgBALYB7Im1LRWRzZOXuGyLyE62WyMrb2nj95/7ZYeAtEUX/f8DtdqOo6NDf806nkxEVRDk2GlbUoiil/hX56POomE03AfizUurHIvJZhCd0EJETAXwewNlKqaCI3A7gcgCvAKhSSp0caTdBKbVbRL4N4PrIap2eaA3gAQB/B/C9yP3PA1idoP/12Tj+ROxwzkxTUxOvPAXw8ssvA4OA42Gb/S1VBMDKLOLd4R9aTEde2g2gyuoi4jP+f6CyshL19fV45JFHAAD19fWM5yDKsVE3UYswi3w/B8B8AFBKPSEiH0YevxDAGQBeiEy6SgG8B+BRAMdHVsUeB5DwxA2l1Psi8i8ROQuAD8DHADwH4Ftx+o8uWORqRCaPkydPTudY80pnZyde27YNE60uxGJjAIyB4Jig1ZUc8i6AMWPHoaaqxrIaulU4ZHhSVeZDhnOmKr1g50AggOXLl2PZsmWWTJLcbnf44pbIbSLKrVE3UROR4wEcRHgydKJxU7xdAHiVUjea9DUdwGcQnmz9F4AvJxn+vki71wD8USmlJDw7M+3fSCl1B4A7gHDgbZJxhsUugbcTAXwl7q9jdPgNwr9iOz0Pv4HChBr7nFtll9drtnm9Xmzfvt2yqy0rKyuxbt26nI9LRGF5/PlB+kTkIwDWAfiFGvqVDH9FeBIFEZkD4IjI408BWBC5EAEicqSITImcv+ZQSj0IYCmA0yPt9wIYH6eEhwBcAuALCE/a4vY/ogMdJgbeUj4ZDa/XQCCA1tZWKKXQ2trKDDOiUWg0rKiVisg2AE4AgwB+C+BnJu2WA9ggIp8H8BcA7wDYq5QKiEgDgI2Rc9uCCK+g9QP4Xy3qA4C2InY3gHUi0g/gk8YBlFIfikg7gJOUUs9HHmuP039XRo4+DXbIUfP5fKPrr4c80gPgfRvlfxnzvgqV1+vVr7gMhULMMCMahQp+oqaUinsFpVJqM4DNkbt7AHxGKTUoIp8EcIFSan+k3X04tAJmdHrsA5EVtgcND82K2T7XZJ94/RPRKLZp0yYEg+ETFYPBIDZu3MiJGtEoU/ATtTRMBvCHyKrWAQBXWVxPztkhR83j8WD3tm2WjU/xVQC2OkfNLit72TR79my0tLQgGAzC6XQyw4xoFOJELUIp5QNwmtV1WIkZapRPRsPr1e12o7W1FQDgcDh41SXRKCRDz6knu6utrVVtbZn+QgV7ZJi9/PLLGBwcRLGlVVjvQOTnWEuriHYAQNm4caipsS6eY7Sprq5GMBhEc3Mz5s2bx489iQqUiGxRStWabeOKGuk6OzvxykuvYkJZbBZw7ogaA+eYMTjMwhrsoHcgHONXXnJEkpa5t/MNXnmYC7v7wnGKjY2N8Pv9XE0jGqU4USNdd3c3ihxOXHDCQstqePq1ewHA0hqI7EB7L1RWVmLt2rUWV3PIaMmvI7ILTtRI19/fj8HQoNVlEJGNWX16BNFow8gqIiIiIpviihoRkQ31DnwIn+8D233EOBqChonshCtqRERERDbFFTUiIhsqLzkCVVMrbBMwrLHbCh9RoeNEjXSlpaUIHRiwugwisrHREDRMZCecqJFu0qRJeOXDV/VYACto2VHJaugd+BCDoWBWajgYufJ1jMPat0eRw2nLHDXKjd1976EKFVaXMQRX1IhyixM10tnhL2XV3Q8AqJqU+B8on+8DqL4DGD828y/hvQdCAIDyolDG+069hkE4SopQNdV+/1DnUjAYhN/vh8vlgtPptLqcnKpChS3ek0RkLU7UKEp1dXVe/MXs8XjQ9eorOPPozK84Pb8r/K0A2eg7VZt3BlBaWmq785Nybc2aNWhvb0dNTQ2/PomIRiVe9Um6zs5OhlnaxMGQQn9/v9VlWCoQCKC1tRVKKbS2tqKnh19dRUSjD1fUSNfd3Y3+/v68WFHz+XwYHDxodRmURV6vF0opAEAoFILX6+WqGhGNOlxRIyJb2rRpE4LB8AUjwWAQGzdutLgiIqLc44oa6SZNmgQAeXFelHaOGhWu2bNno6WlBcFgEE6nE3PmzLG6JCKinOOKGumqq6t5lZlNjHHIqP+aHrfbDREBADgcDrjdbosrIiLKPa6okS4fzk0z2ntgUL9CM9P9AshK36k6GFL6CudoVVlZibq6OjQ3N6Ourg4VFaM7qoSIRidO1CgvZXPlr7u7GwAsnyhxdTO8qub3+7maRkSjlmhXVVH+qK2tVW1tbVaXQURERBkgIluUUrVm23iOGhEREZFNcaJGREREZFOcqBERERHZFCdqRERERDbFiRoRERGRTXGiRkRERGRTnKgRERER2RQnakREREQ2xYkaERERkU1xokZERERkU/yuTypYTU1N6OzstLqMnLPLd5UWgurqang8HqvLIKJRjBM1KlidnZ3Y+lI7QmVHWl1KTjn69gAAdu3n23skHH0fWF1CxgQCASxfvhzLli1DRUXFsPtoaGgAAFx33XVoamoaUX/ZqJGoEPH/5KRramoCgIJaQQiVHYmBk+ZaXUZOlbQ/BgCj7rgzTXsejfL1PeL1erF9+3Z4vV4sWbJk2H20t7cDAFauXImurq4R9ZeNGokKEc9RI11nZ+eo/KiQKFX5+B4JBAJobW2FUgqtra3o6ekZdh8av98/ov6yUSNRoeKKGum6u7vR39+fd6sF8fh8PsgBZXUZlKdk4N/w+fZGvR98Ph9KS0strCp9Xq8XSoXfB6FQaFgrVl6vF8FgcMjjw+0vGzUSFSquqBERFbBNmzbpk6xgMIiNGzcOqw9tImU03P6yUSNRoeKKGum0qwS183DyncfjwZY33rW6DMpTquQw1EydGPV+yMfV5tmzZ6OlpQXBYBBOpxNz5swZVh/Nzc1DJmvD7S8bNRIVKq6oEREVMLfbDREBADgcDrjd7mH14XQ6hzw+3P6yUSNRoeJEjXTV1dWorq62ugwi28rH90hlZSXq6uogIqirqxtW9IXWh8blco2ov2zUSFSo+NEnRens7MzIxzt2CF31+Xxw7OtDWZvXshqMlMMJVXJY1sdx9IWvmDOLl6DUhXPUJkY9lo8ffQLhFSu/3z+ilSq32w2fzwfgUI5aJle+MlEjUSESsxNEyd5qa2tVW1tbxvv1eDzoePlFTC4/OOK+uvaOAQBMGT/yvgrBW71jIMXjUVNTk/Wxcj1JDgaD8Pv9cLlcph+P2aXP4eA3ExBRLojIFqVUrdk2rqiRrru7G8UOhYba3hH3taqtHAAy0lchWNVWjhJXTdSJ6fkanhprzZo1aG9vR01NTcYiFbLRJxFRPuI5aqTr7+/HwEGxuoxRIx/DU2NlI6iU4adERIdwRY0oB3b1OXDA58v78NRY2QgqZfgpEdEhXFEjomHLRlApw0+JiA7hihpRDhxdFhpyjlq+n5sGZCeolOGnRESHcEWNdKWlpSgZw6uAcyUfM7liZSOolOGnRESHcEWNdJMmTULHy+/pV2yOhBbPkYm+CsFbvWMwLeaxbK+oNTU15eRihfHjx6Onpwfl5eVYvnw5gJFHhJj1me8Y9UFEw8GJGukyubozLvIPdYmFgbd2Mg2ZfX5T0dnZia2vbAUmZHkgBcAJBBBAYGcg/Nie8I/35f3M9ZnPdltdABHlK07UKAr/6i8wE4DQrFDOh3VsDp9VYcXYdqQ9H1YolLw+otGKEzXS5XumFxENxfc1UX7jRI103d3d6O/v51/eBcLn8wFc0LKH3vDvw4r3ViHk9RGNZrzqk4iIiMimuKKWJSJyEMBLhofuVUrdbFU9qdCu0DNmfVH+8ng82Lpzq9VlEACUAzVVNZa8t7hCTpTfOFHLnn6l1Izh7CgiRUqpwQzXQ0RERHmGE7UcE5FGABcBKAXwNwBfU0opEdkcuX82gGYAa3JdW76HrxLRUHxfE+U3TtSyp1REthnu/1gpdR+AXyilVgCAiPwWwFwAj0baTFBKnZ/bMg/hRySpSSdINlnwa9bjUHZbFA2xO/zDylgKW9kNoMqaofm+JspvnKhlT7yPPi8Qke8BKANwJIBXcGiidl+8zkTkagBXA8DkyZMzW2lEIBDA8uXLsWzZMlRUVGRljELQ2dmJ17Ztw8QU2u6N/NwdGBra+m5GqxrKypWUbhWZoFYx8BgAUMWVLSIaHk7UckhESgDcDqBWKbVDRJYBKDE02RdvX6XUHQDuAIDa2tqsfCGn1+vF9u3b4fV6sWTJkmwMURC6u7vhBPAVSNK2v0H4V2XWVts2EonCTLmSQkSU//i5RG5pk7KAiJQDWGBlMUaBQACtra1QSqG1tRU9PT1Wl2Rb/f39OGB1ERGdnZ0MNCUiKmBcUcue2HPUnlBK3SAiv0Y4tsMP4AUrCjPj9XqhVHiFJxQKcVUtB3oAvD/CEFSGmRIRFTZO1LJEKTUmzuMNABpMHp+V7ZoS2bRpE4LBIAAgGAxi48aNnKgRERFZjBM1AgDMnj0bLS0tCAaDcDqdmDNnjtUlFbwKABNqRhaCyvPQiIgKG89RIwCA2+2GSPiEd4fDAbfbbXFF9lVaWoqxVhcRUV1dzasJiYgKGFfUCABQWVmJuro6NDc3o66ujvEcCUyaNAmvBQIpXbX5TuSnWdt3AUwYYS1cUSMiKmycqJHO7XbD7/dzNS2JdFaweiOBtxNMAm8npNkXERGNPqJd6Uf5o7a2VrW1tVldBhEREWWAiGxRStWabeM5akREREQ2xYkaERERkU1xokZERERkU5yoEREREdkUJ2pERERENsWJGhEREZFNcaJGREREZFOcqBERERHZFCdqRERERDbFiRoRERGRTXGiRkRERGRTnKgRERER2RQnakREREQ2xYkaERERkU1xokZERERkU5yoEREREdkUJ2pERERENsWJGhEREZFNcaJGREREZFOcqBERERHZFCdqRERERDbFiRoRERGRTXGiRkRERGRTnKgRERER2RQnakREREQ2xYkaERERkU1xokZERERkU0VWF0Bk1NTUhM7OTqvLyInu7m4AwKRJkyyuJLOqq6vh8XisLoOIqCBwoka20tnZia0vtSNUdqTVpWSdo28PAGDX/sJ5Gzr6PrC6hJQFAgEsX74cy5YtQ0VFRdzHjDo6OrB48WKsXbsW1dXVpv15PB40NTXF7SNeDUop07FjaxpO3bG1pVNjOrWm83yk01+y4yMqZIXzLwSNWFNTEwBYvhoSKjsSAyfNtbSGXChpfwwACupYtWOyo9jXt9frxfbt2+H1erFkyZK4jxmtWrUK+/btw4oVK7B+/fqobdq+K1euRFdXV9w+zPbxer1QSpmOHVvTcOqOrS2dGtOpNZ3nI53+kh0fUSHjOWqk6+zsHDUfO9LoY3x9BwIBtLa2QimF1tZW9PT0mD5m1NHRAb/fDwDw+/1R7xXjvn6/P24fRsZ9WlpaTMeOrcnn86Vdt1ltqdaYTq3Jxox3XMn6S3Z8RIWOK2qk6+7uRn9/v6Uraj6fD3JAWTY+jYwM/Bs+317LV2XN+Hw+lJaWAoC+igMAoVBIvx/7mHH1ZtWqVVH9GVfVjP1pzPowMu4TDAZN94utc+XKlWnXbVZbqjWmU2u89smOK1l/Zr8rrqrRaMIVNSIadTZt2qRPEILBIDZu3Gj6mJG2mmZ237ivxqyPeDUYJ1vG/WJr8vv9addtVluqNaZTa7Ix4x1Xsv6SHR9RoeOKGum0qw+1c3ms4PF4sOWNdy0bn0ZGlRyGmqkTLX0NxWNc5Zs9ezZaWloQDAbhdDoxZ84c/WM442NGLpcranLmcrlM+9OY9WFk3EdEAIQnLcb9YuusqqrCzp0706rbrLZUa0yn1mRjxjuuZP2Z/a6IRhOuqJGuurp6yJVsRIXC+Pp2u936BMHhcMDtdps+ZtTQ0BB1v7GxUb9t3Fdj1oeRcR+n0wmn0zlkv9iali5dmnbdZrWlWmM6tSYbM95xJesv2fERFTpO1Ejn8XhseW4RUSYYX9+VlZWoq6uDiKCurg4VFRWmjxlNmzZNX0VzuVxRf9QY93W5XHH7MDLuU19fbzp2bE01NTVp121WW6o1plNrsjHjHVey/pIdH1Gh40efZCvd3d1w7O1BWZvX6lIyI3Qw/NMxZui2g4MAkHfHqhxOqJLDTLeFc9Qm5ragYXK73fD7/VErNGaPGTU0NGDx4sVRq2mx+2q5YamuVGnjaVdImq0oGR8fTt2xtaVTYzq1Jhoz0XEl6y/Z8REVMol3NRDZV21trWpra7O6jKy49NJL0bf7PUwuP2h1KRnRtTc8QZsyfujx7OoLL2gfXRbKaU0j8VbvGEjxeNTU1MRtY8dvJggEAvpHl6tXr04riDbVUNnh1pWLINdE42SyhlwG0zIElwqJiGxRStWabeOKGunsEHg7adIkDAy+g4baXstqyKRVbeUAUFDHU+KqseXFAhqz17HX60V7e7t+O50g2lRDZYcjV0GuicbJZA25DKZlCC6NFjxHjXQMvKVCEPs61gJTNS0tLSkH0aYaKjscuQpyTTROJmvIZTAtQ3BpNOGKGunsEng7Nsi/H+xqV58DB3w+2320aWQMtgXCKy/GmIhgMJhyEG2qobLDkasg10TjZLKGXAbTMgSXRhP+i0hEBW3Tpk1RKflKqZSDaFMNlR1uXbkIck00TiZryGUwLUNwaTThihrp7BJ4O+B/wbLxKbGjy0K2P0ctdrVv9uzZaG5u1idrIpJyEG2qobLDkasg10TjZLKGXAbTMgSXRhOuqJGOgbdUCGJfx263Ww9UBcIBq6kG0aYaKjscuQpyTTROJmvIZTAtQ3BpNOGKGunsct7RW71j9KslrbCrz4GBg+ZJ7unaH+nnqqcPz0h/w3EgFK5hrGPkUTz7DwpKbXCOWqIIkNjHtcDURx55BABQX1+fUhBtc3NzVMCq2WMjEW+cTEs0TiZryNXx5HosIqtxoka2YocVvQM+H/pULzAhA51FUjn6yjMz8RuW3eEfgxMyU0MverF159aM9DUsu9Pfxe12w+fz6bdTaZ9uqGwyWu6XFgC7aNEibNq0CTU1NXqfxry36667Dk1NTVi2bBmUUqaZYbF9ejwerFmzRt9fu/2Vr3wFTz75JC6++OKUjnW4chlMyxBcGi0YeJuHshV4a4ccNTvweDzYunMrQrPyJ4g2Ecfm8BkOhXQ8p1WdZsvz5BK9h9asWYPm5mZMmTIFXV1dGDduHHp7e+FyubB+/Xq9jbby53K50NXVhXnz5kEphebmZsybNy/q6sbYPqdMmaJ/cbzxS+SNffHqSCL7SRR4y3PUSMccNaKRifceMuZ++f1+KKXQ2xtebvX7/ejs7ByS96a1a2lpMc0MM+tTm5hp+8f2xcwxovzDjz5JZ4ccNTvw+XxAYSw+Fabe8O/Ijq/T2Aw3jTH3y8yKFSswffr0qLw3jfExY2ZYsj7NMHOMKP9wRY2IKMuMuV9m/H7/kLw3jTFs15gZlqxPM8wcI8o/XFHLMBE5COAlw0P3KqVutqqedNghR80OtHPUyKbKgZoqe2a5xVvlM+Z+mXG5XJg+fXpU3ptGi6FQSkVlhiXr0wwzx4jyD1fUMq9fKTXD8F9eTNKIKHuMuV9mGhsbh+S9aZxOp/64MTMsWZ9mmDlGlH84UcsBEblQRP5ouD9bRB6K3J4jIn8XkRdF5H4RsSxAjIG3RCMT7z2k5X6JCFwuF0QE5eXht7rL5UJ1dbXeRqO1q6+v1/c1ZoaZ9elyuaL2j+2LmWNE+YcffWZeqYhsM9z/MYA/APiliHxEKfU+gC8B+F8RqQTQAODTSql9IvJ9AEsArMh10ZrOzk5LT9Lu7u4GcOhjWCv4fD6g/1CsRd7bHf5RUMdTZXUR5hK9d7TcL2OOWmNjIxobG6PaaHlvWo6a2+3Wr+iMXQ2L7TNejpqxLyLKL8xRyzAR6VVKDVkVE5EfAugD8L8AtgKoAfBZAHcD6I40Gwvg70qpr5jsfzWAqwFg8uTJZ3R1dWW8do/Hg9e2bcPEjPecunciP4+xsIZ3AYwZNw41NTUWVjF8wWAQfr8fLpcLTqfTFpPfkYg9HiDxNxMQEeWbRDlqXFHLnf8F8CiAAQD3K6UGJXyCySal1BeS7ayUugPAHUA48DYbBXZ3d8MJ4CuwLkX/NwgfmpU1/AQKxaWltjxZPRVr1qxBe3s7ampqCiKGodCOh4goHQXyWYj9KaXeBvA2wh913h15+B8AzhaRagAQkTIRmWZNhUB/fz8OWDW4jRxA+LnIR8YQ1EIINy204yEiShcnaplXKiLbDP8Zr/q8B8AOpVQ7AETOV7sSwAYR2Y7wxO2EnFdMBcMYgqqFm+azQjseIqJ0caKWYUqpMTHxHDcYNp8D4Ncx7f+slJqplDo18l9zbiumQmIMQS2EcNNCOx4ionRxopYjIrIFwKkAfmd1LVS4Zs+erZ9wXwjhpoV2PERE6eJELUeUUmcopc5TSu23upZ4SktLMdbqImxgLGD6fY35wBiCWgjhpoV2PERE6WI8Rx6qra1VbW1tGe/30ksvRU8gYOlkTbuYweoayvI4nmPHjh3o6elBRUUFjj32WKvLGbFcH49d4kwYQUI0ejCeg1JWNKYYh5UdZdn4vQMfAgDKS46wrAbNzjfy8wpDFSqGc0wxMFCct8dglOvj2dO3FwAg+6177nb3vWfZ2ERkL5yoUZQihxMXnLDQ6jKILPP0a/cCgKXvg0e3/Upf2SOi0Y0TNdL19/djMDRodRlEo95gKIj+fp6WQkS8mICIiIjItjhRIyIiIrIpTtSIiIiIbIoTNSIiIiKb4kSNdKWlpShyOK0ug2jUK3I48zZ0mYgyi1d9km7SpEl45cNX9XgCotFIyzCz8n0wGApi0qRqy8YnIvvgRI101dX8h4FIdfcDAKomVVhWQxUq+H4kIgCcqJEBv66GiIjIXniOGhEREZFNcaJGREREZFOcqBERERHZFCdqRERERDbFiRoRERGRTXGiRkRERGRTnKgRERER2RQnakREREQ2xYkaERERkU1xokZERERkU5yoEREREdkUJ2pERERENsWJGhEREZFNcaJGREREZFOcqBERERHZFCdqRERERDbFiRoRERGRTXGiRkRERGRTRVYXQGTU1NSEzs5Oq8uwXHd3NwBg0qRJFldijerqang8HqvLICKyHCdqZCudnZ3Y+lI7QmVHWl2KpRx9ewAAu/aPvreoo+8Dq0tIWUdHBxYvXoy1a9eiuroaABAIBLB8+XIsWrQIjY2N+rZAIICGhgYMDg6iqKgIq1evRkVFRVR/2r7Lli1DRUXFkPuxzLZrj3k8HjQ1Nek/zdrE63ckUuk7m+MTFZrR968AxdXU1AQAlq9khMqOxMBJcy2twWol7Y8BwKh8HrRjtyvj+2TVqlXYt28fVqxYgfXr1wMAvF4vtm/fjptuuilqm9frRXt7u96P1+vFkiVLovrW9tW2xd6PZbZde2zlypXo6urSf5q1idfvSKTSdzbHJyo0PEeNdJ2dnfzYkSgJ7X3S0dEBv98PAPD7/ejs7EQgEEBrayuUUujt7dW3tbW1obW1NaqflpYW9PT06PeN+7a2tsLn80XdN7Y1a9/T0xP1mN/vj/pp1sas35FIpe9sjk9UiLiiRrru7m709/dbuqLm8/kgB5Rl45P1ZODf8Pn2Wr6yG4/P50NpaSlWrVoV9fiKFSswffp0KDX09dvY2IhgMBj1WDAYHLLKpe0bCoWwcuXKqPuxq0+x7bX7ZuPHa2PW70iY1WS2apit8YkKEVfUiIiGQVtNM97ftGnTkAkZAPT29g6ZQCmlsHHjRv2+cd9gMAi/3x9139jWrP3GjRvjjh+vjVm/I5FK39kcn6gQcUWNdNoVhto5OFbweDzY8sa7lo1P1lMlh6Fm6kRLX4eJaCt95eXlUZM1l8uF6dOno6WlZchkqby8HPv27YuarIkI5syZo9+fPXu2vq/T6URVVRV27typ3ze2NWs/Z84cKKVMxwdg2sas35Ewq2k4bYjoEK6oka66ulq/co2IzGnvk4aGhqjHGxsb4Xa7ISJD9lmxYgWcTmfUY06nE263W79v3NfhcGDp0qVR941tzdq73e6448drY9bvSKTSdzbHJypEXFEjnV3OCXL0fWD7K/+yzdEXPsF6ND4P4XiOiVaXEZfxfeJyueD3++FyufQ/curq6tDc3Ixx48aht7cXLpcLtbW1qKurwyOPPKLvW19fHxVNUVlZqe9bV1eHmpqaqPuxMRax7bXt2mNTpkxBV1eX/tOsjVm/IxGvpnTbENEhnKiRzg5hs93d3SgvcQKhvZbWkYr9+/cDAIqLizPft4Q/IivOg+fBTGlp6QjCeifmzcpuQ0MDFi9ejMbGRv0xt9sNv9+v56hp29xuN3w+n56jFm+1ye/369ti7ydrb3wsNkfNrE02VrNS6Tub4xMVGol3hRDZV21trWpra8t4vx6PBx0vv4jJ5Qcz3nch6to7BgAwZTyfL6O3esdg2smn2/Ycs0xIFDSbajitFoALIKXw2+HURET5QUS2KKVqzbZxRY103d3dKHYoNNT2Wl1KXljVVg4AfL5iaM9LLlgV0pwoaDbVcFpjAG4q4bfDqYmI8h8vJiBdf38/Bg6an4hMZEdWhDQnC5pNJZzW5/OhpaVF354s/DZZKCxDZIkKF1fUiCijdvU5cMDny8kqlxY+m0vJgmZTCadduXIlBgcH9e3Jwm+TrZIxRJaocHFFjYgoDcmCZlMJp9W+1kmTLPw2WSgsQ2SJChdX1Igoo44uC6HEVZOTiwmsiJRJFjSbSjhtVVUVurq69MlasvDbZKGwDJElKlxcUSNdaWkpSsbwKmDKH1aENCcLmk0lnHbp0qUoKjr0d3Ky8NtkMRYMkSUqXFxRI92kSZPQ8fJ7Ob1qL59p8RzDfb529TkK8uKN/QcFpcM4R627uxsAhpW/luuVtfHjx6Onpwfl5eW455574PF40gqnrampQX19vR6Amyz8NlncBkNkiQoXJ2qky5eQUbsYF5lYlAwz2PWAz4c+1QtMyGBRNtGLXmzduTW9nfaEf7wv72e+oExTAJxAYE9Av+o03XBaLQBXu52sfTLJ2sfmrHV0dGDx4sVYu3Ytqqurh5UNR0TZx8DbPJStwFurMqlGK4/Hg607tyI0K2R1Kbbg2Bw+EyOfng/HZgdOqzrNluG+se/nNWvWoLm5GfPmzcOSJUuwaNEi/euv1q9fP2S72T5ElB2JAm95jhrprMikIqLsML6fY3PWXnjhBfj9fgCA3+9HW1tb2tlwRJQb/OiTdN3d3ejv7+eKWo74fD4gfxaPyExv+Pdox/eMMWMuNmftpptuimrb2NiYdjYcEeUGV9SIiApcbM5ab2/015719vamnQ1HRLlhmxU1ETkawG0AzgLwIYADAH6ilPrjMPq6E8DPlFLtIvIDpdSPMljn1wH0KaXWZ6pPu9CutrPj+TaFSDtHjfJYOVBTlZvMuHQZV/lic9aKi4ujJmvl5eXYv39/WtlwRJQbtlhRk3AA0MMAnlFKHa+UOgPAQgDDupxOKfVVpVR75O4PMlMlICJFSql1mZikiciYTNSUSVZkUhFRdhjfz7E5a8uXL49qu2LFirSz4YgoN2wxUQPwHwAOKKXWaQ8opbqUUmtFZIyI/FREXhCR7SLyNQAQkVkisllEHhCR10TknsiED5HHa0XkZgClIrJNRO6JbFsiIi9H/vtO5DGXiLysjS0i14vIMkNfPxKRvwBYLCLLROR6w7ZbROR5EekQkXMN/T0rIi9G/vuUoeanReT3AF4SkZUistgw7moRsexkF4/HY8tzbYgofcb3s5azJiKoq6vDzJkz4XK5AAAulwu1tbVR2ysqKobsw3gOImvY5aPPjwN4Mc62rwDYo5SaKSLFAJ4TEe1kidMi+74N4DkAZwP4q7ajUuoGEfm2UmoGAIjIGQC+BOATAATA/0UmYB8mqW+CUur8SB/LYrYVKaXOFJF6ADcB+DSA9wDMVkoNiEgNgA0AtMtuzwRwslLqTRFxAXgIwP8TEQfCq4hnJqmFhqmpqclWV7X6fD6gD3A8nKG/lw5GftpurTZFke8odzzmAPIlc3k3gCqri0hNbM5aQ0MDFi9ejMbGRtPt8R4jotyyy0Qtioj8EsA5CJ+n1gXgVBFZENl8OICayLbnlVLdkX22AXDBMFEzcQ6APyql9kX2eQjAuQCak5R0X4JtD0V+bomMDwBOAL8QkRkI//M5zdD+eaXUmwCglPKLSI+InAbgaABblVKm18CLyNUArgaAyZMnJymXzHR2duK1bdsw0epCIj4C4CMQIJiZ/t6J/DwmT68k7QHQB6DEMQ41VTVWl5OaqvwJiq6srMTatWv1+9OmTUNra2vc7fEeI6LcsstE7RUAl2l3lFLfEpFKAG0A3gJwjVLqT8YdRGQWgP2Ghw4i+fHE+76eQUR/DFwSs31fgj61GozjXwtgF4DpkX4HEvR1J4ArAUwEcFe8QZRSdwC4AwgH3iaoZ9hGQ+DtRABfifsyyG+/Qfhlkc/H9xsoTKjJ7sn5o+F1TkSFwy7nqP0ZQImIfMPwWFnk558AfENEnAAgItNEZFwafQe1fQE8A+ASESmL9DEfwLMIT6qOEpGKyMerc0dyMAiv+r2jlAoBuAKJP4z6I4DPApiJ8LFahoG3NBrwdU5E+cQWK2pKKSUilwC4TUS+B+B9hFeevg/gfoQ/UnwxcrHA+wAuSaP7OwBsF5EXlVKXi8jdAJ6PbLtTKbUVAERkBYD/A/AmgNdGeEi3A3hQRP4TwNNIsCKnlDogIk8D2K2UOhivXS4UeuCtz+ezzV8mZK4HwPtZDpA1BsESEdkdv+vTYpGLCF4E8J9KKV8q+2Truz4vvfRS9Pf3o6YmT84PSpPP54Nj3z58L48/GkykED76/AkUQuPGZfU1qE3UHnrooeSNiYhyINF3fdpiRW20EpGTADyG8AUOKU3SsqnQA289Hg92b9tmdRmUQAWQ9XPUCnXFmIgKEydqFoqE8h5vdR2afLl6jWgk+DononzCjz7zULY++syVRHlm3d3dAA6t7mWSz+dD3759GJvxnu3hQORnPh/fAQBlWf7oM19UV1dz9Y9olOBHn2QrnZ2deOWlVzGh7Kgh2/b07QUAyH7TOLkRKXMcibLxR2a8X7voHQjnNpeXHGFxJSO3843M//7zye6+96wugYhsghM10uUyX2pC2VG44ISFQx5/+rV7AcB0G9Foob0PmPlGRJyokY7ZUkT2wvckEXGiRrpc5aj5fD6EDuRvhARRtvUOfAif7wMAYOYb0SjH/E8iIiIim+KKGulylaPm8XhG/cniRImUlxyBqqkVVpdBRDbAFTUiIiIim+KKGukYBEpkL3xPEhEnaqTLZQTA7r739AiC2McBmG6j1BRSntpotbvvPVShgrEcRMSJGuVeolUC1d0PAKiaxPNzhmv79p0AgI9N5WpMvqpCBVfTiAgAv0IqL+X7V0hRdp1//vkAgL/85S8WV0JERKngV0gRjSL844uIqHDwqk8iIiIim+JEjYiIiMimOFEjIiIisimeo0ZUYET4PapERIWCEzWiAlNWVmZ1CURElCGcqBEVmLq6OqtLICKiDOFEjajAMM2eiKhw8GICIiIiIpviRI2IiIjIpjhRIyIiIrIpTtSIiIiIbIoTNSIiIiKb4kSNiIiIyKY4USMiIiKyKU7UiIiIiGyKEzUiIiIim+JEjYiIiMim+BVSpGtqakJnZ6fVZeSN7u5uAMCkSZMsriR3qqur+RVVREQ5xIka6To7O7H1pXaEyo60upS84OjbAwDYtX90vI0cfR9YXULaAoEAGhoaAACrV6+GUgrLly/HsmXLUFFREdVOe1xr4/F40NTUpD+m9XPdddehqakJixYtQmNjI9auXYvq6mp0dHRg8eLFWLlyJbxerz5GbA3auNqY2jjG8Yy1Zfv5MXs+UmmX6r5ENDKilLK6BkpTbW2tamtry3i/l156Kd7b04f+07+Y8b4LUUn7YwCAgZPmWlxJbpS0P4Yzpk5EU1OT1aUkpNXn8XiwZs0aPPLIIwCASy65BEopNDc3Y968eViyZIm+z5o1a/THtTZTpkxBV1eX/pjWj8vlQldXF8aNG4fe3l64XC6sX78eixYtgt/vR3l5Ofbt26ePEVuDNq42pjaOcTxjbdlkPO5EY5q1S3VfIkpORLYopWrNtvEcNdL19/dDQkGryyAakc7OTnR2diIQCKC1tVV//PHHH0drayuUUmhtbUVPTw8A6O2UUmhpadFv+/1+/bGWlha9H+3x3t5e/f5TTz0Fv98PAOjt7dXH8Pl8Ufu2tLSgp6cnakytP+2nsbZsMtaQaEyzdqnuS0QjNzo+syGiEZOBf8Pn22v7c9R8Ph9KS0vh9XoRDB76wyMYDEJEAAChUAherxdLliyB1+uF9smCsb1xv2SfPKxevXrIY6FQCCtXrsTg4GBUX9p48fo01pZNxuNONKZZO2P9uaqXaLTiihoRFaRNmzYNmQwZJ2QbN27U22kTNLMJVCqnhxgnY5pgMKivkhn72rhxY9SYZvtptWWTsYZEY5q1S3VfIho5rqgRUUpUyWGoyYNz1LQVvylTpqC5uTlqoiQiUErB6XRizpw5AIDZs2ejpaUlasXNbJ9EioqKhkzWnE4nqqqq0NXVpe8vIpgzZ47+karZZM1YWzYZjzvRmGbtjPXnql6i0YoraqQrLS2FcjitLoNoRKqrq1FdXQ232w2n89Dr2el06vcdDgfcbjcAwO126xM0Yxuz/eL54Q9/OOQxh8OBpUuXoqjo0N/DTqcTbrc7akyz/bTasslYQ6Ixzdqlui8RjRxX1Eg3adIkvP9hu341IyXm6AufQD1anq9wPMdEq8tIyngOXV1dnX7F5ec+9zn9is66ujo9UqKyshJ1dXVobm5GfX39kKs+tccSXfV54YUXwuv1Rl31WVdXh5qaGtTX1+v71tfX6+NqY8Ze9WmsLZuMx51ozHjtUtmXiEaOEzXSVVdXW10Curu70d/fb3UZKdkv4Y+zikN747fZvz/cprg4JzVlU+kRh9niNZIOt9sNn8+n39auroxdAXK73frjWhst10x7TOsnNketsbERANDQ0IDFixdjxYoV8Hq9USt2xhpix4zNUcvl6pTxuNNtl+q+RDQyzFHLQ9nKUbMDj8eDjpdfxOTyg1aXkhFde8cAAKaMz+/jeat3DKadfLrtz0/TJAq67enpwTXXXINjjz0Wt9xyS9zgWy2sNlGoaypBsPECb+PVnW6IbLo1p9NXIRtNx0r2lyhHjStqpDMGhVppcvlBNNT2WlpDpqxqKweAvD8e7Tislupr1Ov1or29Xb+tlML27dvh9Xqxbds29Pf3o6OjY0ishNfr1dtp0R3G+2bjxG4368NYS6IYi2TjpbLPcPoYyfj5ajQdK+U3XkxAOi0olMiuUnmNJgq6ffzxx/VgWm2bWfCtFlabKNQ1lSDYeIG3iepOJ0Q23ZrT6auQQ2xH07FS/uOKGum088OsXFHz+XwYG+TfD3azq8+BAz6f5autWphtIomCbmPjMLQA2tjgWy2sNlGoaypBsPECb1MNlk220pNuzen0VcgrTaPpWCn/8V9EIiooiYJuzZgF32phtYlCXVMJgo0XeBuv7nRDZNOtOZ2+CjnEdjQdK+U/rqiRbtKkSQBg6QnjHo8HA/4XLBufzB1dFkKJq8byiwlSWdGbPXt23KBbM2bBt1pY7c6dO+OGuqYSBBsv8DZe3emGyKZbczp9FXKI7Wg6Vsp/XFEjnRYUSmRXqbxGEwXdmoXZmgXfamG1iUJdUwmCjRd4G6/udENk0605nb4KOXZjNB0r5T+uqJHO6vOPNG/1jrH0KsNdfQ4MHDRPjU/X/kg/Vz19eEb6s0r/QUHRyy/b5jWSrI7x48frJ4gfdthhAICenh4cdthh6O3t1fPtDjvsMCxfvnzIflpYbaJQ11SCYBMF3sZKNYA20T7Jak6nr0KOrBhNx0r5jxM1shU7rOgd8PnQp3qBCRnoLJLK0VeemYmfZXYDQQSxdedWqytJjYL+f7cAAuH7zsjtUgD7AYwJ3w/sDBzabw9QPq48apUtUahrKkGw8QJvU+0vHi2fbXBwENXV1ejo6EBPT8+QPhLlhcVuG00htqPpWCm/MfA2D2Ur8NYuOWpW83g82LpzK0KzQlaXYhuOzeGzJAr9OXFsduC0qtMsPxcvmaamJrz44ov417/+BeDQ11rNmzdvyNWLa9asQXNzc9rbiCh3EgXe8hw10jFHjSg/vPrqq3jzzTf1+9rVpbGZYInywpglRpQf+NEn6eyQo2YHPp8PKOyFI4qnN/z7t/t74PXXXze9ijU2EyxRXhizxIjyA1fUiIjyjDFE1yg2EyxRXhizxIjyQ16uqIlIr1LK8i8fFJGPAmhSSi0QkRkAPqqUakmym23ZIUfNDrRz1GgUKgdqqqzPi0tm/vz5ph9VxmaCJcoLY5YYUX7gitoIKKXeVkotiNydAaA+nf1FxFYTZeaoEeWHs846Cw7H0P99x2aCJcoLY5YYUX7I64maiMwSkb+IyB9EpENEbhaRy0XkeRF5SUSmRtrdLSK/EpGnReRfInK+iNwlIq+KyN2G/noNtxdo2yL7N4nI3yL7L4g87hKRl0VkLIAVAD4vIttE5PMicmak/dbIz49F9rlSRO4XkUcBbBSR34rIPMO494jIxTl4+obweDy2PzeHiIDvf//7uOiii/T7LpcLIjIkE0zLC0t3GxHZh61WdIZpOoATAXwA4F8A7lRKnSkiiwFcA+A7kXZHAPgPABcDeBTA2QC+CuAFEZmhlNqWZJxjAJwD4AQAzQAe0DYopQ6ISCOAWqXUtwFARA4DcJ5SalBEPg3gRwAui+zySQCnKqU+EJHzAVwL4BERORzApwCM2j9tm5qaMnblaXd3N4BDH+mmyufzAX2A4+EM/R1TBMDyD+pHaHf4hxbTUbB2A6iyuojUGPPZrrvuOjQ1NZmuiiXKC2OWGJH9FcJE7QWl1DsAICJvANDOiH0JwAWGdo8qpZSIvARgl1Lqpcg+rwBwAdiWZJyHlVIhAO0icnQKdR0OwCsiNdDjNnWblFIfAIBS6i8i8ksROQrApQAeVEoNOVNYRK4GcDUATJ48OYXh81NnZyde27YNEzPQ197Iz92BQMJ2sT4C4CMQIDjyGt4FMGbsONRU1Yy8Mwt1q8iktyq9Sa/2ReEul2vI1zfZUpU9QpdTUVlZiXXr1un3165dG7fdcLYRkT0UwkRtv+F2yHA/hOjj22/SJrad8Xr3kgTjpBIzvxLA00qp+SLiArDZsG1fTNvfArgcwEIAXzbrTCl1B4A7gHDgbQrjp80ugbcTAXwlpac4sd9Efp2Z6GskNUyosfbkdCt/r2vWrEF7eztqamoY/UBENAwF/jlG2naJyIki4gAwP8199wIYb7h/OICdkdtXJtn3bkQ+olVKvZLmuBnDwNvCZNXvlYGqREQjVwgrapl0A4DHAOwA8DLSO7PoaQA3iMg2AD8G8BOEP/pcAuDPiXZUSu0SkVcBPDyMmjPGDoG3Pp+voP566AHwvsUBqj6fD6WlpTkfl4GqREQjl5cTNS1DTSm1GYaPFJVSswy39W1KqSsNj/sBnGy4b9z2AAwXCZi1iRlf7ytyztnMmF2nGW4vjbS7G+EVNJ2IlAGoAbAhdmyifGUWqMqJGhFRevJyolZIIleE3gXgZ0qpPVbWYofAW4/Hg93btlk2fqZVAJafo2bVah4DVYmIRo4TNYsppZ4EYIvLOPPlajdKj1W/V7fbjdbWVgAMVCUiGi4x+2Jfsrfa2lrV1taW8X4zmWE2XD6fD3379mFsBvrSLtMtzkBfw3UAQNm4caipye94juHasWMHenp6UFFRgWOPPdbqctJSXV1t+RXQRDQ6iMgWpVSt2TauqJGus7MTr7z0KiaUHWVZDWWOI1E2/siM9NXTG77o9rBy6xNMd74xOq94VKFiOMcUAwPFefUc7O57z+oSLBcIBLB8+XIsW7aM31pAZCFO1EjX3d2NIocTF5yw0OpSMuLp1+4FgII5Hsod7bVjFTtkGnq9Xmzfvp1X6xJZrJCSEGiE+vv7MRjKQBw/EY2I1ZmGzMAjsg+uqBERxegd+BA+3weWrWhZlX2nYQYekX1wRY2IiKKYZeARkTW4okZEFKO85AhUTa2wLP/O6qtNmYFHZB9cUSNdaWkpihxOq8sgGvWqq6stzTV0u90QEQDMwCOyGlfUSDdp0iTs3M+ThomsZvWKWmVlJerq6tDc3Iy6ujrGcxBZiBM1irK77z3LowkyRcvCKpTjodzZ3fceqjC6Jydutxt+v5+raUQW40SNdIX2FVKqux8AUDVpdP+DS+mrQkXBvR/SVVlZibVr11pdBtGox4ka6az+uIWIiIii8WICIiIiIpviRI2IiIjIpjhRIyIiIrIpTtSIiIiIbIoTNSIiIiKb4kSNiIiIyKY4USMiIiKyKU7UiIiIiGyKEzUiIiIim+JEjYiIiMimOFEjIiIisilO1IiIiIhsihM1IiIiIpviRI2IiIjIpjhRIyIiIrIpTtSIiIiIbIoTNSIiIiKb4kSNiIiIyKaKrC6AyKipqQmdnZ1Wl5GS7u5uAMCkSZMsriR91dXV8Hg8VpdBRERJcKJGttLZ2YmtL7UjVHak1aUk5ejbAwDYtT+/3kaOvg+sLiGpjo4OLF68GGvXrkV1dXXcNh6PB5MmTcItt9yCioqKYfcbCATQ0NCAYDAIp9OJ1atXo6KiAoFAAMuXL8eyZcuglNJvx26LHVvb5vF40NTUZNomVbHjxBs3Ua0jkeg4Y9skOt5U+iGiofLrXxjKqqamJgCwfKUlVHYkBk6aa2kNqShpfwwA8qJWI61uuzG+/latWoV9+/ZhxYoVWL9+vWn7VatWoa+vDx0dHfB6vViyZEnSMeL16/V60d7eHnV/yZIl8Hq92L59O7xeL5RS+u3YbbFja9tWrlyJrq6ulOszEztOvHET1ToSiY4ztk2i402lHyIaiueoka6zszNvPnakwqO9/jo6OuD3+wEAfr/f9DVpbAMAjz/+OHp6ehL2H6/fQCCA1tbWqLYtLS3w+XxobW2FUgotLS367dbW1qhtra2tUWNr/Sml4Pf7TdukythXonGN7VpaWtDS0jKiceONb9ZXKsebSj9EZI4raqTr7u5Gf3+/pStqPp8PckBZNv5oIAP/hs+31/KV01g+nw+lpaVYtWpV1ONmq2qxbYLBYNKVmnj9er1eBIPBIf2tXLkSSin9viYUCkVtC4VCUWNrK1pGsW1SZewr0bjGdrG1jnQ1L95xmrWJN24q/RCROa6oEZGtGFfKzO7He2zjxo3D6nfTpk1DJhra6pA26VFKRU2EjNuCwWDU2Js2bTKd+CWrz4yxr0TjGtvF1jqcceONb9ZXKsebSj9EZI4raqTTrl7UzhWygsfjwZY33rVs/NFAlRyGmqkTLf09m9FW+MrLy6MmVS6Xa0hbl8s1ZOI1Z86chP3H7qP1O3v2bDQ3N0dN1kQEU6ZMwc6dOxEMBiEiAMKTIKfTiaqqKn2b0+mMGnv27NloaWmJmrzEtkmVsa9E4xrbxdY6nHHjjW/WVyrHm0o/RGSOK2qkq66ujnuFHVG2aa+/hoaGqMcbGxuHtI1t43Q64Xa7E/Yfr1+32w2n0zmkv6VLl+qTHqfTqbdxOBxR2xwOR9TYbrdb36aJbZMqY1+JxjW2czqdKCoqGtG48cY36yuV402lHyIyxxU10tnlnCVH3we2vTLRyNEXPiE6H2o1CsdzTLS6jCGMrz9t9cvlcpn+8TBt2rSoFbLPfe5zSSMfjPsY+62srERdXR0eeeQRvW19fT1qampQV1eH5uZm1NfXQymF5uZm1NXVRW2rq6uLGlvrr7m5GVOmTEFXV9eQNqky9pVoXGO72FpHEoURO75ZX6kcbyr9EJE5TtTIVnp7e1Fe4gRCey2rYf/+/QCA4uLixO0k/FFZsYW1xlNaWpogiHei7VdOGxoasHjxYtPVNGMbLUct1RWaeP263W74fD79oznjSpXf74fb7dbPWzPbFkvbpuWKjXRVK5VxE9U6EomOM7ZNouNNpR8iGkpiT6Il+6utrVVtbW1Wl5EVHo8HHS+/iMnlBy2roWvvGADAlPHW1TASb/WOwbSTT7fdOWhmzAJoEwW8mgW5jjRINVlwrfaRqRaCm8n+Uxk/1bDZbBw/EeWGiGxRStWabeOKGunsEng7ufwgGmp7LRt/VVs5AFhaw0ho9dtJvNeWWQBtooBXsyDXkQapJguu1YJws9F/KuOnGjabrfqIyFq8mIB0DLylbDF7bZkF0CYKeI0Nne3p6RlxkGqi/QOBAFpaWvT7LS0tGe0/lfHTCZvN9PETkT1wRY10dgm8HRvk3w8jsavPgQM+n+Uro0ZamK2RWQDt9OnT4wa8mgW5GjPDhhOkmiiI1ev1YnBwUG+bSqhuOv2nMn46YbOZPn4isgf+i0hEljALoE0U8GoW5DrSINVE+8cG4SqlMtp/KuOnEzab6eMnInvgihrp7BJ4O+B/wbLxC8HRZSGUuGpsdTGB2eqeWQDt9OnT4wa8mgW5ah+JDjdINVEQa2wQrohktP9Uxk8nbDbTx09E9sAVNdIx8Jayxey1ZRZAmyjgNTZ01u12jzhINdH+brdbD47Vxs9k/6mMn07YbKaPn4jsgStqpLPLOU1v9Y6x9MpFLZ7DbldP7upzYOCgJG23/6Cg1CbnqHV3dwM4tFobW1NxcTH279+P4uJifQVw/Pjx6OnpQXl5OdauXavfHz9+PADo25YvXz6kvfZYqqqrqxMG19bX1+tBuPX19WnHVyQLek20Pd2w2eEEyTKIlsj+OFEjW7HDit64yOSiJG5grDUO+HzoU73AhORte9GLrTu3Zr2mpPaEf7wv75tvLwVwABgoGzhUrwLgBAIIILAzEHV/yDaz9qnaHf7R2NiYMLjW5/Ppt4cjWdBrKsG55557Lurq6qLy5jTnnnsuHn30UWzfvh09PT1D8uU8Hg/WrFkDIJwFZ8yiU0rB5/PhxBNPhNvtRiAQwA033IAdO3bgl7/8pS3ej0SjHQNv81C2Am/tkqNG5jweD7bu3IrQrJDVpaTMsTl8doUda3ZsduC0qtNsdS5fvPfgokWL9K++0vLmYrcBwCWXXKJftblmzRr9a52M27Wvl5o3b17U7SVLlmDNmjX6CqLZWESUHQy8pZQwQ43IWmbvQbO8OW2ly7gNAB5//HH9K6S0fLTY7SKiX4QBQG970UUXReXGxY5FRNbgRI10dshRo/h8Ph9gv4Wp/NUbfk7t9HpPNW9OW+mK3aZlvRmjTGK3axcPxObSrVy5Muqx2LGIyBqcqBER2ZhZ3ly8bQD0LLTYSZdGm8AZJ3JaZl2ysYko9wp2oiYivUqphJftici5ANYBCAL4pFKqP43+LwHQoZRqj9xfAeAZpdSTw6/aWnbIUaP4tHPUKEPKgZqq/Mybi7cNwJB8uVjaR5+xuXRVVVVD+jKORUTWGO05apcDuFUpNSOdSVrEJQBO0u4opRrzeZIGMEeNyGqp5s3F26ZlvRnz0WK3a1l0sbl0S5cu1e+bjUVE1ijYFTWNiMwCsAxAAMDJALYA+G8AXwHwXwA+IyKfVkpdLiLfjTxWDOCPSqmbIn0sAnA9wkEA2wH8CsDFAM4XkQYAlwFYCuAxpdQDInIhgFsRfn5fAPANpdR+EfEDqFVKBUSkFuFJ4iwROR/A/4uUrACcp5Tam8WnxZSdztWhOHYfupIyL+wO/7BlzbsBVFldRDSz9+C0adP0lTOXyxU1kTNuA4DPfe5zejyHlo9mvOrzc5/7nH6lZ319vX67rq4ONTU1UblxsWMRkTUKfqIWcRqAjwN4G8BzAM5WSt0pIufg0ORqDoAaAGcCEADNInIegB4AP4zsExCRI5VSH4hIs7YvAP2vVxEpAXA3gAuVUh0ish7ANwD8PEF91wP4llLqOREpBzCQ4eNPSVNT06i58jM2iDUfdHd3o3xsOdCX23FLS0uH/Tx1q8jzXGXD57nKHrl9qWhoaMDixYtNV7gaGhrg8XgwadKkId9s4Pf7o3LUtCtCtdw2421t+6uvvoodO3ZwNY3IJgo2R007Ry2yovZDpdTsyOO/AvCcUup3InI3Dk3UbgWwAPoaAMoB/BhAGYCJSqkfxvSv72u8D8AHYK1S6rzI4xciPAm7NMGK2g0A5gO4B8BDSkX+dYse72oAVwPA5MmTz+jq6srAsxTN4/HgtW3bMDHjPdvPO5Gfx1hahf29C+CEGTNsdR5XMlrQ67JlyxIm7Sdrl2o/uWK3eogoc5ijBuw33D4I8+MWAD9WSv1P1IMiHoQ/jkxVou/4GcSh8wJLtAeVUjeLyOMA6gH8I/JR7GvGHZVSdwC4AwgH3qZRT8q6u7vhBPCVhIdQGH4T+ZWOhmMdid+k9dLPjWTBzF6vF9u3b4fX69XDX4fTLtV+csVu9RBRbtjwxBHL/AnAlyMfPUJEqkTkKABPAfgvEamIPH5kpP1eAONN+nkNgEtEtM9UrgDwl8htP4AzIrcv03YQkalKqZeUUrcAaANwQsaOKg39/f04YMXARGno7OyM+xF9IBDQg15bW1vR09MzrHap9pMrdquHiHJntKyoJaWU2igiJwL4e+R8s14A/62UekVEVgP4i4gcBLAVwJUA7gXw68iK2wJDPwMi8iUA94uIdjHBusjm5QB+IyI/APB/huG/IyIXILza1w6gNYuHSpSyHgDv50EorEYLewXCIa6JVssStUu1n1yxWz1ElDsFe45aIcvWd33W1dVhcN8+NIyCjwP50WdqfgKF0LhxqKmpsboUnTZRe+ihh4Zs++xnP4u+vkNXW5SVleGJJ55Iu12q/eSK3eohosziOWpENCwVACbU2D8UVjN79mw96NXpdGLOnDnDapdqP7lit3qIKHd4jhrpSktLMdbqIoiSSBTMbAx6dTgcUXEV6bRLtZ9csVs9RJQ7/OgzD2Xro0/Gc4T1ALyoIuIAgDKbffSZzI4dO9DT04OKigoce+yxw26Xaj/ZYJbzZ2U9lFnV1dW2Ou+TrMePPikl+RL+mQm9kX8IJ5gEub7v8yE0MIgJZUfluizb2vlG/lxlqELFcI4pBgaKE9adrF2q/WTDnr7wF5PI/kPjWlkPZc7uvvesLoHyDCdqFIV/6YVXFne+0YMLTlhodSk0Sj392r0AwNdgAXp026/0FVOiVHCiRrrR8vVRRERWGQwF0d/PU44odZyoka67uxv9/f2jfkXN5/MhdICxHUREZD1e9UlERERkU1xRI512hZmdMrOsoJ2jRkREZDVO1Eg3mq76JCKyQpHDidLSEqvLoDzCiRrpRvu5aURE2VZecgSqJlVYXQblEU7UiGJ0d3ejZ28P/vhidj8CPhgaBACMcYzsbVjkcKK85IhMlEQ2oWVtaTEdVDh2972HKnCiRqnjRI3IxBgByotCWR1j74Fw/yMZZ++BQThKilA1lf/jLySqux8AuPJSgKpQwdNMKC2cqJFOu4hgtH8EOmnSJBzcuwdnHp3dVarnd30IACMa5/ldH2JKml+azt8zEVH+4ESNdAy8HR34eyYiyh+cqJGOgbdhPp8Pg4MHrS4jJX2DB+Hz+dL6nfl8PpSWlmaxKiIiyhQG3hIRERHZFFfUSMfA2zCPx4OuV1+xuoyUlBWNSfsctdG+YkpElE84USMdr0QaHfh7JiLKH5yokY4rLYfsPTCoX5WZzTEAjGgcrY908PdMRJQ/OFEjipGrFafu7m4Ahz5yHi6ukBERFS5O1IhicMWJiIjsgld9EhEREdkUJ2pERERENsWJGhEREZFNcaJGREREZFOcqBERERHZFCdqRERERDbFiRoRERGRTXGiRkRERGRTnKgRERER2RQnakREREQ2lfJXSIlIGYDrAExWSl0lIjUAPqaUeixr1RGNQFNTEzo7O60uw3Yy9R2j+ay6uppfFUZEeSGd7/r8XwBbAHwycr8bwP0AOFEjW+rs7MTWl9oRKjvS6lJsxdG3BwCwa//o/KpfR98HVpeQskAggOXLl2PZsmWoqKhAIBBAQ0MDAGD16tWoqKiIu29HRwcWL16MtWvXorq6ekifHo8Ha9asSamv2DqSjTdhwoSk7c3qaWpqijpWrQ+lVEr9pVLncMWrM939s1EbFbZ0/k89VSn1eRH5AgAopfpFRLJUF1mgqakJQGF9KXmo7EgMnDTX6jJspaQ9/LfVaH1etOO3o9j3oNfrxfbt2+H1erFkyRJ4vV60t7fr25YsWRK3r1WrVmHfvn1YsWIF1q9frz+u9bly5Ur4/f6U+oqtI9l406dPT9rerJ6urq6oY9X6UEql1F8qdQ5XvDrT3T8btVFhS+cctQMiUgpAAYCITAWwPytVkSU6Ozv5USGRhYzvwUAggNbWViil0NraCp/Ph5aWFr1tS0sLenp6TPvp6OjQJ2F+v9+0T217sr5i6zBrFzve448/nrC9Wd9+vz/qWLXHW1pako6fap3DFa/OVMfIZm1U+NJZUbsJwBMAjhWRewCcDeDKbBRF1uju7kZ/f3/BrKj5fD7IAWV1GWQzMvBv+Hx7bfk69/l8KC0tBQB9JQkAQqEQVq5cicHBQb1tMBiMuzqzatWqqPvaqpqxT6NEfcXWYdYudjytznjtzfrWaMeqPR4MBqO2jaTO4YpXZ6pjZLM2Knwpr6gppTYBuBThydkGALVKqc3ZKYuIaHTbtGmTPkkJBoP6So5GKYWNGzea7mtcLTPeN/ZplKiv2DrM2sWOp4nX3qxv4z5+v19/XCkVNWkbSZ3DFa/OVMfIZm1U+NI9m7gKwJjIfueJCJRSD2W+LLKCdhWgdp5MvvN4PNjyxrtWl0E2o0oOQ83UibZ8nRtX+WbPno2WlhYEg0E4nU5UVVWhq6tLn7SICObMmWPaj8vlipo8uVyuIX0aJeortg6zdrHjaeK1N+vbuE9VVRV27tyJYDAI7VRopVTC/lKpc7ji1ZnqGNmsjQpfyitqInIXgLsAXAbgosh/o/Ns5AJVXV0ddXUYEeWW8T3odrv1SYrD4cDSpUtRVHTob2un0wm3223aj3ZlqKaxsXFIn0aJ+oqtw6xd7HhanfHam/Wt0Y5Ve9zpdMLpdCbtL5U6hytenamOkc3aqPCls6J2llLqpKxVQpaz4zk7I+Xo+8DWV/lZwdEXPpF5tD4v4XiOiVaXYcr4HqysrERdXR2am5tRV1eHmpoa1NfX45FHHgEA1NfXx415mDZtmr7K5XK59Mmfsc8pU6boq2CJ+oqtw6xd7HjTp09P2N6s7ylTpqCrq0s/Vu3x+vp6KKWS9pdKncMVr85Ux8hmbVT40pmo/V1ETlJKtWetGhr1MhlS293djfISJxDam5H+cmn//vAF1cXFxZnvW8IfnRXn4fNiprS0NM3w3ol5s3Lsdrvh9/v1FRi32w2fz6ffTqShoQGLFy/WV9Ni+zTmqCXrK7aOZONNmDAhaXuzepqamqKOVetDu9oyE3UOV7w6092fq2mULjG7Asi0och5AB4F8C7CsRwCQCmlTs1eeWSmtrZWtbW1WV1GVng8HnS8/CImlx+0uhRLde0dAwCYMn50Pw/JvNU7BtNOPt2W55uZMQtxXbRoERobG+MG08YGpI40eDW2nngBuqkGtJq1G264a6ZDYfM5ZDafa6f0icgWpVSt2bZ0VtTuAnAFgJcAhDJRGNmLXQJvJ5cfRENtr6U1WG1VWzkAjPrnIRntebI77b0VDAaHhLjedNNNCYNpY6McRhq8apQoQDfVgFazdsMNd810KGw+h8zmc+2UWekE3r6llGpWSr2plOrS/staZZRzDLwlyo7Ozk68+uqrUSGuLS0tUEqhtzc8GY8XTGsMSB1p8KpRIBCIG6CbakCrWbvhhrtmOhQ2n0Nm87l2yrx0VtReE5HfI/zxp/6NBIznKBx2CLz1+XwYG0zn7wcazXb1OXDA57N8FTgZn8+HwcFB0xBXI7NgWmNA6kiDV428Xm/cAN1UA1rN2hlzz6wMhc3nkNl8rp0yL51/EUsRnqDNAeM5iIjScuDAAdMQVyOzYFpjQOpIg1eNNm3aFDdAN9WAVrN2ww13zXQobD6HzOZz7ZR5Ka+oKaW+lM1CyHp2CLz1eDwY8L9g2fiUX44uC6HEVWP7iwk8Hg927NiBf//730NCXI3MgmmNAakjDV41mj17Npqbm00DdFMNaDVrp320m264a6ZDYfM5ZDafa6fMSyfwtkREviUit4vIXdp/2SyOcouBt0TZUV1djbPOOisqxNUYXqsxC6Y1BqSONHjVyO12xw3QTTWg1azdcMNdMx0Km88hs/lcO2VeOueo/RbAawA+A2AFgMsBvJqNosgadjnP563eMXlzNV+2dO4pQkgBVz19uNWlZN2BUPgfpLGO1KKCjPYfFJTa/By16upqvb6ioqIhIa7jxo1Db29v3GBaY0DqSINXjSorK+MG6KYa0Bqv3XDCXTMdCpvPIbP5XDtlXjoTtWql1H+KyDyllDdyYcGfslUYjU5c0Yt4+WUcDAXRd+TQr/spOLvDPwYnDO9Ye9GLrTu3Zq6eTNodfdcsxFXLUYsXTBu7mjLS4NXYvnw+H/bu3Yvm5mZMnToVv/rVrzBx4kQcPBjO8Dv//POH7GfM+DKrc7jhrpkOhc3nkNl8rp0yK53A2+eVUmeKyDMAvolw8O3zSqnjs1kgDZWtwFu75KhR+HewdedWhGYVfmShY3P4DIxCPFbHZgdOqzrNNufQxXuP19fXo7e3FyJiet6cMd8NANasWYPm5mbMmzePVyMSZUCiwNt0rvq8Q0SOALAUQDOAdgA/yUB9ZBPMUSMqbGbv8eeff17Pcot3JapxH2Z8EeVWOld93hm5+RcAXEUrQHbIUaMwn8/H7/8oBL3h36Vd3lM+nw+lpaVRjy1btizpfsZvTWDGF1FupTxRE5FiAJcBcBn3U0qtyHxZRESUC9pqWiJavhtgnvHFiRpR9qRzMcEjAPYA2ALDNxMUIhFRAH6nlLoicr8IwDsA/k8pNayQXxH5gVLqRym08wOoVUoFhjPOSNghR43CtHPUKM+VAzVV9sl5M1vZKy8vTzpZ0/LdAGZ8EeVaOhO1SUqpz2atEnvZB+BkESlVSvUDmA1g5wj7/AGApBM1K/GKS6LCZvYeX7ZsGa6//vqE+xmvSHW73WhtbQXAjC+iXEhnovY3ETlFKfVS1qqxl1YAnwPwAIAvANgA4FwAEJFxANYCOAXh53CZUuoREbkSwMUAygBMBfBHpdT3RORmAKUisg3AK0qpy0XkYQDHAigB8P+UUnfk8NhM2eU8GorYfeiKyIK2O/yjII91N4Aqq4s4xOw9fuaZZ+qravGu+jRO8JjxRZRb6UzUzgFwpYi8ifBHnwJAKaVOzUpl1rsXQKOIPAbgVAB3ITJRA/BDAH9WSn1ZRCYAeF5EnoxsmwHgNISfo9dFZK1S6gYR+bZSaoah/y8rpT4QkVIAL4jIg0qpuJdPicjVAK4GgMmTJ2fsIO2mqamJV54ifGFH+dhyoG/4fezfHz5Dobi4OENVZcd+FamzL/U6S0tL9Y/qba0qP1aqly1bhu9973u49tpr9Rw1AHjnnXeG5LsBzPgiyqV0ctSmmD2ulOqKbD9CKfVhBmuzjIj0KqXKRaQNwC8B1ADYCOB6pdTcyOMlAAYjuxyJ8Dc2fALA2UqpqyL9tAJYrZT6q9anYYxlAOZH7roAfEYp9Y9UzlHLVo6aHXg8Hry2bRsmWl1IAXgn8vMYS6vIvHcBnDBjhm3O+8oUY4gsV6mIRpdEOWrpxHN0JWnyFIDT0yksDzQDuBXALADG/3MKgMuUUq8bG4vIJxB9ocVBmDzHIjILwKcBfFIp1ScimxGe+I163d3dcAL4CkZBIn+W/QbhP8IK7bnUjstMPoc2e71ebN++nXEXRBQlkyeFFNa/BmF3AVhhcl7enwBcI5FvzRWR01LoKygizsjtwwF8GJmknQDgrIxVnOf6+/txwOoiKG/la2gzQ2SJKJ50zlFLJv1vVLY5pVQ3gP9nsmklgJ8D2B6ZrPkBJIvtuCPS/kUAXwbwdRHZDuB1AP/IVM1Eha4HwPtxQmTNAl3zAUNkiSieTE7UCobxXDLDY5sBbI7c7gfwNZM2dwO423B/ruH29wF839C8Ls7YruHUTET5iyGyRBRPJidqhfjRJxHZTAWACTXmIbL5eG4awBBZIoov5XPURGRq5GukICKzRMQTiabQXJjp4mj0KS0txViri6C8VV1dnRdxGLHcbjcip7wyRJaIoqQTz7ENQC3CURJ/QviKyI8ppeqzVRyZYzwHaXqAuBdfaI8X2sT3AICyceNQU1NjdSkZtWPHDvT09KCkpATl5eWYNWtW3q4QElF6MhLPASCklBoUkfkAfq6UWisi/DJCyqh8XA2x0vs+H0IDg5hQdtSQbb0D4VjD8pIjcl1WTux8o7CujFShYjjHFGPwQAg9gZ68vHqV8gMz+/JLOhO1oIh8AYAbwEWRx5wJ2lOesUMGFVcQ0uPxeLDzjR5ccMJCq0uhDHn6tXvR07sT3d3dVpdCBYqZffklnRy1LwH4JMJJ+2+KyHEAfpedssgK+ZpBRVRolFLo7++3ugwqQMzsyz/pfDNBOwAPEP66KADjlVI3Z6swyr3u7m709/dzVSuP+Hw+hA7wgmsiSg0z+/JPOld9bhaRw+T/t/f38XGc9b3///rIkm0pShCxQwwysdpIPkCBJGCg7TeHE1rsVk7AIfTutL+TpU3LoTesW4cmfMExvgu0FHNaGQpfCjSb3lEKtNGJJbApSaH0JnGwcYITPJuyJjLEiZQ4WJZsS9b1+2N3JqvVrnZX2t2Z3X0/Hw8/Vjsz13V9ZnbX+ujamc+YXQp8G/hLM/to9UITERGRSspXs0+irZxz1F7gnPuRmf0m8JfOuQ9kKutLg1i9ejVAw93supH556iJiJRCNfvqTznnqLWa2YuBXwLurVI8EqJ6rUEl0mjMrC5vhSXRp5p99aecGbWdpOun/atz7kEz+3HAq05YEgadm1afTk08xX2PfS7sMKRCTk08hXMumOEWqaSVK1fS39/P4OAg/f39Ks9RB8q5mOAfgH/Iev5fwNurEZRIPYhCORPNgDYeN5K+2lOvrVRLLBYjlUppNq1OlHNnguXALcBPAMv95c6536hOaFJII9+ZoJ709/cDMDw8HHIkIiJSz+a7M0E556j9FbAK+DngX4DVwOnFhydSnyYmJpiYmAg7DBERaWDlJGq9zrk7gDPOuQRwPfCq6oQlEn3OOUqdkRYREVmIchK1qczjKTN7JfAC0jdoFxEREZEqKOeqz09l7khwBzAIdALbqhKViIiIiJR11eenMz/+C/Dj1QlHRERERHxFEzUzm/cmYM453UZKmpJfNFJERKRaSplRuzjz6IDc30w6k1qaVkdHR9ghiIhIgyuaqDnndgCYWQLY7Jw7lXn+QmBPVaMTiTC/jpqIiEi1lHMxwav9JA3AOfesmV1T+ZBE6oNuuSUiItVWTnmOlswsGgBmdinlJXoiIiIiUoZyEq09wL+Z2RdIn5v2S8CdVYlKRERERMoqz3G3mR0Efob0RQU3OeeOVi0yERERkSZX1leXmcRMyZmIiIhIDZRzjpqIiIiI1JASNREREZGIUqImIiIiElFK1EREREQiSomaiIiISEQpURMRERGJKN1ZQCJlYGCAZDIZdhglGRkZAWD16tUhR1JZvb29uj2WiEhEKFGTSEkmkxx6+CgzHZeGHUpRLRPPAXDyXON8jFomngk7hHmNjo6ydetWAO68807GxsbYvHkzu3btIpFIEI/HGRgY4Oabb+aOO+5g1apVLF++nF/4hV9g165dLFu2jN/93d/lox/9KD/2Yz/G+9//fvbs2cP09DStra3ceeedOOfYsWMH8XicPXv2BGOtWLGC0dFRduzYwfbt24Pttm/fzooVK+aNM3d9PseOHSMej7N69Wpuv/12BgYGgv3xHxcyVnbM2etKibFQ22LblNKuHKUe93L6KadtLfZRpBBzzoUdg5Rp3bp17uDBgxXvd2BgAAj3ZuPxeJyHHn+Ss6+4IbQYSrX86L0AdRFrqZYfvZfXXrkqeC9EycDAAN/61rf4r//6LwBuvPFGDh8+TCqVorOzkzNnzrBmzRqOHz/ORRddxPj4eNC2tbWV6elpAMwM//+9np4eUqlUsN2NN96Ic47BwUHWrFkTrLvxxhvZsmULe/bsYXBwkE2bNgXbbdq0iS1btsyKdc+ePdxzzz2z2hZz8803B+P19PRw/PjxYH/8x4WMlR1z9rpSYizUttg2pbQrR6nHvZx+ymlbi32U5mZmDznn1uVbp3PUJJBMJuvma0dpPo8++miQpAHs27cvSGzGx8dxzpFKpXDOzUrSgCBJA8j+4zQ7SfP7HB4eDvryDQ0N4XlesG5oaIihoSGccwwPDzM2NhZsOzo6ytDQ0Ky22evzOXbs2Kzx/P3Ifcw31vDwcMGx/PW5bUuJsVDbYtuU0q4c2f3Nd9zL6aectrXYR5H5NM53NrJoIyMjTE5Ohjqj5nkedl6zvGGxsz/C805H8hy17373u7OeT01NVXyMqakpzCzv8l27dgVJXvbYMzMzJBKJYFYlkUjMSgynpqZmrc9n9+7dJcWXb6zsWHLHSiQSQczZbUuJsVDbbPm2cc4VbVeO7DHmO+7l9FNO21rso8h8NKMmInUhO7Gopnyng/izWn6ikP2Lempqiv379wfbHjhwYFYfzrlZ6/PJndkrpNyxDhw4EMSc3baUGAu1LbZNKe3Kkd3ffMe9nH7KaVuLfRSZj2bUJOBfvRjm+Un+OWoSDrf8Evoieo7a2972tpp8xZR9Dlv2sjVr1nDixIlZs27OOdra2tiwYUOw7fr16xkcHAz6MLNZ6/PJPVeukHLHWr9+PUNDQ0xNTc1qW0qMhdoW28b/inK+duXIHmO+415OP+W0rcU+isxHM2oS6O3tpbe3N+wwRPL6yZ/8yVlfS7a1tVV8jLa2trz9trW1cccddwTjt7W10dqa/ju3paWFWCwWbBuLxYJ1/rbZ6/Pxr74sJt9Y2fHmjhWLxYKYs9uWEmOhtsW2KaVdObL7m++4l9NPOW1rsY8i89GMmgSicl5Sy8QzwRWVYbCzP8JmSjj/6UL6q7iOg4kqR7RIMxfSjy1Lim97YTqS56j19vZy++2309raGlypeP3111f8qs/rr78+71WfGzdupK+vj/7+fgYHB9m4cWOwXX9//6zyDCtXrmTjxo1BnBs3bixavmHt2rWzYil01We+sfr7+wuO5a/PjbOUGAu1LWWbYu3KkT3GfMe9nH7KaVuLfRSZjxI1iZQozOh53mncuXNc0Xlh3u1OTqQnpC/vOF+LsBbs+Ol0grbm4nMltjjP2dSD1QuoTN8ffz7BjMVieJ4X/HzDDTewefNmdu7cWZE6arFYLDgfLbuOWvZMVCqVmrVdoZmm7DhLsXXr1qJ11BYyVnbM5cZYqG2xbUppV45Sj3s5/Sy2XaX3UaQQ1VGrQ9WqoyZp8Xics6kH2bpuvPjGdWD3wU6Aut2f3Qc7Wd7zukieN+d74IEHuO2229izZw9r1qwpuUhsblHd7GKuzjluv/12nnjiCcyMj3/843R1dS2o8Oro6Ci33347J06c4GMf+9icfrLjKVRYt5CFFsUtp79qFZddzH7P11+p/ahorvhUR01KMjAwEOlfhiJR439mtm/fzszMDHfccQeJRIIjR46QSBT+StzfZteuXRw9epSjR4+SSCRmtU0kEniex9mzZ5mcnAxmDXP7LnU8z/OYmJjI2092PMX6KrQvpexvKf0udB8XYjH7PV9/pfZTrf2SxqJETQIqeCtSnmQyybe+9a3gfLjx8XHuvffekovEZp8ft2/fvqCY69DQEPfeO/s8zVQqxb59+8ouvDo6Osq+ffsK9pNdyLdQYd1CFloUt5z+qlVcNvd1WGz/5caporlSKp2jJoEoFLyNAs/zWDqlv2Gi4uREC+c9L5LvS8/zOHPmzKxlFy6kz20spUhstuzyE1NTU3m38S+IKKfwam5x29x+sgv5+kot4rrQoriF+q1lcdl8r8Ni+i+3oO5CC/BK89FvIxGRKiilSGwu/xd3sXOHyym8euDAgXn7yS7kWyz2fH0vpChuOf1Vq7hsvtdhMf2XG6eK5kqpNKMmgSgUvI0C/2ICiYbLO2ZY3tMXyfdlPB7nyJEjzMzMzFlXSpHYXH7pkHxFd/P1XUrh1fXr1wdlOPL1093dHRTyLRb7fPtSTlHccvqrVnHZfK/DYvovt6DuQgvwSvPRjJoEVPBWpDy9vb389E//9KxlS5aky4mUUiQ2W3Yx17a2tqCfbLnFXkstSptd3Da3n+xCvr5Si7gutChuOf1Vq7hsvtdhMf2XG6eK5kqpNKMmgSieAxSGkZERnjnVym/d94KwQ5nl/Ez6P/WlLeWV1Dl3Id0uavtTqnMXjEtHRsIOIy//M7Nx40bGx8fp7OzkZ3/2Z0suEptdVDe72K5f2DV7Jqynp4errrqq7MKrK1eu5Prrrw/6yu0nu5BvocK6hSymKG45/VWjuGzu61DOfpcTe6W2l+alRE0kjwttMNE1d9YjVKfSD9PlxpUpnzbRGbH9KdWpsAMobvv27bznPe/hzJkzrFq1CjPjyJEjjI2N8fjjj/OHf/iHvPSlL6Wzs5Nbb72VRx99lGXLluGcY9myZZw/f54rr7yST3ziE/T19fGWt7yFPXv28JKXvIQf/OAHQHqm7o1vfCNf/epXeetb3wqkrxw8evQoy5Yt4+jRozz44INs27aNvXv3zpodj8ViHDlyhOPHj7N582bWrFmD53l85zvf4Td/8zcBePnLX84tt9zC1q1bOXr0KGNjYwVrrDnngtte3XrrrQsqilvOttUqLuv3O19B4YX0V87tqVQ0V4pRwds6VK2Ct/45QM0+sxaPxzl04hAz18097yhMLfenz1SIWlzV1nJ/C9d0XxOZc9QKfU78WbXs88tuvPFGvvrVr866nVWhG7D7t7nKnvHKvRWWf2upTZs2sWXLFvbs2TNr1q2zs5Px8XF6enq4++67Z/W/Z88eBgcHC7a98cYbZ83i3XjjjcF22bNOmzZtyrudiCzcfAVvNaMmAdVQEyku3+fkgQceCBKq7D9+BwcH51xokC9Jg+dLZqRSKU6cOIFzblaSlt12eHiYt7zlLQwNDc1a72+fSqVIJpPBrFpuza58bf3aar6hoSHe8pa3zKn55td6y94uFovpqzuRKtGMWh2q1ozaTTfdxOTkJH19fRXvu554nsf4zDgzN0Rr5qppZ9TubaGzpTMy70vP82hvb+dLX/pSsMyfTasV/2rN48ePF7w6NHtWbc+ePbOuMCzWFtJXoK5Zs2bOFaG5V6SaWTBLJyILo1tIiYhUUS2TNHi+/tl8iVb2zF1uza5ibYFgFi23jEhuO+ecaoCJVFHDfvVpZg74a+fc/8o8bwV+CPync+6GedpdDbzEOTdUaJvMdu8A1jnnfq+MmMadc51m9hJgwDn3C6W2rQXVUUvzz1GTiOiEvu7o1FHLdw6nf25YrZQ6o+bLrdlV6Rk11QATqZ5GnlE7A7zSzNozz9cDJ0podzWwsVpBATjnfhC1JA1UR02kFPk+J9u3b8+7bUvLwv6LbWtrm3e9X/8stz5atm3btgU/59bsytc2u46b/zxfjbW2trZZ8bW1temqRZEqatgZtYxh4HrgC8D/BP4O+O8AZnYRsBd4FenjsD2z/U6g3cyuBT4EfA/4U6AdmAR+3Tn33Uz/LzWzLwM/Bvytc25Hpu8twG9ktvm0c+5Ps4Mysx7gXufcK81sCfDHwM8BDvgL59zeSh6EUjX71Z6znHr+nLDIOJV+iFxc1XYK6A47iOfl+5y8/vWvD2bVsmec3vrWt1blqk+//tnGjRsLXvWZnUzm1uzK19av4+Yv27hxY94aa7k13jZu3KgLCUSqqNETtc8B28zsXuDVwGfJJGrA+4GvOed+w8y6gAeArwLbyPpK08wuAd7onJs2szcDHwTenunj9cArgQngQTPbRzrZ+nXgDYAB/2lm/+KcK/Rd2jtJJ3rXZMa4NN9GZvbOzLZcccUVCzoYxQwMDOjKT+Cxxx6jzbWxbGJZ2KHMcs6do7W1lZd1vyzsUGqrm7qY6d2+fTu33XYbf/AHf8AnPvEJVq9eTSwW49prr51TR23Pnj3BVZ7T09M8+eST3HbbbfzJn/wJ27Zto6uri1Qqxc0338wdd9zBqlWrWL58Obfeeuusel+xWAzP85ienqa1tZVbbrmFbdu2zZpN8+XW7MptG4vFcM7heV6wPrtddq2xfNuJSHU07FWfWeeDHQQ+DvQB+4H3OOduyCxfDkxnmlxKelbrDcxO1F4KDGTaO6DNOfeyzDlqP+Ocuzmz3U7gmcw2K5xz2zLLdwFPO+cGsmLq4fkZtS8Cn3TOFb5zco5qXfUZj8d57PBhVlW85/ryw8zji0ONYq4ngZddfXVkztWS6hsdHQ0Ky955552auRJpUM1eR20Q+AhwHZD9v5wBb8/6GjO90OwNOe13Afc5596WSbDuz1qXm+W6TL/lsDz9hGJkZIQ24Jayd6GxfCbzckTtOHymQm8TFTauH4lEgqNHjwY/qwSGSPNphpNdPgvsdM49nLP8K8C7LXOmrJldk1l+Grg4a7sX8PxFCO/I6WO9mV2auWDhRuCbwNeBG82sI3Me3NuAb8wT337gXZmrUin01WctTE5Ocj6swaVmksmkvuKuA6Ojo7OK0g4NDTE2NhZiRCIShoafUXPOjQB/lmfVLtIXCRzJJGsp4AbgPuC9ZnaY9MUEHwYSmQsEvpbTx78CfwX0kr6Y4CCAmd1F+pw3SF9MMF+th08DazNxTAF/AXysrJ2UpjAGPO15i54J8wu2SrQlEongPDZI1z/TrJpI82nYRM0515ln2f1kvrp0zk0C/zvPNs8Ar8tZvDbr5zsy290F3FVg7I8CHy0Uk3MuRfoiBJxz08CWzD8RESBdpDb7HGK/sKwSNZHm0rCJmkijWQF09S2+8KvOTasP69evZ3BwMEjWVFhWpDk1wzlqUqL29naWhh2EVJ0KG9eHWCw2pwCtSmGINB/NqMks48DuaFyEGhr/goqoHYfzVOYcNZ9m1qLvkksuCS4gWL16tcpziDQhJWoyS+uSZVzS8aKwwwjV+NlnAehc/sKQI8nvxOO68q9ZuJll+BV8GukCkAceeIDbbruNPXv28NrXvjbscEQiTYmazNLa0sabXvYrYYchIhn3PfY5xsZPcPLkybBDqZjt27czMzPDHXfcMasEiYjMpXPUJDA5Ocn0zFTYYYhIDucck5OTYYdREQ888EBw/9Lx8XEeeuihkCMSiTYlaiIiUjPbt2+f9fyOO+4IJxCROqFETUREasafTSv0XERmU6ImIiI109nZOe9zEZlNiZoE2tvbaW1pCzsMEclhZg1z1WfuV5+7du0KJxCROqGrPiWwevVqvvPso9z32OfCDkVEMk5NPIVzjtWrV4cdSkW8/vWvp7Ozk/HxcTo7O1WeQ6QIJWoSULX6yhkZGSl6ld65c+dobW3lZS97WY2iknrkRtLvo0b6fG7fvp3bbrtNs2kiJbDsm/5KfVi3bp07ePBg2GFUxejoKDt27GD79u11XYU9Ho/zyLe/zcVLC/8t9Oy5KS666CKGh4drGJmIiESNmT3knFuXb51m1CRSEokER44cIZFIsGXLlrDDWbCRkRGWtBivv7zw3Q32f/8pzp07V8OoRESk3uhiAomM0dFRhoeHcc4xPDwc3OOwHk1OTnJhZv7ZagfMzMzUJiAREalLStQkMhKJBP5X8TMzMyQSiZAjEhERCZcSNYmMAwcOMDWVvoXV1NQU+/fvDzkiERGRcClRk8hYv349bW3pOm5tbW1s2LAh5IhERETCpURNIiMWi2FmALS0tBCLxUKOaOHa29tZ0mLzbmOk91NERKQQXfUpkbFy5Ur6+/sZHBykv7+/rstzrF69mkfGxnjg5LMFt3HAsmXLaheUiIjUHSVqEimxWIxUKlXXs2lQWnHSJSMjdHV1VT8YERGpWyp4W4caueCtiIhIs5mv4K1OkBERERGJKCVqIiIiIhGlRE1EREQkopSoiYiIiESUEjURERGRiFKiJiIiIhJRStREREREIkqJmoiIiEhEKVETERERiSglaiIiIiIRpXt9SsMaGBggmUyGHcaCjIyMAOmbu8vzent7icfjYYchIlIzStSkYSWTSQ49fJSZjkvDDqVsLRPPAXDynD6ivpaJZ8IOoSTHjh1j8+bN7N27l97eXgBGR0fZunUrAHfeeScrVqyYs93o6Cg7duxg+/btrFixomjfXV1debfPN362fOOMjo7y3ve+lyeeeIKPf/zjedvl6yd3n8rht5+enqa1tbVoH/Mdn1KO3WJUu3+R+ei3gAQGBgYAGmrGYqbjUs6+4oawwyjb8qP3AtRl7NXiH5MoGxgY4Ctf+Qpnzpxh586d3H333QAkEgmOHj0a/LxlyxZ27949a7tEIsGRI0eC9flkt7nqqqvybp/bb6584yQSCY4dOwZQsF2+fnL3qRzZ7UvpY77jU8qxW4xq9y8yH52jJoFkMlm3XxWKRMGRI0c4ffo0AKlUimQyyejoKENDQ8E2Q0NDPPjgg6RSqWC7gwcPMjw8jHOO4eFhxsbG5vR97NixWW327ds3Z/vcbXI/z6Ojo3PGyY0vX7tc+fYpX8ylti/WR764S1lXCdXuX6QYzahJYGRkhMnJyYaZUfM8Dzvvwg5DKsTO/gjPOx3p96fnebOe+zNf09PTwbKpqSk+8IEPzNpu27ZtOJd+r87MzOSdudm9e/es536f2dvnbpM7O5ZIJOaM45xjampq3na5EonEnH0qZ7Ypt32xPvLFnT0bWOzYLUa1+xcpRjNqIiIV4v9C96VSKQ4cODBruXOO8fHxWduNj48HydLU1BT79++f07c/U5Yre/vcbXKfHzhwYM44Bw4cKHms7H5y9ylfzKW2L9ZHvrhLWVcJ1e5fpBjNqEnAv8LQP1et3sXjcR56/Mmww5AKccsvoe/KVZF+f65fv55z584Fz3t6erjqqqsYHBwMEhMz46KLLpqVrHV2dnLu3DmmpqZoa2tjw4YNc/ru6enJm0Blb5+7TU9Pz5z4hoaGZo3jnOOee+6ZM1ax/czdp3wxl9q+WB/54i5lXSVUu3+RYjSjJoHe3t6SrvYSkfyuvfbaWc+3bdtGLBajtfX5v4nb2trYsWPHrO127tyJmQHQ0tJCLBab07d/haXP7zN7+9xttm3bNut5LBabM04sFqOtrW3edrny7VO+mEttX6yPfHGXsq4Sqt2/SDGaUZNAFM79qWTtM8/zaDkzQcfBxOI7m7mQfmxZsvi+SnEhff5ORWKvMNfShlt+Sc3HTZfnWFXzccvxgQ98gMcff5xUKkVPT0/wh8/GjRuDWauNGzfyute9Lpj96unpYd26dfT39zM4OEh/f3/eEhBr166d1cafqcvePneb3D+8Vq5cmXec7Pjytcu1cuXKOftUTtmK3PbF+igUd7F1lVDt/kWKUaImkZJMJjn2yLe4ovPCovt6aRvQBXB+0X0dP51O0NZcfK7IlpVxciI92X15x+Jjr6Tvjy/Bli6l78owEqZVdTHju3XrVjZv3jxrVioWiwUXGmTPfmVvF4vFSKVS887YZLfp6urKu32+8bPlGycWi/Hoo4/yxBNPFJ1Nm2+fyuG39+uoFetjvuNTyrFbjGr3LzIfyz2hU6Jv3bp17uDBg2GHURXxeJyzqQfZum68+MY1tPtgJ0Dk4qq13Qc7Wd7zukifJ1aoOGkpRUsrsU3uer+wq3+O05133olzrqQCqqUUeY3H4wwMDFSsGGtYxV2rNW4jFKtthH2Q+ZnZQ865dfnW6Rw1CQwMDET6F7AIFH+fZhcnLWV5pbfJXe8XdvU8j6NHj5JIJEoap9hY/rpdu3aV1FepSo2t0qo1blj7U0mNsA+ycErUJKCCt1IP5nufFipOWkrR0kpsk7ve87w5hV337dvH0NBQ0QKqpRZ5TaVSFSvGGlZx12qN2wjFahthH2RxdI6aBKJQ8NbzPJZO6e+HqDo50cJ5zwv9PdLe3p53XaHipKUULa3ENrnrd+3albewq38V4XwFVEst8uqrRDHWsIq7VmvcRihW2wj7IIuj34gi0jAKFSctpWhpJbbJXe/PduXyl81XQLXUIq++ShRjDau4a7XGbYRitY2wD7I4mlGTQBQK3voXE0g0Xd4xw/KevtDfI4UUKk5aStHSSmyTu767u5vjx4/PSdbMDOfcvAVUSy3y6qtEMdawirtWa9xGKFbbCPsgi6MZNQmo4K3Ug/nep4WKk5ZStLQS2+Suv+OOO/IWds1XrLacsbLX+SpRjDWs4q7VGrcRitU2wj7I4mhGTQJRKHgL6VpdfjmMqPDrqEUtrnKcnGjh7AUrvuE8zl0w2kM+R21kZASg4AUFF198MWNjY3R2ds66A0Ch5aW0zbdNd3f3nFIJucVR+/r65hR2vf7663HOFS2gWmqR1zVr1nD8+PGKFGMNq7hrtcZthGK1jbAPsjhK1CRSojqjd1EmOVie+Xq4Hp33PCbceKYI8MKNM86hE4cqEtOCPJd+eNqezr/eAW0wyiijJ0aLLy+lbe42RsELGnKLo/qFXf2vrmKxWHC1ZiWKvPp11LK38Wu3+cVk/dpt733ve3niiSf4+Mc/nvezduzYMfbv38+yZct44xvfyLvf/e5Z9eCqWcurWkVlG6FYbSPsgyycCt7WoWoVvPXPO4rKzJpUVjwe59CJQ8xcNxN2KIvScn/6jI0w96Pl/hau6b4mMnUHcz+7e/bsmTWLd+ONN866+XpPTw933333nH5uvvnm4KbuPT09HD9+nE2bNrFlyxb27NnD4OBg8FxEKkcFb6UkqqMmUp+yP7ujo6N5a7ft27cveJ5KpeZ81o8dOxYkaf422fXgVMtLJBz66lMCUaijJtXjeR7U92RadIynj2dUPivZteUSiUTe2m25du7cOWtWbffu3Xn79uvBqZaXSDg0oyYi0kAOHDiQt3ZbruzZs3zPfX49ONXyEglHVWfUzMwBf+2c+1+Z563AD4H/dM7dUM2xM+OlgHXOuQJnBS++nZldB7xnvv0xs6uBlzjnhgptU2pf1RSFOmpSPf45alIBndDXHW49uWzZM3vr169ncHCwaLLW09Mz53m+ZM2vB3fixAnV8hIJQbVn1M4ArzQz//Ko9cCJKo8ZRVcDG8MOohjVUROpT9mf3VgsNm/tNt+2bdtmPd+6dWvevv16cKrlJRKOWpyjNgxcD3wB+J/A3wH/HcDMtgPjzrmPZJ4/AtwAPA18HlgNLAF2Oef+3sxeB/wZcBFwDvhZ4O2kZ79+L9PHvcBHnHP3ZwdhZluA38g8/bRz7k/N7KJ842S1aQf+Efgi8LfAXuBVpI/bdufcPVlDkOlv1jaZ/d8JtJvZtcCHgO8Bfwq0A5PArzvnvlvWUa2CKJxvMzAwoAsayuDXFFtdQtkQz/NgAlr+qQp/n7UCtSoxdyr94F/9GYpTQHd4w+fK/uyuXLmyYO227Ks+c/8oW7t27axZNf+qT78enGp5iYSjFona54BtmQTq1cBnySRq8/h54AfOuesBzOwFZrYU+Hvgl51zD5rZJaSTnKLM7LXArwNvAAz4TzP7F+DHc8fJataZif1u59zdZvZB4GvOud8wsy7gATP7as5Q78/dBvgqsI3ZyeQlwBudc9Nm9mbgg6QTzvn24Z3AOwGuuOKKUna7LiWTSR47fJhVYQdSJ05nHk+NFv92/zLgMgzmnle+KE8CS5ZeRF93X2U7LmDEZZLT7hBr2nVHt+YfPF+7za+j5tdue/TRR3niiSfmzKb5tm7dSjweZ/Xq1dx+++2z6rOplpdIOKqeqDnnjphZD+nZtHnP0cryMPARM/tj4F7n3DfM7FXAD51zD2b6/REw5zYqBVwL/KNz7kymzZdIJ4tfzh0nq809wIedc3+Teb4BeKuZvSfzfDmQmzGVsg3AC4CEmfURlNicn3PuU8CnIF1Hrdj29WwVcAuLq6DfLD5D+q0Q5vH6DI6uvuicr9VIFlpkduXKlXzyk5+cs/zTn/70vO3Wrl3Ll7/85eD53r17Z/WZ/VxEaqNW3x0MAh8h/bVntumcGJYDOOeOAa8lnbB9yMy2kZ4Jy5eg5O0jR97fYgXG8X0T6LfnM0ED3u6cuzrz7wrn3KN5xim2DcAu4D7n3CuBtxSIueYGBgb0y1aqSu+x8iQSCY4cOUIikQg7FBEJSa0Stc8CO51zD+csTwGvATCz1wA/lvn5JcCEc+6vSSd4rwEeA16SOU8NM7s4cxVpCrjazFrM7KXA6/OM/3XgRjPryJxH9jbgGwXG8W0DxoA/zzz/CvBuP3Ezs2vyjFNom9PAxVnbvYDnL6p4R55+QqGCt1Jteo+VbnR0VEVmRaQ2BW+dcyOkLwLI9UXgZjM7DDwIHMssfxXwJ2Y2Q/qMmt92zp03s18G9mZO8p8E3kx65ut7pGfFHgG+lWf8b5nZXaTPGYP0xQSHzOzncsfJafr7wGfN7MPAB0hfAHAkk4ilSF/4kG1XgW3uA96b2c8PAR8m/dXnFuBr+Y5ZGKJQ8NbzPBX3qzNjwNMlFn/NLswq80skEioyKyK612c9qta9Pm+66SYmJyfp66vNSeH5eJ5Hy5kz3KZz1EoShXPUPoxj5qKLSnrf+Inal770pRpEVt9+/ud/nomJieB5R0fHrPPHRKRxzHevT91CSgJRKHgbj8c5dfhwaONL+VZAyRcTRKEETL1Yv349Q0NDKjIr0uT0LZMEVPBWqk3vsdLFYjEVmRURzajJ86Iw2zEyMsIYsDvvBb7Nzb/NdvaH9nzmsVrHaynpGbP5PAl0ldhfFN5j9WLlypUqMisiStQkelqXLOOSjheFHUbknJp4CmDWsRk/+ywAnctfWJXxZpa30lXk3LMuol38td6Mjo5y++23c+LECXbv3q0isyJNTomaBPxzjMKc9Vi9ejV2bow3vexXQoshqu577HMANTs2//fwJ2hvX666ZzWWSCTSt/si/Zm8++67Q45IRMKkRE0Cqm8l2aZnppic1FfQtTQ6Osq+ffuC56lUimQyqRlLkSamRE0CUamjNnNepTmkOSUSCaanp2ct27lzp2bVRJqYrvoUEYmIAwcOzFmWSqVqH4iIRIZm1CQQlTpqJx7XrXKkOa1fv5577rln1rKenp5wghGRSNCMmgRU40qytba06XZPNRaLxWhtnf3387Zt20KKRkSiQDNqEohKjatTE08FVzjK8/zyHLU6NtMzU6xercS9llauXMn1118fzKr19PTojyeRJqdETSJFv5TSHnvsMaanp1m2bFmwzNkFACZmnim7v/b29uCr7VJ1s0KvRwhisRhHjx7lxIkTmk0TEd2UvR5V66bsEh39/f2cOXOGFy5rW3Rfp89P88qrrlI9NBGRiNJN2UXqzLlz5zDg9Zcv/o4DD5x8dkHtolAAWUSk2SlRE4mgmZmZ0O92qgLIIiLhU6Im0uAmpi/geV7ZM2Oe5+mqTxGRkKk8h4iIiEhEaUZNpMF1tC5hTV9f2RcT6Nw0EZHwKVETiaCWlhbczEyoMag0h4hI+JSoiUTQsmXLODM9veArNrOdPj9dfKM8NKMmIhI+JWoiEfTiF7+YU6dOlV2kthDNjomI1CclaiIR9NnPfjbsEEREJAJ01aeIiIhIRClRExEREYkoJWoiIiIiEaVETURERCSilKiJiIiIRJQSNREREZGIUqImIiIiElFK1EREREQiSomaiIiISEQpURMRERGJKN1CShrWwMAAyWQy7DBCNzIyAlCx+4Y2g97eXt2UXkQiQYmaNKxkMsmhh48y03Fp2KGEqmXiOQBOntPHvRQtE8+EHUJZjh07xubNm9m1axeJRILt27fjnGPHjh3E43H+6I/+iBMnTvCxj32MmZkZNm/ezN69e+nt7WV0dJStW7cCcOedd7JixQpGR0eDtgMDA3P685dlb1voOZB3WTHZbfKN7Zxj69atTE1N0dbWxq233jon1lLHm28f/HGyj0+x18E/tpUw3+tTzvEsdaxq9CuLp/+5JTAwMADQUDMJMx2XcvYVN4QdRqiWH70XoOmPQ6n84xVl2Z/V3bt3c+bMGbZt28aZM2dIJBI45zhy5Ai7du0ilUoBsHPnTgDOnDnDzp07ufvuu0kkEhw9ehSARCLBli1bSCQSQdvjx4/P6c9flr1toed+v7nLisluk29s51wQN5A31lLHm28fsscp1p//OvjHthLme33KOZ6ljlWNfmXxdI6aBJLJpL4qFKkD/mf12LFjQSI2Pj6Oc46hoSGGh4dxzgXrAFKpVPA8lUpx8OBBhoeHg/VDQ0N4njerrd/f0NDQrGXDw8Ozts33fGxsjNHR0TnLisluk2/soaEh9u3bN6tN9rpyxsuNL3sf/LGzj0+h/rJfh1QqVZH/R0dHR+eMn+8YV8JCXiepHXPOhR2DlGndunXu4MGDFe/3pptuYnJykr6+vor3HQbP8zh93jH5ml8NO5RQaUatPO3f+lsuXmqR/hx4nkd7ezudnZ2zkjEAMwOg2P/tnZ2dnDlzJtjOzFizZg0nTpxgampq3v7a2tro7u4Ots33/Prrrw8SnuxlxWZr9uzZE7TJN7aZFdy37O1LGS97rNx9yB3HzNi0aVPe/m6++eZZr0NPT8+iZ9X27NnD4OBgwden1ONZ6ljlvk5SWWb2kHNuXb51mlETEalTuUkapJOUUv4A92fgstulUqlZSVqh/qampmZtm+/5/v37OXDgwJxlxWS3yTf2fPuWvX0p4+XGl70P+cYt1F/u65DvdSnXgQMH5n19Sj2epY5VjX6lMnSOmgT8qwL981/qXTwe56HHnww7DKkzbvkl9F25KtKfA/880ijPqG3YsGHOjNqGDRuK7tv69esrNqNWbLzssUqZUSvUX09Pz5wZtcVav3590Rm1Uo5nqWOV+zpJ7WhGTQK9vb0Vu1pJRKrH/6z6VwRma2tro62trWgfO3funLVdW1sbd9xxR5DsZC9vbZ39N31LS8usbfM9j8VixGKxOcuKyW6Tb+x8y7LX+ftUyni58WXvQ+5xbGtrK9hf7uuwbdu2ecctRSwWm7Wfua9Pqcez1LGq0a9UhmbUJBCFqz0rWfvM8zxazkzQcTBRkf4WZOZC+rFlSXgxXJgGCPc4LIBracMtv6Tm46bLc6yq+bjlyP6s+rM5/gzZxo0bcc4xODjImjVrgpkef5YnlUrR09PDunXr6O/v55577gFg48aN9PX10d/fH7Q9fvz4nP6OHz9Of3//rG3zPfdLPORbNp+VK1cGbfKN7S/z4/b3LTfWUsbLHit3H3LH2bhxY8H+1q5dG7wOPT09FfmDd+XKlWzcuLHg61Pq8Sx1rGr0K5WhRE0iJZlMcuyRb3FF54VF9/XSNqAL4Pyi+1qo46fTCdqai8+FFsPJifTE+eUd4R2Hcn1/fAm2dCl9V4aRMK2qq5nlrVu3snnzZnbu3EkikSAWiwXnM2XXUdu2bVtQR82f8YnFYnieF/zsP/ptBwYG5vTnL8vettDzQsuKyW6Tb2znHJ7nzamjlr19qePNtw/+ONnHpxD/dajEbFp2bIVen0rPelWrX1k8XfVZh6p11WcU6qjF43HOph5k67rx0GKopN0HOwEaZn9qZffBTpb3vC7S54lB+jMzOTnJyMjInGKwuYVos9ePjY0FxVG7urpKLjRarEDtnj17Zq0rplhh2UoUWC3WPt8+VbL/arUtlwrKynx01aeURHXURMqTTCb5j//4j6Agq18wFJhViDZ3fXZx1OxCo8X4BVCPHj0abJ9doDZ3XSn9+WNn95MdTznxFRuj1H2qZP/VahvlsaSxKFETEVmgqakpnnnmmTnFYB988ME5hWj99fv27ZtVHHXfvn0lFRotVgA1+6rD+YqzZvc3X2HZQkVsy1GskGq+fSpnjMUUaq1lkVcVlJXF0DlqEhgZGWFycjLUrz49z2PplP5+aHYnJ1o473mRuMBlPt/97nfnlIqYmZnhAx/4QME2uXXKpqeng3bz3b4nkUgE2/r97Nq1K2+piqmpqaK3AvJvkZQvJj+e7P6LxVdsjHzt8+1TubeaWmh8i2lbrlqOJY1HvxFFRBYoO8nwTU1NMT5e/jmJxQqNFiuAmm2+4qzZ/c1XWLZQEdtyFCukmm+fyhljMYVaa1nkVQVlZTE0oyaBKBS89S8mkOZ2eccMy3v6In8xwdve9rY5X2O1tbWxbNmyspO1YoVGixVAzTZfcdbs/uYrLFuoiG05ihVSzbdP5YyxmEKttSzyqoKyshiaUZOACt6KlOcnf/InaWmZ/d9oS0sLO3bsKNgmtxitX9S0WKHRYgVQc8cop9hrqUVtyy3dUKyQar59KreMx0Ljq2WRVxWUlcXQjJoEonI+0PfHlwRlLeqdX0etUfanVCcnWjh7YW4CUapzF4z2kM5RGxkZAZ6fYS7mhS98IWNjYyxbtoxz587R2dnJX/3VXwXPW1pamJmZCZ5fcskljI+Pc+7cOZYtW0ZnZydjY2N0dnbOm+ABXHLJJcEM3urVq+cUqPUvKJivOKuvWGHZ+YrYlqpYIdV8RV3LGWMxhVprWeRVBWVlMZSoSaQ02ozeRZlf+stL/KXfKM57HhNuPFNweGHGGefQiUMVi6lkz6UfnranS9veAW1wtv0szMAoo4yeGIV24DxcuPgCTMxe768723GWs+4stGW1KzZWKzAN7e3twOwCtX4dtYUUey21qG25irXPV9S1kv1Xq22Ux5LGooK3daiRC95KY4jH4xw6cYiZ62bCDqVsLfenv8qMcuwt97dwTfc1kTuHT/+HiCzMfAVvNaMmARW7FZHF0P8hIpWnRE0CUaijJo3B8zyI7oRU/RtPH+OofVY9zwu+khWRytBVnyIiIiIRVfczambmgI86527NPH8P0Omc217BMXqAe51zr6xUn1EUhTpq0hj8c9SkSjqhrzt6deaiNsMn0gjqPlEDzgE3mdmHnHNFLpmS+TTaFZciUlv6P0Sk8ur+qk8zGwfuJD2L9v7sGTUzuwz4JHBFZvPfd85908wuBT4L/DgwAbzTOXfEzLYDVwLdwEuBDzvn/iJ7Ri3z818BF2X6/D3n3L+Z2YuBvwcuIZ0A/7Zz7huZ+D4OvBl4Fngf8OFMTL/vnBs0s58A/hJYSvrr6Lc757xC+1ytqz6legYGBprqRGvP8xifGF/4n4IXMo9LKhVRGfy7QkX5z9hp6OzopK+vb86q3t5ezWyJ1JlmuOrz48ARM/twzvI/A/6Pc+5fzewK4CvAy4EdwCHn3I1m9jPA3cDVmTavBn6SdCJ2yMz25fT5FLDeOXfWzPqAvwPWAb8KfMU5d6eZLQE6MttfBNzvnLvdzP4R2A2sB14BJIBB4F3Anznn/sbMlpLn15OZvRN4J8AVV1yRu1oiLplM8tjhw6wKO5AauQy4DIO5t6EsyQ8zjy8O4YIE/4ZQKxYYe82cOcOpw4dnLXoynEhEpIoaIlFzzv3IzO4G4sBk1qo3A6/IusXKJWZ2MXAt8PZM26+Z2Qoze0Fmm3ucc5PApJndB7weOJzVZxvwMTO7mvTf/Wszyx8EPmtmbcA/Oef8NueBL2d+fhg455ybMrOHgZ7M8n8H3m9mq4Ev5ZtNc859CvgUpGfUSj02Eh2rgFtYeLX+ZvIZ0m9xHa/y+MetEY2OjrJjxw62b99eF5X96y1eia5GuurzT4FbeP4rSUjv3085567O/Ot2zp2GvP/7u5zH3OW+PwBOAleRnklbCuCc+zrwRuAE8FdmdnNm+yn3/PfLM6TPqcM5N0MmUXbO/S3wVtJJ5lcys3w1NzAwELmTk0UkOsL8PyKRSHDkyBESiUQo45er3uKV6GqYRM059wzwedLJmm8/8Hv+k8wsGMDXgV/LLLsOGHXO/SizbpOZLTezFcB1pGfKsr0A+GEm0fpfZL6mNLM1wFPOub8APgO8ptTYzezHgf9yzg2Q/ir01aW2raRkMtlU51GJSHnC+j9idHSU4eFhnHMMDw8H9zuNqnqLV6KtIb76zLKHrMSM9FehHzezI6T39eukzwfbDvxlZvkEkH3ztQeAfaRP9t/lnPtB5gIC358DXzSzXwTuA85kll8H/KGZTQHjwM2U7peB/1+m7ZPAzjLaVowK3laP53mN81eRRNYY8HQVC+GGVdA2kUjgfzExMzNDIpFgy5YtNY+jVPUWr0Rb3SdqzrnOrJ9P8vxJ/GTKdfxynjbPAJsKdHnMOffOnO1TwCszP3vMnvH6fzPLE6QvDpgvvu351jnnPgR8qEA8IiJN7cCBA0xNpa/umJqaYv/+/ZFOfOotXom2uk/UpHJU8LZ64vH4nCv0RCptBdDVV71CuGHNtq9fv56hoSGmpqZoa2tjw4YNocRRqnqLV6JN38Zkcc5td859JOw4wtLb26uClSJSUFj/R8RiMfyr91taWojFYkVahKve4pVoq/uCt81IBW8Xr9YFaD3PY+LMmfQlwlLU+cxjsx+vcmvvngc6LroobyHcevfEE08wNjbGihUreOlLXxp2OEWFEa+KHdevZih4K1KWZDLJdx5+lK6OF9VkvI6WS+m4+NKajNUIxs8+C0Dn8heGHEm4Tk08BcAlZb5PTzzeeFcZuplltC1ZBmeX1cX+1Tpe/70ilXXs2DF+53d+h/Pnz7N06VI++clP1nxWWYmaBPzzWprlL7Kujhfxppf9SthhiBR032OfA9D7VIry3yv1oJ5+1+zevZvz59Nz/OfPn2fnzp3cfffdNY1BiZoEVENNRESqrV5+1xw7doxUKjVrWSqVIplM1nRWTYmaBJqpjprnecyc1+2JRKQxjJ99Fs97pi7+/w6rHl+5du/enXd5rWfVdNWniIiISI7c2bRiy6tFM2oSaKY6avF4vC5OSBYRKUXn8hfSfeWKuvj/ux5m/QB6enryJmU9PT01jUMzahJQHTUREam2evlds3Xr1rzLt23bVtM4NKMmgXr5K6dSTk08FdkrpcbPPsv0zFRV+r4wk67OtaSleT7+rS1tdVnqwy+5ENX3qUTHqYmn6GZF2GGUpF5+16xdu3bOrFpPT4/Kc4jUQtT/mvO8Z3AT57l4aeU/oqfPzwDQ2TpT8b6j6PT5aVqWt9J9ZX38EsvmRiYB6F5df7FLbXWzIvL/r9WjrVu3zqqjVuvZNNCdCeqS7kzQ+OLxOMcf/Q6vv7zys0APnEwXk61G31H0wMlnWfPyn4jkuTtf/epX2blzJzt27OBNb3pT2OGISEjmuzOBzlGTwMDAQCR/mYnUUi0/Bx/84AcB2LVrV03GE5H6o68+JVAvRQhFqqlWn4OvfvWrTE+nzxecnp7mvvvu06yaiMyhRE0CzVTwNuo8z2N6+kLYYTSEiekLeJ5X8vu6VsU4/dk0365du5Soicgc+upTRCQE/mxaoeciIqAZNcnSTAVvo86/mEAWr6N1CWv6+kp+X9dqRrm1tXVWctbaqv+ORWQuzahJoF6KEIpUU60+B+973/tmPb/jjjuqPqaI1B/9CScBnZsWLafPTwelNCrdL1CVvqPI399S1epz8OY3v5kPfvCDTE9P09raqvPTRCQvJWoiEVTNGZ2RkRHg+a+6m0FUZ4rf9773sXPnTs2miUhBKnhbh1TwVkREpHGo4K2IiIhIHVKiJiIiIhJRStREREREIkqJmoiIiEhEKVETERERiSglaiIiIiIRpURNREREJKKUqImIiIhElBI1ERERkYhSoiYiIiISUbrXpzSsgYEBkslk2GFUTKPeo7O3t7dmN0IXEak3StSkYSWTSQ49fJSZjkvDDqUiWiaeA+Dkucb52LZMPBN2CGU7duwYmzdvZu/evfPe7H10dJQdO3YQj8fZs2cPALfeeisDAwNs374d5xw7duxg+/btrFixYt5+tm7dytmzZ3nyySf52Mc+RldXV962/rbT09O0trZy5513Buv9ePw2/rYAd955ZxBPdrzZ7efbx+w48i2rpHz7UY3xajWOSDGN8z++LNrAwABAQ81uzHRcytlX3BB2GBWx/Oi9AA2zP/D8PkVFKZ+B3bt3c+bMGXbu3Mndd99dcLtEIsGRI0fYtWsXqVQKgF27dnH8+HESiQTOOY4cOUIikWDLli3z9nP06NHg+c6dO7nqqqvyts3dNnu9H4+/LHvb7Hiy4y0lttw48i2rpHz7UY3xajWOSDE6R00CyWSyob4qFClXsc/AsWPHgiQmlUoV3HZ0dJTh4WGcc8H2fhvnHENDQwwNDeGcY3h4mLGxsYL9DA0NzVqWSqXYt2/fnLb5th0aGmJsbGxWPMPDw3iex/DwcLDdvn378sbrty+2j34c+ZZVUqH9qPR4tRpHpBSaUZPAyMgIk5OTDTOj5nkedt6FHYbMw87+CM87HZn3nOd5tLe3F1y/e/fuWc8Lzar5M1SFTE1NBT/PzMwUnKVJJBJMT0/PWe4vy26bb9upqakgFj+emZkZdu3aNSuGqakpzCxvnPPFlt1nvnGqMcuVux/VGK9W44iUQjNqIiIlyp5tyvfcd+DAgVmJUK7shGZqaor9+/cX7KdYwue3zbetc479+/fPimdqaiqY2cvdNl+c88WW3We+cQq1Xah8+1GN8Wo1jkgpNKMmAf9qQv88nXoXj8d56PEnww5D5uGWX0Lflasi854rNrPX09MzKznr6enJu9369esZGhoqmKz5s1fOOdra2tiwYUPBfgYHBwsma9lt821rZmzYsCH4unVqaoq2tja6u7s5fvz4nG1zx/HbF9tHP47ccQq1XajcMbu7uzlx4kTFx6vVOCKl0IyaBHp7e+e9ik2k0RX7DPhXSfq2bduWd7tYLJb3q0RfW1sbra3pv5NbWlqIxWIF+/G3y5avbb5t29raiMVis+JpaWnhjjvuoK2tbdZ22c9z2xfbRz+OfMsqKd9+VGO8Wo0jUgrNqEkgKucJVcrIyAgtp8foOJgIO5TFmbmQfszMdtT9/mS7MI3nnWZgYCAS779iMaxduzaYVevp6SmY1K1cuZL+/n4GBwdZs2ZNMAvX09PD8ePH2bhxI845BgcH6e/vL1juYeXKlWzcuJF77rknWNbT08NVV101p22+bTdu3Bis9+Pp7++nr6+P/v7+YNvrr78+iCc73uz28+1jdhz5llVK7pj+flR6vFqNI1IKJWrS0C5qvcAVnefDDmNRjp9eAsDyJelE7fKO+t6fXN8fv1BXVxtv3bqVzZs3F5xN88ViMVKpVN46arFYLLjCstjsTCwWw/O8oI7atm3b6OrqytvW39avo5a93o8newbO87zgZz+e7HhLiS03jnzLKinfflRjvFqNI1KMzXeiqkTTunXr3MGDByveb6PVUYvH45xNPcjWdeNhh7Iouw92AtT9fhSy+2Any3teF5nz1Ob7HJRT9HS+gqljY2Ns3ryZXbt2kUgkyiqAu9B4Ftu2VgVfKzFOsT5qMYZIOczsIefcunzrdI6aBFRHTWT+z0F20dNicrfNfu4Xzd22bVuwrJy+FxLPYtsuZqxqxrWQPmoxhkilKFETESlBOcVc5yuYum/fvuAcsPHx8eBKyXILqi6muGy5batdyLaS4xTroxZjiFSSzlGTQCMWvF06pb9Fou7kRAvnPS8y77tCRW/zFXgtVPR0voKp+Up2lFoAd6HxLLbtYsYqRyXGKdZHLcYQqST9FhMRKUE5xVznK5iaT6kFcBcaz2LbVruQbSXHKdZHLcYQqSTNqEmgEQvenk09GHYYUsTlHTMs7+mLzPuu0MxevgKvhcxXMDWfUgvgLjSexbZdzFjlqMQ4xfqoxRgilaQZNQmo4K1I4c9BOcVc5yuYWqiwrL+81IKqiykuW27baheyreQ4xfqoxRgilaQZNQlE5RyhSvr++JKgvEUtnZxo4eyFwpXpy3Eu089v3feCivRXqvMz6XGXtlS3hM+5C0Z7COeo9fb25h2zUByFCryWsm12wdTrr7+ew4cPk0ql6Ozs5MyZMyUXwF1oPIttu5ixylGJcYr1UYsxRCpJiZo0rDBnB897HhNuHLoq0FmmfNpEZ2USv5KdSj9Md1V/3HHGOXTiUNXHCZxaWLNyip7OVzD1hhtuYPPmzezcuZNEIlGwAO6xY8d497vfzWWXXcbo6Cgf+9jH6OrqCup3xWIxjhw5wuDgIP/jf/wPXvva13Ls2DHi8TirV6/mj//4j2fVZ3POsXXrVqampjAzXv7yl/OWt7yFd7/73XPqgY2Ojga3zLr11lvxPG/e7SulEoVli/VRizFEKkUFb+uQCt5GXzwe59CJQ8xcNxN2KAvWcn/6zIh63odCWu5v4ZruayJzXlwuP66DBw/OuQm8f/uoTZs2sWXLFjZu3Mj4+DidnZ0MDQ1x8803B21uvPHGYKZu06ZNOOdm3WIqd332lYt79uwJtvVvfeX3kW97EVm4+QreakZNAip2KxINyWSSiYmJWUkaQCqVYmRkJKjfddVVVzE+np5yHR8f55577pnV5t5778XMglptuX+Y79u3DyDoLxaLBXdRGBoamjUuEPSRu72IVI9m1OpQtWbUbrrpJiYnJ+nr66t4383G8zzGZ8aZuaF+Z6Maekbt3hY6Wzoj+173PI/JyUlmZgof+7a2NpxzTE9PB8v8pCybvyzfuuz1bW1tXH/99WzZsoU9e/YwODiYty9gzvYisji6hZSISJ2ZL0mDdP2u7CQNyJuI+csK/VGer37bgQMHCvZVbr03EVmcpvzq08wc8FHn3K2Z5+8BOp1z20MNLGSNVkctTP45ahJRndDXHZ3abbni8TiPPvoo586dK7hNNWbU/Hpg69evL2lGTfXDRKqvWWfUzgE3mdnKhTQ2s4ZMcFVHTSQaent7ufbaa/Oua21N//fT0tLC+9///lnrcr+GbG1tDbbPrtXma2trm9Vf9hWq/vJStheR6mnIhKME08CngD8AZv1PZ2aXAZ8Ersgs+n3n3DfNbDvwEqAHGDWzK4HfcM59J9PufuBW4HvAZ4EfByaAdzrnjmTajzvnPpLZ/hHgBuBp4PPAamAJsMs59/dV2esionC158DAQENc1OB5HkxAyz/V8G+hC5nHJRXqLzNRU5F9aAVqX86usFNAd9hBFOZ/Fh9//PGCV3329/fzsz/7s+zZsye46nPTpk188YtfDNrccMMNwVWafq227Ks+r7/++rz121auXMnGjRvnXPW5kHpvIrI4zZqoAXwcOGJmH85Z/mfA/3HO/auZXQF8BXh5Zt1rgWudc5Nm9gfALwEfMLMXAy9xzj1kZnuBQ865G83sZ4C7gavniePngR84564HMLO8VU3N7J3AOwGuuOKKfJs0hGQyyWOHD7Mq7EAW6TLgMgwK396x4n6YeXxxhc79H8s8rljkPjwJLFl6EX3dETpxvzvcOnul2rp166w6atu2baOrq2tW/a7t27dz2223sWvXrqCNX0cttz6bcw7P84JbHxWq3wbpWTXP84B0HbWBgYF5txeR6mjKqz7NbNw512lmO0n/Kp0kc46amT0F/CBr88uAl5GeLXPOuR2ZPrqBA865V5jZZuBFzrn3m9kh4O3Ouf/KbPcE8ErSs3f5ZtSWkk4GPw/c65z7RrH4q3XVZxTcdNNNnBsd5TZqXNy1AXyG9Gf5logdu8/g6Lr6agYGBlSrrwyjo6NBoVrNXIk0Nl31WdifArcAF2UtawF+yjl3deZft3PudGbdGX8j59wJYMzMXg38MvC5zKp8vyUd6S+Sso/38kw/x0jP1D0MfMjMti16r+rY5OQk58MOQqommUw2xFfbtZBIJDhy5AiJRCLsUEQkRE2dqDnnniE9k3VL1uL9wO/5T8zs6nm6+BxwG/AC59zDmWVfB34t0/Y6YNQ59yMgBbwms/w1wI9lfn4JMOGc+2vgI/42ItK8RkdHGR4eDgrLjo2NFW8kIg2pqRO1jD1A9tWfcWCdmR0xs6PAu+Zp+wXgV0gne77tfnvgjwD/RI4vApea2WHgt4FjmeWvAh7ILH8/sHsxOyMSNWOkL66Ix+N4nsfIyEjYIUVeIpEISmPMzMxoVk2kiTXlxQTOuc6sn08CHVnPR0l/lZnbZnueZSfJOYaZWbpNebadBPIVHUqRPkdNRARIF5ydmkpfxeEXltUdAESak2bURKSqVgB9fenisn19fUFhZSls/fr1Qc0zFZYVaW5K1CRS2tvbWRp2EFI1KqpcmlgsFtwFQIVlRZpbU5bnqHeNXJ4jHo83RB013xjU7CpWf5yoJbrngY6LLorsDdCjaGRkhPHxcc6ePcuKFSt46UtfWnDb3t5elTsRqXPzledoynPUJLoabbblac9j5uw0XR0vqvpY42efBaBz+QurPtZCnHhcVy6W6rmJ0+n7aS5ZBmeXFTx2pyaeqnFkIuU7duwYmzdvZu/evQ33f3wtaEatDlVrRk3FSCsvHo9z4vEx3vSyXwk7FKkj9z2WLstY7H1z32Ofwy2b5LrrrtPnViLr5ptvJpVK0dPTw9133x12OJGkgrdSEhUjFak/k5OT+txKZB07diy492wqldJ7dQH01acERkZGmJyc1F/mFeR5HjPno3VLJ2kc42ef5dyFSdWmk8javXt2adCdO3dqVq1MmlETERGRqvBn0wo9l+I0oyYBv76Vf66aLJ5/jppINXQufyEtM0616SSyenp6ZiVnPT09ocVSrzSjJgHVuBKpP+3t7frcSmRt3bp11vNt27aFFEn90lWfdaiR66iFZWBgoConuXqex8SZCVqXpKubXZiZBmBJy+Ims1tb2iJbhkMWzy+7Uaysy6mJp/iJV71cs+ASabrqszjVURMpIplM8si3v83FSyv7kVgKLF3WCswAcPp8+rGzdWbBfZ4+P03L8la6r1xRgQglitzIJADdq+d/jbtZodk0ibytW7eyefNmzaYtkBI1kYyLl7by+surO0v1wMl0UdrFjPPAyWdZk7l3pohI1K1du5bh4eGww6hbOkdNAgMDA/rl34D0uoqI1C/NqElAhQgbk15XEZH6pURNAs1c8NbzPKanL4QdRkkmpi/geV7Jr5PnebS3t1c5KhERqQZ99SkiIiISUZpRk0AzF7yNx+Mcf/Q7YYdRko7WJWVdTNCMM6QiIo1CiZoEdJl/Y9LrKiJSv5SoSaDZZ15On58OymdUcwxgUeP4fZSq2V9XEZF6pkRNhNrNOo2MjAAs+t6MmiUTEWkOStRE0KyTiIhEk676FBEREYkoJWoiIiIiEaVETURERCSilKiJiIiIRJQSNREREZGIUqImIiIiElFK1EREREQiSomaiIiISEQpURMRERGJKCVqIiIiIhGlW0hJYGBggGQyGXYYFVOp+2rWm97eXt0SS0SkQShRk0AymeTQw0eZ6bg07FAqomXiOQBOnmuet3nLxDNhhxC60dFRduzYwfbt21mxYkXTx1FMvcQp0qya5zeYFDUyMoJraeXsK24IO5SKWH70XoCG2Z9S+PscVQMDAwBVnfFLJBIcOXKERCLBli1bqjZOvcRRTL3EKdKsdI6aBCYnJ7GZqbDDkAaWTCar+vX66Ogow8PDOOcYHh5mbGysamPVQxzF1EucIs1MM2oiDcTO/gjPOx3Zc9Q8z6O9vb1q/ScSCZxzAMzMzIQ2SxSVOIqplzhFmplm1ESkYRw4cICpqfSs8NTUFPv372/qOIqplzhFmplm1EQaiFt+CX1XrgrOBYuaas/0rV+/nqGhIaampmhra2PDhg1VHS/qcRRTL3GKNDPNqEmgvb0d19IWdhjSwHp7e+nt7a1a/7FYDDMDoKWlhVgsVrWx6iGOYuolTpFmphk1mcWmJuk4mAgvgJkL6ceWJYvv68I0QLj7A7iWNtzyS2oyVro8x6qajLUQ1Z5RW7lyJf39/QwODtLf3x9auYmoxFFMvcQp0syUqMksF7Ve4IrO86GNf/x0OkFbc/G5Rfd1ciI9YXx5R3j78/3xJdjSpfRdWavkaVVZM1b1VEOr1FhjsRipVKois0OLOT6VjKOa6iVOkWZl/hU/Uj/WrVvnDh48WPF+b7rpJi786CR73/ijivddqt0HOwHYum48tBgq6d1fv4Qll1zOl770pbBDyWvPnj0MDg6yadOmyF/tF0as9XR8RKR+mdlDzrl1+dbpHDUJTE5OcvaChR1GQzl7wZicnAw7jLzqqYZWGLHW0/ERkcalRE2kSeWroRVVYcRaT8dHRBqXEjWRJlVPNbTCiLWejo+INC4laiJNav369bS1pcuxRL2GVhix1tPxEZHGpURNpEnVUw2tMGKtp+MjIo1LiZoE2tvbWb5EVwFX0vIlrqr3tlwMv4aWmUW+hlYYsdbT8RGRxqU6ahJYvXo1xx55KiiREQa/jlqYMVTSuRlj7erVc5YPDAyQTCZDiGi2qakpOjo68Dyv5jdyHxkZAdLvu1Lki7W3t7eqcavGmIiETYmaBKp5a59SXZT55b28xF/eUbeW/Mc1mUxy6DuHoKvmIc3VAY889Ujtx30u/fC0PV16m+xYT1U8ojlWrlzJ3r17q9Z/KQV1yym6W08FjEWkNErUZJZqz1BIli6YuW4m7ChC03J/+syLhR4Dv302/2b09fIeTiQSHDlyhEQiUbCgbinbLGRbEakPOkdNAslkMhJfx4ksVD29h0spqFtO0V0V6BVpTJpRk8DIyAiTk5N1MxtRzzzPg+adTKuMceacW+d5XmQv3siVr6Bu7ixYKdssZFsRqR+aURMRCUEpBXXLKbqrAr0ijampZtTM7ALwMOn9fhSIOecmSmz7EmDAOfcLCxz794FPFRvPzO4H3uOcq/xd14vwr77zz/OR6onH4xw6cSjsMOpbJ/R19816v9bTbPD69esZGhpiamqqYEHdUrZZyLYiUj+abUZt0jl3tXPulcB54F2lNDKzVufcDxaapGX8PtCxiPZV19vbG4krP0UWqp7ew6UU1C2n6K4K9Io0pqaaUcvxDeDVZnYRsBd4Fenjsd05d4+ZvQO4HlgOXGRmvwHc65x7ZWbdW0knXlcC/+icuw3AzD4BvA5oB77gnPuAmcWBlwD3mdmoc+5N+bar2Z4XUE+zEdVUixpnnufBGWj5YgssqepQ5WsFalHG7lT6Id/VmyW37569qJ7ew35B3cHBwYIFdUvZZiHbikj9aMpEzcxagX7gy8D7ga85537DzLqAB8zsq5lNfwp4tXPuGTPryenmauAa4BzwXTPb65x7Anh/ZvslwD+b2audcwNmtgV4k3NuNNM+33ZH5on5ncA7Aa644orFHwQpKJlM8tjhw6yq4hiXAdMYzMCLI3RRwZPAkqUX0dfdV/WxRlym4G33AmvmdUej9t9ilFJQt5yiuyrQK9J4mi1Razezw5mfvwF8Bvg34K1m9p7M8uWAnwkdcM49U6Cvf3bOPQdgZkeBNcATwC9lkqpW4MXAK4B8CVip2wHgnPsU8CmAdevWVeU+T/VWg6qaVgG3YFUd4zOkX8Zqj1OOz+Do6uur2HmKek/Nr5SCuuUU3a12gV4Rqb1mS9QmnXNXZy+w9Ekdb3fOfTdn+RuAM/P0dS7r5wtAq5n9GPAe4HXOuWfN7C7Sid8spW5Xa/VSf0rqh95TIiKL02wXE+TzFeDdmYQNM7tmEX1dQjq5e87MLif99arvNHBxCduJiIiIAM03o5bPLuBPgSOZZC0F3LCQjpxz3zazQ8B3gP8Cvpm1+lPAsJn9MHMxQaHtQqOCt2me5zXtXzBjwNMVvEF7PRWgFRGJoqZK1Jxzc65lc85NAv87z/K7gLuynqeAVxZYd0PWz+8oMPZe0leXFtvuunl2QURERJpIUyVqMj8VvE2Lx+OcOnw47DBCsQIqejFBs8/OiogslhI1CdR7qQOJHr2nREQWR4maBDT78bwneb58RrX8MPNY7XHK8STQVcH+FvKeqkXB4fmMjGTqu61eYH23HL29vfpsiciCKVETyVGrWaDxTELQVaGEoBK6CH8WLJlM8p2HH6Wr40WhjP/cxGkA7NzYovs6NfHUovsQkeamRE0CKk6a1uz7HwVdHS/iTS/7lVDGvu+xzwFUZHy/r3LpsygiPiVqElBxUpFo0GdRRHxK1CSgOmoSBZ7nMXM+OrfVWozxs8/iec+U/ZlS/TkR8TVrXU8RERGRyNOMmgRUR02iIB6Pc+LxxZ/IHwWdy19I95Uryv5MaVZbRHxK1CQQ9tV+IpKmz6KI+JSoSUB/xUtUnJp4asFXTFZibFj4FZu5fXWzoux2+iyKiE+JmohEStizSW5kEoDu1eUnWLm6WRH6/ohIfVOiJiKRotkkEZHn6apPERERkYhSoiYiIiISUUrURERERCJKiZqIiIhIRClRExEREYkoJWoiIiIiEaVETURERCSilKiJiIiIRJQSNREREZGIUqImIiIiElFK1EREREQiSomaiIiISEQpURMRERGJKCVqIiIiIhGlRE1EREQkopSoiYiIiESUEjURERGRiFKiJiIiIhJRStREREREIqo17ABE6tXAwADJZDLsMOYYGRkBYPXq1SFHUt96e3uJx+NhhyEiTU6JmsgCJZNJDj18lJmOS8MOZZaWiecAOHlOH++Fapl4JuwQREQAJWoSMQMDAwB1M5Mx03EpZ19xQ9hhzLL86L0AkYurnvjHMCz19jkQkepRoiaREsWvEkVqTZ8DEfEpUZNIGRkZYXJysi5mEjzPw867sMOQKrCzP8LzTof2PvQ8j/b29lDGFpFo0VWfIiIiIhGlGTWJFP9KRf8cnSiLx+M89PiTYYchVeCWX0LflatCex/Ww4yyiNSGEjWJlN7e3rBDEAmdPgci4lOiJpFSbzMJLRPPLPgKQTv7I2xmqsIRARemAeg4mMi/fuYCWAszF62s/NgNIl2eY1Vo49fb50BEqkeJmsgCLXbWw/NO486d44rOCxWKKO3kRPrU08s7zuddf+xUKxhcc2V4iUj0rdKslohEgjmnq9bqzbp169zBgwcr3q9qN9VWPB7nbOpBtq4br+m47/jnLljSxte+9rWajisiIvmZ2UPOuXX51mlGTQKq3dQcZhwwMxN2GCIiUgIlahKopxpmjcDzPJZOqUKOiIgUpt8SIiIiIhGlGTUJ1FMNs0bgn6MmIiJSiGbURERERCJKM2oSUDmC5tBiQIv+RhMRqQdK1CSgiwhq7/vjS9h9sLOmY844aF+2rKZjDgwMVOWq4pGREeD5r+2jpLe3V58pEVk0JWoiIQlrBvPSkRG6urpqOmYymeTQdw5BpYd9Lv3wtD1d4Y4X6VTYAYhIo1CiJrJAiy0Q3HSzLV0wc11l67e13J/+CrfS/S6WH1clqBC1SHNToiayQCoQLLWg95lIc1OiJrJAKhBcOs/zIFqTXtU1nt7nSrw3PM+jvb29AkGJSD3SpV8iIiIiEdUwM2pmdgF4mPQ+PQrEnHMT4UYljUwFgksXj8c5dOJQ2GHUTif0dfdV5L2hGVuR5tYwiRow6Zy7GsDM/gZ4F/BRf6WZLXHOXQgpNmlAqjsntaD3mUhza6RELds3gFeb2XXAB4AfAleb2auAPwKuA5YBH3fO/X9m1gJ8DPgfwPdIfyX8WefcF8wsBSSAtwBtwC865x4zs9cDfwq0A5PArzvnvmtm7wDeCnQAVwL/6Jy7DcDMfh74ILAEGAXWA98Ffto593QmjmPATzrnRqt2dKQiajXTMV8NsmJ1xCJVy+tUZa+G9PuEKvS7WKeA7sp0FZnXT0RC0XCJmpm1Av3AlzOLXg+80jn3PTN7J/Ccc+51ZrYM+KaZ7QdeC/QArwJeRPqr089mdTvqnHuNmf0O8B7gN4HHgDc656bN7M2kE7C3Z7a/GrgGOAd818z2AmeBv8i0+Z6ZXeqcmzGzvwZ+jXTS92bg2/mStEzs7wS44oorFnuYpI4kk0keO3yYVXnWnc48nhqdm9c/WdWoylOtWaERl0lUuyNW8LZbM2EiUhmNlKi1m9nhzM/fAD4D/DTwgHPue5nlG0jPtP1C5vkLgD7gWuAfnHMzwJNmdl9O31/KPD4E3JTVNmFmfYAjPdvm+2fn3HMAZnYUWAO8EPi6H4tz7pnMtp8F7iGdqP0G8Jf5ds459yngUwDr1q1zxQ6GRF859bFWAbdgc5Z/hvRbYb51ixm3UjQrJCKyMI2UqAXnqPnMDOBM9iLg3c65r+Rsd32Rvs9lHi/w/DHbBdznnHubmfUA9+fZPruNwdzfnM65J8zspJn9DPAG0rNr0gTCqo+lulwiIvWjkRK1UnwF+G0z+5pzbsrM1gIngH8FYmaWAC4jfQ7b3xbp6wWZtgDvKGHsfwc+bmY/lvXVpz+r9mngr4G/0gUPzaPUOmye5y2ojs4Y8HSeWl6qyyUiUj8idgZu1X0aOAp8y8weAf4/0snqF4ERwF/2nwR3ESzow8CHzOybpC8OmJdz7mnS55h9ycy+Dfx91upBoJMCX3uKiIhIc2qYGTXnXGeeZfeT9ZVk5hy092X+zWJm73HOjZvZCuAB0jXZcM71ZLU/SHq2DefcvwNrs7q4I7P8LuCurDY3ZP08DAznCf8q0hcRPDb/XkojKbUOWzwe59Thw2X3vwLo6ptby0vni4mI1I+GSdQq4F4z6wKWArucczW5aM7M3gv8Njo3TURERHIoUctwzl0X0rh/RLq2mzSZsMo3qGyEiEj9UKImEpJyvoJ8kvzlNn6Yecy37kmga5HjSjjCKKEiItGkRE0k4uabARvP3JmgK8+dCbqKtJXoGh5On8qqRE1ElKiJRJx+WTefiYmJsEMQkYhQoiYiEjHO6eYjIpLWbHXUREREROqGEjURERGRiFKiJiIiIhJROkdNRCRizCzsEEQkIpSoiYhETEdHR9ghiEhEKFETEYmY/v7+sEMQkYhQoiYiEjGqnSciPl1MICIiIhJRStREREREIkqJmoiIiEhEKVETERERiSglaiIiIiIRpURNREREJKKUqImIiIhElBI1ERERkYhSoiYiIiISUUrURERERCJKiZqIiIhIRClRExEREYkoJWoiIiIiEaVETURERCSilKiJiIiIRJQSNREREZGIUqImIiIiElFK1EREREQiSomaiIiISES1hh2ASLUMDAyQTCbDDqMqRkZGAFi9enXIkSxcb28v8Xg87DBERCJNiZo0rGQyyaGHjzLTcWnYoVRcy8RzAJw8V58f4ZaJZ8IOoSzHjh1j8+bN7N27l97e3mD56OgoO3bsYPv27Tjngp9XrFgxb3/Z7VasWMHo6Chbt24F4M477yy5fTweZ2BgoKQxi8mNqVZtayHq8YnMpz7/l5eqGBgYAGioWY6Zjks5+4obwg6j4pYfvRegbvfNjz+K8n0Odu/ezZkzZ9i5cyd33313sDyRSHDkyBESiQTOueDnLVu2zDtGdrstW7aQSCQ4evRosK7U9rt27eL48eMltSkmN6Zata2FqMcnMh+doyaBZDLZsF8VipQq93Nw7NgxUqkUAKlUKlg3OjrK8PAwzjmGhoYYGhrCOcfw8DBjY2MF+89uNzw8jOd5DA0NBeuHhoZKbp9KpUoas5jcmMrpazFtayHq8YkUoxk1CYyMjDA5OdkwM2qe52HnXdhhSB529kd43ulIvtc8z6O9vT14vnv37lnr/Vk1fxYNYGpqKlg/MzMz78xNdruZmRl27drF9PR0sH5qaqrk9qWOWUxuTOX0tZi2tRD1+ESK0YyaiMg8/Nm03OcHDhwIEjTn3Kykbf/+/QX7y243NTUVzIr5nHMlt/cVG7OY3JjK6WsxbWsh6vGJFKMZNQn4VxD65+jUu3g8zkOPPxl2GJKHW34JfVeuiuR7LXeWr6enZ1ay1tPTA8D69esZGhpiamoKMwPSSVZbWxsbNmwo2H92u7a2Nrq7uzl+/HiQrJlZye19xcYsJjemcvpaTNtaiHp8IsVoRk0Cvb29s65oE2lGuZ8D/2pM37Zt2wCIxWJBgtbW1kZra/rv3paWFmKxWMH+s9u1tLRwxx13BG39vkpt7ys2ZjG5MZXT12La1kLU4xMpRjNqEojC+UKVrH3meR4tZyboOJiYu3LmQvqxZUlFxqq5C+lzmvLuW5lcSxtu+SWL7qcc6fIcq2o6ZqlyPwdr164NZtV6enqCJG7lypX09/czODjIxo0bcc4xODhIf3//vCUgstv19/fT19fHxo0bueeeewDYuHFjye3XrFnD8ePHi45ZTG5M5fS1mLa1EPX4RIpRoiaRkkwmOfbIt7ii88Ki+3ppG9AFcH7OuuOn0wnamovPLXqcMJycSE+GX94xd9/K8f3xJdjSpfRdWeukaVUos7f56mmVUmNr69atbN68OZhN88ViMVKpFLFYLLgKs5QZm+x2/nPP84Kfi8Xlt/frqFVilig3plq1rUWNs+z4VFNN6o3lXj0k0bdu3Tp38ODBivcbhTpq8Xics6kH2bpuvKrj7D7YCVD1caJu98FOlve8LnLnilXrvbhnzx4GBwfZtGlTcOVfvmVRENW4Kq3W+9ksx1Xqi5k95Jxbl2+dzlGTgOqoSVRU472Yr55WVGtsRTWuSqv1fjbLcZXGoq8+JRCFOmqe57F0Sn8/1MrJiRbOe14kzk/MllvLrBLy1dPKLqsRpRpbzVL7q9b72SzHVRqLfiOKSFPIV08rqjW2ohpXpdV6P5vluEpj0YyaBKJQR80/R01q4/KOGZb39EXuHLVqzPDlq6fl3/4pajW2mqX2V633s1mOqzQWzahJQHXUJCqq8V7MV08rqjW2ohpXpdV6P5vluEpjUaImgXg8HrlzlaQ5VeO96NfTMrOgnla+ZVEQ1bgqrdb72SzHVRqLvvqUyPn++JKgfEa1+HXUqj3OfE5OtHD2ghXfsIrOXTDaI3gxQSWMjIwAz3+lD+nzkjo6OvCy9jnfskro7e1dVH+LqU1WT2q9n81yXKVxqI5aHapWHbUoqOSdCeaT75d4rXmex/j58UxRXqm4U5nHrnDGvuYnroncuX8LpSKxItU1Xx01zahJICoFb5tFPB7n0IlDzFw3E3YoDanl/vSZHWEcX3/sKCvn855IJDhy5IjKWYiEIPr/m0jNqOCtSPMo9fOuIrEi4dKMmgSiUPC2mXieB5pMa0zjVPyct0ortaiwisSKhKtuZ9TM7IKZHTazR8zs/5pZV4X7/7cFtHlfJWMQEQmbisSKhKueZ9QmnXNXA5hZAvhd4M5Kde6c++ncZWa2xDl3YZ5m7wM+WOoYli7oY865SMyrRKHgbTPxz1GTBtQJfd3RKyScrdTZPhWJFQlX3c6o5fh3oBvAzK40sy+b2UNm9g0ze1lm+S9mZt++bWZfzyx7h5ndk9n+u2b2Ab9DMxvPPF5nZveZ2d8CD2eW/VOm/++Y2Tszy/4IaM/M8v1NZtmWzJiPmNnvZ5b1mNmjZvbnwLeAO8zs/2SN+1tm9tFqH7B8VPBWpHmU+nlXkViRcNXzjBqQnuUCfhb4TGbRp4B3Oec8M3sD8OfAzwDbgJ9zzp3I+Zr09cArgQngQTPb55zLrX3xeuCVzrnvZZ7/hnPuGTNrz7T5onPuvWb2e1mzfK8Ffh14A2DAf5rZvwDPAv8N+HXn3O+Y2UXAETO7zTk3lWnzvyt1fMoR1fNpalWyo9Y8z4MJaPmnIn8v+XO4SxYxWCsQXsm4cJxKP4RyBeYpMn86Rlepn3e/SOzg4KCKxIqEoJ4TtXYzOwz0AA8BB8ysE/hp4B/8vwCBZZnHbwJ3mdnngS9l9XPAOTcGYGZfAq4FchO1B7KSNIC4mb0t8/NLgT4g91Koa4F/dM6dyer7vwODwHHn3H8AOOfOmNnXgBvM7FGgzTn3cO7OZmbu3glwxRVXzHdcGk4ymeSxw4dZFXYgFXYZcBkGU/Nv98PM44sX+AX5k8CSpRfR1923sA7q1IjL1MrrDqFWXjclz07XQ40yFYkVCU89J2qTzrmrzewFwL2kz1G7Czjlz2plc869KzPDdj1w2Mz8bXIr/uarAHzG/8HMrgPeDPyUc27CzO4HludpM1/J+TM5zz9N+vy2x4C/zNfAOfcp0rOFrFu3ripViqNQR62QVcAt8x7SxvWZzFtyofv/GRxdfeGeLxXl91bY6qFG2cqVK9m7d2/YYYg0pbo/R8059xwQB94DTALfM7NfhPTJ+mZ2VebnK51z/+mc2waMkp4JA1hvZpdmvsa8kfTM23xeADybSdJeBvxk1ropM2vL/Px14EYz68h8vfk24BsF9uE/M/H8KvB3Zex+RamOmlSL3lv5qUaZiBRTzzNqAefcITP7NvArwK8BnzCzrUAb8Dng28CfmFkf6Zmuf84suxr4V+CvgF7gb/Ocn5bry8C7zOwI8F3gP7LWfYr0+Wbfcs79mpndBTyQWffpTJw9Bfr9PHC1c+7Z0ve8sqJaR83zvPr/iyJEY8DTIdf0KrVmV7NRjTIRKaZuEzXnXGfO87dkPf35PNvflLsscx7bU8653yvUv3PufuD+rOXngP4CMd0O3J71/KPAR3O2SZG+eCHXtcD/ybNcRBpUvhplStREJFvdJmqNInMF6gPAt51z/xxmLFGtoxaPxzl1+HDYYdStFRD6OWpRm6WNCtUoE5FimvobJefcXflm02ocwynn3Frn3C+GGYeI1J5qlIlIMU2dqMlsKngr1aL3Vn5+jTIzU40yEclLX31KXXiS58tUNBu/jtpC9/9JoKtSwSyQvvosTDXKRGQ+StQkMDw8DIT7SzVf8c9mn4kZH0kXbu1aXVrh1qmpKVKpFD09PbS1tdGFjmGUVaJGWT0UzRWRhVGiJoGJiYmwQ8hb/FOzMeXZs2cPR48epa+vT1cQNol6KJorIgujc9Qk4JwLajqFQcU/F0/HsPnoNRdpbErUJDLyFf+U8ugYNh+95iKNTYmaREa+4p9SHh3D5qPXXKSxKVGTyFi/fj1tbelbpar458LoGDYfveYijU2JmgTMLCi+GQYV/1w8HcPmo9dcpLEpUZNAR0cHHR0doY2v4p+Lp2PYfPSaizQ2leeQQH9/3nvN15SKfy6ejmHz0Wsu0rgszHIMsjDr1q1zBw8eDDsMERERqQAze8g5ty7fOn31KSIiIhJRStREREREIkqJmoiIiEhEKVETERERiSglaiIiIiIRpURNREREJKKUqImIiIhElBI1ERERkYhSoiYiIiISUUrURERERCJKiZqIiIhIRClRExEREYkoJWoiIiIiEaVETURERCSilKiJiIiIRJQSNREREZGIUqImIiIiElFK1EREREQiSomaiIiISES1hh2ASLaBgQGSyWTYYVTNyMgIAKtXrw45ksbS29tLPB4POwwRkYpToiaRkkwmOfTwUWY6Lg07lKpomXgOgJPn9NGrlJaJZ8IOoSyjo6Ns3boVgDvvvJMVK1ZUtV0p/e7YsYPt27cHfeZbVithji0SRfptIYGBgQGA0GcmZjou5ewrbgg1hmpZfvRegIbdvzD4xzTKsj9biUSCo0ePApBIJNiyZUtJfSy0XSn9HjlyZFaf+ZbVSphji0SRzlGTQDKZbOivHUXC4n+2RkdHGR4eDpYPDQ0xNjZWtP3o6ChDQ0Nltyul3+HhYZxzDA8PMzY2lndZrYQ5tkhUaUZNAiMjI0xOToY6o+Z5HnbehTa+1B87+yM873ToM8Hz8TyP9vZ2EokEU1NTwfKpqamSZo4SiQTT09NltysmkUjgXPrzNjMzEzzPXVarma188WhWTZqdZtRERGrkwIEDQSIC4Jxj//79VWtXSr9+4jg1NcX+/fvzLquVMMcWiSrNqEnAvxLRP58mDPF4nIcefzK08aX+uOWX0HflqlDft8X4s31r1qxhcHAwSLrMjA0bNhRtv379+gW1K6XfoaEhpqamaGtrY8OGDTjn5iyrlXzxiDQ7zahJoLe3l97e3rDDEGk4/mcrFovR1tYWLG9rayMWixVtH4vFaG19/u/qUtuV0q+ZAdDS0kIsFsu7rFbCHFskqjSjJoFSz/GpZq0zz/NoOTNBx8FEVfoPzFxIP7Ysqe44uS6kzzOq+v5luJY23PJLajJWWNLlOVaFHca8sj9b/f393HPPPQBs3LixpBIUK1euZOPGjWW3K6Xf/v5+BgcH6e/vD/rMt6wWCsUj0syUqEnZkskkxx75Fld0Xqh43y9tA7oAzle872zHT6cTtDUXn6vqOLlOTqQnsS/vqO7+AXx/fAm2dCl9V0Y7iVmsqakVjIyMMDY2lvcX+7Fjx9i8eTN79+6t+IzxQmp+xWIxPM8Lfi7VQtoVi290dBTP83j5y18+q89YLEYqlQplRqsSY5ey36rVJvXCsk9Qlfqwbt06d/DgwYr3W2odtXg8ztnUg2xdN17xGGpl98FOgLreh2J2H+xkec/rqn7uVtj19/bs2cPg4CCbNm3Ke4XgzTffTCqVoqenh7vvvrumY4etWHxRj3+hmnW/pX6Z2UPOuXX51ukcNQmojposRJjvm2J1t44dO0YqlQIglUpVNM6o1/wqFl/U41+oZt1vaVz66lMCpdZR8zyPpVPK8aPu5EQL5z2v6jNdfo2wMBSru7V79+5Z2+/cubNis2pRr/lVLL6ox79Qzbrf0rj021ZE6laxulv+bFqh59UcO2zF4ot6/AvVrPstjUszahIotY6af46aRNvlHTMs7+mr+jlqYd4RoFjdrZ6enlnJWU9PT83GDlux+KIe/0I1635L49KMmgRUR00WIsz3TbG6W1u3bp31fNu2bTUbO2zF4ot6/AvVrPstjUuJmgTi8Xik75co0RTm+8avu2VmeeturV27NphF6+npqWhCWWzssBWLL+rxL1Sz7rc0Ln31KQvy/fElQYmLeuTXUQtzH05OtHD2glWt/3MXjPYaXExQDSMjI8DzX8fPZ2pqio6ODrwC+7p06VJaWlpYunRpxY9F9tgDAwORO9bFapKFWS+tmpp1v6UxqY5aHapWHbVSVfPOBLVSTiJQLZ7nMX5+PFPgV2Y5lXnsCjGGcpyCa37imkjfb7QYFYEVCc98ddQ0oyaBcgreyuLF43EOnTjEzHUzYYcSOS33p8/KqJdj48cbRaV+rhOJBEeOHFG5CpGIie7/LlJzKngr0nhK+VyrCKxIdGlGTQKlFryVyvA8D+pjwkiKGafgOXJhK6UgsYrAikSXZtQqxMzeb2bfMbMjZnbYzN5gZikzW5ln238LI0YRkXxUBFYkujSjVgFm9lPADcBrnHPnMsnZ0kLbO+d+umbBlaHUgrdSGf45atIAOqGvu/rFhReilFk+FYEViS7NqFXGi4FR59w5AOfcqHPuB/5KM2s3sy+b2W9lno9nHq8zs/vN7Atm9piZ/Y35lRhDoIK3zwIn9AAADL5JREFUIo2nlM+1isCKRJdm1CpjP7DNzI4BXwX+3jn3L5l1ncDngLudc/nuBn0N8BPAD4BvAv8P8K/VD3muKJ5fA/VVDqScsh+e58EEtPxTBP5eaiX9To2KU+mHKF9NOcspoDvsIPIr5XPtF4EdHBxUEViRiFGiVgHOuXEzey3w34E3AX9vZu/NrL4H+LBz7m8KNH/AOTcCYGaHgR7yJGpm9k7gnQBXXHFFReOPumQyyWOHD7Mq7EBKcDrzeGp0tOi2lwGXYTBV1ZCKehJYsvQi+rr7wg0ky4jLJLzd4dW5K2ZiYoJkMklvby8d3R11PxutIrAi0aRErUKccxeA+4H7zexhwP/f7ptAv5n9rctfXfhc1s8XKPCaOOc+BXwK0gVvKxV3tlLrLYVhFXALoX0rXLLPkH5p6iFW32dwdPWlz6+K8nsgam6++WZmZmY4f/48n/70p8MOZ9FWrlzJ3r17ww5DRHLUyfcK0WZm/83MsqcjrgaOZ37eBowBf17ruMqlOmqi90Bpjh07RiqVAiCVSumYiUjVaEatMjqBvWbWBUwDSdJfU96QWf/7wGfN7MPOudtCibAEUa2j5nme/qKoojHg6UwNsFJqbgns3r171vOdO3dy9935TkEVEVkcJWoV4Jx7CMhXcqMn6+dfz9q+M/N4P+mvS/3lv1eVAEWkovzZtELPRUQqRYmaBKJaRy0ej3Pq8OGww2hYKyA4Ry1qs6lR1dPTMys56+npCS0WEWls+kZJAqqjJnoPlGbr1q2znm/bti2kSESk0WlGTQKaTRG9B0qzdu3aYFatp6dHya2IVI0SNakLT/J86Yso+2HmsR5i9T0JdIUdRAFhFjsuVrx46dKltLS0sHTp0pIS3N7eXiXCIlI2JWoSefU0WzGe+eXeVcKdCaKii+ge42QyyXcefpSujhfVfOznJtLli+3cWMFtVlzUzbM/nORZJuft69TEUxWNTUSahxI1iZR8BVc1C9HcujpexJte9is1H/e+xz4HUJGx/b7KpQLEIqJETSJFhUNFnqfPg4goUZNIiWrRXQmH53nMnK+f23EVMn72WTzvmbLf1ypALCIqzyEiIiISUZpRk0iJatFdCUc8HufE44VP5q8XnctfSPeVK8p+X2tmWUSUqEmkRPXqQ5Ew6PMgIkrUJFI0g1CeZrgq8NTEUwu+anKx48LCr9jM7aubFWW3a+TXVURKo0RNpI4NDw8DjfsLPcwZJTeSro3Wvbr8BCtXNys0OyYiC6JETaSOTUxMhB1CVTVqAioiUiolaiJ1zLn6uVWViIiUT+U5RERERCJKiZqIiIhIRClRExEREYkoJWoiIiIiEaWLCUTqmFn93wdTREQKU6ImUsc6OjrCDkFERKpIiZpIHevv7w87BBERqSIlaiJ1TAVhRUQamy4mEBEREYkoJWoiIiIiEaVETURERCSilKiJiIiIRJTpps71x8yeBo7nWfUC4LlFLl8JjC4qwMUrFG8t+yq1XSnbzbdNueua4TVbaH/ltKnW69bMn7WF9qfXrXz19H9kKdsudH0jvW5rnHOX5V3jnNO/BvkHfGqxy4GDUd2PWvZVartStptvm3LXNcNrttD+ymlTrdetmT9ret3q83Wr9v+RpWy70PXN8rrpq8/G8n8rtDxslYxroX2V2q6U7ebbptx1zfCaLbS/ctpU63Vr5s/aQvvT61a+evo/spRtF7q+KV43ffUps5jZQefcurDjkNLpNatPet3qk163+lTPr5tm1CTXp8IOQMqm16w+6XWrT3rd6lPdvm6aURMRERGJKM2oiYiIiESUEjURERGRiFKiJiIiIhJRStSkIDO7yMwSZvYXZvZrYccjpTGzHzezz5jZF8KORUpnZjdmPmv3mNmGsOOR0pjZy83sk2b2BTP77bDjkdJkfr89ZGY3hB1LMUrUmoyZfdbMnjKzR3KW/7yZfdfMkmb23szim4AvOOd+C3hrzYOVQDmvm3Puv5xzt4QTqWQr83X7p8xn7R3AL4cQrmSU+bo96px7F/BLQF2Wf2gEZf5uA7gd+Hxto1wYJWrN5y7g57MXmNkS4ONAP/AK4H+a2SuA1cATmc0u1DBGmesuSn/dJDruovzXbWtmvYTnLsp43czsrcC/Av9c2zAly12U+JqZ2ZuBo8DJWge5EErUmoxz7uvAMzmLXw8kMzMx54HPAZuAEdLJGui9EqoyXzeJiHJeN0v7Y2DYOfetWscqzyv38+acG3TO/TSgU0RCUuZr9ibgJ4FfBX7LzCL9+6017AAkErp5fuYM0gnaG4AB4GNmdj3RvSVHM8v7upnZCuBO4Boz+3+dcx8KJToppNDn7d3Am4EXmFmvc+6TYQQnBRX6vF1H+jSRZcBQ7cOSeeR9zZxzvwdgZu8ARp1zMyHEVjIlagJgeZY559wZ4NdrHYyUrNDrNga8q9bBSMkKvW4DpP84kmgq9LrdD9xf21CkRHlfs+AH5+6qXSgLF+npPqmZEeClWc9XAz8IKRYpnV63+qTXrT7pdas/DfGaKVETgAeBPjP7MTNbCvwKMBhyTFKcXrf6pNetPul1qz8N8ZopUWsyZvZ3wL8D/83MRszsFufcNPB7wFeAR4HPO+e+E2acMptet/qk160+6XWrP438mumm7CIiIiIRpRk1ERERkYhSoiYiIiISUUrURERERCJKiZqIiIhIRClRExEREYkoJWoiIiIiEaVETURERCSilKiJSKSZ2XjYMSyUmS0zs6+a2WEz++UFtL/RzF5RjdjmGfN+M1uX+XnIzLpqOb6IzKabsouIVM81QJtz7uoFtr8RuBc4WmoDM2vNVGRfNOfcxkr0IyILpxk1EakLlvYnZvaImT3sz1CZWYuZ/bmZfcfM7s3MAv3CPP2kzGyHmX0r08/LMsu3m9l7srZ7xMx6Mv8eM7NPZ5b9jZm92cy+aWaemb2+wDgvAv4auDozo3almb3WzP7FzB4ys6+Y2Ysz2/6WmT1oZt82sy+aWYeZ/TTwVuBPstpnz3atNLNU5ud3mNk/mNn/Bfab2UVm9tlMn4fMbNM8x6PdzD5nZkfM7O+B9pxjtTLT375MfI9kHfuS9yez/Bcz7b9tZl/PLFuSeV0fzMTwv4u8FUSaihI1EakXNwFXA1cBbyadwLw4s7wHeBXwm8BPldDXqHPuNcAngPcU2xjoBf4MeDXwMuBXgWszbd+Xr4Fz7qlMPN/IzKh9H9gL/IJz7rXAZ4E7M5t/yTn3OufcVaTvSXiLc+7fSN9A+g+dc1c75x4vEuNPATHn3M8A7we+5px7HfAm0sfqogLtfhuYcM69OhPPa/Ns8/PAD5xzVznnXgl82czaytmfzPJtwM9llr81s+wW4LlMrK8DfsvMfqzIvoo0DX31KSL14lrg75xzF4CTZvYvpH+xXwv8g3NuBnjSzO4roa8vZR4fIp3oFfM959zDAGb2HeCfnXPOzB4mnSSW4r8BrwQOmBnAEuCHmXWvNLPdQBfQSfom0uU64Jx7JvPzBuCtWTOEy4ErSCdNud4IDAA4546Y2ZE82zwMfMTM/hi41zn3DTN75QL255vAXWb2eZ5/DTYAr86aBX0B0Ad8r5ydF2lUStREpF5Ymcvncy7zeIHn/x+cZva3DMvzbA8wk/V8htL/HzXgO865fDN+dwE3Oue+bWbvAK4r0Ed2jMtz1p3JGevtzrnvlhibm3elc8fM7LXARuBDZrYf+EfK3B/n3LvM7A3A9cBhM7s6E+u7nXMLSU5FGp6++hSRevF14Jcz5zRdRnom6AHgX4G3Z85Vu5zCSU4xKeA1AGb2GqDSX799F7jMzH4qM0abmf1EZt3FwA8zXyf+Wlab05l12TH6X00WPA+P9AzWuy0z1WVm18yz7df9MTOzZK/O3cDMXkL669G/Bj5C+jiVvT9mdqVz7j+dc9uAUeClmVh/O7MtZrZ2nq9pRZqOZtREpF78I+nzsL5NegboNufck2b2ReBngUeAY8B/As8toP8vAjeb2WHgwUxfFeOcO5/5em/AzF5A+v/fPwW+A9xBOu7jpL9m9JOzzwF/YWZx0onZR4DPm9n/Ar42z3C7Mn0fySRrKeCGAtt+AvjLzFeeh0knv7leRfo8txlgCvjtBe7Pn5hZH+lZtH8m/VoeIf318bcysT5N+mpXEQHMuXlnvEVEIs/MOp1z42a2gnSi8f84554MOy4RkcXSjJqINIJ7LV2YdSmwS0maiDQKzaiJSEMys39k7nlmt1fjpHUz+3Vgc87ibzrnfrfSYy2Umf0c8Mc5i7/nnHtbGPGISGmUqImIiIhElK76FBEREYkoJWoiIiIiEaVETURERCSilKiJiIiIRJQSNREREZGI+v8DIir6WWF8A4IAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df_to_plot = pd.concat([disease_gene_icd_test,disease_variant_icd_test, disease_pathways_icd_test, icd_mirna_2, icd_lncrna_2, icd_circrna_2])\n", + "df_to_plot_1 = df_to_plot.rename(columns={'caracteristica': 'feature'})\n", + "fig, ax = plot.subplots(figsize = (9, 20)) \n", + "ax.set_xscale(\"log\")\n", + "#plot.xlim(0, 500)\n", + "ax = sns.boxplot(data=df_to_plot_1, x='num_feature_disease', y='class_name', hue='feature')\n", + "ax.set(xlabel='log_num_feature_disease', ylabel='class_name')\n", + "#ax.set(title='Pathway and RNA distribution per ICD10 disease group')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#######################################################################" + ] + }, + { + "cell_type": "code", + "execution_count": 377, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
class_namedisease_idnum_feature_diseasecaracteristica
0CirculatoryC000348610miRNA
1CirculatoryC000381120miRNA
2CirculatoryC00071925miRNA
3CirculatoryC0010054125miRNA
4CirculatoryC0018799337miRNA
...............
88NeoplasmsC28541228circRNA
89NervousC00023951circRNA
90NervousC002676912circRNA
91SkinC000114410circRNA
92SkinC070216610circRNA
\n", + "

592 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " class_name disease_id num_feature_disease caracteristica\n", + "0 Circulatory C0003486 10 miRNA\n", + "1 Circulatory C0003811 20 miRNA\n", + "2 Circulatory C0007192 5 miRNA\n", + "3 Circulatory C0010054 125 miRNA\n", + "4 Circulatory C0018799 337 miRNA\n", + ".. ... ... ... ...\n", + "88 Neoplasms C2854122 8 circRNA\n", + "89 Nervous C0002395 1 circRNA\n", + "90 Nervous C0026769 12 circRNA\n", + "91 Skin C0001144 10 circRNA\n", + "92 Skin C0702166 10 circRNA\n", + "\n", + "[592 rows x 4 columns]" + ] + }, + "execution_count": 377, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_to_plot = pd.concat([icd_mirna_2, icd_lncrna_2, icd_circrna_2])\n", + "df_to_plot" + ] + }, + { + "cell_type": "code", + "execution_count": 378, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(0.5, 0, 'log_num_feature_disease'), Text(0, 0.5, 'class_name')]" + ] + }, + "execution_count": 378, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df_to_plot = pd.concat([icd_mirna_2, icd_lncrna_2, icd_circrna_2])\n", + "df_to_plot_1 = df_to_plot.rename(columns={'caracteristica': 'feature'})\n", + "fig, ax = plot.subplots(figsize = (9, 13)) \n", + "ax.set_xscale(\"log\")\n", + "#plot.xlim(0, 500)\n", + "ax = sns.boxplot(data=df_to_plot_1, x='num_feature_disease', y='class_name', hue='feature', showfliers = False)\n", + "ax.set(xlabel='log_num_feature_disease', ylabel='class_name')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} -- 2.24.1