https://github.com/korbinian90/mriresearchtools.jl
Specialized tools for MRI
https://github.com/korbinian90/mriresearchtools.jl
mri mri-images
Last synced: 2 months ago
JSON representation
Specialized tools for MRI
- Host: GitHub
- URL: https://github.com/korbinian90/mriresearchtools.jl
- Owner: korbinian90
- License: mit
- Created: 2019-02-23T10:46:42.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2025-02-09T13:08:31.000Z (3 months ago)
- Last Synced: 2025-02-09T13:33:17.561Z (3 months ago)
- Topics: mri, mri-images
- Language: Julia
- Homepage: https://korbinian90.github.io/MriResearchTools.jl/dev
- Size: 2.1 MB
- Stars: 26
- Watchers: 4
- Forks: 8
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MriResearchTools
[](https://korbinian90.github.io/MriResearchTools.jl/dev)
[](https://github.com/korbinian90/MriResearchTools.jl/actions)
[](https://codecov.io/gh/korbinian90/MriResearchTools.jl)## Prerequisites
A Julia installation v1.3 or higher is required.
To get the newest version of this package, Julia v1.7 or newer is recommended.Magnitude and Phase images in NIfTI fileformat
(4D images with echoes in the 4th dimension, 5D images with channels in the 5th dimension)## Installing
Open the Julia REPL and type```bash
julia> ] # enter julia package manager
(v1.11) pkg> add MriResearchTools
(v1.11) pkg> # type backspace to get back to the julia REPL
julia>
```## Quick Start
Open multi-echo 4D NIfTI phase and magnitude files and perform ROMEO phase unwrapping.```julia
using MriResearchTools
# input images
TEs = [4,8,12]
nifti_folder = joinpath("test", "data", "small")
magfile = joinpath(nifti_folder, "Mag.nii") # Path to the magnitude image in nifti format, must be .nii or .hdr
phasefile = joinpath(nifti_folder, "Phase.nii") # Path to the phase image
# load images
mag = readmag(magfile)
phase = readphase(phasefile; fix_ge=true) # fix_ge=true only for GE data with corrupted phase
# unwrap
unwrapped = romeo(phase; mag=mag, TEs=TEs)
# save unwrapped image
outputfolder = "outputFolder"
mkpath(outputfolder)
savenii(unwrapped, "unwrapped", outputfolder, header(phase))
```## Included Functionality
**Function Reference:** https://korbinian90.github.io/MriResearchTools.jl/dev[ROMEO](https://github.com/korbinian90/ROMEO.jl) 3D/4D Phase Unwrapping
`romeo` `unwrap` `unwrap_individual` `romeovoxelquality` `mask_from_voxelquality` `calculateB0_unwrapped` `get_B0_snr`Laplacian unwrapping
`laplacianunwrap`MCPC-3D-S multi-echo coil combination
`mcpc3ds`MCPC-3D-S phase offset removal of multi-echo, multi-timepoint data
`mcpc3ds_meepi`Reading, writing and other functions for NIfTI files (adapted from JuliaIO/NIfTI)
`readphase` `readmag` `niread` `savenii` `header` `write_emptynii`Magnitude homogeneity correction ([example](https://github.com/korbinian90/Magnitude-Intensity-Correction/blob/master/Intensity%20Correction.ipynb))
`makehomogeneous`Masking
`robustmask` `phase_based_mask`Combine multiple coils or echoes (magnitude only)
`RSS`Unwarping of B0 dependent shifts
`getVSM` `thresholdforward` `unwarp`Fast gaussian smoothing for real, complex data and phase (via complex smoothing)
`gaussiansmooth3d` `gaussiansmooth3d_phase`
- standard
- weighted
- with missing values
- optional padding to avoid border effectsFast numeric estimation of T2* and R2*
`NumART2star` `r2s_from_t2s`QSM integration with single-echo / multi-echo data (experimental stage)
`qsm_average` `qsm_B0` `qsm_laplacian_combine` `qsm_romeo_B0` `qsm_mask_filled`
Needs the command `using QuantitativeSusceptibilityMappingTGV` for the [TGV QSM](https://github.com/korbinian90/QuantitativeSusceptibilityMappingTGV.jl) backend or `using QSM` to load the [QSM.jl](https://github.com/kamesy/QSM.jl) (rts default) backend.Other functions
`robustrescale` `getHIP` `getsensitivity` `getscaledimage` `estimatequantile` `estimatenoise`## Methods are implemented from these Publications
### ROMEO
Dymerska, B., Eckstein, K., Bachrata, B., Siow, B., Trattnig, S., Shmueli, K., Robinson, S.D., 2020. Phase Unwrapping with a Rapid Opensource Minimum Spanning TreE AlgOrithm (ROMEO). Magnetic Resonance in Medicine. https://doi.org/10.1002/mrm.28563### MCPC-3D-S
Eckstein, K., Dymerska, B., Bachrata, B., Bogner, W., Poljanc, K., Trattnig, S., Robinson, S.D., 2018. Computationally Efficient Combination of Multi-channel Phase Data From Multi-echo Acquisitions (ASPIRE). Magnetic Resonance in Medicine 79, 2996–3006. https://doi.org/10.1002/mrm.26963### Homogeneity Correction
Eckstein, K., Trattnig, S., Robinson, S.D., 2019. A Simple Homogeneity Correction for Neuroimaging at 7T, in: Proceedings of the 27th Annual Meeting ISMRM. Presented at the ISMRM, Montréal, Québec, Canada. https://index.mirasmart.com/ISMRM2019/PDFfiles/2716.html
Eckstein, K., Bachrata, B., Hangel, G., Widhalm, G., Enzinger, C., Barth, M., Trattnig, S., Robinson, S.D., 2021. Improved susceptibility weighted imaging at ultra-high field using bipolar multi-echo acquisition and optimized image processing: CLEAR-SWI. NeuroImage 237, 118175. https://doi.org/10.1016/j.neuroimage.2021.118175### NumART2* - fast T2* and R2* fitting
Hagberg, G.E., Indovina, I., Sanes, J.N., Posse, S., 2002. Real-time quantification of T2* changes using multiecho planar imaging and numerical methods. Magnetic Resonance in Medicine 48(5), 877-882. https://doi.org/10.1002/mrm.10283### Phase-based-masking
Hagberg, G.E., Eckstein, K., Tuzzi, E., Zhou, J., Robinson, S.D., Scheffler, K., 2022. Phase-based masking for quantitative susceptibility mapping of the human brain at 9.4T. Magnetic Resonance in Medicine. https://doi.org/10.1002/mrm.29368## License
This project is licensed under the MIT License - see the [LICENSE](https://github.com/korbinian90/MriResearchTools.jl/blob/master/LICENSE) for details