Skip to content

Commit 93bb63e

Browse files
committed
Update GUI to BiaPy code v3.4.4
1 parent ffb2458 commit 93bb63e

16 files changed

+51072
-15249
lines changed

biapy_check_configuration.py

Lines changed: 145 additions & 69 deletions
Large diffs are not rendered by default.

biapy_config.py

Lines changed: 84 additions & 23 deletions
Large diffs are not rendered by default.

images/i2i.png

48.9 KB
Loading

images/i2i.svg

Lines changed: 32417 additions & 0 deletions
Loading

images/i2i_raw.png

32.5 KB
Loading

images/i2i_target.png

23.9 KB
Loading
24.3 KB
Loading
31.9 KB
Loading

main.py

Lines changed: 41 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ def __init__(self, log_file, log_dir):
135135
self.ui.workflow_view5_seemore_bn.clicked.connect(lambda: UIFunction.obtain_workflow_description(self, 4))
136136
self.ui.workflow_view6_seemore_bn.clicked.connect(lambda: UIFunction.obtain_workflow_description(self, 5))
137137
self.ui.workflow_view7_seemore_bn.clicked.connect(lambda: UIFunction.obtain_workflow_description(self, 6))
138+
self.ui.workflow_view8_seemore_bn.clicked.connect(lambda: UIFunction.obtain_workflow_description(self, 7))
138139

139140
# General options page buttons
140141
self.ui.SYSTEM__SEED__INPUT.setValidator(self.int_validator)
@@ -179,6 +180,7 @@ def __init__(self, log_file, log_dir):
179180
self.ui.MODEL__VIT_NUM_HEADS__INPUT.setValidator(self.int_validator)
180181
self.ui.MODEL__UNETR_VIT_HIDD_MULT__INPUT.setValidator(self.int_validator)
181182
self.ui.MODEL__UNETR_VIT_NUM_FILTERS__INPUT.setValidator(self.int_validator)
183+
self.ui.MODEL__UNETR_DEC_KERNEL_SIZE__INPUT.setValidator(self.int_validator)
182184
self.ui.TRAIN__LR__INPUT.setValidator(self.float_validator)
183185
self.ui.TRAIN__W_DECAY__INPUT.setValidator(self.float_validator)
184186
self.ui.TRAIN__BATCH_SIZE__INPUT.setValidator(self.int_validator)
@@ -286,8 +288,10 @@ def __init__(self, log_file, log_dir):
286288
self.ui.DATA__PREPROCESS__MATCH_HISTOGRAM__REFERENCE_PATH__TEST__BN.clicked.connect(lambda: examine(self, "DATA__PREPROCESS__MATCH_HISTOGRAM__REFERENCE_PATH__TEST__INPUT", False))
287289
self.ui.val_data_gt_input_browse_bn.clicked.connect(lambda: examine(self, "DATA__VAL__GT_PATH__INPUT", False))
288290
self.ui.DATA__TRAIN__IN_MEMORY__INPUT.currentIndexChanged.connect(lambda: self.condition_db.combobox_hide_visible_action(self,
289-
[], widgets_to_set_cond=[
290-
(["DATA__VAL__TYPE__INPUT", "Not extracted from train (path needed)"], ["No"])
291+
["DATA__PREPROCESS__TRAIN__LABEL","DATA__PREPROCESS__TRAIN__INFO","DATA__PREPROCESS__TRAIN__INPUT"],
292+
widgets_to_set_cond=[
293+
(["DATA__VAL__TYPE__INPUT", "Not extracted from train (path needed)"], ["No"]),
294+
(["DATA__NORMALIZATION__APPLICATION_MODE__INPUT", "image"], ["No"]),
291295
], updated_widget="DATA__TRAIN__IN_MEMORY__INPUT"))
292296
self.ui.DATA__VAL__TYPE__INPUT.currentIndexChanged.connect(lambda: self.condition_db.combobox_hide_visible_action(self,
293297
["percentage_validation_label", "percentage_validation_info", "DATA__VAL__SPLIT_TRAIN__INPUT", "cross_validation_nfolds_label", "cross_validation_nfolds_info", "DATA__VAL__CROSS_VAL_NFOLD__INPUT",
@@ -297,30 +301,41 @@ def __init__(self, log_file, log_dir):
297301
"test_data_input_browse_bn", "test_exists_gt_label", "DATA__TEST__LOAD_GT__INPUT", "DATA__TEST__LOAD_GT__INFO","test_data_gt_label", "DATA__TEST__GT_PATH__INPUT","DATA__TEST__GT_PATH__INFO",
298302
"test_data_gt_input_browse_bn", "test_data_in_memory_label", "DATA__TEST__IN_MEMORY__INPUT", "DATA__TEST__IN_MEMORY__INFO","random_val_label", "DATA__VAL__RANDOM__INPUT","DATA__VAL__RANDOM__INFO",
299303
"validation_overlap_label", "DATA__VAL__OVERLAP__INFO", "DATA__VAL__OVERLAP__INPUT", "validation_padding_label", "DATA__VAL__PADDING__INFO", "DATA__VAL__PADDING__INPUT",
300-
],
304+
"DATA__PREPROCESS__VAL__LABEL","DATA__PREPROCESS__VAL__INFO", "DATA__PREPROCESS__VAL__INPUT"],
301305
widgets_to_set_cond=
302306
[
303307
(["DATA__TRAIN__IN_MEMORY__INPUT", "Yes"], ["Extract from train (split training)","Extract from train (cross validation)"])
304308
], updated_widget="DATA__VAL__TYPE__INPUT"))
305309
self.ui.DATA__VAL__IN_MEMORY__INPUT.currentIndexChanged.connect(lambda: self.condition_db.combobox_hide_visible_action(self,
306-
["validation_overlap_label", "DATA__VAL__OVERLAP__INFO", "DATA__VAL__OVERLAP__INPUT", "validation_padding_label", "DATA__VAL__PADDING__INFO", "DATA__VAL__PADDING__INPUT"]))
310+
["validation_overlap_label", "DATA__VAL__OVERLAP__INFO", "DATA__VAL__OVERLAP__INPUT", "validation_padding_label",
311+
"DATA__VAL__PADDING__INFO", "DATA__VAL__PADDING__INPUT","DATA__PREPROCESS__VAL__LABEL","DATA__PREPROCESS__VAL__INFO",
312+
"DATA__PREPROCESS__VAL__INPUT"]))
307313
self.ui.train_advanced_bn.clicked.connect(lambda: expand_hide_advanced_options(self, "train_advanced_bn", "train_advanced_options_frame"))
308314
self.ui.MODEL__ARCHITECTURE__INPUT.currentIndexChanged.connect(lambda: self.condition_db.combobox_hide_visible_action(self,
309315
["unet_model_like_frame", "unet_model_like_label", "sr_unet_like_heading", "sr_unet_like_frame", "transformers_frame", "transformers_label",
310316
"unetr_vit_hidden_multiple_label", "MODEL__UNETR_VIT_HIDD_MULT__INFO", "MODEL__UNETR_VIT_HIDD_MULT__INPUT",
311317
"unetr_num_filters_label", "MODEL__UNETR_VIT_NUM_FILTERS__INFO", "MODEL__UNETR_VIT_NUM_FILTERS__INPUT",
312318
"unetr_dec_act_label", "MODEL__UNETR_DEC_ACTIVATION__INFO", "MODEL__UNETR_DEC_ACTIVATION__INPUT",
319+
"MODEL__UNETR_DEC_KERNEL_SIZE__LABEL", "MODEL__UNETR_DEC_KERNEL_SIZE__INFO", "MODEL__UNETR_DEC_KERNEL_SIZE__INPUT",
320+
"MODEL__MAE_MASK_TYPE__LABEL", "MODEL__MAE_MASK_TYPE__INFO", "MODEL__MAE_MASK_TYPE__INPUT",
313321
"MODEL__MAE_MASK_RATIO__INPUT", "MODEL__MAE_MASK_RATIO__LABEL", "MODEL__MAE_MASK_RATIO__INFO",
314322
"MODEL__MAE_DEC_HIDDEN_SIZE__INPUT", "MODEL__MAE_DEC_HIDDEN_SIZE__LABEL", "MODEL__MAE_DEC_HIDDEN_SIZE__INFO",
315323
"MODEL__MAE_DEC_NUM_LAYERS__INPUT", "MODEL__MAE_DEC_NUM_LAYERS__LABEL", "MODEL__MAE_DEC_NUM_LAYERS__INFO",
316324
"MODEL__MAE_DEC_NUM_HEADS__INPUT", "MODEL__MAE_DEC_NUM_HEADS__LABEL", "MODEL__MAE_DEC_NUM_HEADS__INFO",
317325
"MODEL__MAE_DEC_MLP_DIMS__INPUT", "MODEL__MAE_DEC_MLP_DIMS__INFO", "MODEL__MAE_DEC_MLP_DIMS__LABEL"],
318-
widgets_to_set=["transformers_label"]))
326+
widgets_to_set_cond=
327+
[
328+
(["PROBLEM__SELF_SUPERVISED__PRETEXT_TASK__INPUT", "masking"], ["MAE"]),
329+
(["PROBLEM__SELF_SUPERVISED__PRETEXT_TASK__INPUT", "crappify"], ['U-Net', 'Residual U-Net', 'ResUNet++', 'Attention U-Net', 'MultiResUnet', 'SEUnet', "UNETR"])
330+
], updated_widget="MODEL__ARCHITECTURE__INPUT"))
319331
self.ui.TRAIN__OPTIMIZER__INPUT.currentIndexChanged.connect(lambda: self.condition_db.combobox_hide_visible_action(self,
320332
["TRAIN__W_DECAY__INPUT", "adamw_weight_decay_label", "TRAIN__W_DECAY__INFO",
321333
"TRAIN__OPT_BETAS__INPUT", "TRAIN__OPT_BETAS__LABEL", "TRAIN__OPT_BETAS__INFO"]))
322334
self.ui.TRAIN__PROFILER__INPUT.currentIndexChanged.connect(lambda: self.condition_db.combobox_hide_visible_action(self,
323335
["profiler_batch_range_label", "TRAIN__PROFILER_BATCH_RANGE__INPUT", "TRAIN__PROFILER_BATCH_RANGE__INFO"]))
336+
self.ui.DATA__NORMALIZATION__PERC_CLIP__INPUT.currentIndexChanged.connect(lambda: self.condition_db.combobox_hide_visible_action(self,
337+
["DATA__NORMALIZATION__PERC_LOWER__LABEL", "DATA__NORMALIZATION__PERC_LOWER__INFO", "DATA__NORMALIZATION__PERC_LOWER__INPUT",
338+
"DATA__NORMALIZATION__PERC_UPPER__LABEL", "DATA__NORMALIZATION__PERC_UPPER__INFO", "DATA__NORMALIZATION__PERC_UPPER__INPUT"]))
324339
self.ui.DATA__NORMALIZATION__TYPE__INPUT.currentIndexChanged.connect(lambda: self.condition_db.combobox_hide_visible_action(self,
325340
["custom_mean_label", "DATA__NORMALIZATION__CUSTOM_MEAN__INPUT", "DATA__NORMALIZATION__CUSTOM_MEAN__INFO",
326341
"custom_std_label", "DATA__NORMALIZATION__CUSTOM_STD__INPUT", "DATA__NORMALIZATION__CUSTOM_STD__INFO"]))
@@ -372,7 +387,16 @@ def __init__(self, log_file, log_dir):
372387
self.ui.DATA__PREPROCESS__CANNY__ENABLE__TEST__INPUT.currentIndexChanged.connect(lambda: self.condition_db.combobox_hide_visible_action(self,
373388
["DATA__PREPROCESS__CANNY__LOW_THRESHOLD__TEST__LABEL", "DATA__PREPROCESS__CANNY__LOW_THRESHOLD__TEST__INFO", "DATA__PREPROCESS__CANNY__LOW_THRESHOLD__TEST__INPUT",
374389
"DATA__PREPROCESS__CANNY__HIGH_THRESHOLD__TEST__LABEL", "DATA__PREPROCESS__CANNY__HIGH_THRESHOLD__TEST__INFO", "DATA__PREPROCESS__CANNY__HIGH_THRESHOLD__TEST__INPUT"]))
375-
390+
self.ui.DATA__TRAIN__INPUT_ZARR_MULTIPLE_DATA__INPUT.currentIndexChanged.connect(lambda: self.condition_db.combobox_hide_visible_action(self,
391+
["DATA__TRAIN__INPUT_ZARR_MULTIPLE_DATA_RAW_PATH__LABEL", "DATA__TRAIN__INPUT_ZARR_MULTIPLE_DATA_RAW_PATH__INFO", "DATA__TRAIN__INPUT_ZARR_MULTIPLE_DATA_RAW_PATH__INPUT",
392+
"DATA__TRAIN__INPUT_ZARR_MULTIPLE_DATA_GT_PATH__LABEL", "DATA__TRAIN__INPUT_ZARR_MULTIPLE_DATA_GT_PATH__INFO", "DATA__TRAIN__INPUT_ZARR_MULTIPLE_DATA_GT_PATH__INPUT"]))
393+
self.ui.DATA__VAL__INPUT_ZARR_MULTIPLE_DATA__INPUT.currentIndexChanged.connect(lambda: self.condition_db.combobox_hide_visible_action(self,
394+
["DATA__VAL__INPUT_ZARR_MULTIPLE_DATA_RAW_PATH__LABEL", "DATA__VAL__INPUT_ZARR_MULTIPLE_DATA_RAW_PATH__INFO", "DATA__VAL__INPUT_ZARR_MULTIPLE_DATA_RAW_PATH__INPUT",
395+
"DATA__VAL__INPUT_ZARR_MULTIPLE_DATA_GT_PATH__LABEL", "DATA__VAL__INPUT_ZARR_MULTIPLE_DATA_GT_PATH__INFO", "DATA__VAL__INPUT_ZARR_MULTIPLE_DATA_GT_PATH__INPUT"]))
396+
397+
self.ui.MODEL__MAE_MASK_TYPE__INPUT.currentIndexChanged.connect(lambda: self.condition_db.combobox_hide_visible_action(self,
398+
["MODEL__MAE_MASK_RATIO__LABEL", "MODEL__MAE_MASK_RATIO__INFO", "MODEL__MAE_MASK_RATIO__INPUT" ]))
399+
376400
self.ui.DATA__EXTRACT_RANDOM_PATCH__INPUT.currentIndexChanged.connect(lambda: self.condition_db.combobox_hide_visible_action(self,
377401
["extract_random_patch_frame_label", "extract_random_patch_frame"]))
378402
self.ui.TRAIN__LR_SCHEDULER__NAME__INPUT.currentIndexChanged.connect(lambda: self.condition_db.combobox_hide_visible_action(self,
@@ -458,7 +482,11 @@ def __init__(self, log_file, log_dir):
458482
"AUGMENTOR__SALT_AND_PEPPER_PROP__INPUT","AUGMENTOR__SALT_AND_PEPPER_PROP__INFO"]))
459483
self.ui.PROBLEM__SELF_SUPERVISED__PRETEXT_TASK__INPUT.currentIndexChanged.connect(lambda: self.condition_db.combobox_hide_visible_action(self,
460484
["ssl_resizing_factor_label","PROBLEM__SELF_SUPERVISED__RESIZING_FACTOR__INPUT","PROBLEM__SELF_SUPERVISED__RESIZING_FACTOR__INFO",
461-
"ssl_noise_label","PROBLEM__SELF_SUPERVISED__NOISE__INPUT", "PROBLEM__SELF_SUPERVISED__NOISE__INFO"]))
485+
"ssl_noise_label","PROBLEM__SELF_SUPERVISED__NOISE__INPUT", "PROBLEM__SELF_SUPERVISED__NOISE__INFO"]
486+
, widgets_to_set_cond=[
487+
(["MODEL__ARCHITECTURE__INPUT", "Attention U-Net"], ["crappify"]),
488+
(["MODEL__ARCHITECTURE__INPUT", "MAE"], ["masking"])
489+
], updated_widget="PROBLEM__SELF_SUPERVISED__PRETEXT_TASK__INPUT"))
462490

463491
# Test page buttons
464492
self.ui.TEST__ENABLE__INPUT.currentIndexChanged.connect(lambda: self.condition_db.combobox_hide_visible_action(self,["test_tab_widget"]))
@@ -476,10 +504,15 @@ def __init__(self, log_file, log_dir):
476504
self.ui.test_advanced_bn.clicked.connect(lambda: expand_hide_advanced_options(self, "test_advanced_bn", "test_advanced_options_frame"))
477505
self.ui.TEST__BY_CHUNKS__ENABLE__INPUT.currentIndexChanged.connect(lambda: self.condition_db.combobox_hide_visible_action(self,
478506
["process_by_chunks_label","process_by_chunks_frame"]))
507+
self.ui.TEST__BY_CHUNKS__INPUT_ZARR_MULTIPLE_DATA__INPUT.currentIndexChanged.connect(lambda: self.condition_db.combobox_hide_visible_action(self,
508+
["TEST__BY_CHUNKS__INPUT_ZARR_MULTIPLE_DATA_RAW_PATH__LABEL","TEST__BY_CHUNKS__INPUT_ZARR_MULTIPLE_DATA_RAW_PATH__INFO","TEST__BY_CHUNKS__INPUT_ZARR_MULTIPLE_DATA_RAW_PATH__INPUT",
509+
"TEST__BY_CHUNKS__INPUT_ZARR_MULTIPLE_DATA_GT_PATH__LABEL","TEST__BY_CHUNKS__INPUT_ZARR_MULTIPLE_DATA_GT_PATH__INFO","TEST__BY_CHUNKS__INPUT_ZARR_MULTIPLE_DATA_GT_PATH__INPUT",]))
479510
self.ui.TEST__BY_CHUNKS__WORKFLOW_PROCESS__ENABLE__INPUT.currentIndexChanged.connect(lambda: self.condition_db.combobox_hide_visible_action(self,
480511
["TEST__BY_CHUNKS__WORKFLOW_PROCESS__TYPE__LABEL","TEST__BY_CHUNKS__WORKFLOW_PROCESS__TYPE__INPUT","TEST__BY_CHUNKS__WORKFLOW_PROCESS__TYPE__INFO"]))
481512
self.ui.TRAIN__ENABLE__INPUT.currentIndexChanged.connect(lambda: self.condition_db.combobox_hide_visible_action(self,
482513
["DATA__PATCH_SIZE__TEST__LABEL","DATA__PATCH_SIZE__TEST__INFO","DATA__PATCH_SIZE__TEST__INPUT"]))
514+
self.ui.DATA__TEST__IN_MEMORY__INPUT.currentIndexChanged.connect(lambda: self.condition_db.combobox_hide_visible_action(self,
515+
["DATA__PREPROCESS__TEST__FRAME", "preprocessing_test_frame"]))
483516

484517
self.ui.TEST__POST_PROCESSING__YZ_FILTERING__SEM_SEG__INPUT.currentIndexChanged.connect(lambda: self.condition_db.combobox_hide_visible_action(self,
485518
["sem_seg_yz_filtering_size_label","TEST__POST_PROCESSING__YZ_FILTERING_SIZE__SEM_SEG__INPUT","TEST__POST_PROCESSING__YZ_FILTERING_SIZE__SEM_SEG__INFO"]))
@@ -827,8 +860,7 @@ def check_new_gui_version(self):
827860
print(f"Local GUI version: {self.cfg.settings['biapy_gui_version']}")
828861
print(f"Remote last version's hash: {sha}")
829862
print(f"Remote last version: {vtag}")
830-
if sha is not None and vtag is not None and sha != self.cfg.settings['biapy_gui_last_version_hash'] and \
831-
vtag != self.cfg.settings['biapy_gui_version']:
863+
if sha is not None and vtag is not None and vtag != self.cfg.settings['biapy_gui_version']:
832864
self.dialog_exec("There is a new version of BiaPy's graphical user interface available. Please, "
833865
"download it <a href='https://biapyx.github.io'>here</a>", reason="inform_user")
834866

run_functions.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,11 @@ def update_cont_state(self, svalue):
113113
st = "unknown"
114114
if svalue == 1:
115115
if self.parent_worker.biapy_container is not None:
116-
self.parent_worker.biapy_container.reload()
116+
try:
117+
self.parent_worker.biapy_container.reload()
118+
except Exception as e:
119+
print(f"Possible expected error during container status reload(): {e}")
120+
117121
st = self.parent_worker.biapy_container.status
118122
if st == "running":
119123
st = "<span style=\"color:green;\">R"+st[1:]+"</span>"

0 commit comments

Comments
 (0)