Skip to content
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

Save units for Direct field mapping #501

Closed
neurolabusc opened this issue Apr 6, 2021 · 5 comments
Closed

Save units for Direct field mapping #501

neurolabusc opened this issue Apr 6, 2021 · 5 comments

Comments

@neurolabusc
Copy link
Collaborator

The BIDS specification describes direct field mapping. Future releases of dcm2niix should be extended to embrace this (draft) specification.

  1. Populate the "Units": "Hz" for Philips direct field mapping.
  2. Detect GE direct field maps (will need exemplars from a center that has access to a GE scanner).
@mr-jaemin
Copy link
Collaborator

For GE direct field map:

  • Uploaded 3T three sample datasets here
  1. s59_B0rf: in-vivo brain dataset
(0019,109c): B0rf  # Pulse Sequence Name
(0019,109e): B0map # Internal Pulse Sequence Name
  1. s56_B0map: simulated dataset
(0019,109c): B0map  # Pulse Sequence Name
(0019,109e): B0map  # Internal Pulse Sequence Name
  1. s57_3db0map: simulated dataset
(0019,109c): 3db0map  # Pulse Sequence Name
(0019,109e): EFGRE3D  # Internal Pulse Sequence Name 
  • GE offers direct field maps for years. Dataset consists of two volumes: 1) derived phase field map [Hz] and 2) magnitude volume.
    - 2D version: B0map or B0rf (identical to B0map; soft link to B0map).
    - Recently introduced 3D version: 3db0map
  • Given a limitation (there is no way to distinguish phase and magnitude from DICOM tag), I would suggest to use Pulse Sequence Name as an identifier of GE fieldmap.
    - For 2D, (0019,109e): B0map
    - For 3D, (0019,109c): 3db0map
    - Alternately, (0019,109c) = B0rf | B0map | b0map regardless of 2D or 3D
  • Although there may be dataset using a custom sequence, I think that these three sequences (B0rf, B0map, 3db0map) are dominant for GE users.

neurolabusc added a commit that referenced this issue Apr 10, 2021
@neurolabusc
Copy link
Collaborator Author

@mr-jaemin thanks for the concrete examples. I had to sign in to download these - can I publicly share these (in-vivo looks anonymized to me).

@mr-jaemin can you validate the latest commit to the development branch (v1.0.20210410).

  • I use Internal Pulse Sequence Name (0019,109e) to detect field maps, e.g. EFGRE3D or B0map. This is not precisely what you described. Is EFGRE3D used for any other types of images, or is this always a field map?
  • I use the private tag Locations In Acquisition GE (0021,104F) and Instance Number (0020,0013) to determine if a slice belongs to the first volume (derived Fieldmap in Hz) or the second volume (magnitude). This assumes that Instance Number is always incremented from 1 and sequential (which is not required by the DICOM standard but matches all GE data I have seen) and that the private tag 0021,104F is present. Are there any situations where this algorithm will fail? For example, can someone acquire a GE Fieldmap with slice interpolation (zip2) and if so how does this influence this formula (perhaps a simulated Zip2 example would help). Can you think of any other corner cases we should evaluate?

@mr-jaemin
Copy link
Collaborator

@neurolabusc Yes, you can share these publicly (Box with sign-in is a way to share externally. I don't have access to Google, Dropbox for uploading).

  • For EFGRE3D, you are right. This is used for other types of images (3D GRE). As I noted above, the internal pulse sequence name (0019,109e) should be used for 2DB0map. For 3D, I suggest to use the Pulse Sequence Name (0019,109c) = 3db0map
  • I will carefully review your code/situation and test corner cases like zip2.

@mr-jaemin
Copy link
Collaborator

@neurolabusc I submitted a pull request for detecting GE field maps.

  • I confirmed that slice interpolation ZIP2 is NOT available for both 2D B0map and 3D 3db0map. So, no need to worry about the ZIP2 for GE field maps.
  • I can't think of any failure cases with this algorithm (although I don't have much of experiences with the private tag Locations In Acquisition GE (0021,104F) and Instance Number (0020,0013))

@neurolabusc
Copy link
Collaborator Author

Solution demonstrated with the GE and Philips validation datasets. Since we do not have GE or Philips equipment at my center, I would be grateful if users of these systems could test the development release of dcm2niix to ensure it does not fail in edge cases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants