Skip to content

Commit

Permalink
clarifications
Browse files Browse the repository at this point in the history
  • Loading branch information
CPernet committed Jan 8, 2024
1 parent 5a9919a commit a875862
Showing 1 changed file with 5 additions and 9 deletions.
14 changes: 5 additions & 9 deletions paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,23 +71,19 @@ bibliography: paper.bib

The Brain Imaging Data Structure [@gorgolewski_brain_2016] is a standard for organizing and naming neuroimaging data which has quickly become successful and popular in the community with adoption by major brain imaging repositories (e.g. OpenNeuro [@noauthor_openneuro], PublicnEUro [@noauthor_public], CONP [@noauthor_canadian]) and data management tools (e.g. COINS [@landis_coins_2016], XNAT [@marcus_extensible_2007], Loris [@das_loris_2012]). This not only allows data to be shared much more easily, but also enables the development of automated data analysis pipelines, and together improves reproducibility.

The BIDS extension for Positron Emission Tomography (PET-BIDS) [@norgaard_pet-bids_2022] provides a structured data and metadata nomenclature, including all the necessary information to share and report on PET blood and metabolite [@knudsen_guidelines_2020]. Here we present a new code library, developed in both Matlab and Python, allowing the conversion of PET imaging data (ECAT and DICOM format) and metadata (e.g., time or blood measurements) into the BIDS specification.
The BIDS extension for Positron Emission Tomography (PET-BIDS) [@norgaard_pet-bids_2022] provides a structured data and metadata nomenclature, including all the necessary information to share and report on PET blood and metabolite [@knudsen_guidelines_2020]. Here we present a new code library, developed in both Matlab and Python, allowing the conversion of DICOM [dicm_ref_2020] and ECAT (CTI/Siemens proprietary data format) PET imaging data and metadata (e.g., timing information such as e.g. 'time zero' or blood measurements) into the BIDS specification.

# Statement of need

`PET2BIDS` was designed as a library code, allowing conversion of PET data to BIDS using the command line. Thanks to its modular structure, it can be integrated into software (with a graphical user interface) that aim at more general BIDS conversion, and current efforts are underway integrating PET2BIDS with ezBIDS [@noauthor_ezbids] and BIDSCoins [@zwiers_bidscoin_2022].
Conversion tools from native format to BIDS are essential to help researchers to use BIDS. While it exists tools for MRI and MEEG, PET2BIDS is the first tool to convert PET data to BIDS. Because PET2BIDS is a code library, conversion is done using the command line only. PET2BIDS can however also be integrated into software (with a graphical user interface) that aim at more general BIDS conversion, and current efforts are underway integrating PET2BIDS with ezBIDS [@noauthor_ezbids] and BIDSCoins [@zwiers_bidscoin_2022].

_File conversion_: The conversion for PET data stored in DICOM format to NIfTI is performed using the dcm2niix4pet (.m and .py) functions which are wrapper functions around dcm2niix [@rorden_dcm2nii; @li_first_2016] that extend the JSON file with details that are not included in the source images but are required for BIDS. Those information are given by the user. The conversion of PET data stored in ECAT format is performed using the newly created ecat2nii (.m .py) functions. The Matlab code relies on the readECAT7.m function from BT Christian (1998) and revised by RF Muzic (2002) to read the data, while writting relies on nii_tool [@Li_2016] while producing the correct JSON sidecar file, and optionally a (non-BIDS compliant) SIF file (Scan Information File - used by different pharmacokinetic modelling software for model weighting). The Python code was developed to mirror the Matlab code, with further testing of data reading (i.e., which parts are read according to the PET data frames) and writing, relying here on Nibabel [@brett_nipynibabel_2023].
_File conversion_: The conversion for PET data stored in DICOM format to NIfTI is performed using the dcm2niix4pet (.m and .py) functions which are wrapper functions around dcm2niix [@rorden_dcm2nii; @li_first_2016] that extend the image sidecar JSON file generated by dcm2niix with details that are not included in the source images but are required for BIDS. Those information must be provided by the user. The conversion of PET data stored in ECAT format is performed using the newly created ecat2nii (.m .py) functions. The Matlab code relies on the readECAT7.m function writen by BT Christian (1998) and revised by RF Muzic (2002) to read the data, while writing Nifti files relies on nii_tool [@Li_2016]. The Python code was developed to mirror the Matlab code, with further testing of data reading (i.e., which file bits are read according to the PET data frames - see [ecat validation](https://github.com/openneuropet/PET2BIDS/tree/main/ecat_validation)) and writing, relying here on Nibabel [@brett_nipynibabel_2023]. As for DICOM, JSON sidecar file are created from image data but adding PET metadata provided by users.

_PET Metadata_: JSON files created from reading PET scanner data are always missing some of the
radiotracer and pharmaceutical information. To accommodate this, a dedicated PET JSON updater was
created. The PET JSON updater function takes the original JSON file and new metadata to add as input,
checks that the full BIDS specification is respected (correct metadata but also consistency of metadata
values for the different metadata keys) and updates the JSON file.
created. The PET JSON updater functions (updatejsonpetfile.m and xxx.py) takes the original image sidecar JSON file and new metadata to add as input, checks that the full BIDS specification is respected (correct metadata but also consistency of metadata values for the different metadata keys) and updates the image sidecar JSON file.

_Spreadsheet conversion_: tabular data formats (xls, xlsx, csv, tsv, bld) are ubiquitous in the PET
community in particular to (a) keep track of radiotracer information injected per participant and (b)
recording of time and radiotracer concentration from the blood sampling. To facilitate conversion to BIDS, three dedicated functions were created to (i) convert pre-formatted tabular data to JSON files, or(ii) use pre-formatted tabular data to update JSON files, or (iii) convert a tabular PMOD file to a blood.tsv file (PMOD being a popular commercial pharmacokinetic modelling software [@Burger1997]).
_Spreadsheet conversion_: tabular data formats are ubiquitous in the PET community in particular to keep track of radiotracer information injected per participant and recording of time and radiotracer concentration from the blood sampling. To facilitate conversion to BIDS, three dedicated functions were created to (i) convert pre-formatted tabular data to image sidecar JSON files, or(ii) use pre-formatted tabular data to update image sidecar JSON files, or (iii) convert a tabular PMOD file to a BIDS blood.tsv file with it's sidecar JSON. (PMOD being a popular commercial pharmacokinetic modelling software [@Burger1997]). Supported formats are .xls, .xlsx, .csv, .tsv and .bld.

# Acknowledgements

Expand Down

0 comments on commit a875862

Please sign in to comment.