Skip to content

Commit

Permalink
Citation (#102)
Browse files Browse the repository at this point in the history
  • Loading branch information
neurolabusc committed Feb 20, 2020
1 parent 1fd360b commit f1f38fe
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 2 deletions.
2 changes: 1 addition & 1 deletion Philips/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ Philips DICOMs do not contain all the information desired by many neuroscientist

Likewise, the BIDS tag "PhaseEncodingDirection" allows tools like [eddy](https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/eddy) and [TOPUP](https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/topup) to undistort images. While the Philips DICOM header distinguishes the phase encoding axis (e.g. anterior-posterior vs left-right) it does not encode the polarity (A->P vs P->A).

Another value desirable for TOPUP is the "TotalReadoutTime". Again, one can not calculate this from Philips DICOMs. If you do decide to calculate this using values from the MRI console, be aware that the [FSL definition](https://github.com/rordenlab/dcm2niix/issues/130) is not intuitive for scans with interpolation, partial Fourier, parallel imaging, etc. However, it should be pointed out that the "TotalReadoutTime" only inlfuences TOPUP's calibrated validation images that are typically ignored. The data used in subsequent steps will not be influenced by this value.
Another value desirable for TOPUP is the "TotalReadoutTime". Again, one can not confidently calculate this from Philips DICOMs (though on can [appoximate it if you make a few assumptions](https://github.com/nipreps/sdcflows/issues/5)). If you do decide to calculate this using values from the MRI console, be aware that the [FSL definition](https://github.com/rordenlab/dcm2niix/issues/130) is not intuitive for scans with interpolation, partial Fourier, parallel imaging, etc. However, it should be pointed out that the "TotalReadoutTime" only influences TOPUP's calibrated validation images that are typically ignored. The data used in subsequent steps will not be influenced by this value.

## Partial Volumes

Expand Down
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,10 @@ The batch processing binary `dcm2niibatch` is optional. To build `dcm2niibatch`

If you have any problems with the cmake build script described above or want to customize the software see the [COMPILE.md file for details on manual compilation](./COMPILE.md).

## Referencing

- Li X, Morgan PS, Ashburner J, Smith J, Rorden C (2016) The first step for neuroimaging data analysis: DICOM to NIfTI conversion. J Neurosci Methods. 264:47-56. doi: 10.1016/j.jneumeth.2016.03.001. [PMID: 26945974](https://www.ncbi.nlm.nih.gov/pubmed/26945974)

## Alternatives

- [dcm2nii](https://people.cas.sc.edu/rorden/mricron/dcm2nii.html) is the predecessor of dcm2niix. It is deprecated for modern images, but does handle image formats that predate DICOM (proprietary Elscint, GE and Siemens formats).
Expand Down
2 changes: 1 addition & 1 deletion console/nii_dicom.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6488,7 +6488,7 @@ if (d.isHasPhase)
free(objects);
} //issue 372
if ((d.echoTrainLength == 0) && (echoTrainLengthPhil))
d.echoTrainLength = echoTrainLengthPhil;
d.echoTrainLength = echoTrainLengthPhil+1; //+1 to convert "EPI factor" to echo train length
if ((d.manufacturer == kMANUFACTURER_PHILIPS) && (d.xyzDim[4] > 1) && (d.is3DAcq) && (d.echoTrainLength > 1) && (frameAcquisitionDuration > 0.0)) //issue369
printWarning("3D EPI with FrameAcquisitionDuration = %gs volumes = %ds Perhaps TR = %gs (assuming 1 delete volume)\n", frameAcquisitionDuration/1000.0, d.xyzDim[4], frameAcquisitionDuration/(1000.0 *(float)(d.xyzDim[4]+1.0)));
if (numDimensionIndexValues > 1)
Expand Down
1 change: 1 addition & 0 deletions console/nii_dicom_batch.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1410,6 +1410,7 @@ tse3d: T2*/
if ((effectiveEchoSpacing == 0.0) && (d.fieldStrength > 0) && (d.waterFatShift != 0.0) && (d.echoTrainLength > 0)) {
json_Float(fp, "\t\"WaterFatShift\": %g,\n", d.waterFatShift);
//https://github.com/poldracklab/sdcflows/issues/5
//TODO: use accelFactPE to infer if partial-Fourier, check for interpolated resolution
float etl = (float)d.echoTrainLength;
float wfs = d.waterFatShift;
float fstrength = d.fieldStrength;
Expand Down

0 comments on commit f1f38fe

Please sign in to comment.