Add HIPPIE optional dependency for neuron cell-type classification #120
Open
JesusGF1 wants to merge 5 commits into
Open
Add HIPPIE optional dependency for neuron cell-type classification #120JesusGF1 wants to merge 5 commits into
JesusGF1 wants to merge 5 commits into
Conversation
Integrates the pretrained HIPPIE multimodal model (Jesusgf23/hippie on HuggingFace) as an optional spikelab[hippie] extra. Neurons are encoded via waveform + ISI + autocorrelogram into a 30-D latent space, then visualised with UMAP and clustered with HDBSCAN. Changes: - spikedata/hippie_adapter.py: feature extraction from SpikeData and full classify_neurons() pipeline - mcp_server/tools/analysis.py: classify_neurons_hippie() async tool - mcp_server/server.py: tool schema and _TOOL_DISPATCH entry - pyproject.toml: hippie optional extra (torch, hf-hub, umap-learn, hdbscan) - tests/test_hippie_adapter.py: 13 unit tests, skipped without hippie - docs/guides/hippie_classification.rst: full pipeline guide covering Kilosort+raw-bin (Path A), NWB (Path B), pre-computed waveforms (Path C), MCP agent prompts, and known MCP per-unit waveform limitation - docs/guides/hippie_changes.md: codebase change schematic Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Extends the HIPPIE integration with a self-supervised data compression path for users without cell-type or technology labels. Changes: - hippie_adapter.py: train_vae_on_spikedata() and compress_neurons() - analysis.py: train_vae_hippie() and compress_neurons_hippie() MCP tools - server.py: tool schemas and dispatch entries for both new tools - hippie_classification.rst: new "Unsupervised VAE compression" section with Python, direct-API, and MCP agent examples and a comparison table against the pretrained classifier Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Documents copy-paste prompts for running pretrained HIPPIE classifier and unsupervised VAE compression via the SpikeLab MCP server across all three Neuropixels pipeline entry points. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When pynwb appended one or more spike trains before raising an exception, the h5py fallback path would add its own full set of trains on top, causing a train/attribute count mismatch. Clear both lists in the except branch so h5py starts from a clean slate. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Integrates https://github.com/braingeneers/HIPPIE as an optional SpikeLab dependency (pip install spikelab[hippie]) that lets users classify neurons into cell types using a pretrained multimodal cVAE, or train their own VAE for data compression.
What's new