Skip to content

Releases: dattalab/keypoint-moseq

Keypoint MoSeq 0.4.1

18 Dec 20:37
Compare
Choose a tag to compare

Bumped jax-moseq dependency to version 0.2.1

Keypoint MoSeq 0.4.0

15 Dec 15:24
d406906
Compare
Choose a tag to compare

Important note!

Because of the change in jax-moseq version (see below), models trained before this update will no longer be compatible with the modeling code. Therefore, if you plan to update and have previous keypoint-MoSeq projects, we recommend installing the new code version in a separate conda environment so that you can still interact with existing projects.

Changes

  • Updated jax-moseq dependency to version 0.2.0

  • Added option for location-aware modeling (see docs for details)

  • Added a new section docs section and associated code for model comparison, selection and averaging

  • Added option to load data from facemap

  • Updated kappa scan example code to include both autoregressive-only and full-model modeling steps

  • Fixed conda environment file for Windows GPU install (thanks @!)

  • Added support for 3D data in statistical analysis pipeline (thanks @)

  • Bugfixes

Keypoint MoSeq 0.3.2

08 Nov 22:05
Compare
Choose a tag to compare

Another analysis pipeline bugfix related to seaborn version update

Keypoint MoSeq 0.3.1

08 Nov 18:03
Compare
Choose a tag to compare

Bug fix in analysis pipeline

Keypoint MoSeq 0.3.0

07 Nov 20:14
Compare
Choose a tag to compare

Overhaul of statistical analysis pipeline

We refactored the statistical analysis pipeline so that it no longer depends on jupyter notebook extensions (many users reported issues installing the extensions). Note: if you have already run the analysis pipeline, your saved group labels and syllable names will no longer be usable after this version update unless you run the conversion code below.

Analysis pipeline conversion code

Previously, group labels and syllable names were stored in yaml files (index.yaml and syll_info.yaml respectively). As of this update, they will be stored in csv files. To convert from yaml to csv, use the conversion code below:

project_dir = XXX
model_name = XXX

import os
import yaml
import pandas as pd

# convert index.yaml
index_filepath = os.path.join(project_dir, 'index.yaml')
with open(index_filepath, 'r') as f:
	index_data = yaml.safe_load(f)
index_df = pd.DataFrame({"group": [i["group"] for i in index_data["files"]],"name": [i["name"] for i in index_data["files"]]})
# write index dataframe to csv
index_df[["name","group"]].to_csv(os.path.join(project_dir, "index.csv"), index=False)

# convert syll_info.yaml
syll_info_path = os.path.join(project_dir, model_name, "syll_info.yaml")
with open(syll_info_path, "r") as f:
	syll_info = yaml.safe_load(f)
syll_info_df = {"syllable": [], "short_description": [], "label": [], "movie_path": []}
for k, v in syll_info.items():
    syll_info_df["syllable"].append(k)
    syll_info_df["short_description"].append(v["desc"])
    syll_info_df["label"].append(v["label"])
    syll_info_df["movie_path"].append(v["movie_path"])
syll_info_df = pd.DataFrame(syll_info_df)
syll_info_df.to_csv(os.path.join(project_dir, model_name, "syll_info.csv"), index=False)

Other main changes

Support for 3D grid movies

It is now possible to generate grid movies based on multi-camera 3D keypoint tracking. See docs for details.

Automatic kappa scans

We wrote example code for performing a sequence model fits with different values of the stickiness hyperparameter (kappa), and also added a new function to help visualize the results. See docs for details.

Calibration bug-fix

Many users were reporting bugs in the calibration step of the keypoint-MoSeq pipeline, which were caused by recent version releases in the holoviews/panel/jupyter ecosystem. We updated the code to fix these bugs. If you still encounter bugs with the calibration widget, try upgrading the relevant packages:

pip install holoviews --upgrade
pip install bokeh --upgrade
pip install panel --upgrade
pip install ipywidgets --upgrade
pip install jupyter --upgrade

Note: From now on, the calibration widget will only work in jupyter lab. It will not work in jupyter notebook.

Other main changes

New FAQs section on visualization

We added a new FAQ section about visualization. The section covers:

  • Making grid movies for 3D data
  • Why are there only trajectory plots for a subset of syllables?
  • Why are there only grid movies for a subset of syllables?
  • Why do my trajectory plots and grid movies disagree?

New FAQ section on "Advanced topics" in modeling

We added a new FAQ section about advanced modeling topics. The section covers:

  • Exporting model-based pose estimates
  • Automatic kappa scans

Removed code for model-free changepoint analysis.

The original keypoint-MoSeq reprint included an analysis of changepoints and a complicated procedure to identifying them. These have mostly been removed in the revision, so we are deleting them here too.

Other minor changes

  • Return sampled instances in generate_grid_movies
  • Allow passing arbitrary keypoint colors in viz functions
  • Allow manual setting of axis lims for trajectory plots
  • Allow setting "jitter" and "seed" inputs in model fitting calls
  • Make "density_sample" a separae kwarg in viz functions
  • Small changes to wording of docs
  • Bugfixes

New Contributors

Full Changelog: 0.2.5...0.3.0

Keypoint MoSeq 0.2.5

20 Aug 16:26
Compare
Choose a tag to compare

Bugfix in video matching

Keypoint MoSeq 0.2.4

15 Aug 14:12
Compare
Choose a tag to compare
  • Bump jax_moseq dependency to 0.1.0 (which now depends on dynamax 0.1.2) -> more memory efficient fitting
  • Small bug fix in config checking

Full Changelog: 0.2.3...0.2.4

Keypoint MoSeq 0.2.3

11 Aug 19:50
Compare
Choose a tag to compare
  • Better error message for duplicate file names
  • Removed output_notebook from main thread of analysis.py
  • Added missing dependency and fixed some docstrings

Keypoint MoSeq 0.2.2

09 Aug 15:49
Compare
Choose a tag to compare

Small bugfix in hyperparameter handling for apply_model

Keypoint MoSeq 0.2.1

08 Aug 19:51
Compare
Choose a tag to compare

Bugfix in save destination for trajectory plots