Support NWB files stored as Zarr (`.nwb.zarr`)
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
- 48/100
Hướng nghiên cứu
Bắt đầu bằng cách lần theo phần xử lý NWB xung quanh get_nwb_version, get_object_id, get_neurodata_types, _scan_neurodata_types, nwb_has_external_links, _get_pynwb_metadata và validate. Xem xét ràng buộc của dependency zarr và thảo luận về phiên bản hdmf-zarr trước khi quyết định các nhánh dành riêng cho backend nên hoạt động như thế nào. Hoàn tất nghĩa là các tệp .nwb.zarr nhận được metadata NWB, validation, kiểm tra liên kết bên ngoài và xử lý organize, thay vì bị coi là các Zarr asset chung.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Same context as the other two issues, 1 and 2 but now I have realized (I should have thought about this before) that dandi-cli has no support for NWB stored as Zarr: a .nwb.zarr. Currently, this is handled as a generic Zarr asset, so none of the NWB machinery ever sees it.
In my specific case described on the issues above two things happend:
- The validation does not stop the upload in its tracks if the referenced videos are missing.
dandi organizeskips the.nwb.zarrfile silently, no entry, no warning, no error.
I am not sure adding support is mechanically hard but there is a dependency problem. Reading of the file is supported by the backend independent pynwb.read_nwb, which is able to handle the two backends as long as hdmf-zarr is installed. That covers _get_pynwb_metadata, and validate already goes through pynwb.validate(paths=...) on its main path. Then there are the following sites that read quickly and where doing the full nwb read is probably too heavy, they will require a backend specific branch:
get_nwb_version, which opens the file only to read one root attribute.get_object_id, same thing forobject_id.get_neurodata_typesand its_scan_neurodata_typeshelper, which walk the raw tree looking forneurodata_type.nwb_has_external_links, the gate that refuses files whose content lives in other files. hdmf-zarr has links with asourcetoo, so this ports the same way.
I can take the above if that makes sense for you but the thorny issue is dependencies. nwb.zarr will require Python 3.12 and zarr 3.2 or above, see the version discussion in hdmf-zarr. Currently you have zarr pinned to zarr>=2.18.0,<=3.1.5. Is there a reason for this? How could we move forward?
- Ngôn ngữ chính
- Python
- Star
- 29
- Fork
- 37
- Merge trung bình
- 1 ngày 5 giờ
- Pull request đã merge (30 ngày)
- 20
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 dandi/dandi-cli
-
pynwb metadata: get neurodata typesCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
Maintainer thường phản hồi trong vòng 1 ngày
-
`metadata.nwb.get_metadata()` validates the whole BIDS dataset for every NWB file, then discards the resultCó thể đã có người làm @CodyCBakerPhD đã nhận 5 ngày trước. Đang mởBIDS performance
dandi/dandi-cli#1962 · 1 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
BIDS bug
Độ khó 3/5 Nửa ngày Mức phù hợp với người mới 45/100
dandi/dandi-cli#1961 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 64/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 70/100
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của dandi/dandi-cli
Issue tương tự
-
Issue Triage-Needed
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
pulp/pulp_container#2581 ·
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
521xueweihan/HelloGitHub#4040 ·
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
ClanGenOfficial/clangen#6313 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug(trainer): CustomTrainer func_args with non literal values fail inside the TrainJobCó thể đã có người làm @avanishkasar đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
kubeflow/sdk#879 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày