From d875246f8bea38fb3f6622b5c5807cee71a4c9c8 Mon Sep 17 00:00:00 2001
From: local_comparaison <mathieu.umec@inrae.fr>
Date: Wed, 16 Aug 2023 14:14:22 +0200
Subject: [PATCH] fixing the pretreatment code of Ramp datas

---
 Pretaitement_des_donnes_de_mapping.py  | 63 ++++++++++++++++----------
 Visualisation_des_donnes_de_mapping.py | 10 ++--
 2 files changed, 44 insertions(+), 29 deletions(-)

diff --git a/Pretaitement_des_donnes_de_mapping.py b/Pretaitement_des_donnes_de_mapping.py
index f744e10..089a7f7 100644
--- a/Pretaitement_des_donnes_de_mapping.py
+++ b/Pretaitement_des_donnes_de_mapping.py
@@ -3,12 +3,22 @@ import pandas as pd
 import openpyxl as xls
 import jpype
 import asposecells
+import csv
 jpype.startJVM()
 from asposecells.api import *
 
 input_fill="C:\\Users\\mumec\\Desktop\\fichier_en_cours_dutilisation\\ExportExcel_4311-1.xlsx"
 Dossier_sortie="C:\\Users\\mumec\\Desktop\\fichier_en_cours_dutilisation\\"
 
+def recuperation_de_colonne(file, n, sep=";"):
+  with open(file,"r") as f:
+    r=csv.reader(f, delimiter = sep)
+    lignes=list(r)                   # variable interne non utilisable
+    res=[]
+    if (n < len(lignes[0])) and (n >= -len(lignes[0])):
+      for l in lignes :
+        res.append(l[n].strip())
+    return res
 
 def recup_1_Pathways (input_fill, Dossier_sortie) :
     fichier_entree = Workbook(input_fill) # chargement du fichier excel
@@ -123,54 +133,59 @@ def mise_en_forme_CPDB_mapping (Results_fill, correspondance_fill, output_fill):
   excel_file_sortie.close()
 
 
-def pretraitement_resultats_Ramp (Resultas_Ramp, output_file_lists,output_file_table, pathways_IDs='oui'):
+def pretraitement_resultats_Ramp (Resultas_Ramp, output_file, pathways_IDs='oui'):
 
   colonne_Pathways_Name=recuperation_de_colonne(Resultas_Ramp, 0)
   colonne_input_IDs=recuperation_de_colonne(Resultas_Ramp, 3)
   colonne_input_common_Name=recuperation_de_colonne(Resultas_Ramp, 4)
   if (pathways_IDs=="oui") :
-    print('Salut')
     colonne_Pathways_IDs=recuperation_de_colonne(Resultas_Ramp, 2)
     IDs_Tout_les_Pathways=[]
 
   IDs_Tout_les_metabolites_mappes=[]
   Name_Tout_les_metabolites_mappes=[]
   Tout_les_Pathways=[]
+  metabolites_ID_associe_au_pathway=[]
+  metabolites_name_associe_au_pathway=[]
 
   for numero in range (1,len(colonne_Pathways_IDs)):
     if (colonne_Pathways_Name[numero] not in Tout_les_Pathways):
       Tout_les_Pathways.append(colonne_Pathways_Name[numero])
+      metabolites_ID_associe_au_pathway.append([colonne_input_IDs[numero]])
+      metabolites_name_associe_au_pathway.append([colonne_input_common_Name[numero]])
       if (pathways_IDs=="oui") :
         IDs_Tout_les_Pathways.append(colonne_Pathways_IDs[numero])
+    else:
+      metabolites_ID_associe_au_pathway[Tout_les_Pathways.index(colonne_Pathways_Name[numero])].append(colonne_input_IDs[numero])
+      metabolites_name_associe_au_pathway[Tout_les_Pathways.index(colonne_Pathways_Name[numero])].append(colonne_input_common_Name[numero])
     if colonne_input_IDs[numero] not in IDs_Tout_les_metabolites_mappes :
       IDs_Tout_les_metabolites_mappes.append(colonne_input_IDs[numero])
       Name_Tout_les_metabolites_mappes.append(colonne_input_common_Name[numero])
 
-
-  print(len(Tout_les_Pathways))
-  print(len(IDs_Tout_les_Pathways))
-  print(len(Name_Tout_les_metabolites_mappes))
-  print(len(IDs_Tout_les_metabolites_mappes))
-
-  tableau_des_pathways=np.zeros((len(Name_Tout_les_metabolites_mappes),len(Tout_les_Pathways)))
-
-  for iteration in range (1,len(colonne_input_IDs)):
-    tableau_des_pathways[IDs_Tout_les_metabolites_mappes.index(colonne_input_IDs[iteration]),Tout_les_Pathways.index(colonne_Pathways_Name[iteration])]+=1
-
-  print(np.sum(tableau_des_pathways))
+  Tout_les_Pathways.insert(0,"Noms_voies_metaboliques")
+  IDs_Tout_les_Pathways.insert(0,"ID_voies _metaboliques")
+  Name_Tout_les_metabolites_mappes.insert(0,"Noms_metabolites_mappes")
+  IDs_Tout_les_metabolites_mappes.insert(0,"ID_metabolites_mappes")
+  metabolites_ID_associe_au_pathway.insert(0,"ID_metabolites_associés")
+  metabolites_name_associe_au_pathway.insert(0,"Noms_metabolites_associés")
 
   if (pathways_IDs=="oui") :
-    Ensemble=[Tout_les_Pathways,IDs_Tout_les_Pathways, Name_Tout_les_metabolites_mappes,IDs_Tout_les_metabolites_mappes]
+    Total=[Tout_les_Pathways,IDs_Tout_les_Pathways,metabolites_ID_associe_au_pathway,metabolites_name_associe_au_pathway, Name_Tout_les_metabolites_mappes,IDs_Tout_les_metabolites_mappes]
   else:
-    Ensemble=[Tout_les_Pathways,Name_Tout_les_metabolites_mappes,IDs_Tout_les_metabolites_mappes]
+    Total=[Tout_les_Pathways,metabolites_ID_associe_au_pathway,metabolites_name_associe_au_pathway,Name_Tout_les_metabolites_mappes,IDs_Tout_les_metabolites_mappes]
+  P_et_M=[Tout_les_Pathways,metabolites_ID_associe_au_pathway,metabolites_name_associe_au_pathway]
+  P_et_M_name=[Tout_les_Pathways,metabolites_name_associe_au_pathway]
+
+
 
-  Ensemble = pd.DataFrame(Ensemble ,dtype=object)
-  excel_file_Ensemble = pd.ExcelWriter(output_file_lists)
-  Ensemble.to_excel(excel_file_Ensemble)
-  excel_file_Ensemble.close()
+  Total = pd.DataFrame(Total ,dtype=object)
+  P_et_M= pd.DataFrame(P_et_M ,dtype=object)
+  P_et_M_name= pd.DataFrame(P_et_M_name ,dtype=object)
+  excel_file = pd.ExcelWriter(output_file)
+  Total.to_excel(excel_file,sheet_name="global")
+  P_et_M.to_excel(excel_file,sheet_name="Pathways_et_les_metas")
+  P_et_M_name.to_excel(excel_file,sheet_name="Pathways_et_les_metas_name")
+  excel_file.close()
 
-  tableau_des_pathways = pd.DataFrame(tableau_des_pathways ,dtype=object)
-  excel_file_table = pd.ExcelWriter(output_file_table)
-  tableau_des_pathways.to_excel(excel_file_table)
-  excel_file_table.close()
 
+pretraitement_resultats_Ramp ("C:\\Users\\mumec\\Desktop\\Mini_codes\\results_LTest_V0_ramp_pathways.csv", "C:\\Users\\mumec\\Desktop\\Mini_codes\\results_LTest_V0_ramp_pathways_listes.xlsx", pathways_IDs='oui')
\ No newline at end of file
diff --git a/Visualisation_des_donnes_de_mapping.py b/Visualisation_des_donnes_de_mapping.py
index 411c93a..87533bd 100644
--- a/Visualisation_des_donnes_de_mapping.py
+++ b/Visualisation_des_donnes_de_mapping.py
@@ -49,7 +49,7 @@ def Distance_matrix_clustering (input_file,val_infini=50):
 
 ##### Traitement de la matrice de distance
     nombre_de_clusters=7
-    clustering = AgglomerativeClustering(n_clusters = nombre_de_clusters,  metric = "precomputed",linkage="complete").fit(matrice_pour_traitement)
+    clustering = AgglomerativeClustering(n_clusters = nombre_de_clusters,  metric = "precomputed",linkage="average").fit(matrice_pour_traitement)
 #results_clustering=pd.DataFrame ({'in': [clustering.labels_] })
     results_clustering=clustering.labels_
     print(results_clustering)
@@ -86,7 +86,7 @@ def Distance_matrix_clustering (input_file,val_infini=50):
     plt.suptitle('les differents cluster')
     plt.show()
 
-#Distance_matrix_clustering("C:\\Users\\mumec\\Desktop\\Mini_codes\\DistanceMatrix_compose_interet.xlsx")
+Distance_matrix_clustering("C:\\Users\\mumec\\Desktop\\Mini_codes\\DistanceMatrix_compose_interet.xlsx")
 
 
 
@@ -105,7 +105,7 @@ def visualisation_recouvrement (File, titre_du_graphique="Recouvrement moyen des
     p1.tick_params(axis='x', rotation=90, size=1) #rotation des ticklabels
     plt.show()
 
-#visualisation_recouvrement ("C:\\Users\\mumec\\Desktop\\Mini_codes\\fichier_pour_tests_graph.xlsx",titre_du_graphique="Recouvrement moyen des différentes voies métaboliques de la liste constructeurs sur KEGG")
+visualisation_recouvrement ("C:\\Users\\mumec\\Desktop\\Mini_codes\\fichier_pour_tests_graph.xlsx",titre_du_graphique="Recouvrement moyen des différentes voies métaboliques de la liste constructeurs sur KEGG")
 
 
 
@@ -122,7 +122,7 @@ def boite_a_moustache(File_of_data, titre_de_la_boite="boite a moustache des mes
 #    plt.savefig('SimpleBoxPlot.png')
     plt.show()
 
-#☻boite_a_moustache("C:\\Users\\mumec\\Desktop\\Mini_codes\\fichier_pour_test_moustache.xlsx", titre_de_la_boite="boite a moustache des mes données")
+boite_a_moustache("C:\\Users\\mumec\\Desktop\\Mini_codes\\fichier_pour_test_moustache.xlsx", titre_de_la_boite="boite a moustache des mes données")
 
 
 
@@ -161,7 +161,7 @@ def Camenbert(File_of_data, titre_de_la_boite="boite a moustache des mes donnée
     plt.show()
 
 
-
+Camenbert("C:\\Users\\mumec\\Desktop\\Mini_codes\\fichier_pour_test_moustache.xlsx", titre_de_la_boite="boite a moustache des mes données",valeur_filtrage=1)
 
 
 
-- 
GitLab