From 5da23385c6d0f2c360c3927e0c921e84a7c8da08 Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Mon, 25 Aug 2025 20:39:49 -0400 Subject: [PATCH 1/2] Add "directories" description for "study" DatasetType and add "docs" where was missing Apparently I have missed this file entirely whenever I was preparing https://github.com/bids-standard/bids-specification/pull/1972 (study DatasetType) and also due to all the duplication we (I) missed that docs was not listed among "root.subdirs" or not listed at all. This would provide a fix, but I wonder if we could/should make it so we could avoid duplication altogether. As I have argued in #1972 I feel that "study" is the base dataset type and next ones just add potentially more to them. So may be we could come up with some more compact representation here... but not in this PR --- src/schema/rules/directories.yaml | 47 ++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/src/schema/rules/directories.yaml b/src/schema/rules/directories.yaml index 3bfea7c26e..0231b61b7c 100644 --- a/src/schema/rules/directories.yaml +++ b/src/schema/rules/directories.yaml @@ -1,5 +1,5 @@ --- -# This file defines layouts of directories. +# This file defines layouts of directories for each DatasetType # # A layout defines a collection of directory specifiers. # Each specifier has a naming convention, requirement level, opacity, and subdirectories. @@ -16,10 +16,50 @@ # The special "root" specifier describes the root of the dataset and only defines subdirectories. # No naming convention applies, and the requirement level and opacity would be superfluous. # +study: + root: + subdirs: + - code + - docs + - derivatives + - logs + - phenotype + - sourcedata + - stimuli + code: + name: code + level: optional + opaque: true + docs: + name: docs + level: optional + opaque: true + derivatives: + name: derivatives + level: optional + opaque: true + logs: + name: logs + level: optional + opaque: true + phenotype: + name: phenotype + level: optional + opaque: false + sourcedata: + name: sourcedata + level: optional + opaque: true + stimuli: + name: stimuli + level: optional + opaque: true + raw: root: subdirs: - code + - docs - derivatives - logs - phenotype @@ -77,6 +117,7 @@ derivative: root: subdirs: - code + - docs - derivatives - logs - phenotype @@ -87,6 +128,10 @@ derivative: name: code level: optional opaque: true + docs: + name: docs + level: optional + opaque: true derivatives: name: derivatives level: optional From e07c730ff2b8815d9c1bc13077d4a4d2db77cbd6 Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Tue, 26 Aug 2025 09:39:29 -0400 Subject: [PATCH 2/2] Remove "phentoype/" and "stimuli/" from the "root" of the "study" dataset Since per se they should either be under "sourcedata/" or "derivatives/" one way or another even if it is some stimuli-only dataset(s) --- src/schema/rules/directories.yaml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/schema/rules/directories.yaml b/src/schema/rules/directories.yaml index 0231b61b7c..e5415e8c14 100644 --- a/src/schema/rules/directories.yaml +++ b/src/schema/rules/directories.yaml @@ -23,9 +23,7 @@ study: - docs - derivatives - logs - - phenotype - sourcedata - - stimuli code: name: code level: optional @@ -42,18 +40,10 @@ study: name: logs level: optional opaque: true - phenotype: - name: phenotype - level: optional - opaque: false sourcedata: name: sourcedata level: optional opaque: true - stimuli: - name: stimuli - level: optional - opaque: true raw: root: