CMRR-C2P / MB

Support for CMRR multi-band pulse sequences
http://www.cmrr.umn.edu/multiband/
MIT License
57 stars 20 forks source link

Collect multiple b0's at once #261

Open jspielb2 opened 3 years ago

jspielb2 commented 3 years ago

We are collecting diffusion data using the MB in AP and want to collect PA b0's for distortion correction. I've been able to set that up to collect a single PA b0, but we'd like to collect multiple PA b0's in case there is movement in one, etc. Is there a way to collect multiple b0's in the same acquisition or do I need to collect multiple acquisitions of a single b0 each? I tried creating a dvs file with multiple ( 0,0,0 ) vectors, but that didn't seem to work (i.e., acquisition time was the same as for a single b0 with no custom dvs file). Any suggestions?

mharms commented 3 years ago

What happens if you use multiple (1, 0, 0) entries in the custom dvs, but set the b-value to 0 in the Diff tab on the console?

pvelasco commented 3 years ago

You can do that by setting the number of b-values to 2, and the setting one to zero and the other to a very small number (say, 5). Then, select the number of directions to be 6 (or 3, or whatever).

pvelasco commented 3 years ago

What happens if you use multiple (1, 0, 0) entries in the custom dvs, but set the b-value to 0 in the Diff tab on the console?

Whenever you select b-value = 0, the scanner doesn't apply the directions table: it just collects a single volume without diffusion-encoding gradients.

mharms commented 3 years ago

@pvelasco Yes, thanks for the reminder. So, if you have 3 (0,0,0) entries in your custom dvs, and enter b-values of 0 and 5 in the Diff tab, you'll get 4 total b=0 volumes. IIRC, if you only enter a b-value of 5, then for some strange reason the option to output as Mosaics is not available.

whitecraine commented 3 years ago

Hi Pablo,

A few suggestions: 1) If you are on a newer platform (e.g. VE11C), does increasing the number of averages (located in the Diff tab, next to each b-value) work for this? 2) In the original 7T HCP diffusion protocol, we actually utilize a small b-value (ie. 60) as crusher gradients to reduce ghosting artifacts and use these as b=0s. If you do this, you can use any diffusion table you like for your "b=0" set, which can facilitate eddy correction as well (documentation of this is here: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4618066/). 3) If you prefer to strictly set b=0 and use [0 0 0] vecs in the diffusion table, you can create an arbitrary diffusion table with mostly [0 0 0] and one non-zero vector (e.g. [0 0 1]) at the beginning or end and then discard this non-zero b-val/vec image when creating yoru b=0 PA dataset.

Joseph

On Tue, Jan 26, 2021 at 10:47 AM Michael Harms notifications@github.com wrote:

@pvelasco https://github.com/pvelasco Yes, thanks for the reminder. So, if you have 3 (0,0,0) entries in your custom dvs, and enter b-values of 0 and 5 in the Diff tab, you'll get 4 total b=0 volumes. IIRC, if you only enter a b-value of 5, then for some strange reason the option to output as Mosaics is not available.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/CMRR-C2P/MB/issues/261#issuecomment-767750710, or unsubscribe https://github.com/notifications/unsubscribe-auth/AATFYMDITKYN6EFECNWM6DDS34E5RANCNFSM4WT5BMPQ .

pvelasco commented 3 years ago

Hi Joseph @whitecraine,

Thanks for your suggestions.

1) If you are on a newer platform (e.g. VE11C), does increasing the number of averages (located in the Diff tab, next to each b-value) work for this?

I never tried this. In the past, for other sequences, increasing the number of averages meant that the scanner would do the averaging, and only output the average image. This is probably not what you normally want for this application: if there is motion, you want to either ignore those volumes, or you want to align all volumes before averaging. So I never tried this.

3) If you prefer to strictly set b=0 and use [0 0 0] vecs in the diffusion table, you can create an arbitrary diffusion table with mostly [0 0 0] and one non-zero vector (e.g. [0 0 1]) at the beginning or end and then discard this non-zero b-val/vec image when creating yoru b=0 PA dataset.

This is a neat trick, and probably the best solution.

mharms commented 3 years ago

Traditionally at least, Siemens has treated "Averages" in the Diff sequence as instruction to repeat the entire acquisition and output additional DICOMs (not to actually average on the scanner).

What is the advantage, if any, of (3) over entering b-values of 0 and 5? Either way, you get 1 more volume than "requested" in the diffusion vector file, but the results are all b=0's and you don't need the additional step of discarding one of the volumes.

whitecraine commented 3 years ago

Hi Michael,

I think our solutions are intended to be the same. You are right that most people will want to specify 2 b-vals to enable mosaics. So specifying 0 and 5 work well for (3). However, for the table of 3 [0 0 0] vectors, I think it wont work because Siemens does not accept diffusion tables with only [0 0 0] vectors and there may be a minimum number of vectors required (6) based on feedback from Ben Poser on another thread. I've tried a table with all zero vectors and IIRC the exam card or scanner freezes and requires reboot.

Also, I had a chance to check on the 3T Skyra VE11C just now, and found the number of averages isn't adjustable on the C2P.

Joseph

On Tue, Jan 26, 2021 at 11:43 AM Michael Harms notifications@github.com wrote:

Traditionally at least, Siemens has treated "Averages" in the Diff sequence as instruction to repeat the entire acquisition and output additional DICOMs (not to actually average on the scanner).

What is the advantage, if any, of (3) over entering b-values of 0 and 5? Either way, you get 1 more volume than "requested" in the diffusion vector file, but the results are all b=0's and you don't need the additional step of discarding one of the volumes.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/CMRR-C2P/MB/issues/261#issuecomment-767783046, or unsubscribe https://github.com/notifications/unsubscribe-auth/AATFYMAKWCZQ2HAGOMWKGLDS34LPTANCNFSM4WT5BMPQ .

eauerbach commented 3 years ago

I can look into some of these things...

Historically (VB17) there were two separate ICE pipelines for "diffusion" and "DTI". The "DTI" pipeline (MDDW, Free) would crash if it saw fewer than 6 directions. I thought I hacked around that so that it was possible to use fewer directions (only outputting raw images—map calculations would still fail), but I guess nobody used it and I don't remember trying it on VD/VE.

Averages I don't really want to mess with, there are too many places in the sequence and ICE where it could go wrong. Just too much testing/troubleshooting involved and the inconsistency in how it is expected to work in diffusion vs. every other sequence is weird. Adding more directions or running multiple scans solves it easily enough.

The table of all 0 vectors crash seems pretty bad and should be fixable. Of course in reality there is never a true "b=0" scan; for b<50, spoiler gradients are added that amount to b=0.5 or so. But the maximum b-value is needed to calculate the minimum diffusion gradient durations and the minimum TE. There must be an unchecked divide by zero somewhere.

mharms commented 3 years ago

I needed to implement this for a protocol, so thought I'd report back on what I found on our VE11C system:

When using the product ep2d_diff sequence, it works perfectly fine to set Diff. weightings = 1, b-Value = 0, and Averages = 6, in which case you get 6 b=0's (although because only 1 Diff. weighting, the option to save in Mosaic format is not selectable).

This isn't an option for the cmrr_mbep2d_diff sequence, for which Averages can't be increased beyond 1 (consistent with @eauerbach's comment above).

So, I created a .dvs file with both a 3 "direction" set and 6 "direction" set, with the last direction in each being [0 0 1], and the others being [0 0 0]. Then set Diff. weightings = 2 (so that Mosaic output format was selectable), selected the desired set of directions in Diffusion mode = Free, and the two b-Values to 0 and 5 (the minimal increment allowed above 0). Both the 3 and 6 direction set completed successfully. However, the 3 direction set reconn'ed in "single-slice" mode, despite the fact that the Mosaic box had a check mark in it. Same thing occurred when I collected a 5 direction set. So, it appears that less than 6 directions can work, but you need 6 or more if you actually want to save in Mosaic format.

Another thing that worked, if you don't want to mess with .dvs files, was to set Diff. weightings = 2, Diffusion mode = MDDW, Diff. directions = 10 (the minimum available in that mode), and the two b-Values to 0 and 5 again. The resulting 10 frames acquired as part of the MDDW mode will have a very tiny amount (b=5) of diffusion weighting in varying directions, in case that matters to anyone. And the 11 total frames that result may be more "b0's" than one wants to acquire anyway.

eauerbach commented 2 years ago

For R017 I have opened up the "Averages" parameter in the diffusion sequence, but only in the software versions where the diffusion UI allows you to set different numbers of averages per b-value (VD13 and newer). It will need some testing.