Skip to content

[SCHEMA] BEP028 - BIDS-Prov #2098

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 20 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions src/schema/objects/entities.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,14 @@ processing:
exploited.
type: string
format: label
prov:
name: prov
display_name: Provenance group
description: |
A grouping of provenance records.
Defining multiple provenance records groups is appropriate when several processings have been performed on data.
type: string
format: label
reconstruction:
name: rec
display_name: Reconstruction
Expand Down
7 changes: 7 additions & 0 deletions src/schema/objects/files.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,13 @@ code:
(for example the one used to generate the derivatives from the raw data).
See the [Code section](SPEC_ROOT/modality-agnostic-files/code.md)
for more information.
prov:
display_name: Provenance Records
file_type: directory
description: |
A directory in which to store provenance metadata.
See the [Provenance section](SPEC_ROOT/modality-agnostic-files.md#provenance)
for more information.
derivatives:
display_name: Derivative data
file_type: directory
Expand Down
224 changes: 224 additions & 0 deletions src/schema/objects/metadata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,70 @@ AcquisitionVoxelSize:
type: number
exclusiveMinimum: 0
unit: mm
Activities:
name: Activities
display_name: Activities
description: |
Describe Activities provenance records.
type: array
minItems: 1
items:
type: object
required: [Id, Label, Command]
properties:
Id:
name: Id
description: Identifier for the activity.
type: string
format: uri
Label:
name: Label
description: Name of the tool, script, or function used (e.g. “bet”, "recon-all", "myFunc", "docker").
type: string
format: label
Command:
name: Command
description: Command(s) used to run the tool, including all parameters.
type: string
AssociatedWith:
name: AssociatedWith
description: |
Identifier(s) of the software package(s) used to compute this activity.
The corresponding Software must be defined with its own Software record).
anyOf:
- type: string
format: uri
- type: array
items:
type: string
format: uri
Used:
name: Used
description: |
Identifier(s) of entity(ies) or environment(s) used by this activity.
The corresponding Entities (resp. Environments) must be defined with their own Entity (resp. Environment) record.
anyOf:
- type: string
format: uri
- type: array
items:
type: string
format: uri
Type:
name: Type
description: A term from a controlled vocabulary that more specifically describes the Activity.
type: string
format: uri
StartedAtTime:
name: StartedAtTime
description: A timestamp tracking when this activity started.
type: string
format: date
EndedAtTime:
name: EndedAtTime
description: A timestamp tracking when this activity ended.
type: string
format: date
Anaesthesia:
name: Anaesthesia
display_name: Anaesthesia
Expand Down Expand Up @@ -1084,6 +1148,87 @@ EncodingTechnique:
For example, `"Cartesian"`, `"EPSI"`, `"Spiral"`,
or `"Density-weighted concentric ring trajectory"`.
type: string
Entities:
name: Entities
display_name: Entities
description: |
Describe Entities provenance records.
type: array
minItems: 1
items:
type: object
required: [Id, Label]
recommended: [Digest]
properties:
Id:
name: Id
description: Identifier for the entity.
type: string
format: bids_uri
Label:
name: Label
description: A name for the entity.
type: string
format: label
Digest:
name: Digest
description: |
For files, this would include checksums of files.
It would take the form {"": "value"}.
type: object
AtLocation:
name: AtLocation
description: |
For input files, this is the relative path to the file on disk.
type: string
GeneratedBy:
name: GeneratedBy
description: |
Identifier(s) of the Activity(ies) which generated this Entity.
The corresponding Activity must be defined with its own Activity record.
type: string
format: uri
Type:
name: Type
description: A term from a controlled vocabulary that more specifically describes the Entity.
type: string
format: uri
Environments:
name: Environments
display_name: Environments
description: |
Describe Environments provenance records.
type: array
minItems: 1
items:
type: object
required: [Id, Label]
properties:
Id:
name: Id
description: |
Identifier for the environment (this identifier will be used to associated activities with this environment).
type: string
format: uri
Label:
name: Label
description: A name for the environment.
type: string
format: label
EnvVars:
name: EnvVars
description: |
A dictionary defining the environment variables as key-value pairs.
type: object
OperatingSystem:
name: OperatingSystem
description: Name of the operating system.
type: string
Dependencies:
name: Dependencies
description: |
A dictionary defining the software used and their versions as key-value pairs.
type: object
EpochLength:
name: EpochLength
display_name: Epoch Length
Expand Down Expand Up @@ -1281,6 +1426,32 @@ GeneratedBy:
URI:
type: string
format: uri
GeneratedById:
name: GeneratedBy
display_name: Generated By
description: |
Specify the provenance of a file in the dataset, referencing the Id
of the Activity (or Activities) responsible for its creation.
anyOf:
- type: string
format: uri
- type: array
items:
type: string
format: uri
GeneratedByProv:
name: GeneratedByProv
display_name: Generated By Prov
description: |
Specify the provenance of the dataset, referencing the Id
of the Activity (or Activities) responsible for its creation.
anyOf:
- type: string
format: uri
- type: array
items:
type: string
format: uri
GeneticLevel:
name: GeneticLevel
display_name: Genetic Level
Expand Down Expand Up @@ -3292,6 +3463,19 @@ ShortChannelCount:
The number of short channels. 0 indicates no short channels.
type: integer
minimum: 0
SidecarGeneratedBy:
name: SidecarGeneratedBy
display_name: Sidecar Generated By
description: |
Specify the provenance of a sidecar JSON,
referencing the Id of the Activity (or Activities) responsible for its creation.
anyOf:
- type: string
format: uri
- type: array
items:
type: string
format: uri
SinglesRate:
name: SinglesRate
display_name: Singles Rate
Expand Down Expand Up @@ -3360,6 +3544,46 @@ SliceTiming:
type: number
minimum: 0
unit: s
Software:
name: Software
display_name: Software
description: |
Describe Software provenance records.
type: array
minItems: 1
items:
type: object
required: [Id, Label, Version]
properties:
Id:
name: Id
description: |
that will be used to associate activities with this software package (e.g., urn:1264-1233-11231-12312, "urn:bet-o1ef4rt")
type: string
format: uri
Label:
name: Label
description: Name of the software package.
type: string
format: label
Version:
name: Version
description: Version of the software package.
type: string
AltIdentifier:
name: AltIdentifier
description: |
URI of the RRID for this software package (cf. https://rrid.site/).
type: string
format: uri
ActedOnBehalfOf:
name: ActedOnBehalfOf
description: |
Identifier of another software package that was responsible for using this software package in the context of the activities associated to it.
The corresponding software must be defined with its own Software record.
Example: if software A launches software B to perform activity C, then B ActedOnBehalfOf A.
type: string
format: uri
SoftwareFilters:
name: SoftwareFilters
display_name: Software Filters
Expand Down
35 changes: 35 additions & 0 deletions src/schema/objects/suffixes.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -502,6 +502,18 @@ VFA:
Depending on the provided metadata fields and the sequence type,
data may be eligible for DESPOT1, DESPOT2 and their variants
([Deoni et al. 2005](https://doi.org/10.1002/mrm.20314)).
act:
value: act
display_name: Provenance Activity Records
description: |
Provenance Activity records for a group of provenance.
Activities represent the transformations that have been applied to the data.
all:
value: all
display_name: Provenance Records
description: |
All types of provenance records (Activity, Entity, Environment, Software)
for a group of provenance.
angio:
value: angio
display_name: Angiogram
Expand All @@ -528,6 +540,11 @@ asllabeling:
A deidentified screenshot of the planning of the labeling slab/plane
with respect to the imaging slab or slices.
This screenshot is based on DICOM macro C.8.13.5.14.
base:
value: base
display_name: Base for Provenance Records
description: |
Base fields for provenance records of a group of provenance.
beh:
value: beh
display_name: Behavioral recording
Expand Down Expand Up @@ -612,6 +629,18 @@ electrodes:
display_name: Electrodes
description: |
File that gives the location of (i)EEG electrodes.
ent:
value: ent
display_name: Provenance Entity Records
description: |
Provenance Entity records for a group of provenance.
Entities are inputs and outputs of Activities.
env:
value: env
display_name: Provenance Environment Records
description: |
Provenance Environment records for a group of provenance.
Environments specify the software environment in which the provenance record was obtained.
epi:
value: epi
display_name: EPI
Expand Down Expand Up @@ -817,6 +846,12 @@ probseg:
A probabilistic segmentation.

This suffix may only be used in derivative datasets.
soft:
value: soft
display_name: Provenance Software Records
description: |
Provenance Software records for a group of provenance.
The Software specifies the software package with which transformations were applied to the data.
sbref:
value: sbref
display_name: Single-band reference image
Expand Down
1 change: 1 addition & 0 deletions src/schema/rules/checks/deprecations.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
AnatomicalLandmarkCoordinateSystemDeprecation:
issue:
code: ELEKTA_NEUROMAG_DEPRECATED
Expand Down
6 changes: 4 additions & 2 deletions src/schema/rules/dataset_metadata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ dataset_description:
EthicsApprovals: optional
ReferencesAndLinks: optional
DatasetDOI: optional
GeneratedBy: recommended
GeneratedBy: deprecated
GeneratedByProv: recommended
SourceDatasets: recommended

dataset_authors:
Expand All @@ -38,7 +39,8 @@ derivative_description:
- path == "/dataset_description.json"
- json.DatasetType == "derivative"
fields:
GeneratedBy: required
GeneratedByProv: recommended
GeneratedBy: deprecated

dataset_description_with_genetics:
selectors:
Expand Down
Loading
Loading