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) |
