Mercurial > repos > bimib > cobraxy
comparison COBRAxy/custom_data_generator.py @ 384:8a1213d1393d draft
Uploaded
author | francesco_lapi |
---|---|
date | Fri, 05 Sep 2025 09:53:40 +0000 |
parents | 0a3ca20848f3 |
children | cccbf259459e |
comparison
equal
deleted
inserted
replaced
383:d2e36a8ab451 | 384:8a1213d1393d |
---|---|
34 parser.add_argument("--medium_selector", type=str, required=True, | 34 parser.add_argument("--medium_selector", type=str, required=True, |
35 help="Medium selection option (default/custom)") | 35 help="Medium selection option (default/custom)") |
36 parser.add_argument("--medium", type=str, | 36 parser.add_argument("--medium", type=str, |
37 help="Custom medium file if medium_selector=Custom") | 37 help="Custom medium file if medium_selector=Custom") |
38 | 38 |
39 parser.add_argument("--output_format", type=str, choices=["tabular", "xlsx"], required=True, | |
40 help="Output format: CSV (tabular) or Excel (xlsx)") | |
41 | |
42 parser.add_argument("--out_tabular", type=str, | 39 parser.add_argument("--out_tabular", type=str, |
43 help="Output file for the merged dataset (CSV or XLSX)") | |
44 | |
45 parser.add_argument("--out_xlsx", type=str, | |
46 help="Output file for the merged dataset (CSV or XLSX)") | 40 help="Output file for the merged dataset (CSV or XLSX)") |
47 | 41 |
48 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__), |
49 help="Tool directory (passed from Galaxy as $__tool_directory__)") | 43 help="Tool directory (passed from Galaxy as $__tool_directory__)") |
50 | 44 |
197 os.makedirs(os.path.dirname(path) or ".", exist_ok=True) | 191 os.makedirs(os.path.dirname(path) or ".", exist_ok=True) |
198 df.to_csv(path, sep="\t", index=False) | 192 df.to_csv(path, sep="\t", index=False) |
199 except Exception as e: | 193 except Exception as e: |
200 raise utils.DataErr(path, f"failed writing tabular output: {e}") | 194 raise utils.DataErr(path, f"failed writing tabular output: {e}") |
201 | 195 |
202 def save_as_xlsx_df(df: pd.DataFrame, path: str) -> None: | |
203 try: | |
204 if not path.lower().endswith(".xlsx"): | |
205 path += ".xlsx" | |
206 os.makedirs(os.path.dirname(path) or ".", exist_ok=True) | |
207 df.to_excel(path, index=False) | |
208 except Exception as e: | |
209 raise utils.DataErr(path, f"failed writing xlsx output: {e}") | |
210 | 196 |
211 ###############################- ENTRY POINT -################################ | 197 ###############################- ENTRY POINT -################################ |
212 def main(args:List[str] = None) -> None: | 198 def main(args:List[str] = None) -> None: |
213 """ | 199 """ |
214 Initializes everything and sets the program in motion based on the fronted input arguments. | 200 Initializes everything and sets the program in motion based on the fronted input arguments. |
270 #merged.to_csv(out_file, sep = '\t', index = False) | 256 #merged.to_csv(out_file, sep = '\t', index = False) |
271 | 257 |
272 | 258 |
273 #### | 259 #### |
274 | 260 |
275 # write only the requested output | 261 |
276 if ARGS.output_format == "xlsx": | 262 if not ARGS.out_tabular: |
277 if not ARGS.out_xlsx: | 263 raise utils.ArgsErr("out_tabular", "output path (--out_tabular) is required when output_format == tabular", ARGS.out_tabular) |
278 raise utils.ArgsErr("out_xlsx", "output path (--out_xlsx) is required when output_format == xlsx", ARGS.out_xlsx) | 264 save_as_tabular_df(merged, ARGS.out_tabular) |
279 save_as_xlsx_df(merged, ARGS.out_xlsx) | 265 expected = ARGS.out_tabular |
280 expected = ARGS.out_xlsx | |
281 else: | |
282 if not ARGS.out_tabular: | |
283 raise utils.ArgsErr("out_tabular", "output path (--out_tabular) is required when output_format == tabular", ARGS.out_tabular) | |
284 save_as_tabular_df(merged, ARGS.out_tabular) | |
285 expected = ARGS.out_tabular | |
286 | 266 |
287 # verify output exists and non-empty | 267 # verify output exists and non-empty |
288 if not expected or not os.path.exists(expected) or os.path.getsize(expected) == 0: | 268 if not expected or not os.path.exists(expected) or os.path.getsize(expected) == 0: |
289 raise utils.DataErr(expected, "Output non creato o vuoto") | 269 raise utils.DataErr(expected, "Output non creato o vuoto") |
290 | 270 |