Mercurial > repos > bimib > cobraxy
comparison COBRAxy/flux_simulation_beta.py @ 469:5f02f7e4ea9f draft default tip
Uploaded
author | luca_milaz |
---|---|
date | Mon, 22 Sep 2025 15:14:47 +0000 |
parents | 73f02860f7d7 |
children |
comparison
equal
deleted
inserted
replaced
468:77ed5c696865 | 469:5f02f7e4ea9f |
---|---|
43 | 43 |
44 parser.add_argument("-mab", "--model_and_bounds", type=str, | 44 parser.add_argument("-mab", "--model_and_bounds", type=str, |
45 choices=['True', 'False'], | 45 choices=['True', 'False'], |
46 required=True, | 46 required=True, |
47 help="upload mode: True for model+bounds, False for complete models") | 47 help="upload mode: True for model+bounds, False for complete models") |
48 | |
49 parser.add_argument("-ens", "--sampling_enabled", type=str, | |
50 choices=['True', 'False'], | |
51 required=True, | |
52 help="enable sampling: True for sampling, False for no sampling") | |
48 | 53 |
49 parser.add_argument('-ol', '--out_log', | 54 parser.add_argument('-ol', '--out_log', |
50 help="Output log") | 55 help="Output log") |
51 | 56 |
52 parser.add_argument('-td', '--tool_dir', | 57 parser.add_argument('-td', '--tool_dir', |
340 cell_name (str): Name of the cell, used to generate filenames for output. | 345 cell_name (str): Name of the cell, used to generate filenames for output. |
341 | 346 |
342 Returns: | 347 Returns: |
343 List[pd.DataFrame]: A list of DataFrames containing statistics and analysis results. | 348 List[pd.DataFrame]: A list of DataFrames containing statistics and analysis results. |
344 """ | 349 """ |
345 | 350 |
346 if ARGS.algorithm == 'OPTGP': | 351 if ARGS.sampling_enabled == "True" and ARGS.n_samples > 0: |
347 OPTGP_sampler(model_input, cell_name, ARGS.n_samples, ARGS.thinning, ARGS.n_batches, ARGS.seed) | 352 |
348 elif ARGS.algorithm == 'CBS': | 353 if ARGS.algorithm == 'OPTGP': |
349 CBS_sampler(model_input, cell_name, ARGS.n_samples, ARGS.n_batches, ARGS.seed) | 354 OPTGP_sampler(model_input, cell_name, ARGS.n_samples, ARGS.thinning, ARGS.n_batches, ARGS.seed) |
350 | 355 elif ARGS.algorithm == 'CBS': |
351 df_mean, df_median, df_quantiles = fluxes_statistics(cell_name, ARGS.output_types) | 356 CBS_sampler(model_input, cell_name, ARGS.n_samples, ARGS.n_batches, ARGS.seed) |
352 | 357 |
353 if("fluxes" not in ARGS.output_types): | 358 df_mean, df_median, df_quantiles = fluxes_statistics(cell_name, ARGS.output_types) |
354 os.remove(ARGS.output_path + "/" + cell_name + '.csv') | 359 |
355 | 360 if("fluxes" not in ARGS.output_types): |
356 returnList = [df_mean, df_median, df_quantiles] | 361 os.remove(ARGS.output_path + "/" + cell_name + '.csv') |
362 | |
363 returnList = [df_mean, df_median, df_quantiles] | |
357 | 364 |
358 df_pFBA, df_FVA, df_sensitivity = fluxes_analysis(model_input, cell_name, ARGS.output_type_analysis) | 365 df_pFBA, df_FVA, df_sensitivity = fluxes_analysis(model_input, cell_name, ARGS.output_type_analysis) |
359 | 366 |
360 if("pFBA" in ARGS.output_type_analysis): | 367 if("pFBA" in ARGS.output_type_analysis): |
361 returnList.append(df_pFBA) | 368 returnList.append(df_pFBA) |
490 ARGS.output_types = ARGS.output_type.split(",") if ARGS.output_type else [] | 497 ARGS.output_types = ARGS.output_type.split(",") if ARGS.output_type else [] |
491 # optional analysis output types -> list or empty | 498 # optional analysis output types -> list or empty |
492 ARGS.output_type_analysis = ARGS.output_type_analysis.split(",") if ARGS.output_type_analysis else [] | 499 ARGS.output_type_analysis = ARGS.output_type_analysis.split(",") if ARGS.output_type_analysis else [] |
493 | 500 |
494 # Determine if sampling should be performed | 501 # Determine if sampling should be performed |
495 perform_sampling = ARGS.n_samples > 0 | 502 if ARGS.sampling_enabled == "True" and ARGS.n_samples > 0: |
503 perform_sampling = True | |
496 | 504 |
497 print("=== INPUT FILES ===") | 505 print("=== INPUT FILES ===") |
498 print(f"{ARGS.input_files}") | 506 print(f"{ARGS.input_files}") |
499 print(f"{ARGS.file_names}") | 507 print(f"{ARGS.file_names}") |
500 print(f"{ARGS.output_type}") | 508 print(f"{ARGS.output_type}") |
558 if "quantiles" in ARGS.output_types: | 566 if "quantiles" in ARGS.output_types: |
559 all_quantiles = all_quantiles.fillna(0.0) | 567 all_quantiles = all_quantiles.fillna(0.0) |
560 all_quantiles = all_quantiles.sort_index() | 568 all_quantiles = all_quantiles.sort_index() |
561 write_to_file(all_quantiles.T, "quantiles", True) | 569 write_to_file(all_quantiles.T, "quantiles", True) |
562 else: | 570 else: |
563 print("=== SAMPLING SKIPPED (n_samples = 0) ===") | 571 print("=== SAMPLING SKIPPED (n_samples = 0 or sampling disabled) ===") |
564 | 572 |
565 # Handle optimization analysis outputs (always available) | 573 # Handle optimization analysis outputs (always available) |
566 print("=== PROCESSING OPTIMIZATION RESULTS ===") | 574 print("=== PROCESSING OPTIMIZATION RESULTS ===") |
567 | 575 |
568 # Determine the starting index for optimization results | 576 # Determine the starting index for optimization results |