Closed YassineAzma closed 9 months ago
Presently for acceptance testing we use vendor provided sequences to obtain a B0 map, and then visually inspect the results for uniformity. In some regards, with our existing method you have the benefit of relying on a vendor supplied sequence/algorithm, and we see very few wraps - in a uniform spherical phantom.
However, what quantitative assessments of B0 homogeneity could be offered?
Presently for acceptance testing we use vendor provided sequences to obtain a B0 map, and then visually inspect the results for uniformity. In some regards, with our existing method you have the benefit of relying on a vendor supplied sequence/algorithm, and we see very few wraps - in a uniform spherical phantom.
However, what quantitative assessments of B0 homogeneity could be offered?
The manufacturer will quote the B0 homogeneity of a system in terms of peak-peak or a range within a diameter spherical volume. Quantitative analysis, like described above, will allow you to make a comparison, though there is no accounting for the paramagnetic disturbance of the field by the test object making it somewhat limited. This type of analysis can be run on the proprietary field mapping sequence also and then be used as a means of tracking the stability of the system's B0 performance.
We currently only measure a B0 map at scanner acceptance; tracking this could be useful however it relies on the same phantom being available each year. When you refer to comparison, would that be over time of between scanners?
Yes, we find it helpful to follow the system performance over time (provided the doped solution's susceptibility hasn't changed with time), and it can be done with the proprietary field mapping sequence. We only use separate echoes because of historic issues with eddy currents on our old Philips Achieva.
Hi @YassineAzma, is this feature still of interest? Do you have capacity to work on this and/or time to explain your existing MATLAB code to a hazen developer who could translate this script into Python and incorporate into hazen?
Hi, @sophie22. I once again have GitHub access at work, so I can reply!
I already have most of this in Python for tutorials I'm planning on giving in the future on shimming. If there's any interest from any hazen users, I'll consider including it. It may be worth closing this as a stale issue.
Closing stale issue, but as per Yassine's comment above, can be re-opened with future interesting.
Is your feature request related to a problem? Please describe. During acceptance testing of MRI scanners, it is a very common practice to acquire B0 maps of a uniform spherical test object as a means of assessing the field homogeneity of the scanner. It would be ideal to have some function for processing the field maps acquired from a scanner with arbitrary echo timings in hazen. There is also scope to include ROMEO, a novel and rapid open-source phase unwrapping algorithm, as an option for phase wrapped field maps. We can use pyjulia to call it; Julia is the open-source programming language that ROMEO is written in.
Describe the solution you'd like This presentation - 3D B0 Mapping for Radiotherapy.pptx outlines an existing pipeline I've written in MATLAB, which I would like to translate into Hazen. It is very similar to the work described in this paper (they beat us by about 2 months). I would partition it into two parts:
A generic field map calculation for any arbitrary object (the non-optional arguments). An extended method designed for spherical phantoms and 3D scans, as outlined in the presentation above.
Potential CLI and use cases:
Case 1: User provides phase data for a multi-echo gradient echo
Generate field map (if phase data is not a proprietary field map). Rescale. Analyse.
--mag: uses any magnitude data also included in the phase directory, allowing for masking and magnitude weighting for regression. A similar approach could possibly be generated using a standard deviation kernel for the phase data (in phantoms) in the absence of the magnitude data. --sphere: implements volumetric analysis based on diameter spherical volume pk-pk and rms. [SCAN MUST BE 3D] --harmonics: decompose the field into basis function coefficients based on spherical harmonics. [SCAN MUST BE 3D] [FOR NOW: MUST ALSO PROVIDE MAGNITUDE DATA] --unwrap: if the resultant field map is wrapped, provide an option to unwrap field maps at the end of the pipeline using ROMEO.
@RFranklin-MR, I know you have experience in B0 mapping from your elective. Would this be something that would potentially be useful to you?
Describe alternatives you've considered There are no existing alternatives in hazen.
Additional context Please see the presentation included.