From 51cedf450922fe2a6636746557956b4baf8c29b4 Mon Sep 17 00:00:00 2001
From: local_comparaison <mathieu.umec@inrae.fr>
Date: Fri, 23 Jun 2023 10:11:32 +0200
Subject: [PATCH] Adding total and average overlap to the resemblance table

---
 tool_of_mapping_results_treatments.py | 45 ++++++++++++---------------
 1 file changed, 20 insertions(+), 25 deletions(-)

diff --git a/tool_of_mapping_results_treatments.py b/tool_of_mapping_results_treatments.py
index 2a8ed84..a3f2501 100644
--- a/tool_of_mapping_results_treatments.py
+++ b/tool_of_mapping_results_treatments.py
@@ -26,7 +26,7 @@ Sortie_pathways_de_chaque_metabolites="C:\\Users\\mumec\\Desktop\\Dossier_gitlab
 
 ### Function initialization
 
-def colonne(file, n, sep=";"):          # fill opening and recovery
+def lecture_colonne(file, n, sep=";"):          # fill opening and recovery
   with open(file,"r") as f:
     r=csv.reader(f, delimiter = sep)
     lignes=list(r)                   
@@ -71,7 +71,7 @@ def traitement_des_pathways (file,sep=";"):
     for p in range (Nombre_de_pathways_totale+len(i_e)):# création d'une variables pour chaque pathways
         
         if (p not in i_e):
-            transitoire=colonne(file, p, sep=";")
+            transitoire=lecture_colonne(file, p, sep=";")
             Tout_les_pathways[indice_reel]=transitoire[1:len(transitoire)]
             indice_reel+=1
 
@@ -83,40 +83,33 @@ def traitement_des_pathways (file,sep=";"):
                 break
 
             
-    tableau_de_resemblance=np.zeros([Nombre_de_pathways_totale,Nombre_de_pathways_totale])
+    tableau_de_resemblance=np.zeros([Nombre_de_pathways_totale,Nombre_de_pathways_totale+2])
 
     P1=[]
     P2=[]
-    longeur_P1=0
-    longeur_P2=0
-    for l in range(Nombre_de_pathways_totale):
-        for c in range(Nombre_de_pathways_totale) :
-            if (l==c):
-                tableau_de_resemblance[l,c]=len(Tout_les_pathways[c])
+    for ligne in range(Nombre_de_pathways_totale):
+        somme_liste=0
+        for colonne in range(Nombre_de_pathways_totale) :
+            if (ligne==colonne):
+                tableau_de_resemblance[ligne,colonne]=len(Tout_les_pathways[colonne])
             else :
                 commun=0
-                P1=Tout_les_pathways[l]
-                P2=Tout_les_pathways[c]
-                longeur_P1=len(Tout_les_pathways[l])
-                longeur_P2=len(Tout_les_pathways[c])
-                for m in range (min(longeur_P1, longeur_P2)):
-                    if (longeur_P1< longeur_P2):
-                        metabolite_recherche=P1[m]
-                        if (metabolite_recherche in P2):
+                P1=Tout_les_pathways[ligne]
+                P2=Tout_les_pathways[colonne]
+                for metabolite_recherche in (P1):
+                    if (metabolite_recherche in P2):
                             commun+=1
-                    else :
-                        metabolite_recherche=P2[m]
-                        if (metabolite_recherche in P1):
-                            commun+=1
-                tableau_de_resemblance[l,c]=commun
-
+                tableau_de_resemblance[ligne,colonne]=commun
+                somme_liste+=commun
+        tableau_de_resemblance[ligne,Nombre_de_pathways_totale]=somme_liste
+        tableau_de_resemblance[ligne,Nombre_de_pathways_totale+1]=somme_liste/(Nombre_de_pathways_totale-1)
     tableau_approximatif=[]
 
     for line in tableau_de_resemblance:
         tableau_approximatif.append('  '.join(map(str, line)))
     
-    tableau_approximatif=np.array(tableau_approximatif)
-    tableau_approximatif
+    tableau_approximatif=np.array(tableau_approximatif, dtype=object)
+    print(tableau_approximatif)
     
     ensemble_des_metabolites=[]
     nombre_de_metabolites=[]
@@ -156,6 +149,8 @@ def traitement_totale_couverture_pathways_et_métabolites(file,Fichier1,Fichier2
     
     Les_metabolites_et_leurs_pathways = pd.DataFrame(data=Les_metabolites_et_leurs_pathways)
     
+    Noms_des_Pathways.append("recouvrement_totale")
+    Noms_des_Pathways.append("recouvrement_moyen")
     resemblance_des_pathways=[Noms_des_Pathways]
     for indice in range(len(tableau_de_resemblance)):
         resemblance_des_pathways.append(tableau_de_resemblance[indice])
-- 
GitLab