comparison COBRAxy/custom_data_generator.py @ 393:52658ddcaa5d draft

Uploaded
author francesco_lapi
date Fri, 05 Sep 2025 13:02:22 +0000
parents cccbf259459e
children 64563ca68ace
comparison
equal deleted inserted replaced
392:f73d57641124 393:52658ddcaa5d
29 help="Custom model file (JSON or XML)") 29 help="Custom model file (JSON or XML)")
30 parser.add_argument("--name", type=str, required=True, 30 parser.add_argument("--name", type=str, required=True,
31 help="Model name (default or custom)") 31 help="Model name (default or custom)")
32 32
33 parser.add_argument("--medium_selector", type=str, required=True, 33 parser.add_argument("--medium_selector", type=str, required=True,
34 help="Medium selection option (default/custom)") 34 help="Medium selection option")
35 parser.add_argument("--medium", type=str, 35
36 help="Custom medium file if medium_selector=Custom") 36 parser.add_argument("--gene_format", type=str, default="Default",
37 help="Gene nomenclature format: Default (original), ENSNG, HGNC_SYMBOL, HGNC_ID, ENTREZ")
37 38
38 parser.add_argument("--out_tabular", type=str, 39 parser.add_argument("--out_tabular", type=str,
39 help="Output file for the merged dataset (CSV or XLSX)") 40 help="Output file for the merged dataset (CSV or XLSX)")
40 41
41 parser.add_argument("--tool_dir", type=str, default=os.path.dirname(__file__), 42 parser.add_argument("--tool_dir", type=str, default=os.path.dirname(__file__),
224 except Exception as e: 225 except Exception as e:
225 # Wrap/normalize load errors as DataErr for consistency 226 # Wrap/normalize load errors as DataErr for consistency
226 raise utils.DataErr(ARGS.model, f"failed loading built-in model: {e}") 227 raise utils.DataErr(ARGS.model, f"failed loading built-in model: {e}")
227 228
228 # Determine final model name: explicit --name overrides, otherwise use the model id 229 # Determine final model name: explicit --name overrides, otherwise use the model id
230
229 model_name = ARGS.name if ARGS.name else ARGS.model 231 model_name = ARGS.name if ARGS.name else ARGS.model
232
233
234 if ARGS.name == "ENGRO2" and ARGS.medium_selector != "Default":
235 df_mediums = pd.read_csv(ARGS.tool_dir + "/local/medium/medium.csv", index_col = 0)
236 ARGS.medium_selector = ARGS.medium_selector.replace("_", " ")
237 medium = df_mediums[[ARGS.medium_selector]]
238 medium = medium[ARGS.medium_selector].to_dict()
239
240 # Set all reactions to zero in the medium
241 for rxn_id, _ in model.medium.items():
242 model.reactions.get_by_id(rxn_id).lower_bound = float(0.0)
243
244 # Set medium conditions
245 for reaction, value in medium.items():
246 if value is not None:
247 model.reactions.get_by_id(reaction).lower_bound = -float(value)
248
249 if ARGS.name == "ENGRO2" and ARGS.gene_format != "Default":
250 utils.convert_genes(model, ARGS.gene_format)
230 251
231 # generate data 252 # generate data
232 rules = generate_rules(model, asParsed = False) 253 rules = generate_rules(model, asParsed = False)
233 reactions = generate_reactions(model, asParsed = False) 254 reactions = generate_reactions(model, asParsed = False)
234 bounds = generate_bounds(model) 255 bounds = generate_bounds(model)