Skip to content

Matlab code for performing image reconstruction in MRI and performing the NORDIC denoising

License

Notifications You must be signed in to change notification settings

SkeideLab/NORDIC_Raw

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NORDIC_Raw

Matlab code for performing image reconstruction in MRI and performing the NORDIC denoising

Overview - HOW TO RUN FORK

  • why: denoise functional fmri images before preprocessing
  • needed: functional magnitude and phase images in BIDS format (should be named identically except _part-phase_ in phase images)
  • result: magnitude images with NORDIC in the bids _acq-*_ field (old acq info is lost)
  • TO RUN:
    • change paths in run_nordic.sh and apply_nordic.m
    • run sbatch run_nordic.sh
    • add accompanying json files (manually): copy the previous magnitude file's json

Overview

The two files NORDIC and NIFTI_NORDIC perform similar concepts, locally low-rank denoising. Both approaches, uses a g-factor map to flatten the noise, and a noise-scan for estimating the homoegenous noise. For NORDIC, the noise-scan and the g-factor are explicit constructions provided as the last elements in a 4D array. For NIFTI_NORDIC, these are estimated based on the data. The construction for estimating the g-factor noise and the thermal noise level uses the MPPCA method of Veraart et al. 2016 NIFTI_NORDIC has additional paramters that can be adjusted, for learning or understanding the influence of the different algortimic choices. For NIFTI_NORDIC, there are two different options, depending on whether dMRI or fMRI is used. This difference appears related to the hwo the phase is retained in the DICOM of the vendor software. A corresponding distinction is not neccesary for the NORDIC processing.

This version of NIFTI_NORDIC has been made possible through the testing and evaulation of many people, including

Logan Dowdle, Luca Vizioli, Cheryl Olman, Essa Yacoub, Henry Braun, Remi Patriat, Mehmet Akcakaya, Federico De Martino, Lonike Faes, Torben Ellegaard Lund, Lasse Knudsen, Stamatios Sotiropoulos, Karen Mullinger, Daniel Marsh, Susan Francis, Jose Manzano Patron

Any questions, comments or suggestions can be directed to

Steen Moeller moell018@umn.edu

Copyright and License information

© 2021 Regents of the University of Minnesota

NORDIC and NIFTI_NORDIC is copyrighted by Regents of the University of Minnesota and covered by US 10,768,260. Regents of the University of Minnesota will license the use of NORDIC and NIFTI_NORDIC solely for educational and research purposes by non-profit institutions and US government agencies only. For other proposed uses, contact umotc@umn.edu. The software may not be sold or redistributed without prior approval. One may make copies of the software for their use provided that the copies, are not sold or distributed, are used under the same terms and conditions. As unestablished research software, this code is provided on an "as is'' basis without warranty of any kind, either expressed or implied. The downloading, or executing any part of this software constitutes an implicit agreement to these terms. These terms and conditions are subject to change at any time without prior notice.

System Requirements

Hardware Requirements

Package only requires a standard computer with enough RAM to support the in-memory operations and loading the data

Software Requirements

This package is tested on Matlab version 2017b. All neccesary dependencies are part of the default matlab installation

Installation Guide

Ensure that NORDIC.m is in a path that is visible to matlab

Demo for the installation

Using the NORDIC.m function and the simulation in DEMO, the following will demonstrate hwo to use NORDIC

script_for_creating_simulation_data
NORDIC('demo_data_for_NORDIC.mat')

QQ=load('KSP_demo_data_for_NORDICkernel8')
Q=load('demo_data_for_NORDIC') 
figure; clf
subplot(2,2,1); imagesc(squeeze(real(Q.KSP(:,:,32,12))),[0 1]); title('Data + noise')
subplot(2,2,2); imagesc(squeeze(real(Q.IMG(:,:,32,12))),[0 1]); title('Data w/o noise')
subplot(2,2,3); imagesc(squeeze(real(QQ.KSP_update(:,:,32,12))),[0 1]); title('NORDIC processed')
subplot(2,2,4); plot(squeeze(real(Q.KSP(20,25,32,1:end-2)  -   Q.IMG(20,25,32,1:end-1)))), hold on
                plot(squeeze(real(QQ.KSP_update(20,25,32,1:end)  -   Q.IMG(20,25,32,1:end-1))))
                legend('difference before NORDIC','difference after NORDIC')

About

Matlab code for performing image reconstruction in MRI and performing the NORDIC denoising

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • MATLAB 99.4%
  • Shell 0.6%