Support for JABS behavior classification analyses
Is your feature request related to a problem? Please describe.
A few of our users have expressed interest in the JABS behavior classification tool. Although limited to rodents with a predefined set of keypoints (skeleton), we think we could make it easier for movement users to transform their data into a JABS-compatible format.
Describe the solution you'd like We need to think more about this, but we think we could support JABS use in a few ways:
- support (smart) mapping from any user-defined set of keypoints to JABS-required keypoints (feasible in the medium term)
- support loading behaviour classification output from JABS into
movement(more longer term)
Describe alternatives you've considered \
Additional context Eventually we should consider supporting behaviour classification outputs from other popular tools, such as keypoint moseq, too.
See @lochhh's solution here: https://github.com/lochhh/CalMS21xJABS
sleap-io now has load_jabs and save_jabs funcitons: https://io.sleap.ai/latest/formats/#sleap_io.load_jabs
Perhaps we could leverage those to easily load/save the JABS pose format by way of SLEAP
If we want to convert any dataset to JABS-compatible, we will probably need to:
- properly map the keypoints to "JABS keypoints", and
- compute the features used by the JABS classifier (note that these are computed prior to using the JABS AL GUI).
Re this last point: the complete list of base features is defined in the supplementary table S4. Additionally there are some window features derived from these base features (and possible other derived features too?) - for this the best reference is likely the code itself (see here).