-
Notifications
You must be signed in to change notification settings - Fork 229
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
Dev fix TotalReadoutTime for GE with interpolation #725
Dev fix TotalReadoutTime for GE with interpolation #725
Conversation
in the BIDS (.json) sidecar in cose of image interpolation. TotalReadoutTime and EffectiveEchoSpacing were correct when there was no interpolation (i.e. AcquisitionMatrixPE = ReconMatrixPE). However, when interpolation was used, this values were incorrect. When interpolation was used, the estimated fieldmap given by TOPUP was ReconMatrixPE/AcquisitionMatrixPE times a measured fieldmap. Also, the same interpolated images corrected with a B0Map based method via FSL's epi_reg were clearly under-corrected. It turned out that the problem was comming from TotalReadoutTime and EffectiveEchoSpacing which were not taking ReconMatrixPE correctly into account. This is a Fix for that. GE/README.md was modified to clarified how TotalReadoutTime and EffectiveEchoSpacing are now computed. Some intermediate variable were also introduced and this described. This should help he final user to better understand. console/nii_dicom_batch.cpp was modified to implement the changes on TotalReadoutTime and EffectiveEchoSpacing. The intermediate variables described in README were also added into the json BIDS sidecar (i.e. EchoSpacingMicroSecondsGE, NotPhysicalNumberOfAcquiredPELinesGE, NotPhysicalTotalReadOutTimeGE). As the TotalReadoutTime definition is not intuitive this should help the user to understand what is going on. On branch dev-fix-TotalReadoutTimeGE-with-interpolation Changes to be committed: modified: GE/README.md modified: console/nii_dicom_batch.cpp
Thanks! |
Couple comments/thoughts:
|
@mharms the main improvement of the PR is to provide the FSL/BIDS definition of TotalReadoutTime for situations including interpolation. I think we can discuss if the additional non-BIDS fields should be included are a valid issue for discussion prior to the next stable release. For completeness, there is also a validation dataset. |
If I'm reading the PR right, it itself has already added 3 new variables to the json. |
Thanks. @mharms |
Personally, I don't think writing those 3 variables into the json is helpful. I'm not sure where @neurolabusc thinks that should be resolved however, other than right here, at this time. FYI, There is a typo in the following if you want to fix:
It should read: |
@brice82 since you agree with @mharms, can I suggest you make a pull request that does not save these intermediate values by default, but will generate them if re-compiled in debug mode:
|
No problem at all. Anyway, this can be sorted out thru the official BIDS field and the formulas in GE/README.md |
submitted PR #730 |
This is a fix for correcting TotalReadoutTime and EffectiveEchoSpacing in the BIDS (.json) sidecar in case of image interpolation.
TotalReadoutTime and EffectiveEchoSpacing were correct when there was no interpolation (i.e. AcquisitionMatrixPE = ReconMatrixPE). However, when interpolation was used, this values were incorrect. When interpolation was used, the estimated fieldmap given by TOPUP was ReconMatrixPE/AcquisitionMatrixPE times a measured fieldmap. Also, the same interpolated images corrected with a B0Map based method via FSL's epi_reg were clearly under-corrected.
It turned out that the problem was coming from TotalReadoutTime and EffectiveEchoSpacing which were not taking ReconMatrixPE correctly into account.
This is a Fix for that.
GE/README.md was modified to clarified how TotalReadoutTime and EffectiveEchoSpacing are now computed.
Some intermediate variable were also introduced and described. This should help the final user to better understand.
console/nii_dicom_batch.cpp was modified to implement the changes on TotalReadoutTime and EffectiveEchoSpacing.
The intermediate variables described in README were also added into the json BIDS sidecar (i.e. EchoSpacingMicroSecondsGE, NotPhysicalNumberOfAcquiredPELinesGE, NotPhysicalTotalReadOutTimeGE). As the TotalReadoutTime definition is not intuitive this should help the user to understand what is going on.
On branch dev-fix-TotalReadoutTimeGE-with-interpolation Changes to be committed:
modified: GE/README.md
modified: console/nii_dicom_batch.cpp