talmolab / sleap

A deep learning framework for multi-animal pose tracking.
https://sleap.ai
Other
435 stars 97 forks source link

Attempted merge on macOS causes "ValueError: Labels.skeleton can only be used when there is only a single skeleton saved in the labels. Use Labels.skeletons instead." #2005

Closed christinaveed closed 3 weeks ago

christinaveed commented 3 weeks ago

Bug description

I created a new .slp file and tried to merge an old file into it using File --> Merge into project. The merge failed and I got an error message instead.

Expected behaviour

I expected data from the old file to merge into the new file.

Actual behaviour

The merge fails and I get an error message in the terminal.

Your personal set up

Environment packages ``` # paste output of `pip freeze` or `conda list` here ```
Logs 2024-10-23 15:40:00.492 python[13934:745483] +[IMKClient subclass]: chose IMKClient_Legacy 2024-10-23 15:40:00.492 python[13934:745483] +[IMKInputSession subclass]: chose IMKInputSession_Legacy 2024-10-23 15:40:02.404 python[13934:745483] The class 'NSOpenPanel' overrides the method identifier. This method is implemented by class 'NSWindow' Traceback (most recent call last): File "/Users/christinahviid/sleap/sleap/gui/commands.py", line 608, in mergeProject self.execute(MergeProject, filenames=filenames) File "/Users/christinahviid/sleap/sleap/gui/commands.py", line 241, in execute command().execute(context=self, params=kwargs) File "/Users/christinahviid/sleap/sleap/gui/commands.py", line 133, in execute self.ask_and_do(context, params) File "/Users/christinahviid/sleap/sleap/gui/commands.py", line 2849, in ask_and_do MergeDialog(base_labels=context.labels, new_labels=new_labels).exec_() File "/Users/christinahviid/sleap/sleap/gui/dialogs/merge.py", line 51, in __init__ if self.base_labels.skeleton.node_names != self.new_labels.skeleton.node_names: File "/Users/christinahviid/sleap/sleap/io/dataset.py", line 563, in skeleton raise ValueError( ValueError: Labels.skeleton can only be used when there is only a single skeleton saved in the labels. Use Labels.skeletons instead. ``` # paste relevant logs here, if any ```
eberrigan commented 3 weeks ago

Hi @christinaveed,

Are your skeletons matching (including node names)?

Best,

Elizabeth

christinaveed commented 3 weeks ago

Hi, thanks for the response! The old file has videos, a skeleton, and labeled instances. The new file only has videos and does not have any skeletons or instances yet. I think I see what the problem was now - once I added a skeleton and an instance to the new file, the merge worked.

Thanks for the help! Christina