go-nuclear icon indicating copy to clipboard operation
go-nuclear copied to clipboard

Model not found using demo configuration file

Open jni opened this issue 6 months ago • 0 comments

I just tried to run the generic plantseg segmentation with a collaborator using the sample config file, which uses this model:

https://github.com/kreshuklab/go-nuclear/blob/12caacbabca35a3d386fe038afa8fd47cc61f495/plantseg/configs/config_pred_wide_applicability.yaml#L40

but we ran into this error:

(plant-seg) acom0007@MU00158125X ~ % plantseg --config /Users/acom0007/Downloads/config_pred_wide_applicability.yaml
You are using the latest version of PlantSeg: 1.8.1.
/Users/acom0007/micromamba/envs/plant-seg/lib/python3.11/site-packages/plantseg/models/zoo.py:286: UserWarning: Model generic_plant_nuclei_3D not found in the models zoo configuration.
  warn(f"Model {model_name} not found in the models zoo configuration.")
Traceback (most recent call last):
  File "/Users/acom0007/micromamba/envs/plant-seg/bin/plantseg", line 10, in <module>
    sys.exit(main())
             ^^^^^^
  File "/Users/acom0007/micromamba/envs/plant-seg/lib/python3.11/site-packages/plantseg/run_plantseg.py", line 83, in main
    process_config(args.config)
  File "/Users/acom0007/micromamba/envs/plant-seg/lib/python3.11/site-packages/plantseg/run_plantseg.py", line 64, in process_config
    raw2seg(config)
  File "/Users/acom0007/micromamba/envs/plant-seg/lib/python3.11/site-packages/plantseg/pipeline/raw2seg.py", line 117, in raw2seg
    config = config_validation(config)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/acom0007/micromamba/envs/plant-seg/lib/python3.11/site-packages/plantseg/pipeline/config_validation.py", line 263, in config_validation
    config = recursive_config_check(config, template)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/acom0007/micromamba/envs/plant-seg/lib/python3.11/site-packages/plantseg/pipeline/config_validation.py", line 191, in recursive_config_check
    config[key] = recursive_config_check(config[key], template[key])
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/acom0007/micromamba/envs/plant-seg/lib/python3.11/site-packages/plantseg/pipeline/config_validation.py", line 187, in recursive_config_check
    config[key] = value(key, config[key])
                  ^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/acom0007/micromamba/envs/plant-seg/lib/python3.11/site-packages/plantseg/pipeline/config_validation.py", line 146, in __call__
    out = check(key, out, self.fallback)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/acom0007/micromamba/envs/plant-seg/lib/python3.11/site-packages/plantseg/pipeline/config_validation.py", line 100, in model_exist
    _error_message(f"value must be one of {_list_models}", key, value, fallback)
  File "/Users/acom0007/micromamba/envs/plant-seg/lib/python3.11/site-packages/plantseg/pipeline/config_validation.py", line 29, in _error_message
    raise RuntimeError(_error)
RuntimeError: key: model_name has got value: generic_plant_nuclei_3D, but value must be one of ['generic_confocal_3D_unet', 'generic_light_sheet_3D_unet', 'confocal_3D_unet_ovules_ds1x', 'confocal_3D_unet_ovules_ds2x', 'confocal_3D_unet_ovules_ds3x', 'confocal_2D_unet_ovules_ds2x', 'lightsheet_3D_unet_root_ds1x', 'lightsheet_3D_unet_root_ds2x', 'lightsheet_3D_unet_root_ds3x', 'lightsheet_2D_unet_root_ds1x', 'lightsheet_3D_unet_root_nuclei_ds1x', 'lightsheet_2D_unet_root_nuclei_ds1x', 'confocal_2D_unet_sa_meristem_cells', 'confocal_3D_unet_sa_meristem_cells', 'lightsheet_3D_unet_mouse_embryo_cells', 'confocal_3D_unet_mouse_embryo_nuclei', 'PlantSeg_3Dnuc_platinum']

We're not sure if this is a typo in the demo config file, or a placeholder that wasn't meant to be used, or a missing update to plantseg...?

At any rate, the README instructions only specify to change the path, so we would super appreciate more guidance on how to use the models correctly! 🙏

jni avatar Jul 31 '24 09:07 jni