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