heudiconv icon indicating copy to clipboard operation
heudiconv copied to clipboard

Support for Single Voxel Spectroscopy

Open c42f opened this issue 4 years ago • 6 comments

Hi guys, we're working on curating a dataset containing a mixture of MRI and single voxel MRS data acquired on Siemens scanners (primarily Siemens Prisma).

Currently the BIDS standard doesn't have a section dealing with MRS data, but there is a draft available.

Our current plan is to write a standalone script which augments an existing BIDS dataset according to the above proto-standard. We're wondering whether you would consider having code for this in heudiconv itself, and if so how it would best be integrated. I feel that it could be useful to have some code publicly available to do this (perhaps it could spur the completion of this part of the standard which appears to have stalled?)

There are some challenges for this project

  • The lack of standard DICOM fields for storing raw spectroscopy data (or at least, the lack of deployed support for this; Siemens seem to stash raw data in their private DICOM CSA data area; I'm not sure what other manufacturers do.)
  • The lack of a well developed tool equivalent to dcm2niix (at least to my knowledge) which can read these formats.

For reading MRS data, there is the python library suspect which seems dormant but somewhat maintained. Or we could just start out with something simple which unpacks the CSA header directly from the DICOM.

Any thoughts about how to move forward would be gratefully appreciated!

CC @darrencl

c42f avatar Oct 04 '19 02:10 c42f

hi @c42f

With all the different BIDS extensions popping up, feature creep is looming... the standalone script idea sounds good to me. Ideally it could be used complementary with heudiconv.

we could just start out with something simple which unpacks the CSA header directly from the DICOM.

we are currently doing this here:

https://github.com/nipy/heudiconv/blob/bad781a6e4ef6aba1400c7b56170efdfd326da17/heudiconv/dicoms.py#L492-L511

Though it might be a good time to extract that bit from here / dcmstack and add it into nibabel proper.

mgxd avatar Oct 23 '19 15:10 mgxd

Thank you @c42f for this issue. Now that it aged, and hopefully MRS got a bit more formalized in BEP022 (BIDS issue: https://github.com/bids-standard/bids-specification/issues/680) and said to be moving into BIDS specification some time soonish, might be good time to start working on its support. And thanks for suspect reference -- it is indeed seems to be maintained, so I would vot to contribute to it and integrate instead of redoing related functionality in heudiconv.

May be for starters we should get some typical data samples from Siemens and Philips and start bolting on its support? I would be really interested to see how it could fit into https://github.com/nipy/heudiconv/blob/master/heudiconv/heuristics/reproin.py heuristic.

CC might be of interest also for @dnkennedy

yarikoptic avatar May 26 '22 13:05 yarikoptic

Here (spec2nii) is another spectroscopy-to-nifti converter listed in the dcm2niix README.md.

pvelasco avatar May 26 '22 14:05 pvelasco

oh, nice find @pvelasco and kudos to @wtclarke for working on spec2nii. sample data for spec2nii seems under git LFS on https://git.fmrib.ox.ac.uk/wclarke/spec2nii_test_data .

yarikoptic avatar May 26 '22 17:05 yarikoptic

Hey thanks for the replies here, spec2nii looks pretty great. I'm not working on anything related to MRS (or indeed, MR) anymore, so I'll defer the design and implementation of this to others :-)

c42f avatar May 27 '22 05:05 c42f

Hi Everyone,

Happy to support something utilising spec2nii if needed, or conversely help get some utility into spec2nii if it's desired. Re the BIDS specification, its moving forwards slowly with a multi-centre study soon to pilot its use for SVS data.

wtclarke avatar May 28 '22 08:05 wtclarke