Commit ad6a16de authored by Belen Otero Carrasco's avatar Belen Otero Carrasco

final code

parents
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"from sqlalchemy import create_engine\n",
"from sklearn import preprocessing\n",
"import mysql.connector\n",
"from pandas import DataFrame\n",
"from sklearn.metrics import jaccard_score\n",
"from numpy import logical_and as l_and, logical_not as l_not"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"def get_dummies(data,col_index,col_col):\n",
" \n",
" df_final= pd.get_dummies(data.set_index(col_index),col_col).reset_index()\n",
" df_final=df_final.drop_duplicates()\n",
" df_final=df_final.groupby(col_index).sum().reset_index()\n",
" \n",
" return df_final\n",
"\n",
"def convert(lista):\n",
" return tuple(i for i in lista)\n",
"\n",
"\n",
"def get_normal_diseases(rare_disease):\n",
" '''\n",
" Esta funcion devuelve un dataframe con la enfermedad, los medicamentos y los targets que son utiles\n",
" para la enfermedad rara que se le pase como parametro'''\n",
" \n",
" \n",
" q= f'''SELECT DISTINCT\n",
" ds.disease_id, drug_name,dg.gene_id\n",
" FROM\n",
" disnet_biolayer.disease_gene dg \n",
" JOIN disnet_biolayer.disease ds ON ds.disease_id = dg.disease_id\n",
" JOIN disnet_biolayer.encodes e ON dg.gene_id = e.gene_id\n",
" JOIN disnet_drugslayer.target_has_code hc ON hc.code_id = e.protein_id\n",
" JOIN disnet_drugslayer.drug_target dt ON hc.target_id = dt.target_id\n",
" JOIN disnet_drugslayer.drug d ON dt.drug_id = d.drug_id\n",
" WHERE\n",
" \n",
" ds.ddf_type = \"disease\"\n",
" AND dg.gene_id in (SELECT distinct(gene_id) FROM disnet_biolayer.disease_gene\n",
" where disease_id = \"{rare_disease}\")\n",
" ;'''\n",
" \n",
" df = pd.read_sql(q, con=disnet_db_ares)\n",
" \n",
" return df"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [],
"source": [
"rare_diseases= ['C0011195', 'C0023944', 'C0024054', 'C0024901', 'C0027877', 'C0036391', 'C0265202', 'C0268059', \n",
" 'C0549463', 'C0751337', 'C1852146', 'C0796280']"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"for disease in rare_diseases:\n",
" matrix_jac_gen = pd.read_excel(\"./file/Input_6/m_jacc_gen_name.xlsx\",engine='openpyxl')\n",
" # get useful diseases (disease that shares genes) for a rare disease \n",
" df_useful_diseases = get_normal_diseases(disease)\n",
" useful_diseases = df_useful_diseases['disease_id'].drop_duplicates().tolist()\n",
" df = matrix_jac_gen[matrix_jac_gen.rare_dis_id == disease]\n",
" df_useful = df[['rare_dis_id'] + useful_diseases].set_index('rare_dis_id').transpose()\n",
" df_normal_dis_jacc=pd.DataFrame(df_useful[disease].nlargest(5)).reset_index().rename(columns={'index':'disease_id', disease:'jacc_idx'})\n",
" df_normal_dis_jacc.to_excel(f\"{disease}_jacc.xlsx\")\n",
" df_normal_rare_drug=pd.merge(df_useful_diseases,df_normal_dis_jacc,on=\"disease_id\",how=\"inner\")\n",
" df_normal_rare_drug=df_normal_rare_drug.drop_duplicates()\n",
" drug_dis=df_normal_rare_drug.groupby('drug_name').count()\n",
" drug_dis.to_excel(f\"{disease}_drugs_dr.xlsx\")\n",
" # Drug repositioning direct for each rare disease\n",
" drug_direct=df_normal_rare_drug[df_normal_rare_drug[\"disease_id\"]== disease]\n",
" drug_direct.to_csv(f\"{disease}_drugs_dr_direct.csv\")"
]
}
],
"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
}
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"from sqlalchemy import create_engine\n",
"from sklearn import preprocessing\n",
"from pandas import DataFrame\n",
"from sklearn.metrics import jaccard_score"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def get_dummies(data,col_index,col_col):\n",
" \n",
" df_final= pd.get_dummies(data.set_index(col_index),col_col).reset_index()\n",
" df_final=df_final.drop_duplicates()\n",
" df_final=df_final.groupby(col_index).sum().reset_index()\n",
" \n",
" return df_final\n",
"\n",
"def convert(lista):\n",
" return tuple(i for i in lista)\n",
"\n",
"\n",
"def get_normal_diseases(rare_disease_dis):\n",
" '''\n",
" Esta funcion devuelve un dataframe con la enfermedad, los medicamentos y los targets que son utiles\n",
" para la enfermedad rara que se le pase como parametro'''\n",
" \n",
" \n",
" q= f'''SELECT DISTINCT\n",
" ds.disease_id, drug_name,dg.gene_id,lm.disnet_id\n",
" FROM\n",
" disnet_biolayer.disease_gene dg \n",
" JOIN disnet_biolayer.disease ds ON ds.disease_id = dg.disease_id\n",
" JOIN edsssdb.layersmappings lm on dg.disease_id = lm.cui\n",
" JOIN edsssdb.disease_symptom dsy ON lm.disnet_id = dsy.disease_id\n",
" JOIN edsssdb.symptom s ON dsy.cui = s.cui\n",
" JOIN disnet_biolayer.encodes e ON dg.gene_id = e.gene_id\n",
" JOIN disnet_drugslayer.has_code hc ON hc.code = e.protein_id\n",
" JOIN disnet_drugslayer.drug_target dt ON hc.id = dt.target_id\n",
" JOIN disnet_drugslayer.drug d ON dt.drug_id = d.drug_id\n",
" \n",
" WHERE\n",
" hc.entity_id = 3\n",
" and ds.ddf_type = \"disease\"\n",
" AND dg.gene_id in (SELECT distinct(gene_id) FROM disnet_biolayer.disease_gene\n",
" where disease_id = \"{rare_disease_dis}\")\n",
" \n",
" ;'''\n",
" \n",
" df = pd.read_sql(q, con=disnet_db_ares)\n",
" \n",
" return df"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"rare_diseases= ['C0011195', 'C0023944', 'C0024054', 'C0024901', 'C0027877', 'C0036391', 'C0265202', 'C0268059', 'C0549463', 'C0751337', 'C0869083', 'C1852146', 'C0796280']"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"for disease in rare_diseases:\n",
" matrix_jac_syn = pd.read_excel((\"./file/Input_6/mat_jacc_syn_cuis.xlsx\"),engine='openpyxl')\n",
" # get useful diseases (disease that shares genes) for a rare disease \n",
" df_useful_diseases = get_normal_diseases(disease)\n",
" useful_diseases = df_useful_diseases['disease_id'].drop_duplicates().tolist()\n",
" df = matrix_jac_syn[matrix_jac_syn.rare_dis_id == disease]\n",
" df_useful = df[['rare_dis_id'] + useful_diseases].set_index('rare_dis_id').transpose()\n",
" df_normal_dis_jacc=pd.DataFrame(df_useful[disease].nlargest(5)).reset_index().rename(columns={'index':'disease_id', disease:'jacc_idx'})\n",
" df_normal_dis_jacc.to_excel(f\"{disease}_jacc.xlsx\")\n",
" df_normal_rare_drug=pd.merge(df_useful_diseases,df_normal_dis_jacc,on=\"disease_id\",how=\"inner\")\n",
" df_normal_rare_drug=df_normal_rare_drug.drop_duplicates()\n",
" drug_dis=df_normal_rare_drug.groupby('drug_name').count()\n",
" drug_dis.to_excel(f\"{disease}_drugs_dr.xlsx\")\n",
" # Drug repositioning direct for each rare disease\n",
" drug_direct=df_normal_rare_drug[df_normal_rare_drug[\"disease_id\"]== disease]\n",
" drug_direct.to_excel(f\"{disease}_drugs_dr_direct.xlsx\")"
]
}
],
"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
}
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"from sqlalchemy import create_engine\n",
"from sklearn import preprocessing\n",
"from pandas import DataFrame\n",
"from sklearn.metrics import jaccard_score"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def get_dummies(data,col_index,col_col):\n",
" \n",
" df_final= pd.get_dummies(data.set_index(col_index),col_col).reset_index()\n",
" df_final=df_final.drop_duplicates()\n",
" df_final=df_final.groupby(col_index).sum().reset_index()\n",
" \n",
" return df_final\n",
"\n",
"def convert(lista):\n",
" return tuple(i for i in lista)\n",
"\n",
"\n",
"def get_normal_diseases(rare_disease):\n",
" '''\n",
" Esta funcion devuelve un dataframe con la enfermedad, los medicamentos y los targets que son utiles\n",
" para la enfermedad rara que se le pase como parametro'''\n",
" \n",
" \n",
" q= f'''SELECT DISTINCT\n",
" ds.disease_id, drug_name,dg.gene_id\n",
" FROM disnet_biolayer.gene_pathway gp\n",
" JOIN disnet_biolayer.pathway p on gp.pathway_id = p.pathway_id\n",
" JOIN disnet_biolayer.disease_gene dg ON gp.gene_id = dg.gene_id\n",
" JOIN disnet_biolayer.disease ds ON ds.disease_id = dg.disease_id\n",
" JOIN disnet_biolayer.encodes e ON dg.gene_id = e.gene_id\n",
" JOIN disnet_drugslayer.has_code hc ON hc.code = e.protein_id\n",
" JOIN disnet_drugslayer.drug_target dt ON hc.id = dt.target_id\n",
" JOIN disnet_drugslayer.drug d ON dt.drug_id = d.drug_id\n",
" WHERE\n",
" hc.entity_id = 3\n",
" and ds.ddf_type = \"disease\"\n",
" AND dg.gene_id in (SELECT distinct(gene_id) FROM disnet_biolayer.disease_gene \n",
" where disease_id = \"{rare_disease}\")\n",
" ;'''\n",
" \n",
" df = pd.read_sql(q, con=disnet_db_ares)\n",
" \n",
" return df"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"rare_diseases= ['C0011195', 'C0023944', 'C0024054', 'C0024901', 'C0027877', 'C0036391', 'C0265202', 'C0268059', 'C0549463', 'C0751337', 'C0869083', 'C1852146', 'C0796280']"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"for disease in rare_diseases:\n",
" matrix_jac_pw = pd.read_excel((\"./file/Input_6/m_jacc_pw_name.xlsx\"),engine='openpyxl')\n",
" # get useful diseases (disease that shares genes) for a rare disease \n",
" df_useful_diseases = get_normal_diseases(disease)\n",
" useful_diseases = df_useful_diseases['disease_id'].drop_duplicates().tolist()\n",
" df = matrix_jac_pw[matrix_jac_pw.rare_dis_id == disease]\n",
" df_useful = df[['rare_dis_id'] + useful_diseases].set_index('rare_dis_id').transpose()\n",
" df_normal_dis_jacc=pd.DataFrame(df_useful[disease].nlargest(5)).reset_index().rename(columns={'index':'disease_id', disease:'jacc_idx'})\n",
" df_normal_dis_jacc.to_excel(f\"{disease}_jacc.xlsx\")\n",
" df_normal_rare_drug=pd.merge(df_useful_diseases,df_normal_dis_jacc,on=\"disease_id\",how=\"inner\")\n",
" df_normal_rare_drug=df_normal_rare_drug.drop_duplicates()\n",
" drug_dis=df_normal_rare_drug.groupby('drug_name').count()\n",
" drug_dis.to_excel(f\"{disease}_drugs_dr.xlsx\")\n",
" # Drug repositioning direct for each rare disease\n",
" drug_direct=df_normal_rare_drug[df_normal_rare_drug[\"disease_id\"]== disease]\n",
" drug_direct.to_excel(f\"{disease}_drugs_dr_direct.xlsx\")"
]
}
],
"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
}
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"from sqlalchemy import create_engine\n",
"from sklearn import preprocessing\n",
"from pandas import DataFrame\n",
"from sklearn.metrics import jaccard_score"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def get_dummies(data,col_index,col_col):\n",
" \n",
" df_final= pd.get_dummies(data.set_index(col_index),col_col).reset_index()\n",
" df_final=df_final.drop_duplicates()\n",
" df_final=df_final.groupby(col_index).sum().reset_index()\n",
" \n",
" return df_final\n",
"\n",
"def convert(lista):\n",
" return tuple(i for i in lista)\n",
"\n",
"\n",
"def get_normal_diseases(rare_disease):\n",
" '''\n",
" Esta funcion devuelve un dataframe con la enfermedad, los medicamentos y los targets que son utiles\n",
" para la enfermedad rara que se le pase como parametro'''\n",
" \n",
" \n",
" q= f'''SELECT DISTINCT\n",
" ds.disease_id, drug_name,dg.gene_id\n",
" FROM\n",
" disnet_biolayer.disease_gene dg \n",
" JOIN disnet_biolayer.disease ds ON ds.disease_id = dg.disease_id\n",
" JOIN disnet_biolayer.encodes e_uno ON dg.gene_id = e_uno.gene_id\n",
" JOIN disnet_drugslayer.has_code hc ON hc.code = e_uno.protein_id\n",
" JOIN disnet_biolayer.ppi ppi on ppi.protein1_id = e_uno.protein_id\n",
" JOIN disnet_biolayer.encodes e_dos on e_dos.protein_id = ppi.protein2_id\n",
" JOIN disnet_drugslayer.drug_target dt ON hc.id = dt.target_id\n",
" JOIN disnet_drugslayer.drug d ON dt.drug_id = d.drug_id\n",
" WHERE\n",
" hc.entity_id = 3\n",
" \n",
" and ds.ddf_type = \"disease\"\n",
" and ppi.quality = \"GOLD\"\n",
" AND dg.gene_id in (SELECT distinct(gene_id) FROM disnet_biolayer.disease_gene\n",
" where disease_id = \"{rare_disease}\")\n",
" ;'''\n",
" \n",
" df = pd.read_sql(q, con=disnet_db_ares)\n",
" \n",
" return df"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"rare_diseases= ['C0011195', 'C0023944', 'C0024054', 'C0024901', 'C0027877', 'C0036391', 'C0265202', 'C0268059', 'C0549463', 'C0751337', 'C0869083', 'C1852146', 'C0796280']"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"for disease in rare_diseases:\n",
" matrix_jac_ppi = pd.read_excel((\"./file/Input_6/mat_jacc_pip.xlsx\"),engine='openpyxl')\n",
" # get useful diseases (disease that shares genes) for a rare disease \n",
" df_useful_diseases = get_normal_diseases(disease)\n",
" useful_diseases = df_useful_diseases['disease_id'].drop_duplicates().tolist()\n",
" df = matrix_jac_ppi[matrix_jac_ppi.rare_dis_id == disease]\n",
" df_useful = df[['rare_dis_id'] + useful_diseases].set_index('rare_dis_id').transpose()\n",
" df_normal_dis_jacc=pd.DataFrame(df_useful[disease].nlargest(5)).reset_index().rename(columns={'index':'disease_id', disease:'jacc_idx'})\n",
" df_normal_dis_jacc.to_excel(f\"{disease}_jacc.xlsx\")\n",
" df_normal_rare_drug=pd.merge(df_useful_diseases,df_normal_dis_jacc,on=\"disease_id\",how=\"inner\")\n",
" df_normal_rare_drug=df_normal_rare_drug.drop_duplicates()\n",
" drug_dis=df_normal_rare_drug.groupby('drug_name').count()\n",
" drug_dis.to_excel(f\"{disease}_drugs_dr.xlsx\")\n",
" # Drug repositioning direct for each rare disease\n",
" drug_direct=df_normal_rare_drug[df_normal_rare_drug[\"disease_id\"]== disease]\n",
" drug_direct.to_excel(f\"{disease}_drugs_dr_direct.xlsx\")"
]
}
],
"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
}
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"from sqlalchemy import create_engine\n",
"from sklearn import preprocessing\n",
"from pandas import DataFrame\n",
"from sklearn.metrics import jaccard_score"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def get_dummies(data,col_index,col_col):\n",
" \n",
" df_final= pd.get_dummies(data.set_index(col_index),col_col).reset_index()\n",
" df_final=df_final.drop_duplicates()\n",
" df_final=df_final.groupby(col_index).sum().reset_index()\n",
" \n",
" return df_final\n",
"\n",
"def convert(lista):\n",
" return tuple(i for i in lista)\n",
"\n",
"\n",
"def get_normal_diseases(rare_disease):\n",
" '''\n",
" Esta funcion devuelve un dataframe con la enfermedad, los medicamentos y los targets que son utiles\n",
" para la enfermedad rara que se le pase como parametro'''\n",
" \n",
" \n",
" q= f'''SELECT DISTINCT\n",
" d.disease_id, drug_name,dg.gene_id\n",
" FROM\n",
" disnet_biolayer.disease_variant dv\n",
" JOIN disnet_biolayer.disease d on dv.disease_id = d.disease_id\n",
" JOIN disnet_biolayer.variant v on v.variant_id = dv.variant_id\n",
" JOIN disnet_biolayer.disease_gene dg ON d.disease_id = dg.disease_id\n",
" JOIN disnet_biolayer.encodes e ON dg.gene_id = e.gene_id\n",
" JOIN disnet_drugslayer.has_code hc ON hc.code = e.protein_id\n",
" JOIN disnet_drugslayer.drug_target dt ON hc.id = dt.target_id\n",
" JOIN disnet_drugslayer.drug d ON dt.drug_id = d.drug_id\n",
" WHERE\n",
" hc.entity_id = 3\n",
" and v.chromosome is not null\n",
" and d.ddf_type = \"disease\"\n",
" AND dg.gene_id in (SELECT distinct(gene_id) FROM disnet_biolayer.disease_gene\n",
" where disease_id = \"{rare_disease}\")\n",
" ;'''\n",
" \n",
" df = pd.read_sql(q, con=disnet_db_ares)\n",
" \n",
" return df"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"rare_diseases= ['C0011195', 'C0023944', 'C0024054', 'C0024901', 'C0027877', 'C0036391', 'C0265202', 'C0268059', 'C0549463', 'C0751337', 'C0869083', 'C1852146', 'C0796280']"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"for disease in rare_diseases:\n",
" matrix_jac_var = pd.read_excel((\"./file/Input_6/mat_jacc_variant.xlsx\"),engine='openpyxl')\n",
" # get useful diseases (disease that shares genes) for a rare disease \n",
" df_useful_diseases = get_normal_diseases(disease)\n",
" useful_diseases = df_useful_diseases['disease_id'].drop_duplicates().tolist()\n",
" df = matrix_jac_var[matrix_jac_var.rare_dis_id == disease]\n",
" df_useful = df[['rare_dis_id'] + useful_diseases].set_index('rare_dis_id').transpose()\n",
" df_normal_dis_jacc=pd.DataFrame(df_useful[disease].nlargest(5)).reset_index().rename(columns={'index':'disease_id', disease:'jacc_idx'})\n",
" df_normal_dis_jacc.to_excel(f\"{disease}_jacc.xlsx\")\n",
" df_normal_rare_drug=pd.merge(df_useful_diseases,df_normal_dis_jacc,on=\"disease_id\",how=\"inner\")\n",
" df_normal_rare_drug=df_normal_rare_drug.drop_duplicates()\n",
" drug_dis=df_normal_rare_drug.groupby('drug_name').count()\n",
" drug_dis.to_excel(f\"{disease}_drugs_dr.xlsx\")\n",
" # Drug repositioning direct for each rare disease\n",
" drug_direct=df_normal_rare_drug[df_normal_rare_drug[\"disease_id\"]== disease]\n",
" drug_direct.to_excel(f\"{disease}_drugs_dr_direct.xlsx\")"
]
}
],
"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
}
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"from pandas import DataFrame"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# LOAD DATA"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"syn = pd.read_excel((\"./file/Input_7/SYN/drugs_C0549463_sintarget_syn.xlsx\"),engine='openpyxl')"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [],
"source": [
"gen =pd.read_excel((\"./file/Input_7/GEN/drug_sintarget_C0265202.xlsx\"),engine='openpyxl')"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [],
"source": [
"ppi=pd.read_excel((\"./file/Input_7/PPI/drugs_sintar_ppi_C0869083.xlsx\"),engine='openpyxl')"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [],
"source": [
"var=pd.read_excel((\"./file/Input_7/VAR/drugs_C1852146_sintarget_var.xlsx\"),engine='openpyxl')"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [],
"source": [
"syn= syn['drug_name'].apply(str)\n",
"syn= syn.tolist()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"gen= gen['drug_name'].apply(str)\n",
"gen= gen.tolist()"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [],
"source": [
"ppi= ppi['drug_name'].apply(str)\n",
"ppi= ppi.tolist()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"var= var['drug_name'].apply(str)\n",
"var= var.tolist()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# DRUGS IN COMMON"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"drugs_in_all_enf_uno = list(set.intersection(*map(set, [syn,gen])))\n",
"drugs_in_all_enf_uno = pd.DataFrame(drugs_in_all_enf_uno)\n",
"#drugs_in_all_enf_uno.to_excel(\"drug_in_common_enfC0023944_sintarget.xlsx\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"drugs_in_all_enf_dos = list(set.intersection(*map(set, [syn,gen,ppi])))\n",
"drugs_in_all_enf_dos = pd.DataFrame(drugs_in_all_enf_uno)\n",
"#drugs_in_all_enf_dos.to_excel(\"drug_in_common_enfC0024901_sintarget.xlsx\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"drugs_in_all_enf_tres = list(set.intersection(*map(set, [syn,var,ppi])))\n",
"drugs_in_all_enf_tres = pd.DataFrame(drugs_in_all_enf_uno)\n",
"#drugs_in_all_enf_tres.to_excel(\"drug_in_common_enfC0751337_sintarget.xlsx\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"drugs_in_all_enf_cua = list(set.intersection(*map(set, [syn,var,ppi,pw,gen])))\n",
"drugs_in_all_enf_cua = pd.DataFrame(drugs_in_all_enf_uno)\n",
"#drugs_in_all_enf_cua.to_excel(\"drug_in_common_en95_sintarget.xlsx\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"drugs_in_all_enf_cin = list(set.intersection(*map(set, [syn,var,pw,gen])))\n",
"drugs_in_all_enf_cin = pd.DataFrame(drugs_in_all_enf_uno)\n",
"#drugs_in_all_enf_cin.to_excel(\"drug_in_common_enC0027877_sintarget.xlsx\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"drugs_in_all_enf_seis = list(set.intersection(*map(set, [syn,var,pw])))\n",
"drugs_in_all_enf_seis = pd.DataFrame(drugs_in_all_enf_uno)\n",
"#drugs_in_all_enf_seis.to_excel(\"drug_in_common_enfC1852146_sintarget.xlsx\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"drugs_in_all_enf_sie = list(set.intersection(*map(set, [syn,gen,ppi])))\n",
"drugs_in_all_enf_sie = pd.DataFrame(drugs_in_all_enf_uno)\n",
"#drugs_in_all_enf_sie.to_excel(\"drug_in_common_enfC0265202_sintarget.xlsx\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"drugs_in_all_enf_ocho = list(set.intersection(*map(set, [syn,gen,ppi,var])))\n",
"drugs_in_all_enf_ocho = pd.DataFrame(drugs_in_all_enf_uno)\n",
"#drugs_in_all_enf_ocho.to_excel(\"drug_in_common_enfC0869083_sintarget.xlsx\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"drugs_in_all_enf_nue = list(set.intersection(*map(set, [syn,var,ppi])))\n",
"drugs_in_all_enf_nue = pd.DataFrame(drugs_in_all_enf_uno)\n",
"#drugs_in_all_enf_nue.to_excel(\"drug_in_common_enfC0549463_sintarget.xlsx\")"
]
}
],
"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
}
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"from pandas import DataFrame"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# DATA LOAD"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [],
"source": [
"syn = pd.read_excel((\"./file/Input_8/SYMPTOM/drugs_all_C0549463_syn.xlsx\"),engine='openpyxl')"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [],
"source": [
"gen =pd.read_excel((\"./file/Input_8/GENES/drugs_all_C0549463_gen.xlsx\"),engine='openpyxl')"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [],
"source": [
"ppi=pd.read_excel((\"./file/Input_8/PPI/drugs_all_C0549463_ppi.xlsx\"),engine='openpyxl')"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [],
"source": [
"pw=pd.read_excel((\"./file/Input_8/PATHWAY/drugs_C0549463_pw.xlsx\"),engine='openpyxl')"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [],
"source": [
"var=pd.read_excel((\"./file/Input_8/VARIANT/drugs_all_C0549463_v.xlsx\"),engine='openpyxl')"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [],
"source": [
"gen= gen['drug_name'].apply(str)\n",
"gen= gen.tolist()"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [],
"source": [
"syn= syn['drug_name'].apply(str)\n",
"syn= syn.tolist()"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [],
"source": [
"ppi= ppi['drug_name'].apply(str)\n",
"ppi= ppi.tolist()"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [],
"source": [
"var= var['drug_name'].apply(str)\n",
"var= var.tolist()"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [],
"source": [
"pw= pw['drug_name'].apply(str)\n",
"pw= pw.tolist()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# DRUGS IN COMMON"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"drugs_in_all_enf_uno = list(set.intersection(*map(set, [syn,gen,ppi,pw,var])))\n",
"drugs_in_all_enf_uno = pd.DataFrame(drugs_in_all_enf_uno)\n",
"#drugs_in_all_enf_uno.to_excel(\"drug_in_common_enf_C0011195_target.xlsx\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"drugs_in_all_enf_dos = list(set.intersection(*map(set, [syn,gen,ppi,pw,var])))\n",
"drugs_in_all_enf_dos = pd.DataFrame(drugs_in_all_enf_dos)\n",
"#drugs_in_all_enf_dos.to_excel(\"drug_in_common_enf_C0036391_target.xlsx\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"drugs_in_all_enf_tres = list(set.intersection(*map(set, [syn,ppi,pw])))\n",
"drugs_in_all_enf_tres = pd.DataFrame(drugs_in_all_enf_tres)\n",
"#drugs_in_all_enf_tres.to_excel(\"drug_in_common_enf_C0869083_target.xlsx\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"drugs_in_all_enf_cuatro = list(set.intersection(*map(set, [syn,gen,ppi,pw])))\n",
"drugs_in_all_enf_cuatro = pd.DataFrame(drugs_in_all_enf_cuatro)\n",
"#drugs_in_all_enf_cuatro.to_excel(\"drug_in_common_enf_C0265202_target.xlsx\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"drugs_in_all_enf_cinco = list(set.intersection(*map(set, [syn,gen,ppi,pw,var])))\n",
"drugs_in_all_enf_cinco = pd.DataFrame(drugs_in_all_enf_cinco)\n",
"#drugs_in_all_enf_cinco.to_excel(\"drug_in_common_enf_C0549463_target.xlsx\")"
]
}
],
"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
}
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"from pandas import DataFrame"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# DATA LOAD"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"paths = pd.read_csv(\"./file/Input_9/Paths/enf_uno_drugs.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"triplet_with =pd.read_excel((\"./file/Input_9/With_tar/drug_in_common_enf_C0011195_target_NEW.xlsx\"),engine='openpyxl')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"triplet_without=pd.read_excel((\"./file/Input_9/Without_tar/drug_in_common_en95_sintarget.xlsx\"),engine='openpyxl')"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"paths= paths['drug_name'].apply(str)\n",
"paths= paths.tolist()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"triplet_with= triplet_with['drug_name'].apply(str)\n",
"triplet_with= triplet_with.tolist()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"triplet_without= triplet_without['drug_name'].apply(str)\n",
"triplet_without= triplet_without.tolist()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# DRUGS IN COMMON"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"drugs_in_all_enf = list(set.intersection(*map(set, [triplet_with,paths,triplet_without])))\n",
"drugs_in_all_enf = pd.DataFrame(drugs_in_all_enf)\n",
"drugs_in_all_enf.to_excel(\"enf_uno_drugs_P-TC_new.xlsx\")"
]
}
],
"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
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"from sqlalchemy import create_engine\n",
"from sklearn import preprocessing\n",
"import mysql.connector\n",
"from pandas import DataFrame\n",
"from sklearn.metrics import jaccard_score\n",
"from numpy import logical_and as l_and, logical_not as l_not"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"def get_dummies(data,col_index,col_col):\n",
" \n",
" df_final= pd.get_dummies(data.set_index(col_index),col_col).reset_index()\n",
" df_final=df_final.drop_duplicates()\n",
" df_final=df_final.groupby(col_index).sum().reset_index()\n",
" \n",
" return df_final\n",
"\n",
"def convert(lista):\n",
" return tuple(i for i in lista)\n",
"\n",
"\n",
"def get_normal_diseases(rare_disease):\n",
" '''\n",
" Esta funcion devuelve un dataframe con la enfermedad, los medicamentos y los targets que son utiles\n",
" para la enfermedad rara que se le pase como parametro'''\n",
" \n",
" \n",
" q= f'''SELECT DISTINCT\n",
" ds.disease_id, drug_name,dg.gene_id\n",
" FROM\n",
" disnet_biolayer.disease_gene dg \n",
" JOIN disnet_biolayer.disease ds ON ds.disease_id = dg.disease_id\n",
" JOIN disnet_biolayer.encodes e ON dg.gene_id = e.gene_id\n",
" JOIN disnet_drugslayer.target_has_code hc ON hc.code_id = e.protein_id\n",
" JOIN disnet_drugslayer.drug_target dt ON hc.target_id = dt.target_id\n",
" JOIN disnet_drugslayer.drug d ON dt.drug_id = d.drug_id\n",
" WHERE\n",
" \n",
" ds.ddf_type = \"disease\"\n",
" AND dg.gene_id in (SELECT distinct(gene_id) FROM disnet_biolayer.disease_gene\n",
" where disease_id = \"{rare_disease}\")\n",
" ;'''\n",
" \n",
" df = pd.read_sql(q, con=disnet_db_ares)\n",
" \n",
" return df"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [],
"source": [
"rare_diseases= ['C0011195', 'C0023944', 'C0024054', 'C0024901', 'C0027877', 'C0036391', 'C0265202', 'C0268059', \n",
" 'C0549463', 'C0751337', 'C1852146', 'C0796280']"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"for disease in rare_diseases:\n",
" matrix_jac_gen = pd.read_excel(\"./file/Input_6/m_jacc_gen_name.xlsx\",engine='openpyxl')\n",
" # get useful diseases (disease that shares genes) for a rare disease \n",
" df_useful_diseases = get_normal_diseases(disease)\n",
" useful_diseases = df_useful_diseases['disease_id'].drop_duplicates().tolist()\n",
" df = matrix_jac_gen[matrix_jac_gen.rare_dis_id == disease]\n",
" df_useful = df[['rare_dis_id'] + useful_diseases].set_index('rare_dis_id').transpose()\n",
" df_normal_dis_jacc=pd.DataFrame(df_useful[disease].nlargest(5)).reset_index().rename(columns={'index':'disease_id', disease:'jacc_idx'})\n",
" df_normal_dis_jacc.to_excel(f\"{disease}_jacc.xlsx\")\n",
" df_normal_rare_drug=pd.merge(df_useful_diseases,df_normal_dis_jacc,on=\"disease_id\",how=\"inner\")\n",
" df_normal_rare_drug=df_normal_rare_drug.drop_duplicates()\n",
" drug_dis=df_normal_rare_drug.groupby('drug_name').count()\n",
" drug_dis.to_excel(f\"{disease}_drugs_dr.xlsx\")\n",
" # Drug repositioning direct for each rare disease\n",
" drug_direct=df_normal_rare_drug[df_normal_rare_drug[\"disease_id\"]== disease]\n",
" drug_direct.to_csv(f\"{disease}_drugs_dr_direct.csv\")"
]
}
],
"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
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment