Skip to content
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

[ENH] BEP022 - Magnetic Resonance Spectroscopy #425

Merged
merged 41 commits into from
Aug 29, 2024
Merged
Show file tree
Hide file tree
Changes from 39 commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
ac8272b
Update 2024-01-20
markmikkelsen Jan 21, 2024
2dbf91e
Update `participants.json` files
markmikkelsen Jan 28, 2024
3bacbd9
Remove .m files from MRS datasets
markmikkelsen Feb 8, 2024
07e92a1
Update `*_events.tsv` files in `mrs_fmrs/`
markmikkelsen Feb 8, 2024
c936703
Update `dataset_description.json` files for MRS datasets
markmikkelsen Feb 10, 2024
a57e7a8
Remove two leftover source data files from `mrs_biggaba/`
markmikkelsen Feb 14, 2024
3056015
Update `README.md` files for MRS datasets
markmikkelsen Feb 14, 2024
7ec3dd2
Update README.md files for `mrs_2dmrsi` and `mrs_biggaba`
markmikkelsen Feb 25, 2024
ca2672c
Update `mrs_biggaba/`
markmikkelsen Feb 27, 2024
a3b7d70
Correct filename
markmikkelsen Feb 27, 2024
f63af00
Update `dataset_listing.tsv`
markmikkelsen Feb 27, 2024
0fbf2bc
Merge branch 'master' into bep022
markmikkelsen Feb 27, 2024
732d601
Update example MRS ref data suffices
markmikkelsen Apr 13, 2024
409442c
Update `ref` to `mrsref`
markmikkelsen Apr 13, 2024
fd61cad
Updates to match master branch
markmikkelsen May 3, 2024
ba219a7
Merge branch 'master' into bep022
markmikkelsen May 3, 2024
f6c69ed
fix listing
Remi-Gau May 4, 2024
c90ac75
update ignore list code spell
Remi-Gau May 4, 2024
a669e4d
fix tables in README
Remi-Gau May 4, 2024
3d69d39
lowercase for codespell
Remi-Gau May 4, 2024
ed31183
Add .json sidecars to the `mrs_fmrs/` subjects' datasets
markmikkelsen May 31, 2024
be5eafa
Merge branch 'bids-standard:master' into bep022
markmikkelsen May 31, 2024
c3c1f57
Update `mrs_fmrs/README.md`
markmikkelsen Jun 3, 2024
3768257
Update `mrs_2dmrisi/README.md`
markmikkelsen Jun 6, 2024
807fbb8
Merge remote-tracking branch 'upstream/master' into bep022
effigies Jul 25, 2024
032304e
RUN: python tools/print_dataset_listing.py with pybids 0.16.5.post0.dev9
effigies Jul 25, 2024
7166068
CI: Use a draft schema for validation
effigies Jul 25, 2024
48aac8f
Merge branch 'master' into bep022
effigies Jul 30, 2024
311b0f6
Merge branch 'master' into bep022
effigies Aug 7, 2024
b396bd1
fix: Update type of SpectrometerFrequency and ResonantNucleus
effigies Aug 7, 2024
475caf7
fix: Schema validator installation URL
effigies Aug 7, 2024
e488826
chore(ci): Update BIDS_SCHEMA URL
effigies Aug 7, 2024
ce090a8
fix(json): Convert MagneticFieldStrength strings to numbers
effigies Aug 13, 2024
227bab9
Merge remote-tracking branch 'upstream/master' into bep022
effigies Aug 27, 2024
3a7951d
CI: Update schema/validator URLs
effigies Aug 27, 2024
80d24be
CI: Skip MRS validation for legacy validator
effigies Aug 27, 2024
0a87fce
chore(ci): Fix conditions and shell
effigies Aug 27, 2024
7c33ed7
Merge branch 'master' into bep022
effigies Aug 27, 2024
bc92a4d
fix: Remove "WaterSuppresionTechnique": null
effigies Aug 27, 2024
53f59d5
Update .github/workflows/validate_datasets.yml
effigies Aug 27, 2024
97b21a7
Update README/dataset_listing.tsv
effigies Aug 28, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .codespellrc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[codespell]
skip = .git,env,venv,ds*,asl*,qmr*,genetics*,fnirs*,eeg*,meg*,pet*,ieeg*,motion*,synthetic*
builtin = clear,rare
ignore-words-list = nd
ignore-words-list = nd,te
9 changes: 8 additions & 1 deletion .github/workflows/validate_datasets.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,9 @@ jobs:
run: |
# If unmerged validator PRs are needed for testing, you can use
# https://github.com/<FORK>/bids-validator/raw/<BRANCH>/bids-validator/src/bids-validator.ts
deno install -Agf https://github.com/bids-standard/bids-validator/raw/deno-build/bids-validator.js
# Note that the typescript (.ts) MUST be used instead of (.js),
# otherwise BIDS_SCHEMA will not be respected
deno install -Agf https://raw.githubusercontent.com/bids-standard/bids-validator/deno-build/bids-validator.js
effigies marked this conversation as resolved.
Show resolved Hide resolved
shell: bash

- name: Display versions and environment information
Expand All @@ -98,6 +100,11 @@ jobs:
fi
shell: bash

- name: Skip MRS validation for legacy validator
run: for DS in mrs_*; do touch $DS/.SKIP_VALIDATION; done
if: "matrix.bids-validator != 'master-deno'"
shell: bash

- name: Validate all BIDS datasets using bids-validator
run: |
cat ./run_tests.sh
Expand Down
11 changes: 11 additions & 0 deletions README.md
effigies marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,17 @@ DO NOT EDIT DIRECTLY.
| [ieeg_visual_multimodal](https://github.com/bids-standard/bids-examples/tree/master/ieeg_visual_multimodal) | n/a | anat, fmap, func, ieeg | T1w, bold, channels, coordsystem, electrodes, epi, events, ieeg, sbref | n/a | [@irisgroen](https://github.com/irisgroen) |
| [synthetic](https://github.com/bids-standard/bids-examples/tree/master/synthetic) | A synthetic dataset | anat, beh, func | T1w, beh, bold, events, physio, scans, sessions, stim | n/a | [@effigies](https://github.com/effigies) |

### MRS

<!--
TABLE BELOW IS GENERATED AUTOMATICALLY.
DO NOT EDIT DIRECTLY.
-->

| name | description | datatypes | suffixes | link to full data | maintained by |
|:--------------------------------------------------------------------------------|:--------------------------------------------------------------------|:------------|:------------|:-------------------------------------------------|:---------------------------------------------------|
| [mrs_fmrs](https://github.com/bids-standard/bids-examples/tree/master/mrs_fmrs) | Functional MRS data involving a pain stimulus task from 15 subjects | anat, mrs | T1w, events | [link](https://www.nitrc.org/projects/fmrs_2020) | [@markmikkelsen](https://github.com/markmikkelsen) |

### NIRS

<!--
Expand Down
3 changes: 3 additions & 0 deletions dataset_listing.tsv
effigies marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
Expand Up @@ -76,3 +76,6 @@ ieeg_visual_multimodal [@irisgroen](https://github.com/irisgroen) anat, fmap,
genetics_ukbb multiple tasks, T1w, DTI, BOLD, genetic info [@cpernet](https://github.com/cpernet) anat, dwi, func FLAIR, T1w, bold, dwi, events, info
effigies marked this conversation as resolved.
Show resolved Hide resolved
motion_dualtask older and younger participants walking while performing discrimination task [@sjeung](https://github.com/sjeung) eeg, motion channels, eeg, events, motion, scans
motion_spotrotation participants rotated heading using full-body motion or joystick [link](https://openneuro.org/datasets/ds004460) [@sjeung](https://github.com/sjeung) eeg, motion channels, coordsystem, eeg, electrodes, events, motion, scans
mrs_2dmrsi 2D sLASER MRSI data from 8 subjects [link](https://zenodo.org/records/7701228) [@markmikkelsen](https://github.com/markmikkelsen) anat T1w
effigies marked this conversation as resolved.
Show resolved Hide resolved
mrs_biggaba MEGA-PRESS and PRESS MRS data from 12 subjects from one site from the Big GABA project [link](https://www.nitrc.org/projects/biggaba) [@markmikkelsen](https://github.com/markmikkelsen) anat T1w
mrs_fmrs Functional MRS data involving a pain stimulus task from 15 subjects [link](https://www.nitrc.org/projects/fmrs_2020) [@markmikkelsen](https://github.com/markmikkelsen) anat, mrs T1w, events
5 changes: 5 additions & 0 deletions mrs_2dmrsi/CHANGES
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
1.0.1 2023-11-28
- Edits for inclusion into https://github.com/bids-standard/bids-examples

1.0.0 2022-10-06
- Initial release
31 changes: 31 additions & 0 deletions mrs_2dmrsi/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# 2D semi-LASER MRSI reproducibility dataset

Contact: <[email protected]>

Data availability: <https://doi.org/10.5281/zenodo.7701228>

Publications:

- <https://doi.org/10.1016/j.neuroimage.2023.120235>

## Overview

The data from this study were acquired as part of a project to validate [SLIPMAT](https://doi.org/10.1016/j.neuroimage.2023.120235), a tool to extract high-quality, tissue-specific, spectral profiles from MR spectroscopic imaging data (MRSI).

Data types included are T1-weighted structural MRI images and 2D semi-LASER MRSI data. Each subject has three runs of each MRSI acquisition.

## Methods

### Subjects

Eight healthy adults (2 females, 6 males, mean age = 21 years).

### MR protocol

Reproduced with slight modifications from [SLIPMAT](https://doi.org/10.1016/j.neuroimage.2023.120235):

MR data were acquired using a 3T Siemens Magnetom Prisma (Siemens Healthcare, Erlangen, Germany) system using a 32-channel receiver head coil-array. A T1-weighted MRI scan was acquired with a 3D-MPRAGE sequence: FOV = 208 × 256 × 256 mm, resolution = 1 × 1 × 1 mm<sup>3</sup>, TE / TR = 2 ms / 2000 ms, inversion time = 880 ms, flip angle = 8°, GRAPPA acceleration factor = 2, 4 min 54 s scan duration. Water suppressed MRSI data were acquired with 2D phase-encoding: FOV = 160 × 160 × 15 mm<sup>3</sup>, nominal voxel resolution 10 × 10 × 15 mm<sup>3</sup>, TE / TR = 40 ms / 2000 ms, complex data points = 1024, sampling frequency = 2000 Hz. The MRSI slice was aligned axially in the subcallosal plane with an approximately 1 mm gap from the upper surface of the corpus callosum. The semi-LASER method ([Scheenen et al., 2008](https://doi.org/10.1002/mrm.21302)) was used localize a 100 × 100 × 15 mm VOI, central to the FOV, four saturation regions were placed around the VOI prescribing a 100 × 100 mm interior, and an additional four saturation regions were positioned to intersect the four corners of the semi-LASER VOI to provide additional scalp lipid suppression. The total acquisition time for a single MRSI scan was 5 min and 6 s, and three MRSI datasets were acquired sequentially during the same session to assess technical repeatability.

### Experimental location

Centre for Human Brain Health, University of Birmingham, Birmingham, UK.
21 changes: 21 additions & 0 deletions mrs_2dmrsi/dataset_description.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"Name": "mrs_2dmrsi",
"BIDSVersion": "1.10.0",
"DatasetType": "raw",
"License": "Creative Commons Attribution 4.0 International License",
"Authors": [
"Martin Wilson",
"Olivia Vella"
],
"ReferencesAndLinks": [
"doi:10.1016/j.neuroimage.2023.120235"
],
"DatasetDOI": "doi:10.5281/zenodo.7701228",
"SourceDatasets": [
{
"URL": "https://zenodo.org/records/7701228",
"DOI": "doi:10.5281/zenodo.7701228",
"Version": "v4"
}
]
}
72 changes: 72 additions & 0 deletions mrs_2dmrsi/sub-01/anat/sub-01_T1w.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
{
"Modality": "MR",
"MagneticFieldStrength": 3,
"ImagingFrequency": 123.252,
"Manufacturer": "Siemens",
"ManufacturersModelName": "Prisma",
"InstitutionName": "CHBH",
"InstitutionalDepartmentName": "CHBH",
"InstitutionAddress": "Pritchatts Road CHBH,Birmingham,District,GB,B152RA",
"DeviceSerialNumber": "166100",
"StationName": "AWP166100",
"BodyPartExamined": "BRAIN",
"PatientPosition": "HFS",
"SoftwareVersions": "syngo MR E11",
"MRAcquisitionType": "3D",
"SeriesDescription": "T1_vol_MPR_v1",
"ProtocolName": "T1_vol_MPR_v1",
"ScanningSequence": "GR\\IR",
"SequenceVariant": "SK\\SP\\MP\\OSP",
"ScanOptions": "IR",
"SequenceName": "*tfl3d1_16ns",
"ImageType": ["ORIGINAL", "PRIMARY", "M", "ND", "NORM"],
"SeriesNumber": 7,
"AcquisitionNumber": 1,
"SliceThickness": 1,
"SAR": 0.0560902,
"EchoTime": 0.00203,
"RepetitionTime": 2,
"SpoilingState": true,
"InversionTime": 0.88,
"FlipAngle": 8,
"PartialFourier": 1,
"BaseResolution": 256,
"ShimSetting": [
-6825,
-3922,
3512,
392,
-104,
-143,
93,
30 ],
"TxRefAmp": 252.801,
"PhaseResolution": 1,
"PhaseOversampling": 0.05,
"ReceiveCoilName": "Head_32",
"ReceiveCoilActiveElements": "HEA;HEP",
"PulseSequenceDetails": "%SiemensSeq%\\tfl",
"RefLinesPE": 24,
"CoilCombinationMethod": "Adaptive Combine",
"ConsistencyInfo": "N4_VE11C_LATEST_20160120",
"MatrixCoilMode": "GRAPPA",
"PercentPhaseFOV": 100,
"PercentSampling": 100,
"PhaseEncodingSteps": 269,
"AcquisitionMatrixPE": 256,
"ReconMatrixPE": 256,
"ParallelReductionFactorInPlane": 2,
"PixelBandwidth": 240,
"DwellTime": 8.2e-06,
"ImageOrientationPatientDICOM": [
-0.0456605,
0.996282,
0.0730621,
0.00408772,
0.0733241,
-0.9973 ],
"ImageOrientationText": "Sag>Cor(-2.6)>Tra(-0.4)",
"InPlanePhaseEncodingDirectionDICOM": "ROW",
"ConversionSoftware": "dcm2niix",
"ConversionSoftwareVersion": "v1.0.20211006"
}
Empty file.
13 changes: 13 additions & 0 deletions mrs_2dmrsi/sub-01/mrs/sub-01_run-1_mrsi.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"SpectrometerFrequency": [123.252145],
"ResonantNucleus": ["1H"],
"SpectralWidth": 2000,
"NumberOfSpectralPoints": 1024,
"AcquisitionVoxelSize": [10, 10, 15],
"ChemicalShiftOffset": 4.65,
"EchoTime": 0.04,
"RepetitionTime": 2,
"FlipAngle": 90,
"SequenceName": "%SiemensSeq%\\csi_slaser",
"ChemicalShiftReference": 2
}
Empty file.
13 changes: 13 additions & 0 deletions mrs_2dmrsi/sub-01/mrs/sub-01_run-2_mrsi.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"SpectrometerFrequency": [123.252145],
"ResonantNucleus": ["1H"],
"SpectralWidth": 2000,
"NumberOfSpectralPoints": 1024,
"AcquisitionVoxelSize": [10, 10, 15],
"ChemicalShiftOffset": 4.65,
"EchoTime": 0.04,
"RepetitionTime": 2,
"FlipAngle": 90,
"SequenceName": "%SiemensSeq%\\csi_slaser",
"ChemicalShiftReference": 2
}
Empty file.
13 changes: 13 additions & 0 deletions mrs_2dmrsi/sub-01/mrs/sub-01_run-3_mrsi.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"SpectrometerFrequency": [123.252145],
"ResonantNucleus": ["1H"],
"SpectralWidth": 2000,
"NumberOfSpectralPoints": 1024,
"AcquisitionVoxelSize": [10, 10, 15],
"ChemicalShiftOffset": 4.65,
"EchoTime": 0.04,
"RepetitionTime": 2,
"FlipAngle": 90,
"SequenceName": "%SiemensSeq%\\csi_slaser",
"ChemicalShiftReference": 2
}
Empty file.
72 changes: 72 additions & 0 deletions mrs_2dmrsi/sub-02/anat/sub-02_T1w.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
{
"Modality": "MR",
"MagneticFieldStrength": 3,
"ImagingFrequency": 123.252,
"Manufacturer": "Siemens",
"ManufacturersModelName": "Prisma",
"InstitutionName": "CHBH",
"InstitutionalDepartmentName": "CHBH",
"InstitutionAddress": "Pritchatts Road CHBH,Birmingham,District,GB,B152RA",
"DeviceSerialNumber": "166100",
"StationName": "AWP166100",
"BodyPartExamined": "BRAIN",
"PatientPosition": "HFS",
"SoftwareVersions": "syngo MR E11",
"MRAcquisitionType": "3D",
"SeriesDescription": "T1_vol_MPR_v1",
"ProtocolName": "T1_vol_MPR_v1",
"ScanningSequence": "GR\\IR",
"SequenceVariant": "SK\\SP\\MP\\OSP",
"ScanOptions": "IR",
"SequenceName": "*tfl3d1_16ns",
"ImageType": ["ORIGINAL", "PRIMARY", "M", "ND", "NORM"],
"SeriesNumber": 7,
"AcquisitionNumber": 1,
"SliceThickness": 1,
"SAR": 0.0585647,
"EchoTime": 0.00203,
"RepetitionTime": 2,
"SpoilingState": true,
"InversionTime": 0.88,
"FlipAngle": 8,
"PartialFourier": 1,
"BaseResolution": 256,
"ShimSetting": [
-6840,
-3919,
3485,
447,
20,
-145,
82,
18 ],
"TxRefAmp": 229.74,
"PhaseResolution": 1,
"PhaseOversampling": 0.05,
"ReceiveCoilName": "Head_32",
"ReceiveCoilActiveElements": "HEA;HEP",
"PulseSequenceDetails": "%SiemensSeq%\\tfl",
"RefLinesPE": 24,
"CoilCombinationMethod": "Adaptive Combine",
"ConsistencyInfo": "N4_VE11C_LATEST_20160120",
"MatrixCoilMode": "GRAPPA",
"PercentPhaseFOV": 100,
"PercentSampling": 100,
"PhaseEncodingSteps": 269,
"AcquisitionMatrixPE": 256,
"ReconMatrixPE": 256,
"ParallelReductionFactorInPlane": 2,
"PixelBandwidth": 240,
"DwellTime": 8.2e-06,
"ImageOrientationPatientDICOM": [
-0.0374318,
0.997236,
0.0641811,
-0.0117369,
0.063783,
-0.997895 ],
"ImageOrientationText": "Sag>Cor(-2.2)>Tra(0.5)",
"InPlanePhaseEncodingDirectionDICOM": "ROW",
"ConversionSoftware": "dcm2niix",
"ConversionSoftwareVersion": "v1.0.20211006"
}
Empty file.
13 changes: 13 additions & 0 deletions mrs_2dmrsi/sub-02/mrs/sub-02_run-1_mrsi.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"SpectrometerFrequency": [123.252157],
"ResonantNucleus": ["1H"],
"SpectralWidth": 2000,
"NumberOfSpectralPoints": 1024,
"AcquisitionVoxelSize": [10, 10, 15],
"ChemicalShiftOffset": 4.65,
"EchoTime": 0.04,
"RepetitionTime": 2,
"FlipAngle": 90,
"SequenceName": "%SiemensSeq%\\csi_slaser",
"ChemicalShiftReference": 2
}
Empty file.
13 changes: 13 additions & 0 deletions mrs_2dmrsi/sub-02/mrs/sub-02_run-2_mrsi.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"SpectrometerFrequency": [123.252157],
"ResonantNucleus": ["1H"],
"SpectralWidth": 2000,
"NumberOfSpectralPoints": 1024,
"AcquisitionVoxelSize": [10, 10, 15],
"ChemicalShiftOffset": 4.65,
"EchoTime": 0.04,
"RepetitionTime": 2,
"FlipAngle": 90,
"SequenceName": "%SiemensSeq%\\csi_slaser",
"ChemicalShiftReference": 2
}
Empty file.
13 changes: 13 additions & 0 deletions mrs_2dmrsi/sub-02/mrs/sub-02_run-3_mrsi.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"SpectrometerFrequency": [123.252157],
"ResonantNucleus": ["1H"],
"SpectralWidth": 2000,
"NumberOfSpectralPoints": 1024,
"AcquisitionVoxelSize": [10, 10, 15],
"ChemicalShiftOffset": 4.65,
"EchoTime": 0.04,
"RepetitionTime": 2,
"FlipAngle": 90,
"SequenceName": "%SiemensSeq%\\csi_slaser",
"ChemicalShiftReference": 2
}
Empty file.
Loading