MountainSort5: expose `pca_seed` / `random_seed` sorter param (pair with MS5 configurable PCA seed)
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
Start with src/spikeinterface/sorters/external/mountainsort5.py, especially the whitening_seed parameter and _params_description; check the current MountainSort5 Scheme parameter objects and issue #69 to confirm seed support before forwarding it. Then review the sorter documentation and existing MountainSort5 tests to identify where to document and check reproducibility. Done means a seed parameter is passed through, its distinction from whitening_seed and threading caveats are documented, and a small seeded-run test is added.
索引モデルが issue の本文から書いたものです。
説明
Summary
si.run_sorter('mountainsort5', ...) already accepts whitening_seed and forwards it to whiten(seed=...) (#4600). There is no analogous parameter for MountainSort5's internal PCA / clustering RNG.
Callers who need deterministic, seed-controlled sorts currently set process-global np.random.seed / random.seed before run_sorter, force n_jobs=1 + single-threaded BLAS, and hope MS5 / sklearn honor the ambient RNG. That is fragile:
- On mountainsort5 < 0.5.9, unseeded
PCA()can follow the ambient NumPy RNG. - On mountainsort5 ≥ 0.5.9, PCA hardcodes
random_state=0, so ambient seeding no longer changes PCA output.
Proposal
Depends on exposing a seed in MountainSort5 itself (https://github.com/flatironinstitute/mountainsort5/issues/69).
- Add a sorter param next to
whitening_seedinsrc/spikeinterface/sorters/external/mountainsort5.py(suggested name:pca_seedorrandom_seed; default matching MS5, likely0). - Forward it into the Scheme1/Scheme2(/3) parameter objects once MS5 supports it.
- Document in
_params_descriptionand the sorter docs that:- this controls MS5 PCA / classifier PCA RNG;
whitening_seedis separate (SI whitening before MS5);n_jobs > 1/ multi-threaded BLAS can void bit-identical reproducibility.
- Add a small test: two runs with the same seed agree on spike trains (or unit count + spike counts on a tiny recording); a different seed can differ (if feasible in CI time).
Optional follow-ups (not required for this PR)
- Persist the effective seed into sorting-folder / provenance metadata.
- A top-level
seed=onrun_sorterthat fans out to sorter-specific kwargs when supported. - A short “deterministic sorting” recipe in the docs (
seed+ spawn/mp_context+threadpool_limits(1)).
I can open a PR once the MS5 parameter lands (or against a known MS5 commit if maintainers prefer).
Context
We rely on reproducible MS5 sorts for parameter sweeps and for re-running a chosen configuration with a content fingerprint of the spike trains. An explicit sorter kwarg would make that a supported SpikeInterface path instead of ambient RNG.
- 主要言語
- Python
- スター
- 870
- フォーク
- 284
- 平均マージ
- 3日 1時間
- マージ済み PR(30日)
- 41
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
SpikeInterface/spikeinterface のほかの issue
-
Saving a multi-segment recording fails when only some segments have a t_start対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンcore
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
SpikeInterface/spikeinterface#4914 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
SpikeInterface/spikeinterface#4842 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
SpikeInterface/spikeinterface#4510 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
BaseSorting.select_periods() drops properties, annotations and the registered recording対応中かも @AxelNoun が今日担当しました。 オープンbug core
難易度 2/5 1〜3時間 初心者へのやさしさ 20/100
SpikeInterface/spikeinterface#4915 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
Optional dependencies don't participate in extension invalidation対応中かも @alejoe91 が 1 日前に担当しました。 オープンbug core
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
SpikeInterface/spikeinterface#4912 ·
メンテナーはふだん 1 日以内に返信
SpikeInterface/spikeinterface の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 64/100
FinanceFlash/unvibecode#577 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
area/test type/bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
Clodmony/starship-coop#70 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
punitarani/fli#270 ·
-
🐛 Bug 🔔 Pending processing
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
jumpserver/jumpserver#17980 ·
メンテナーはふだん 1 日以内に返信
-
community enhancement good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
メンテナーはふだん 1 日以内に返信