bids-specification icon indicating copy to clipboard operation
bids-specification copied to clipboard

Functional MR angiography

Open Proulx-S opened this issue 2 months ago • 5 comments

Your idea

Hello,

Functional MR angiography (fMRA) is emerging, at least we are doing a lot of it :-P

It is basically time series of angiography data, whether of the time-of-flight or phase-contrast flavor.

I feel the simplest would be to allow the angio suffix for func data, as it is already for anat data.

The rest--e.g. whether velocity-encoding is used, the VENC, and whether magnitude is inflow-weighted--can be dealt with, I think, with the acq field for now.

Thanks a lot for your help and Have a great day! Sébastien

Proulx-S avatar Oct 07 '25 21:10 Proulx-S

Can you make DICOMs and example data available for at least one type of fMRA sequence? I think that will help with getting it added to the spec and supported by tools like dcm2niix.

tsalo avatar Oct 31 '25 19:10 tsalo

Sure :-)

Here is an example of the phase contrast (PC) flavor PC.zip. It is more complex than the time-of-flight flavor, but I don't have a good example of the latter on hand (I should be able to get one tomorrow).

For the PC data, at each time frame, two to or more complex-valued volumes (6 in my example, and the volume is a single slice) are acquired in an interleaved fashion: (1) a flow compensated reference image, (2) a velocity encoded image with VENC=XXcm/s, (3) another velocity encoded image with VENC=YYcm/s, (4)...

Siemens reconstructs each time frame into (1) the magnitude of the reference image, (2) the phase difference between the VENC=XX image and the reference image, labeled _P, (3) the magnitude of the complex difference between the VENC=XX image and the reference image, labeled _MAG, (4) the similar phase difference for VENC=YY, (5) the similar magnitude of complex difference for VENC=YY, (6) ... so forth. It also reconstruct a sum of the magnitude of images at all VENCs, labeled _MSUM, for a reason I cannot see.

In the attached data, I put only 4 time frames to save on space.

Note that the magnitude of the reference images are functionally the same as fMRA of the inflow-flavor as long as the imaging stack is thin. Also note that the phase difference images are the most important. So perhaps we should start with those two. The complex difference images are also important for us, but Siemens gives us only their magnitude and we have to do our own offline recon to get their phase.

Hope this helps! Thanks for your attention and Have a great day! Sébastien

Proulx-S avatar Nov 04 '25 23:11 Proulx-S

That is a lot! I think this will require more than a new suffix or allowing angio data in the func datatype. At least for this flavor, it looks like we'll need to figure out which entities should be used for which files.

I noticed that there are 12 files, not 6. I think I'm misunderstanding something in your description of the files. I think it would help me to see what you consider reasonable BIDS-ish names for each of the files. Would you mind taking a crack at that and posting the filenames that make sense? If you could link each to the DICOM folder that would be great (e.g., sub-01_task-rest_acq-reference_part-mag_angio.nii.gz --> 3001).

It's hard to tell, but it looks like dcm2niix isn't extracting the VENC times. You may need to work with Chris Rorden to figure out which DICOM fields contain relevant information and what they should be named in the sidecars.

tsalo avatar Nov 10 '25 16:11 tsalo

Thanks for having a look @tsalo !

Here is the requested dicom sorted in folder with bids-like names: PC.zip.

Note that I used the desc entity to qualify the acquisition bloc (interleaved acquisition of multiple vencs with a single reference). It is not really necessary in my example, but would be to differentiate overlapping sets of vencs+ref acquired in different runs (e.g. ref, venc1, venc2 and venc3 in one run; then ref, venc3, venc 4 and venc5 in another run).

--

However, I'm starting to think we might want to model this on diffusion data... the VENC-value is a scalar similar to b-value and it necessary come with a direction just like for diffusion, and generally require a reference again like diffusion. The main difference is that diffusion data typically have many direction/b-values and no or little time repeats, while fMRA will have few directions/vencs and lots of temporal repeats.

What do you think?

Proulx-S avatar Dec 02 '25 05:12 Proulx-S

Also, here is an example for fMRA of the much simpler "inflow" flavor: inflow.zip.

Note that it should be much simple for this one: just allow the angio suffix in the func folder.

Proulx-S avatar Dec 02 '25 05:12 Proulx-S