changeset 412:bdf4630ac1eb draft

Uploaded
author francesco_lapi
date Mon, 08 Sep 2025 21:24:32 +0000
parents 6b015d3184ab
children 7a3ccf066b2c
files COBRAxy/utils/general_utils.py
diffstat 1 files changed, 29 insertions(+), 36 deletions(-) [+]
line wrap: on
line diff
--- a/COBRAxy/utils/general_utils.py	Mon Sep 08 21:07:34 2025 +0000
+++ b/COBRAxy/utils/general_utils.py	Mon Sep 08 21:24:32 2025 +0000
@@ -17,8 +17,8 @@
 import gzip
 import bz2
 from io import StringIO
-import rule_parsing  as rulesUtils
-import reaction_parsing as reactionUtils
+import utils.rule_parsing  as rulesUtils
+import utils.reaction_parsing as reactionUtils
 
 
 
@@ -777,46 +777,39 @@
     
     # Seconda passata: aggiungi le reazioni
     reactions_added = 0
-    reactions_skipped = 0
     
     for idx, row in df.iterrows():
+        reaction_id = str(row['ReactionID']).strip()
+        reaction_formula = str(row['Reaction']).strip()
+        
+        # Salta reazioni senza formula
+        if not reaction_formula or reaction_formula == 'nan':
+            raise ValueError(f"Formula della reazione mancante {reaction_id}")
+
+        # Crea la reazione
+        reaction = Reaction(reaction_id)
+        reaction.name = reaction_id
+        
+        # Imposta bounds
+        reaction.lower_bound = float(row['lower_bound']) if pd.notna(row['lower_bound']) else -1000.0
+        reaction.upper_bound = float(row['upper_bound']) if pd.notna(row['upper_bound']) else 1000.0
+        
+        # Aggiungi gene rule se presente
+        if pd.notna(row['Rule']) and str(row['Rule']).strip():
+            reaction.gene_reaction_rule = str(row['Rule']).strip()
+        
+        # Parse della formula della reazione
         try:
-            reaction_id = str(row['ReactionID']).strip()
-            reaction_formula = str(row['Reaction']).strip()
-            
-            # Salta reazioni senza formula
-            if not reaction_formula or reaction_formula == 'nan':
-                reactions_skipped += 1
-                continue
-            
-            # Crea la reazione
-            reaction = Reaction(reaction_id)
-            reaction.name = reaction_id
-            
-            # Imposta bounds
-            reaction.lower_bound = float(row['lower_bound']) if pd.notna(row['lower_bound']) else -1000.0
-            reaction.upper_bound = float(row['upper_bound']) if pd.notna(row['upper_bound']) else 1000.0
-            
-            # Aggiungi gene rule se presente
-            if pd.notna(row['Rule']) and str(row['Rule']).strip():
-                reaction.gene_reaction_rule = str(row['Rule']).strip()
-            
-            # Parse della formula della reazione
-            try:
-                parse_reaction_formula(reaction, reaction_formula, metabolites_dict)
-            except Exception as e:
-                print(f"Errore nel parsing della reazione {reaction_id}: {e}")
-                reactions_skipped += 1
-                continue
-            
-            # Aggiungi la reazione al modello
-            model.add_reactions([reaction])
-            reactions_added += 1
-            
+            parse_reaction_formula(reaction, reaction_formula, metabolites_dict)
         except Exception as e:
-            print(f"Errore nell'aggiungere la reazione {reaction_id}: {e}")
+            print(f"Errore nel parsing della reazione {reaction_id}: {e}")
             reactions_skipped += 1
             continue
+        
+        # Aggiungi la reazione al modello
+        model.add_reactions([reaction])
+        reactions_added += 1
+            
     
     print(f"Aggiunte {reactions_added} reazioni, saltate {reactions_skipped} reazioni")