Coverage for lasso/dimred/run.py: 0%
28 statements
« prev ^ index » next coverage.py v7.2.4, created at 2023-04-28 18:42 +0100
« prev ^ index » next coverage.py v7.2.4, created at 2023-04-28 18:42 +0100
1from rich.console import Console
2from rich.theme import Theme
4from lasso.dimred.dimred_run import (
5 DIMRED_STAGES,
6 DimredRun,
7 DimredRunError,
8 DimredStage,
9 parse_dimred_args,
10)
13def main():
14 """Runs the dimensionality reduction CLI"""
16 # parse command line stuff
17 parser = parse_dimred_args()
18 log_theme = Theme(
19 {"info": "royal_blue1", "success": "green", "warning": "dark_orange3", "error": "bold red"}
20 )
21 console = Console(theme=log_theme, record=True, highlight=False)
23 try:
24 # parse settings from command line
25 dimred_run = DimredRun(
26 reference_run=parser.reference_run,
27 simulation_runs=parser.simulation_runs,
28 console=console,
29 exclude_runs=parser.exclude_runs,
30 project_dir=parser.project_dir,
31 html_name=parser.html_name,
32 html_set_timestamp=parser.html_timestamp,
33 img_path=parser.embedding_images,
34 logfile_filepath=parser.logfile_filepath,
35 n_processes=parser.n_processes,
36 part_id_filter=parser.part_ids,
37 start_stage=parser.start_stage,
38 end_stage=parser.end_stage,
39 timestep=parser.timestep,
40 cluster_args=parser.cluster_args,
41 outlier_args=parser.outlier_args,
42 )
44 # do the thing
45 console.print()
46 console.print(" ---- Running Routines ---- ")
47 console.print()
49 # initiate threading pool for handling jobs
50 with dimred_run:
52 # setup
53 if (
54 dimred_run.start_stage_index
55 <= DIMRED_STAGES.index(DimredStage.REFERENCE_RUN.value)
56 <= dimred_run.end_stage_index
57 ):
58 dimred_run.process_reference_run()
60 # import
61 if (
62 dimred_run.start_stage_index
63 <= DIMRED_STAGES.index(DimredStage.IMPORT_RUNS.value)
64 <= dimred_run.end_stage_index
65 ):
66 dimred_run.subsample_to_reference_run()
68 # math
69 if (
70 dimred_run.start_stage_index
71 <= DIMRED_STAGES.index(DimredStage.REDUCTION.value)
72 <= dimred_run.end_stage_index
73 ):
74 dimred_run.dimension_reduction_svd()
76 # clustering
77 if (
78 dimred_run.start_stage_index
79 <= DIMRED_STAGES.index(DimredStage.CLUSTERING.value)
80 <= dimred_run.end_stage_index
81 ):
82 dimred_run.clustering_results()
84 # export
85 if (
86 dimred_run.start_stage_index
87 <= DIMRED_STAGES.index(DimredStage.EXPORT_PLOT.value)
88 <= dimred_run.end_stage_index
89 ):
90 dimred_run.visualize_results()
92 # print logfile
93 console.save_html(dimred_run.logfile_filepath)
95 # Catch if DimredrunError was called
96 except DimredRunError as err:
97 print(err)
100if __name__ == "__main__":
101 main()