Conversation
- Check to see if both hears contain an echo time key-value, and give a warning if they differ (e.g. if one were to use a shorter TE for acquiring spin-echo EPI images just for estimating the inhomogeneity field, the technique employed here would no longer work, since topup would be estimating squared errors between those volumes and a b=0 volume from the DWIs). - If the DWIs and spin-echo EPI images are not defined on the same voxel grid, issue a warning, and re-sample the spin-echo EPI images onto the grid of the DWIs; this is necessary to enable concatenation of the first b=0 DWI volume at the start of the topup input.
|
Ok, so having reviewed the code here, as I understand it:
So well, I'm not entirely sure about this one. I'm not against the strategy; it does make sense to deal with it like this. But my biggest worry would be how common those non-handled cases are (a question to which I don't really know the anwer...). Also: how big is the impact of (a bit of) motion between the SE EPI images relative to the DWI data on the EPI distortion correction? EPI distortions are spatially still "relatively" smooth, right? Everything is relative of course, but I guess I'm trying to get a grip on how big the original problem really is versus the (potential) concerns that the proposed solution may bring. This is not a negative assessment of the proposed solution: I'm just unsure about a few things that are key to making a good assessment of the proposed solution. @jdtournier and @dchristiaens , I've added you as (proposed) reviewers. Not to put time pressure on you guys (I understand if you're busy), but just to hear what are your ideas on this, and whether my semi-assessment makes sense (or to add nuance to it where needed). If too many people are still undecided about this and we detect it may need more discussion (entirely justified if the case), then I would personally hold off packing it in RC2. If you both are confident this solution is safe to proceed with already, then by all means, allow it to be merged in. |
|
I'm not sure I'm the best person to review this - I don't get to process data very often these days, and when I do, it's typically neonatal, so heavily non-standard... That said, a few comments:
This has come up in discussion before, and I'm not sure what the answer is here. I'd expect it might introduce some bias since the cost function is a simple least-squares on the difference, but I'm not sure I have any particular insights into how much of an impact this might have. My best guess is: not a huge amount - but that's based on gut feeling rather than hard facts...
Were these ever eligible for correction? I don't see that our scripts ever allowed these kinds of cases...
I guess this is what this comment is about... I agree it would make sense to at least verify that the first volume is the same b=0 image as was used in the TOPUP stage. I assume this is in the works (?). |
I deal with this: code from here. If the SE-EPI data are "phase-encode balanced", i.e. the sum of the phase encode directions of all volumes is a vector Exactly how
Not aware of anybody doing this presently, but it's actually how I advocated that it should be done at the time, and wanted to do an ISMRM abstract on it, so would have liked to preserve compatibility with such. But nowadays there's other alternatives that would be more worthwhile pursuing.
Again, haven't encountered such myself. The proposed code will error out on this. One possibility would be to add a volume from the SE-EPI series to the start of the DWIs before running
Maybe. At least with a warning. Though I worry that warnings are going unnoticed; should fix that.
My interpretation is that Solution is similar to a previous comment: re-arrange the volumes as they are input to
It was enough to cause a bit of concern on the FSL mailing list, and enough for me to get contacted and harassed about it. Certainly MCRI were concerned since kids have a lot of motion, and inter-protocol motion can often be bigger than within-protocol (i.e. "The scanners's stopped, I can get off this pressure point now"), even with correct instructions from radiographers.
This is still unclear. With the method I worked on at the time, I was picking up some high-frequency stuff at fluid-tissue interfaces, but it's not clear whether or not it was over-fitting. Looks like |
|
Scenario where first volume of input DWIs is not a b=0 is now handled & tested. Also permitted processing where the input DWI contains no b=0 volumes to proceed with a warning rather than erroring out. |
|
I've also tested a case where the DWI and SE-EPI images were defined on a different voxel grid, and that completed without issue.
This crashes |
|
Just before I leave the office (where I'm starting to live almost... erm... 🆘), something that just came to mind: a difference that I think may have been there between the acquisition of the AP-PA pair versus the DWI data may have been multi-band. The DWI data was certainly acquired multiband, but I'm not sure if the AP-PA pair also was... I'm far from an expert in how this may affect the image contrast, so I could be talking complete nonsense here in implicitly suggesting that this explains the contrast difference. But it's certainly not an uncommon case nowadays, since many labs are starting to implement multiband for their DWI acquisition. |
|
I was going to say that there'd need to be something fundamentally different in the acquisition; ourselves we literally use the diffusion sequence with one b-value of 0, so it's even twice-refocused. But multi-band would indeed have a TR effect; single volume acquisitions would almost certainly not be multi-band. The distortions might be different due to differing bandwidth (sounds like the recommendation is to disable GRAPPA with multi-band); this should be captured in the header entries if things are being imported & working as they should, but certainly won't work if using the older Could activate this feature only when a command-line option is provided; that'd mean it could be used by those for which it's applicable, but this particular solution may not remain in place down the track, so far from ideal. We need to carefully consider Going to have to sleep on this one. Good catch... |
Agreed. The core of the "issue" (motion between DWI series and e.g. RPE single volume acquisitions) has definitely been brought to the attention of the FSL developers as well... so while discussion can continue of course, I'd also sit back a bit and see what they come up with; both as part of their software as well as recommendations. As to our own users: for those that face a scenario where this issue is relevant, I'd say it's still pretty easy for them to take the necessary steps (even via the current |
|
Closing this off without merge to clean up the PR list. Not deleting the branch in case there's some parts of the implementation that may be useful when re-attempting #874. |






Closes #874.
Decided I should give this a red hot go finally. Especially with a tag update on the way, which such a change really does need to be associated with... Have I mentioned that I resent
dwipreproc?Ideally would subject this sort of thing to a battery of tests. Trouble is, the stumbling points of
dwipreprocwill usually be weird use cases and combinations of code branches I hadn't thought of. Tests can take forever too.