YttriLab / A-SOID

An active learning platform for expert-guided, data efficient discovery of behavior.
Other
53 stars 8 forks source link

Error after loading 'Discover' config.ini in 'Extract Features' section #74

Closed Mijar007 closed 6 months ago

Mijar007 commented 7 months ago

Describe the bug I saved the config after the 'Discover' step and loaded it. In the 'Extract Features' section, the following error is shown:

FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Rabenstein/Desktop/asoid_output\\Feb-29-2024_disc1\\data.sav'
Traceback:
File "C:\ProgramData\anaconda3\envs\asoid\lib\site-packages\streamlit\runtime\scriptrunner\script_runner.py", line 535, in _run_script
    exec(code, module.__dict__)
File "C:\Users\Rabenstein\Python\A-SOID-main\asoid\app.py", line 328, in <module>
    main()
File "C:\Users\Rabenstein\Python\A-SOID-main\asoid\app.py", line 297, in main
    B_extract_features.main(config=st.session_state['config'])
File "C:\Users\Rabenstein\Python\A-SOID-main\asoid\apps\B_extract_features.py", line 109, in main
    prompt_setup(prompt_container, software, framerate,
File "C:\Users\Rabenstein\Python\A-SOID-main\asoid\apps\B_extract_features.py", line 25, in prompt_setup
    data, config = load_data(working_dir, prefix)
File "C:\Users\Rabenstein\Python\A-SOID-main\asoid\utils\load_workspace.py", line 23, in load_data
    data = _load_sav(path, name, "data.sav")
File "C:\Users\Rabenstein\Python\A-SOID-main\asoid\utils\load_workspace.py", line 9, in _load_sav
    with open(os.path.join(path, name, filename), 'rb') as fr:

Workflow-wise, it makes sense, that I cannot extract features, since they are already extracted during the 'Discover' step. It would be better if a message would be displayed, instead of an error, telling you to skip this step. Maybe you can add a keyword to the config.ini to differentiate between primary training sessions and sessions after 'Discover'. Or simply let the tool check if the 'DATA_INPUT_FILES' property in the config.ini is empty.

Expected behavior A message instead of an error

Screenshots

image

Project Config (please post the content of the corresponding config.ini file)

[Project] PROJECT_TYPE = DeepLabCut PROJECT_NAME = Feb-29-2024_disc1 PROJECT_PATH = C:\Users\Rabenstein/Desktop/asoid_output FRAMERATE = 30 KEYPOINTS_CHOSEN = Nose, Front_Right_1, Front_Left_1, Rear_Right_1, Rear_Left_1, Midline_Front, Midline_Center, Midline_Rear EXCLUDE_OTHER = False FILE_TYPE = csv INDIVIDUALS_CHOSEN = single animal CLASSES = Wiggle, Wiggle_1, Wiggle_2, Wiggle_3, Wiggle_4, Wiggle_5, Wiggle_6, Wiggle_7, Wiggle_8, other, other_1, other_2, other_3, other_4, other_5, other_6, other_7, other_8, other_9 MULTI_ANIMAL = False IS_3D = False

[Data] DATA_INPUT_FILES = LABEL_INPUT_FILES = None ROOT_PATH = None

[Processing] LLH_VALUE = 0.1 ITERATION = 0 MIN_DURATION = 0.05000000000000002 TRAIN_FRACTION = 0.09999999999999999 MAX_ITER = 100 MAX_SAMPLES_ITER = 190 CONF_THRESHOLD = 0.5 N_SHUFFLED_SPLIT = None

JensBlack commented 6 months ago

Thank you for reporting this. I agree that this would be a good addition to the workflow. I will add this in the coming update.