Mercurial > repos > bimib > cobraxy
comparison COBRAxy/custom_data_generator_beta.py @ 426:00a78da611ba draft
Uploaded
author | francesco_lapi |
---|---|
date | Wed, 10 Sep 2025 09:25:32 +0000 |
parents | ed2c1f9e20ba |
children | 06564187fba3 |
comparison
equal
deleted
inserted
replaced
425:233d5d1e6bb2 | 426:00a78da611ba |
---|---|
7 import utils.general_utils as utils | 7 import utils.general_utils as utils |
8 import utils.rule_parsing as rulesUtils | 8 import utils.rule_parsing as rulesUtils |
9 from typing import Optional, Tuple, Union, List, Dict | 9 from typing import Optional, Tuple, Union, List, Dict |
10 import utils.reaction_parsing as reactionUtils | 10 import utils.reaction_parsing as reactionUtils |
11 import utils.model_utils as modelUtils | 11 import utils.model_utils as modelUtils |
12 import logging | |
12 | 13 |
13 ARGS : argparse.Namespace | 14 ARGS : argparse.Namespace |
14 def process_args(args: List[str] = None) -> argparse.Namespace: | 15 def process_args(args: List[str] = None) -> argparse.Namespace: |
15 """ | 16 """ |
16 Parse command-line arguments for CustomDataGenerator. | 17 Parse command-line arguments for CustomDataGenerator. |
171 for reaction, value in medium.items(): | 172 for reaction, value in medium.items(): |
172 if value is not None: | 173 if value is not None: |
173 model.reactions.get_by_id(reaction).lower_bound = -float(value) | 174 model.reactions.get_by_id(reaction).lower_bound = -float(value) |
174 | 175 |
175 if ARGS.name == "ENGRO2" and ARGS.gene_format != "Default": | 176 if ARGS.name == "ENGRO2" and ARGS.gene_format != "Default": |
176 | 177 logging.basicConfig(level=logging.INFO) |
177 model = modelUtils.convert_genes(model, ARGS.gene_format.replace("HGNC_", "HGNC ")) | 178 logger = logging.getLogger(__name__) |
179 | |
180 model = modelUtils.translate_model_genes( | |
181 model=model, | |
182 mapping_df= pd.read_csv(ARGS.tool_dir + "/local/mappings/genes_human.csv"), | |
183 target_nomenclature=ARGS.gene_format.replace("HGNC_", "HGNC "), | |
184 source_nomenclature='HGNC_ID', | |
185 logger=logger | |
186 ) | |
187 #model = modelUtils.convert_genes(model, ARGS.gene_format.replace("HGNC_", "HGNC ")) | |
188 | |
189 if ARGS.name == "Recon" and ARGS.gene_format != "Default": | |
190 logging.basicConfig(level=logging.INFO) | |
191 logger = logging.getLogger(__name__) | |
192 | |
193 model = modelUtils.translate_model_genes( | |
194 model=model, | |
195 mapping_df= pd.read_csv(ARGS.tool_dir + "/local/mappings/genes_human.csv"), | |
196 target_nomenclature=ARGS.gene_format.replace("HGNC_", "HGNC "), | |
197 source_nomenclature='HGNC_symbol', | |
198 logger=logger | |
199 ) | |
178 | 200 |
179 # generate data | 201 # generate data |
180 rules = modelUtils.generate_rules(model, asParsed = False) | 202 rules = modelUtils.generate_rules(model, asParsed = False) |
181 reactions = modelUtils.generate_reactions(model, asParsed = False) | 203 reactions = modelUtils.generate_reactions(model, asParsed = False) |
182 bounds = modelUtils.generate_bounds(model) | 204 bounds = modelUtils.generate_bounds(model) |
183 medium = modelUtils.get_medium(model) | 205 medium = modelUtils.get_medium(model) |
206 objective_function = modelUtils.extract_objective_coefficients(model) | |
207 | |
184 if ARGS.name == "ENGRO2": | 208 if ARGS.name == "ENGRO2": |
185 compartments = modelUtils.generate_compartments(model) | 209 compartments = modelUtils.generate_compartments(model) |
186 | 210 |
187 df_rules = pd.DataFrame(list(rules.items()), columns = ["ReactionID", "Rule"]) | 211 df_rules = pd.DataFrame(list(rules.items()), columns = ["ReactionID", "GPR"]) |
188 df_reactions = pd.DataFrame(list(reactions.items()), columns = ["ReactionID", "Reaction"]) | 212 df_reactions = pd.DataFrame(list(reactions.items()), columns = ["ReactionID", "Formula"]) |
189 | 213 |
190 df_bounds = bounds.reset_index().rename(columns = {"index": "ReactionID"}) | 214 df_bounds = bounds.reset_index().rename(columns = {"index": "ReactionID"}) |
191 df_medium = medium.rename(columns = {"reaction": "ReactionID"}) | 215 df_medium = medium.rename(columns = {"reaction": "ReactionID"}) |
192 df_medium["InMedium"] = True # flag per indicare la presenza nel medium | 216 df_medium["InMedium"] = True # flag per indicare la presenza nel medium |
193 | 217 |
194 merged = df_reactions.merge(df_rules, on = "ReactionID", how = "outer") | 218 merged = df_reactions.merge(df_rules, on = "ReactionID", how = "outer") |
195 merged = merged.merge(df_bounds, on = "ReactionID", how = "outer") | 219 merged = merged.merge(df_bounds, on = "ReactionID", how = "outer") |
220 merged = merged.merge(objective_function, on = "ReactionID", how = "outer") | |
196 if ARGS.name == "ENGRO2": | 221 if ARGS.name == "ENGRO2": |
197 merged = merged.merge(compartments, on = "ReactionID", how = "outer") | 222 merged = merged.merge(compartments, on = "ReactionID", how = "outer") |
198 merged = merged.merge(df_medium, on = "ReactionID", how = "left") | 223 merged = merged.merge(df_medium, on = "ReactionID", how = "left") |
199 | 224 |
200 merged["InMedium"] = merged["InMedium"].fillna(False) | 225 merged["InMedium"] = merged["InMedium"].fillna(False) |