Skip to main content

GLM-HMM and GLM-HMMT tooling for behavioural task analysis.

Project description

glmhmmt

glmhmmt is the installable package for the Dynamax-based GLM-HMM / GLM-HMMT code.

If someone in the lab only wants to import the model class in their own code, this package is enough:

pip install "git+https://github.com/BrainCircuitsBehaviorLab/glmhmmt.git"

or with uv:

uv pip install "git+https://github.com/BrainCircuitsBehaviorLab/glmhmmt.git"

If they want to add it as a dependency in another uv project:

uv add "glmhmmt @ git+https://github.com/BrainCircuitsBehaviorLab/glmhmmt.git"

Then in Python:

from glmhmmt import SoftmaxGLMHMM

If they want the baseline GLM fit directly in their own code, including binary lapses:

from glmhmmt import fit_glm

Direct Model Use

See examples/use_softmax_glmhmm.py for a minimal example that builds the model directly from arrays, without any task adapter.

For a baseline GLM example, see examples/glm_lapses/example.py.

The package root uses lazy imports, so importing SoftmaxGLMHMM does not require task adapters.

The CLI entrypoints under glmhmmt.cli.* are wrappers around task adapters, runtime paths, and result directories. They are useful for command-line workflows, but they are not the recommended import interface for another project.

Task Adapters Are Optional

This package does not need task adapters when someone only wants the reusable model classes and fitting utilities.

If a user wants task-aware CLIs or notebooks, they can provide adapters in either of these ways:

  1. Put a tasks/ package in their own working directory and point GLMHMMT_TASK_PATHS at it.
  2. Install a separate package that exposes entry points in the glmhmmt.tasks group.

Minimal entry-point example:

[project.entry-points."glmhmmt.tasks"]
my_lab_task = "my_lab_glmhmmt.task:MyLabTaskAdapter"

Recommended Sharing Workflow

For lab use, the simplest setup is:

  1. Keep glmhmmt in its own Git repo.
  2. Keep task adapters in a separate companion repo.
  3. Install both from Git or from local editable paths during development.

That is usually better than publishing to PyPI immediately, because:

  • it avoids exposing unrelated analysis code
  • updates are simple
  • private sharing inside the lab is easy

Publish to PyPI later only if you want a public, versioned release.

Local Development

For work inside this repository:

uv sync
uv run python -c "from glmhmmt import SoftmaxGLMHMM; print(SoftmaxGLMHMM)"

If you want the notebook extras too:

uv sync --extra notebooks

The project-local runtime overrides live in config.toml. Packaged defaults live in src/glmhmmt/resources/default_config.toml.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

glmhmmt-0.1.0.tar.gz (133.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

glmhmmt-0.1.0-py3-none-any.whl (154.1 kB view details)

Uploaded Python 3

File details

Details for the file glmhmmt-0.1.0.tar.gz.

File metadata

  • Download URL: glmhmmt-0.1.0.tar.gz
  • Upload date:
  • Size: 133.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for glmhmmt-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d2fb22eb725f3ce3c029694fed8811aa7928e899a5855a2d05b632024f67cd28
MD5 8ee765caf5899836e0b6656fb7f000ad
BLAKE2b-256 7017c71a262cc0e1c47f719607e6cdb7e3073f84840155e008ac39d2d0ad3b01

See more details on using hashes here.

Provenance

The following attestation bundles were made for glmhmmt-0.1.0.tar.gz:

Publisher: publish.yml on BrainCircuitsBehaviorLab/glmhmmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file glmhmmt-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: glmhmmt-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 154.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for glmhmmt-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 29d7cc0c78217f2a92763e3ca2b6df32766b539963f7b3bd886219cf07ac061a
MD5 7683cf8f517675b14600011bae8d9c93
BLAKE2b-256 7a79cd83cffcc40ee9819f71ec6c590a0e71b579b1af713c09e5d038601a87ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for glmhmmt-0.1.0-py3-none-any.whl:

Publisher: publish.yml on BrainCircuitsBehaviorLab/glmhmmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page