Skip to content

Conversation

@sibocw
Copy link
Contributor

@sibocw sibocw commented Nov 22, 2025

Addressing points raised in peer review at JOSS: openjournals/joss-reviews#8557

TODO

@sibocw

Code/tutorial change

Paper/docs only

  • Add background info on "why fruit fly"
  • Clarify why seqikpy is less "complex to set up" and more "stand-alone"
  • Clarify that "alignment" = "calibration"
  • Add background info on Kalman filter and other IK approaches (Gizem also working on this)
  • Add info on parallelization
  • Add info on Aversive++'s ik library

@gizemozd

  • Explain how a user would be able to obtain their own pose_data .pkl files in the tutorial
  • In the grooming tutorial, this folder does not exist: "anipose_pose-220807_aJO-GAL4xUAS-CsChr_Fly002_002_Beh" (involves updating the tutorial)
  • Having one unified class for both leg and antennal kinematic chains
  • @gizemozd Can you test if the tutorials still execute without error? I didn't actually try to run them due to missing files —sibo
  • Explain how we obtained the TEMPLATE_NMF coordinates (i.e. load_template_from_sdf)
  • Add on to Sibo's writing about kalman filters and other ik approaches

sibocw and others added 9 commits November 22, 2025 18:45
* bump up python and numpy versions

* Parallelize at leg level

* add AI-generated tests

* wip - implement parallelization over time

* parallelize over time

* get parallelization example working and run scaling test on SCITAS

* refactor different processing modes into separate methods

* fix typos in parallel pipeline

* update unit tests for parallelization

* fix more typos and inconsistencies in docs

* minor doc/assertion updates

* Python 3.9 no more - EOL reached. This simplifies typehinting syntax
* Consolidate hard-coded constants into dataclass. Simplify logging convention in the meantime.

* introduce new body_config module manage constant deprecation

* fix typos and filter out dof type warnings from ikpy
* run black

* update contributing.md

* fix various doc site formatting issue and fix jupyter-book version to <2.

* remove largely duplicated walking tutorial from main menu of the doc site

* Add explicit instruction for cloning the directory if the data folder is needed

* fix link to nmf zero pose image

* update python version in CI to match new python version range

* typo/doc improvement
* update paper

* (auto) Paper PDF Draft

* add background info on kalman filter and DL-based ik approaches. Recompile paper pdf

* (auto) Paper PDF Draft

* fix typo

* keep pdf in repo after all - it's managed by ci

* (auto) Paper PDF Draft

* add information on optimization of all dofs instead of sequentially

* (auto) Paper PDF Draft

---------

Co-authored-by: sibocw <[email protected]>
* add new tutorial on parallel processing

* fix typos
@sibocw sibocw marked this pull request as ready for review November 23, 2025 15:55
@sibocw sibocw requested review from Copilot and gizemozd November 23, 2025 15:55
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request addresses feedback from the JOSS peer review process, implementing several major improvements to the seqikpy package including parallelization support, refactored body configuration management, updated dependencies, and enhanced documentation.

Key changes:

  • Implemented parallel processing for inverse kinematics over legs and time dimensions using joblib
  • Consolidated hardcoded body parameters into a new BodyConfig dataclass with deprecated backward compatibility
  • Updated Python support to 3.9-3.13, upgraded numpy to >=2.0, and added joblib dependency

Reviewed changes

Copilot reviewed 31 out of 37 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
setup.py Updated Python version constraints, dependencies (numpy 2.0, joblib), and package classifiers
seqikpy/body_config.py New module introducing BodyConfig dataclass for centralized body parameter management
seqikpy/data.py Deprecated module now redirects to body_config with deprecation warnings
seqikpy/leg_inverse_kinematics.py Added parallelization support with n_workers parameter and parallel processing over legs/time
seqikpy/utils.py Added split_arrays_into_chunks and merge_chunks_into_arrays functions for time-series chunking
tests/test_parallelization.py Comprehensive new test suite covering parallelization functionality
seqikpy/kinematic_chain.py Refactored to use body_config and suppress ikpy warnings more cleanly
seqikpy/alignment.py Updated imports to use body_config instead of deprecated data module
docs/* Updated documentation, tutorials, and paper with parallelization info and corrections
examples/* Updated all examples to use new body_config API

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@gizemozd
Copy link
Member

Hi @sibocw,

Thanks again for your help! I’ve incorporated my edits — mostly fixing the aforementioned bugs and adding a new example that demonstrates how to use seqikpy on mouse forelimb kinematics. All tutorials run smoothly on my end.

I’m mostly done with the text edits and will move on to reviewing your changes next.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 36 out of 49 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@gizemozd gizemozd merged commit 5f3b37b into main Dec 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants