File schemas¶
This page contains auto-generated JSON schemas [1] for the text files used or generated by Nipoppy.
Global configuration file¶
How to read the schema table
Read the table from top to bottom, left to right
Required properties are in bold
The type of each property is in italics, to the right of a cell labelled “type”
Unless if that property is an object described by another schema, in which case it is a link to that schema
Default values are shown for optional properties (
None
if empty)See the JSON schema docs for more details about keyword meanings
Below is the schema used for the global configuration JSON file.
Config |
|||
Schema for dataset configuration. |
|||
type |
object |
||
properties |
|||
|
Hpc Preamble |
||
Optional string (or list of strings) for HPC setup, including job scheduler directives or environment initialization. Examples: loading modules (e.g., Apptainer/Singularity), activating a Python environment with Nipoppy installed, and setting up job-specific variables. |
|||
type |
array |
||
default |
|||
items |
type |
string |
|
|
Dicom Dir Map File |
||
Path to a TSV file mapping participant IDs to DICOM directories, to be used in the DICOM reorg step. Note: this field and DICOM_DIR_PARTICIPANT_FIRST cannot both be specified. The TSV file should have three columns: “participant_id” , “session_id”, and “participant_dicom_dir” |
|||
default |
null |
||
anyOf |
type |
string |
|
format |
path |
||
type |
null |
||
|
Dicom Dir Participant First |
||
Whether subdirectories under <NIPOPPY_PROJECT_ROOT>/sourcedata/imaging/pre_reorg) follow the pattern <PARTICIPANT>/<SESSION> (default) or <SESSION>/<PARTICIPANT>. Note: this field and DICOM_DIR_MAP_FILE cannot both be specified |
|||
default |
null |
||
anyOf |
type |
boolean |
|
type |
null |
||
|
Substitutions |
||
Top-level mapping for replacing placeholder expressions in the rest of the config file. Note: the replacement only happens if the config is loaded from a file with |
|||
type |
object |
||
default |
|||
additionalProperties |
type |
string |
|
|
Pipeline-specific variables. Typically these are paths to external resources needed by a pipeline that need to be provided by the user |
||
default |
BIDSIFICATION |
||
PROCESSING |
|||
EXTRACTION |
|||
|
Custom |
||
Free field that can be used for any purpose |
|||
type |
object |
||
default |
|||
additionalProperties |
True |
||
|
Configuration for running a container |
||
default |
COMMAND |
apptainer |
|
ARGS |
|||
ENV_VARS |
|||
INHERIT |
True |
||
additionalProperties |
False |
ContainerCommandEnum |
|
Container commands. |
|
type |
string |
enum |
singularity, apptainer |
ContainerConfig |
|||
Schema for container configuration. Does not include information about the container image. |
|||
type |
object |
||
properties |
|||
|
Name of container engine. If null/None, the pipeline will not run in a container (e.g., baremetal installations). |
||
default |
apptainer |
||
anyOf |
|||
type |
null |
||
|
Args |
||
Arguments for Apptainer/Singularity call (to be appended after the subcommand) |
|||
type |
array |
||
default |
|||
items |
type |
string |
|
|
Env Vars |
||
Environment variables that should be available inside the container |
|||
type |
object |
||
default |
|||
additionalProperties |
type |
string |
|
|
Inherit |
||
Whether this config should inherit from higher-lever container configs. If false, will ignore higher-level configs |
|||
type |
boolean |
||
default |
True |
||
additionalProperties |
False |
PipelineVariables |
||||||
Schema for pipeline variables in main config. |
||||||
type |
object |
|||||
properties |
||||||
|
Bidsification |
|||||
Variables for the BIDSification pipelines. This should be a nested dictionary with these levels: pipeline name -> pipeline version -> variable name -> variable value |
||||||
type |
object |
|||||
additionalProperties |
type |
object |
||||
additionalProperties |
type |
object |
||||
additionalProperties |
anyOf |
type |
string |
|||
type |
null |
|||||
|
Processing |
|||||
Variables for the processing pipelines. This should be a nested dictionary with these levels: pipeline name -> pipeline version -> variable name -> variable value |
||||||
type |
object |
|||||
additionalProperties |
type |
object |
||||
additionalProperties |
type |
object |
||||
additionalProperties |
anyOf |
type |
string |
|||
type |
null |
|||||
|
Extraction |
|||||
Variables for the extraction pipelines. This should be a nested dictionary with these levels: pipeline name -> pipeline version -> variable name -> variable value |
||||||
type |
object |
|||||
additionalProperties |
type |
object |
||||
additionalProperties |
type |
object |
||||
additionalProperties |
anyOf |
type |
string |
|||
type |
null |
|||||
additionalProperties |
False |
Pipeline configuration files¶
How to read the schema table
Read the table from top to bottom, left to right
Required properties are in bold
The type of each property is in italics, to the right of a cell labelled “type”
Unless if that property is an object described by another schema, in which case it is a link to that schema
Default values are shown for optional properties (
None
if empty)See the JSON schema docs for more details about keyword meanings
Here are the schemas for the config.json
files in pipeline configuration directories.
BIDSification pipelines¶
BidsPipelineConfig |
|||
Schema for BIDS pipeline configuration. |
|||
type |
object |
||
properties |
|||
|
Name |
||
Name of the pipeline |
|||
type |
string |
||
|
Version |
||
Version of the pipeline |
|||
type |
string |
||
|
Description |
||
Free description field |
|||
default |
null |
||
anyOf |
type |
string |
|
type |
null |
||
|
Information about the container image file |
||
default |
FILE |
null |
|
URI |
null |
||
|
Steps |
||
List of pipeline step configurations |
|||
type |
array |
||
default |
|||
items |
|||
|
Variables |
||
Required user-defined pipeline variables. This should be a dictionary with variable names as keys and descriptions as values. For example: {{“REQUIRED_FILE”: “This file is for running the pipeline”}} |
|||
type |
object |
||
default |
|||
additionalProperties |
type |
string |
|
|
default |
null |
|
anyOf |
|||
type |
null |
||
|
Schema Version |
||
Version of the schema used for this pipeline configuration. The current latest version is 1 |
|||
type |
string |
||
|
Configuration for running a container |
||
default |
COMMAND |
apptainer |
|
ARGS |
|||
ENV_VARS |
|||
INHERIT |
True |
||
additionalProperties |
False |
AnalysisLevelType |
|
Pipeline step types. |
|
type |
string |
enum |
participant_session, participant, session, group |
BidsPipelineStepConfig |
|||
Schema for BIDS pipeline step configuration. |
|||
type |
object |
||
properties |
|||
|
Configuration for running a container |
||
default |
COMMAND |
apptainer |
|
ARGS |
|||
ENV_VARS |
|||
INHERIT |
True |
||
|
Name |
||
Step name. Required if the pipeline has multiple steps |
|||
type |
string |
||
default |
default |
||
|
Analysis level of the pipeline step. This controls the granularity of the loop over subjects and sessions. By default, pipeline runners will loop over all subjects and sessions, but this field field can be set to “AnalysisLevelType.participant” to loop over subjects only, “AnalysisLevelType.session” to loop over sessions only, and AnalysisLevelType.group to only run the pipeline a single time. |
||
default |
participant_session |
||
|
Descriptor File |
||
Path to the JSON descriptor file. Only needed for custom pipelines |
|||
default |
null |
||
anyOf |
type |
string |
|
format |
path |
||
type |
null |
||
|
Invocation File |
||
Path to the JSON invocation file |
|||
default |
null |
||
anyOf |
type |
string |
|
format |
path |
||
type |
null |
||
|
Hpc Config File |
||
Path to the HPC config file. This file should contain key-value pairs to be passed to the Jinja template inside the <NIPOPPY_PROJECT_ROOT>/code/hpc directory. |
|||
default |
null |
||
anyOf |
type |
string |
|
format |
path |
||
type |
null |
||
|
Update Status |
||
Whether or not the in_bids column in the curation status file should be updated |
|||
default |
False |
||
anyOf |
type |
boolean |
|
type |
null |
||
additionalProperties |
False |
ContainerCommandEnum |
|
Container commands. |
|
type |
string |
enum |
singularity, apptainer |
ContainerConfig |
|||
Schema for container configuration. Does not include information about the container image. |
|||
type |
object |
||
properties |
|||
|
Name of container engine. If null/None, the pipeline will not run in a container (e.g., baremetal installations). |
||
default |
apptainer |
||
anyOf |
|||
type |
null |
||
|
Args |
||
Arguments for Apptainer/Singularity call (to be appended after the subcommand) |
|||
type |
array |
||
default |
|||
items |
type |
string |
|
|
Env Vars |
||
Environment variables that should be available inside the container |
|||
type |
object |
||
default |
|||
additionalProperties |
type |
string |
|
|
Inherit |
||
Whether this config should inherit from higher-lever container configs. If false, will ignore higher-level configs |
|||
type |
boolean |
||
default |
True |
||
additionalProperties |
False |
ContainerInfo |
|||
Schema for container image (i.e., file) information. |
|||
type |
object |
||
properties |
|||
|
File |
||
Path to the container associated with the pipeline, relative to the root directory of the dataset |
|||
default |
null |
||
anyOf |
type |
string |
|
format |
path |
||
type |
null |
||
|
Uri |
||
The Docker or Apptainer/Singularity URI for the container |
|||
default |
null |
||
anyOf |
type |
string |
|
type |
null |
||
additionalProperties |
False |
PipelineTypeEnum |
|
Pipeline types. |
|
type |
string |
enum |
bidsification, processing, extraction |
Processing pipelines¶
ProcPipelineConfig |
|||
Schema for processing pipeline configuration. |
|||
type |
object |
||
properties |
|||
|
Name |
||
Name of the pipeline |
|||
type |
string |
||
|
Version |
||
Version of the pipeline |
|||
type |
string |
||
|
Description |
||
Free description field |
|||
default |
null |
||
anyOf |
type |
string |
|
type |
null |
||
|
Information about the container image file |
||
default |
FILE |
null |
|
URI |
null |
||
|
Steps |
||
List of pipeline step configurations |
|||
type |
array |
||
default |
|||
items |
|||
|
Variables |
||
Required user-defined pipeline variables. This should be a dictionary with variable names as keys and descriptions as values. For example: {{“REQUIRED_FILE”: “This file is for running the pipeline”}} |
|||
type |
object |
||
default |
|||
additionalProperties |
type |
string |
|
|
default |
null |
|
anyOf |
|||
type |
null |
||
|
Schema Version |
||
Version of the schema used for this pipeline configuration. The current latest version is 1 |
|||
type |
string |
||
|
Configuration for running a container |
||
default |
COMMAND |
apptainer |
|
ARGS |
|||
ENV_VARS |
|||
INHERIT |
True |
||
additionalProperties |
False |
AnalysisLevelType |
|
Pipeline step types. |
|
type |
string |
enum |
participant_session, participant, session, group |
ContainerCommandEnum |
|
Container commands. |
|
type |
string |
enum |
singularity, apptainer |
ContainerConfig |
|||
Schema for container configuration. Does not include information about the container image. |
|||
type |
object |
||
properties |
|||
|
Name of container engine. If null/None, the pipeline will not run in a container (e.g., baremetal installations). |
||
default |
apptainer |
||
anyOf |
|||
type |
null |
||
|
Args |
||
Arguments for Apptainer/Singularity call (to be appended after the subcommand) |
|||
type |
array |
||
default |
|||
items |
type |
string |
|
|
Env Vars |
||
Environment variables that should be available inside the container |
|||
type |
object |
||
default |
|||
additionalProperties |
type |
string |
|
|
Inherit |
||
Whether this config should inherit from higher-lever container configs. If false, will ignore higher-level configs |
|||
type |
boolean |
||
default |
True |
||
additionalProperties |
False |
ContainerInfo |
|||
Schema for container image (i.e., file) information. |
|||
type |
object |
||
properties |
|||
|
File |
||
Path to the container associated with the pipeline, relative to the root directory of the dataset |
|||
default |
null |
||
anyOf |
type |
string |
|
format |
path |
||
type |
null |
||
|
Uri |
||
The Docker or Apptainer/Singularity URI for the container |
|||
default |
null |
||
anyOf |
type |
string |
|
type |
null |
||
additionalProperties |
False |
PipelineTypeEnum |
|
Pipeline types. |
|
type |
string |
enum |
bidsification, processing, extraction |
ProcPipelineStepConfig |
|||
Schema for processing pipeline step configuration. |
|||
type |
object |
||
properties |
|||
|
Configuration for running a container |
||
default |
COMMAND |
apptainer |
|
ARGS |
|||
ENV_VARS |
|||
INHERIT |
True |
||
|
Name |
||
Step name. Required if the pipeline has multiple steps |
|||
type |
string |
||
default |
default |
||
|
Analysis level of the pipeline step. This controls the granularity of the loop over subjects and sessions. By default, pipeline runners will loop over all subjects and sessions, but this field field can be set to “AnalysisLevelType.participant” to loop over subjects only, “AnalysisLevelType.session” to loop over sessions only, and AnalysisLevelType.group to only run the pipeline a single time. |
||
default |
participant_session |
||
|
Descriptor File |
||
Path to the JSON descriptor file. Only needed for custom pipelines |
|||
default |
null |
||
anyOf |
type |
string |
|
format |
path |
||
type |
null |
||
|
Invocation File |
||
Path to the JSON invocation file |
|||
default |
null |
||
anyOf |
type |
string |
|
format |
path |
||
type |
null |
||
|
Hpc Config File |
||
Path to the HPC config file. This file should contain key-value pairs to be passed to the Jinja template inside the <NIPOPPY_PROJECT_ROOT>/code/hpc directory. |
|||
default |
null |
||
anyOf |
type |
string |
|
format |
path |
||
type |
null |
||
|
Tracker Config File |
||
Path to the tracker configuration file associated with the pipeline step |
|||
default |
null |
||
anyOf |
type |
string |
|
format |
path |
||
type |
null |
||
|
Pybids Ignore File |
||
Path to file containing a list of regex patterns (strings) to ignore when building the PyBIDS layout |
|||
default |
null |
||
anyOf |
type |
string |
|
format |
path |
||
type |
null |
||
|
Generate Pybids Database |
||
Whether or not to generate a PyBIDS database as part of the pipeline step (default: true) |
|||
default |
True |
||
anyOf |
type |
boolean |
|
type |
null |
||
additionalProperties |
False |
Extraction pipelines¶
ExtractionPipelineConfig |
|||
Schema for extraction pipeline configuration. |
|||
type |
object |
||
properties |
|||
|
Name |
||
Name of the pipeline |
|||
type |
string |
||
|
Version |
||
Version of the pipeline |
|||
type |
string |
||
|
Description |
||
Free description field |
|||
default |
null |
||
anyOf |
type |
string |
|
type |
null |
||
|
Information about the container image file |
||
default |
FILE |
null |
|
URI |
null |
||
|
Steps |
||
List of pipeline step configurations |
|||
type |
array |
||
default |
|||
items |
|||
|
Variables |
||
Required user-defined pipeline variables. This should be a dictionary with variable names as keys and descriptions as values. For example: {{“REQUIRED_FILE”: “This file is for running the pipeline”}} |
|||
type |
object |
||
default |
|||
additionalProperties |
type |
string |
|
|
default |
null |
|
anyOf |
|||
type |
null |
||
|
Schema Version |
||
Version of the schema used for this pipeline configuration. The current latest version is 1 |
|||
type |
string |
||
|
Proc Dependencies |
||
List of processing pipeline(s) (including step names) whose output the extraction pipeline depends on |
|||
type |
array |
||
items |
|||
|
Configuration for running a container |
||
default |
COMMAND |
apptainer |
|
ARGS |
|||
ENV_VARS |
|||
INHERIT |
True |
||
additionalProperties |
False |
AnalysisLevelType |
|
Pipeline step types. |
|
type |
string |
enum |
participant_session, participant, session, group |
ContainerCommandEnum |
|
Container commands. |
|
type |
string |
enum |
singularity, apptainer |
ContainerConfig |
|||
Schema for container configuration. Does not include information about the container image. |
|||
type |
object |
||
properties |
|||
|
Name of container engine. If null/None, the pipeline will not run in a container (e.g., baremetal installations). |
||
default |
apptainer |
||
anyOf |
|||
type |
null |
||
|
Args |
||
Arguments for Apptainer/Singularity call (to be appended after the subcommand) |
|||
type |
array |
||
default |
|||
items |
type |
string |
|
|
Env Vars |
||
Environment variables that should be available inside the container |
|||
type |
object |
||
default |
|||
additionalProperties |
type |
string |
|
|
Inherit |
||
Whether this config should inherit from higher-lever container configs. If false, will ignore higher-level configs |
|||
type |
boolean |
||
default |
True |
||
additionalProperties |
False |
ContainerInfo |
|||
Schema for container image (i.e., file) information. |
|||
type |
object |
||
properties |
|||
|
File |
||
Path to the container associated with the pipeline, relative to the root directory of the dataset |
|||
default |
null |
||
anyOf |
type |
string |
|
format |
path |
||
type |
null |
||
|
Uri |
||
The Docker or Apptainer/Singularity URI for the container |
|||
default |
null |
||
anyOf |
type |
string |
|
type |
null |
||
additionalProperties |
False |
ExtractionPipelineStepConfig |
|||
Schema for extraction pipeline step configuration. |
|||
type |
object |
||
properties |
|||
|
Configuration for running a container |
||
default |
COMMAND |
apptainer |
|
ARGS |
|||
ENV_VARS |
|||
INHERIT |
True |
||
|
Name |
||
Step name. Required if the pipeline has multiple steps |
|||
type |
string |
||
default |
default |
||
|
Analysis level of the pipeline step. This controls the granularity of the loop over subjects and sessions. By default, pipeline runners will loop over all subjects and sessions, but this field field can be set to “AnalysisLevelType.participant” to loop over subjects only, “AnalysisLevelType.session” to loop over sessions only, and AnalysisLevelType.group to only run the pipeline a single time. |
||
default |
participant_session |
||
|
Descriptor File |
||
Path to the JSON descriptor file. Only needed for custom pipelines |
|||
default |
null |
||
anyOf |
type |
string |
|
format |
path |
||
type |
null |
||
|
Invocation File |
||
Path to the JSON invocation file |
|||
default |
null |
||
anyOf |
type |
string |
|
format |
path |
||
type |
null |
||
|
Hpc Config File |
||
Path to the HPC config file. This file should contain key-value pairs to be passed to the Jinja template inside the <NIPOPPY_PROJECT_ROOT>/code/hpc directory. |
|||
default |
null |
||
anyOf |
type |
string |
|
format |
path |
||
type |
null |
||
additionalProperties |
False |
PipelineInfo |
||
Schema for pipeline information. |
||
type |
object |
|
properties |
||
|
Name |
|
Name of the pipeline |
||
type |
string |
|
|
Version |
|
Version of the pipeline |
||
type |
string |
|
|
Step |
|
Name of the pipeline step |
||
type |
string |
|
default |
default |
|
additionalProperties |
False |
PipelineTypeEnum |
|
Pipeline types. |
|
type |
string |
enum |
bidsification, processing, extraction |
Tracker configuration file¶
How to read the schema table
Read the table from top to bottom, left to right
Required properties are in bold
The type of each property is in italics, to the right of a cell labelled “type”
Unless if that property is an object described by another schema, in which case it is a link to that schema
Default values are shown for optional properties (
None
if empty)See the JSON schema docs for more details about keyword meanings
Here is the schema for a tracker configuration file:
TrackerConfig |
|||
Schema for tracker configuration. |
|||
type |
object |
||
properties |
|||
|
Paths |
||
List of at least one path to track. A path can include template strings for participant/session IDs and/or glob expressions |
|||
type |
array |
||
items |
type |
string |
|
format |
path |
||
|
Participant Session Dir |
||
Path to the directory where participant-session results are expected |
|||
default |
null |
||
anyOf |
type |
string |
|
format |
path |
||
type |
null |
||
additionalProperties |
False |
HPC configuration file¶
How to read the schema table
Read the table from top to bottom, left to right
Required properties are in bold
The type of each property is in italics, to the right of a cell labelled “type”
Unless if that property is an object described by another schema, in which case it is a link to that schema
Default values are shown for optional properties (
None
if empty)See the JSON schema docs for more details about keyword meanings
Here is the schema for an HPC (high-performance computing) configuration file:
HpcConfig |
|
Schema for High-Performance Computing (HPC) system configuration. Key-value pairs are passed to a Jinja template for the requested HPC job queue.
Values are converted to strings except if they are None. |
|
type |
object |
properties |
|
additionalProperties |
True |
Manifest file¶
How to read the schema table
Read the table from top to bottom, left to right
Required properties are in bold
The type of each property is in italics, to the right of a cell labelled “type”
Unless if that property is an object described by another schema, in which case it is a link to that schema
Default values are shown for optional properties (
None
if empty)See the JSON schema docs for more details about keyword meanings
Here is the schema for the manifest file:
ManifestModel |
||||
A user-provided listing of participant and visits available in the dataset. Note: This class is called “model” to be consistent with Pydantic nomenclature, but it can be thought of as a schema for each row in the manifest file. |
||||
type |
object |
|||
properties |
||||
|
Participant ID |
|||
Participant identifier, without the BIDS prefix |
||||
type |
string |
|||
|
Visit Id |
|||
Visit identifier |
||||
type |
string |
|||
|
Session Id |
|||
Imaging session identifier, without the BIDS prefix |
||||
anyOf |
type |
string |
||
type |
null |
|||
|
Datatype |
|||
Imaging datatype, as recognized by BIDS (see https://bids-specification.readthedocs.io/en/stable/common-principles.html) |
||||
anyOf |
type |
array |
||
items |
type |
string |
||
type |
null |
|||
additionalProperties |
True |
Curation status file¶
How to read the schema table
Read the table from top to bottom, left to right
Required properties are in bold
The type of each property is in italics, to the right of a cell labelled “type”
Unless if that property is an object described by another schema, in which case it is a link to that schema
Default values are shown for optional properties (
None
if empty)See the JSON schema docs for more details about keyword meanings
Here is the schema for the curation status file:
CurationStatusModel |
||||
An internally- or user-generated file to keep track of the BIDSification process. Should contain exactly the same data as the manifest, with some additional columns. Note: This class is called “model” to be consistent with Pydantic nomenclature, but it can be thought of as a schema for each row in the curation status file. |
||||
type |
object |
|||
properties |
||||
|
Participant ID |
|||
Participant identifier, without the BIDS prefix |
||||
type |
string |
|||
|
Visit Id |
|||
Visit identifier |
||||
type |
string |
|||
|
Session Id |
|||
Imaging session identifier, without the BIDS prefix |
||||
anyOf |
type |
string |
||
type |
null |
|||
|
Datatype |
|||
Imaging datatype, as recognized by BIDS (see https://bids-specification.readthedocs.io/en/stable/common-principles.html) |
||||
anyOf |
type |
array |
||
items |
type |
string |
||
type |
null |
|||
|
Participant DICOM directory |
|||
Path to the directory containing raw DICOMs (in potentially messy tree structure) for the participant-visit pair, relative to the raw data directory |
||||
type |
string |
|||
|
In Pre Reorg |
|||
Whether files are available on disk |
||||
type |
boolean |
|||
|
In Post Reorg |
|||
Whether files have been organized in the sourcedata directory |
||||
type |
boolean |
|||
|
BIDSified |
|||
Whether files have been converted to BIDS |
||||
type |
boolean |
|||
additionalProperties |
True |
Processing status file¶
How to read the schema table
Read the table from top to bottom, left to right
Required properties are in bold
The type of each property is in italics, to the right of a cell labelled “type”
Unless if that property is an object described by another schema, in which case it is a link to that schema
Default values are shown for optional properties (
None
if empty)See the JSON schema docs for more details about keyword meanings
Here is the schema for the processing status file:
ProcessingStatusModel |
||
A file generated by the trackers. Contains processing statuses for image processing pipelines. Note: This class is called “model” to be consistent with Pydantic nomenclature, but it can be thought of as a schema for each row in the processing status file. |
||
type |
object |
|
properties |
||
|
Participant ID |
|
Participant identifier, without the BIDS prefix (as in the manifest) |
||
type |
string |
|
|
BIDS participant ID |
|
Participant identifier with BIDS prefix (e.g., sub-01) |
||
type |
string |
|
|
Session Id |
|
Imaging session identifier, without the BIDS prefix |
||
type |
string |
|
|
Bids Session Id |
|
Imaging session identifier with BIDS prefix (e.g., ses-01) |
||
type |
string |
|
|
Pipeline Name |
|
The name of the pipeline being tracked |
||
type |
string |
|
|
Pipeline Version |
|
The version of the pipeline being tracked |
||
type |
string |
|
|
Pipeline Step |
|
The name of the pipeline step being tracked |
||
type |
string |
|
|
Status |
|
The status of the pipeline run for this participant-visit pair |
||
type |
string |
DICOM directory mapping file¶
How to read the schema table
Read the table from top to bottom, left to right
Required properties are in bold
The type of each property is in italics, to the right of a cell labelled “type”
Unless if that property is an object described by another schema, in which case it is a link to that schema
Default values are shown for optional properties (
None
if empty)See the JSON schema docs for more details about keyword meanings
Here is the schema for the DICOM directory mapping file:
DicomDirMapModel |
||
A file for mapping participant IDs to DICOM directories. Note: This class is called “model” to be consistent with Pydantic nomenclature, but it can be thought of as a schema for each row in the mapping file. |
||
type |
object |
|
properties |
||
|
Participant ID |
|
Participant identifier, without the BIDS prefix |
||
type |
string |
|
|
Session Id |
|
Imaging session identifier, without the BIDS prefix |
||
type |
string |
|
|
Participant’s raw DICOM directory |
|
Path to the participant’s source DICOM directory, relative to <NIPOPPY_PROJECT_ROOT>/sourcedata/imaging/pre_reorg |
||
type |
string |
Layout configuration¶
How to read the schema table
Read the table from top to bottom, left to right
Required properties are in bold
The type of each property is in italics, to the right of a cell labelled “type”
Unless if that property is an object described by another schema, in which case it is a link to that schema
Default values are shown for optional properties (
None
if empty)See the JSON schema docs for more details about keyword meanings
The default Nipoppy layout
The default Nipoppy layout uses the following configuration:
1{
2 "dpath_bids": {
3 "path": "bids",
4 "description": "This directory contains the raw dataset converted to the BIDS standard."
5 },
6 "dpath_derivatives": {
7 "path": "derivatives",
8 "description": "This directory contains the outputs of image processing pipelines. Outputs of different pipelines are stored in `<pipeline_name>/<pipeline_version>` subdirectories. Each subdirectory has two additional subdirectories: one for the actual output (under `output`) and one for temporary files created during processing (under `work`)."
9 },
10 "dpath_sourcedata": {
11 "path": "sourcedata",
12 "description": "This directory is for the unorganized or arbitrarily organized source data (imaging and tabular)."
13 },
14 "dpath_src_tabular": {
15 "path": "sourcedata/tabular",
16 "description": "This directory is for the unorganized or arbitrarily organized tabular data."
17 },
18 "dpath_src_imaging": {
19 "path": "sourcedata/imaging",
20 "description": "This directory is for the unorganized or arbitrarily organized imaging data (files and archives)."
21 },
22 "dpath_downloads": {
23 "path": "sourcedata/imaging/downloads",
24 "description": "This directory is for downloaded data archives (e.g., tarballs or zipped files)."
25 },
26 "dpath_pre_reorg": {
27 "path": "sourcedata/imaging/pre_reorg",
28 "description": "This directory is for arbitrarily organized source imaging files."
29 },
30 "dpath_post_reorg": {
31 "path": "sourcedata/imaging/post_reorg",
32 "description": "This directory is for the organized source data that is ready for BIDS conversion."
33 },
34 "dpath_code": {
35 "path": "code",
36 "description": "This directory is for custom code."
37 },
38 "dpath_hpc": {
39 "path": "code/hpc",
40 "description": "This directory is for HPC job submission templates. It can be deleted if HPC job submission is not needed."
41 },
42 "dpath_containers": {
43 "path": "containers",
44 "description": "This directory is for storing the container image files for the BIDS conversion/processing pipelines."
45 },
46 "dpath_pipelines": {
47 "path": "pipelines",
48 "description": "This directory is for storing the Nipoppy configuration information and custom code."
49 },
50 "dpath_scratch": {
51 "path": "scratch",
52 "description": "This directory is for temporary/working files."
53 },
54 "dpath_pybids_db": {
55 "path": "scratch/pybids_db",
56 "description": "This directory is for PyBIDS databases generated/used during processing."
57 },
58 "dpath_work": {
59 "path": "scratch/work",
60 "description": "This directory is for temporary/working files generated/used during processing."
61 },
62 "dpath_logs": {
63 "path": "logs",
64 "description": "This directory contains log files."
65 },
66 "dpath_tabular": {
67 "path": "tabular",
68 "description": "This directory is for tabular/phenotypic data."
69 },
70 "dpath_assessments": {
71 "path": "tabular/assessments",
72 "description": "This directory is for assessments data."
73 },
74 "fpath_config": {
75 "path": "global_config.json",
76 "description": "The configuration file for a dataset is where all data processing is configured."
77 },
78 "fpath_curation_status": {
79 "path": "sourcedata/imaging/curation_status.tsv",
80 "description": "The curation status file is generated/updated internally and is used to keep track of the raw data organization and BIDSification process."
81 },
82 "fpath_manifest": {
83 "path": "manifest.tsv",
84 "description": "The manifest file lists all expected study participants and visits."
85 },
86 "fpath_processing_status": {
87 "path": "derivatives/processing_status.tsv",
88 "description": "The processing status file lists availability of derived imaging data and pipeline processing statuses."
89 },
90 "fpath_demographics": {
91 "path": "tabular/demographics.tsv",
92 "description": "The demographics file contains demographic information for study participants."
93 }
94}
Here is the schema used for JSON files that define the layout of the dataset:
LayoutConfig |
|
Relative paths for the dataset layout. |
|
type |
object |
properties |
|
|
Directory for raw imaging data in BIDS |
|
Directory for imaging derivatives |
|
Directory for source imaging and tabular data |
|
Directory for tabular data source files (e.g., downloaded CSVs, Excel files, RedCAP reports) |
|
Directory for non-BIDS imaging data files and archives |
|
Directory for downloaded data |
|
Directory for unorganized source imaging files |
|
Directory for imaging data that is organized but not yet in BIDS |
|
Directory for code and scripts |
|
Directory for HPC job submission template files |
|
Directory for configurations or other files needed to run pipelines |
|
Directory for storing container images |
|
Directory for temporary files |
|
Directory for PyBIDS databases |
|
Directory for temporary/working files generated during pipeline runs |
|
Directory for logs generated by Nipoppy |
|
Directory for tabular data |
|
Directory for tabular assessment data |
|
Path to the configuration file |
|
Path to the manifest file |
|
Path to the curation status file (for tracking the BIDSification process) |
|
Path to the processing status file (for tracking imaging derivative availability at the participant level) |
|
Path to the study’s demographics data file |
additionalProperties |
False |
DpathInfo |
|||
Relative path and description for a directory. |
|||
type |
object |
||
properties |
|||
|
Path |
||
Relative path to the file or directory |
|||
type |
string |
||
format |
path |
||
|
Description |
||
Description of the function of the file or directory |
|||
default |
null |
||
anyOf |
type |
string |
|
type |
null |
FpathInfo |
|||
Relative path and description for a file. |
|||
type |
object |
||
properties |
|||
|
Path |
||
Relative path to the file or directory |
|||
type |
string |
||
format |
path |
||
|
Description |
||
Description of the function of the file or directory |
|||
default |
null |
||
anyOf |
type |
string |
|
type |
null |
OptionalDpathInfo |
|||
Relative path and description for a directory that is optional. |
|||
type |
object |
||
properties |
|||
|
Path |
||
Relative path to the file or directory |
|||
type |
string |
||
format |
path |
||
|
Description |
||
Description of the function of the file or directory |
|||
default |
null |
||
anyOf |
type |
string |
|
type |
null |
OptionalFpathInfo |
|||
Relative path and description for a file that is optional. |
|||
type |
object |
||
properties |
|||
|
Path |
||
Relative path to the file or directory |
|||
type |
string |
||
format |
path |
||
|
Description |
||
Description of the function of the file or directory |
|||
default |
null |
||
anyOf |
type |
string |
|
type |
null |
Custom Nipoppy configurations in a Boutiques descriptor¶
How to read the schema table
Read the table from top to bottom, left to right
Required properties are in bold
The type of each property is in italics, to the right of a cell labelled “type”
Unless if that property is an object described by another schema, in which case it is a link to that schema
Default values are shown for optional properties (
None
if empty)See the JSON schema docs for more details about keyword meanings
Nipoppy can read additional configurations from a Boutiques descriptor, under the
custom\nipoppy
key. The JSON object is expected to comply with the following schema:
BoutiquesConfig |
|||
Schema for custom configuration within a Boutiques descriptor. |
|||
type |
object |
||
properties |
|||
|
Container Subcommand |
||
Subcommand for Apptainer/Singularity call |
|||
type |
string |
||
default |
run |
||
|
Configuration for running a container |
||
default |
COMMAND |
apptainer |
|
ARGS |
|||
ENV_VARS |
|||
INHERIT |
True |
||
additionalProperties |
False |
ContainerCommandEnum |
|
Container commands. |
|
type |
string |
enum |
singularity, apptainer |
ContainerConfig |
|||
Schema for container configuration. Does not include information about the container image. |
|||
type |
object |
||
properties |
|||
|
Name of container engine. If null/None, the pipeline will not run in a container (e.g., baremetal installations). |
||
default |
apptainer |
||
anyOf |
|||
type |
null |
||
|
Args |
||
Arguments for Apptainer/Singularity call (to be appended after the subcommand) |
|||
type |
array |
||
default |
|||
items |
type |
string |
|
|
Env Vars |
||
Environment variables that should be available inside the container |
|||
type |
object |
||
default |
|||
additionalProperties |
type |
string |
|
|
Inherit |
||
Whether this config should inherit from higher-lever container configs. If false, will ignore higher-level configs |
|||
type |
boolean |
||
default |
True |
||
additionalProperties |
False |