Mercurial > repos > bimib > cobraxy
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")