The manifest file

The Nipoppy manifest file is a TSV file that contains ground truth information about the participants, visits, sessions, and imaging datatypes available in a dataset.

Here is an example manifest file:

participant_id

visit_id

session_id

datatype

01

BL

BL

[‘anat’]

01

M06

01

M12

M12

[‘anat’]

02

BL

BL

[‘anat’,’dwi’]

02

M06

02

M12

M12

[‘anat’,’dwi’]

Inspiration

Those who are familiar with BIDS might notice that this file seems similar to the participants.tsv file in BIDS datasets. Indeed, the manifest file is heavily inspired by BIDS’ participant.tsv, though there are some notable differences:

  • The manifest can contain longitudinal information, i.e. a single participant can have multiple rows representing different (imaging or non-imaging visits).

  • The manifest file is mandatory (participants.tsv is optional).

In the Nipoppy protocol

Nipoppy protocol

Conceptually, the manifest file creation is the first step in the Nipoppy protocol (once the Nipoppy dataset has been created).

This is where the “Curate” phase of the protocol begins: using information obtained in the “Capture” phase (which may be messy or non/semi-standardized, imaging and/or non-imaging), we build a source of ground truth information that will be critical for knowing which participants and visits (imaging or non-imaging) are expected to exist in the study.

Following the Nipoppy principle of specifying the sequence or tasks whenever possible, the Nipoppy protocol stipulates that the manifest should ideally be created before any other step (BIDSification, processing, etc.) is taken.

With the Nipoppy tools

The manifest is considered the ground truth of what data should be available for a given study: any participant/visit that is not present in the manifest is ignored by the Nipoppy software tools, regardless of whether they have data on disk.

The nipoppy status command prints a summary table that includes counts for the number of participants that are in the manifest for each imaging session.

The nipoppy track-curation command will check whether each participant-session pair listed in the manifest file has imaging data in each of the three data curation stages:

  • Arbitrarily organized sourcedata in <NIPOPPY_PROJECT_ROOT>/sourcedata/imaging/pre_reorg

  • Sourcedata ready for BIDS conversion in <NIPOPPY_PROJECT_ROOT>/sourcedata/imaging/post_reorg

  • Data organized according to BIDS in <NIPOPPY_PROJECT_ROOT>/bids

This information is stored in the curation status file, which is used by the nipoppy bidsify, nipoppy process and nipoppy extract commands to determine which participants and sessions a pipeline should be run on.