Don't understand dandi validation error:
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
まず、示されている NWB 構築で報告された検証エラーを再現し、次に dandi organize と dandi upload の検証エントリポイントを追跡します。DynamicTable に表示される id フィールドと、バリデーターが期待する ElementIdentifiers 型を比較します。原因と必要な対応が文書化されるか、検証パスがこのケースを回帰テスト付きで正しく処理できれば完了です。
索引モデルが issue の本文から書いたものです。
説明
I'm attempting to run dandi organize and dandi upload on some NWB files I've generated. I get the following dandi validation error:
2025-05-06T03:54:53+0000 [WARNING ] dandi 1370:139809792194304 Error 1: ValidationResult(id='pynwb.DynamicTable (processing/eye_tracking/ellipse): missing data type ElementIdentifiers (id)', origin=ValidationOrigin(name='pynwb', version='2.8.3', bids_version=None), scope=<Scope.FILE: 'file'>, severity=<Severity.ERROR: 3>, asset_paths=None, within_asset_paths={'/tmp/nxf.8M0y39gRXN/capsule/results/001417/sub-752311/sub-752311_ecephys.nwb': 'processing/eye_tracking/ellipse'}, dandiset_path=None, dataset_path=None, message='Failed to validate. missing data type ElementIdentifiers (id)', metadata=None, path=PosixPath('/tmp/nxf.8M0y39gRXN/capsule/results/001417/sub-752311/sub-752311_ecephys.nwb'), path_regex=None)
The code I'm using to package this portion of the NWB is as follows:
eye_tracking_df_new = pd.DataFrame({
'name': ['eye_tracking'] * len(eye_tracking_df),
'reference_frame': ['nose'] * len(eye_tracking_df),
'data_x': eye_tracking_df['eye_center_x'],
'data_y': eye_tracking_df['eye_center_y'],
'area': eye_tracking_df['eye_area'],
'area_raw': eye_tracking_df['eye_area_raw'],
'width': eye_tracking_df['eye_width'],
'height': eye_tracking_df['eye_height'],
'angle': eye_tracking_df['eye_phi'],
'timestamps': eye_tracking_df['timestamps']
})
ellipse_eye_tracking = pynwb.core.DynamicTable.from_dataframe(
name="ellipse",
df=eye_tracking_df_new
)
eye_mod = pynwb.ProcessingModule("eye_tracking", "eye tracking data")
nwb_file.add_processing_module(eye_mod)
eye_mod.add_data_interface(ellipse_eye_tracking)
Printing this field of the nwb displays
n>>> nwb.processing['eye_tracking']['ellipse']
ellipse hdmf.common.table.DynamicTable at 0x139866740202080
Fields:
colnames: ['name' 'reference_frame' 'data_x' 'data_y' 'area' 'area_raw' 'width'
'height' 'angle' 'timestamps']
columns: (
name <class 'hdmf.common.table.VectorData'>,
reference_frame <class 'hdmf.common.table.VectorData'>,
data_x <class 'hdmf.common.table.VectorData'>,
data_y <class 'hdmf.common.table.VectorData'>,
area <class 'hdmf.common.table.VectorData'>,
area_raw <class 'hdmf.common.table.VectorData'>,
width <class 'hdmf.common.table.VectorData'>,
height <class 'hdmf.common.table.VectorData'>,
angle <class 'hdmf.common.table.VectorData'>,
timestamps <class 'hdmf.common.table.VectorData'>
)
id: id <class 'hdmf.common.table.ElementIdentifiers'>
- 主要言語
- Python
- スター
- 28
- フォーク
- 37
- 平均マージ
- 3日 21時間
- マージ済み PR(30日)
- 13
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
dandi/dandi-cli のほかの issue
-
pynwb metadata: get neurodata types再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
メンテナーはふだん 1 日以内に返信
-
Extract asset anatomy from HERD ontology links in NWB files対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
メンテナーはふだん 1 日以内に返信
-
UX
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
メンテナーはふだん 1 日以内に返信
-
`metadata.nwb.get_metadata()` validates the whole BIDS dataset for every NWB file, then discards the result対応中かも @CodyCBakerPhD が 22 日前に担当しました。 オープンBIDS performance
dandi/dandi-cli#1962 · コメント 1 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
`bids_version` is always `None` since the switch to bids-validator-deno対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンBIDS bug
難易度 3/5 半日 初心者へのやさしさ 45/100
dandi/dandi-cli#1961 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
dandi/dandi-cli の issue をすべて見る
似ている issue
-
bug severity:low
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 2 日以内に返信
-
curriculum documentation quality
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
githubnext/gh-aw-workshop#5367 ·
メンテナーはふだん 3 日以内に返信
-
OAuth documentation for GET /api/v2/users/me/ appears inconsistent with required global read scopeオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
Create Noise Latents ignores randomize_seed and produces the same noise every run対応中かも @griptapeops が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
griptape-ai/griptape-nodes-library-diffusers#127 ·
メンテナーはふだん 1 日以内に返信
-
Jenkins capacity report: metrics history is lost when archiving a month fails対応中かも @RaphaelFakhri が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
adoptium/infrastructure#4568 ·
メンテナーはふだん 1 日以内に返信