MountainSort5: expose `pca_seed` / `random_seed` sorter param (pair with MS5 configurable PCA seed)
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 43/100
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Python
- Star
- 870
- Fork
- 284
- Merge trung bình
- 3 ngày 1 giờ
- Pull request đã merge (30 ngày)
- 41
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của SpikeInterface/spikeinterface
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
SpikeInterface/spikeinterface#4924 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Saving a multi-segment recording fails when only some segments have a t_startCó thể đã có người làm @AxelNoun đã nhận 1 ngày trước. Đang mởcore
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
SpikeInterface/spikeinterface#4914 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
SpikeInterface/spikeinterface#4842 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
SpikeInterface/spikeinterface#4510 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
BaseSorting.select_periods() drops properties, annotations and the registered recordingCó thể đã có người làm @AxelNoun đã nhận 1 ngày trước. Đang mởbug core
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 20/100
SpikeInterface/spikeinterface#4915 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của SpikeInterface/spikeinterface
Issue tương tự
-
documentation good first issue
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
MarketSquare/robotframework-browser#5479 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Visual COBOL: missing 11.0 and 12.0, and 9.0 date differs from Rocket Software's lifecycle pageĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
endoflife-date/endoflife.date#11561 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
OCA/l10n-brazil#5602 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation review-2.0.0
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
dkuenzel/meshcore-home-gateway#106 ·
Maintainer thường phản hồi trong vòng 1 ngày