Code Monkey home page Code Monkey logo

b1correction-toolkit's Introduction

B1correction-toolbox

This toolbox was designed with the purpose of correcting for B1 inhomogeneities inherent of transmit-receive (transceive) surface RF coils used in magnetic resonance imaging.

This code repository implements three algorithms for B1 correction (sensitivity-based, model-based, hybrid) shown in the peer-reviewed publication:

Ramos Delgado P, Kuehne A, Periquito J, et al. B1 Inhomogeneity Correction of RARE MRI with Transceive Surface Radiofrequency Probes. Magnetic Resonance in Medicine 2020; 00:1-20. https://doi.org/10.1002/MRM.28307

Use of these algorithms is allowed given proper citation of the original work and in accordance with the license file.

Table of Contents

  • Installation Guide
  • Getting Started
  • Reproducing my results
  • Contact
  • License, authorship and citations

Installation Guide

This toolbox has been developed using MATLAB R2010a and should run in this MATLAB version as well as in newer ones (tested also in MATLAB R2018a and R2019b). If you encounter any trouble or error, you can let me know using GitHub (https://github.com/pramosdelgado/B1correction-toolbox/issues) or contact me at [email protected].

Prerequisites

  1. CPU: ran without problem on an Intel® Core™ i7-7500U CPU @ 2.70 GHz 2.90GHz with 8GB RAM
  2. MATLAB R2010a or newer
  3. MATLAB toolboxes:
    • Image Processing Toolbox
    • Symbolic Math Toolbox 1
    • Polyfitn Toolbox (MATLAB File Exchange) a copy is provided with this toolbox 2
  4. Custom-designed toolboxes:
    • RAREmodel_fitting-toolbox
    • B1correction-toolbox
    • validityAssessment_and_plotting-toolbox

1 The toolbox provides a replacement of the symbolic polynomial functions, in case your MATLAB does not have the required toolbox

2 The version available in this toolbox corresponds to the version available in 2018. There might be further improvements in the future. Users should check for possible updates.

Adding the toolboxes to your path

The custom-designed toolboxes must be added to your path so that MATLAB can access them. To do that, enter the following commands in the MATLAB Command Window:

addpath(genpath(‘O:\Users\pramosdelgado\RAREmodel_fitting-toolbox’));
addpath(genpath(‘O:\Users\pramosdelgado\B1correction-toolbox’));
addpath(genpath(‘O:\Users\pramosdelgado\validityAssessment_and_plotting-toolbox’));

You may need to replace the paths above by your own path to the toolbox folders.

Getting started

General info on the available test data

The directory test_data corresponds to the acquired data used for the peer-reviewed publication:

Ramos Delgado P, Kuehne A, Periquito J, et al. B1 Inhomogeneity Correction of RARE MRI with Transceive Surface Radiofrequency Probes. Magnetic Resonance in Medicine 2020; 00:1-20. https://doi.org/10.1002/MRM.28307

FOLDER cryoprobe_data:

  • uniformData_cryo.mat: contains the registered T1 map, the cryoprobe data and the volume RF coil data of the uniform phantom
  • exVivoData_cryo.mat: contains the registered T1 map, the cryoprobe data and the volume RF coil data of the ex vivo phantom
  • inVivoData_cryo.mat: contains the registered T1 map, the cryoprobe data and the volume RF coil data of the in vivo mouse
  • b1maps_cryo.mat: calculated B1 maps of the cryoprobe on a uniform phantom

FOLDER cryoprobe_dataAUX:

  • phantom_sensCorrection_cryo.mat: contains the registered uniform phantom cryoprobe data and corresponding masks for sensitivity-based B1 correction
  • B1_rx_hybrid_cryo.mat: contains the B1+-corrected uniform phantom cryoprobe data for hybrid B1 correction

FOLDER rtSUC_data (room-temperature surface RF coil):

  • flask_n#_flipbackData_rtSUC.mat: contains the registered T1 map, the surface RF coil data and the volume RF coil data (RARE with flipback) of the flask_n#:
    • n1: with low T1 and 100% water
    • n2: with low T1 and 50% water/50% d2O
    • n3: with high T1 and 100% water
    • n4: with high T1 and 50% water/50% d2O
      flask_n#_NOflipbackData_rtSUC.mat: contains the registered T1 map, the surface RF coil data and the volume RF coil data (RARE without flipback) of the flask_n#:
    • n1: with low T1 and 100% water
    • n2: with low T1 and 50% water/50% d2O
    • n3: with high T1 and 100% water
    • n4: with high T1 and 50% water/50% d2O
      b1map_rtSUC.mat: B1 map of a uniform phantom

FOLDER rtSUC_dataAUX (room-temperature surface RF coil):

  • phantom_sensCorrection_flipback_rtSUC.mat: contains the registered uniform phantom room-temperature surface RF coil data for sensitivity-based B1 correction with flipback
  • phantom_sensCorrection_NOflipback_rtSUC.mat: contains the registered uniform phantom room-temperature surface RF coil data for sensitivity-based B1 correction without flipback
  • B1_rx_hybrid_rtSUC.mat: contains the B1+-corrected uniform phantom room-temperature surface RF coil data for hybrid B1 correction

FOLDER RAREmodel_data:

  • RAREraw_flipback_modelData.mat: contains the RARE data (mean SI data, T1 relaxation times and the FA values associated with different reference powers) acquired with a volume RF coil using RARE with flipback
  • RAREraw_NOflipback_modelData.mat: contains the RARE data (mean SI data, T1 relaxation times and the FA values associated with different reference powers) acquired with a volume RF coil using RARE without flipback

Available tools

FOLDER RAREmodel_fitting-toolbox:

  • model_fitting_tool.m: sensitivity-based B1 correction method
  • fitDataWithPolynomeFAT1_PRD.m: model-based B1 correction method
  • FOLDER PolyfitnTools: contains Polyfitn Toolbox (MATLAB File Exchange, version available in 2018)
  • FOLDER SymbolicPolynomials: contains the needed symbolic polynomial functions, in case your MATLAB does not have installed the Symbolic Math Toolbox

FOLDER B1correction-toolbox:

  • sensitivity_correction.m: computes a sensitivity-based B1 correction
  • modelBased_correction.m: computes a model-based B1 correction
  • hybridCorrection.m: computes a hybrid B1 correction
  • calculateB1correction.m: function that performs the model-based B1 correction method
  • calculateB1Pluscorrection.m: function that performs the model-based B1+ correction method to ultimately compute a hybrid B1 correction

FOLDER validityAssessment_and_plotting-toolbox:

  • central_profile_plotter.m: central profile plotting tool
  • PIUcalculation_uniform.m: percentage integral uniformity calculator/plotting tool for the uniform phantom (cryoprobe)
  • PIUcalculation_exVivo.m: percentage integral uniformity calculator/plotting tool for the ex vivo phantom (cryoprobe)
  • PIUcalculation_inVivo.m: percentage integral uniformity calculator/plotting tool for the in vivo phantom (cryoprobe)
  • quantification_T1contrast_validation.m: computes relative errors on T1 contrast and quantification to compare the performance between the three B1 correction methods and the original image (no correction) against a reference image (volume resonator)

Reproducing my results

Available results data

The directory results_folder corresponds to the resulting data shown in the peer-reviewed publication:

Ramos Delgado P, Kuehne A, Periquito J, et al. B1 Inhomogeneity Correction of RARE MRI with Transceive Surface Radiofrequency Probes. Magnetic Resonance in Medicine 2020; 00:1-20. https://doi.org/10.1002/MRM.28307

FOLDER RAREmodels:

  • RAREmodel_flipback_allOrders.mat: calculated RARE model with flipback with polynomial orders 1st-8th
  • RAREmodel_NOflipback_allOrders.mat: calculated RARE model without flipback with polynomial orders 1st-8th

Take into account that the 7th order was used in the publication.

FOLDER B1correction:

SUBFOLDER cryoprobe:

  • sensCorrection_uniform.mat: sensitivity-based B1-corrected uniform phantom (cryoprobe data)
  • modelBasedCorrection_uniform.mat: model-based B1-corrected uniform phantom (cryoprobe data)
  • hybridCorrection_uniform.mat: hybrid B1-corrected uniform phantom (cryoprobe data)
  • sensCorrection_exVivo.mat: sensitivity-based B1-corrected ex vivo phantom (cryoprobe data)
  • modelBasedCorrection_exVivo.mat: model-based B1-corrected ex vivo phantom (cryoprobe data)
  • hybridCorrection_exVivo.mat: hybrid B1-corrected ex vivo phantom (cryoprobe data)
  • sensCorrection_inVivo.mat: sensitivity-based B1-corrected in vivo mouse (cryoprobe data)
  • modelBasedCorrection_inVivo.mat: model-based B1-corrected in vivo mouse (cryoprobe data)
  • hybridCorrection_inVivo.mat: hybrid B1-corrected in vivo mouse (cryoprobe data)

SUBFOLDER rtSUC:

  • sensCorrection_flask_n#_flipback.mat: sensitivity-based B1-corrected validation phantom (cryoprobe data, with flipback)
  • modelBasedCorrection_flask_n#_flipback.mat: model-based B1-corrected validation phantom (cryoprobe data, with flipback)
  • hybridCorrection_flask_n#_flipback.mat: hybrid B1-corrected uniform validation (cryoprobe data, with flipback)
  • sensCorrection_flask_n#_NOflipback.mat: sensitivity-based B1-corrected validation phantom (cryoprobe data, without flipback)
  • modelBasedCorrection_flask_n#_NOflipback.mat: model-based B1-corrected validation phantom (cryoprobe data, without flipback)
  • hybridCorrection_flask_n#_NOflipback.mat: hybrid B1-corrected uniform validation (cryoprobe data, without flipback)
  • validationPhantoms_data_flipback.mat: contains the original data, corrected data (model-based, hybrid, sensitivity using RARE with flipback) and reference data of all n=4 validation phantoms ready for error computation.
  • validationPhantoms_data_NOflipback.mat: contains the original data, corrected data (model-based, hybrid, sensitivity using RARE without flipback) and reference data of all n=4 validation phantoms ready for error computation.

Check validation phantom notation.

FOLDER validityAssessment_and_plotting:

FOLDER central_profile_plotter

  • profiles_uniform_7pix_normalizedDATA.mat/.png: contain the normalized profile data for a 7-pixel central line on the uniform phantom (cryoprobe) and the corresponding PNG image
  • profiles_exvivo_7pix_normalizedDATA.mat/.png: contain the normalized profile data for a 7-pixel central line on the ex vivo phantom (cryoprobe) and the corresponding PNG image
  • profiles_invivo_7pix_normalizedDATA.mat/.png: contain the normalized profile data for a 7-pixel central line on the in vivo mouse (cryoprobe) and the corresponding PNG image

FOLDER PIU_calculation:

  • PIU_values_uniform.mat/.png: contain the PIU data of the 5 internally-tangential circular ROIs drawn on the uniform phantom (cryoprobe) and the corresponding PNG image
  • PIU_values_exVivo.mat/.png: contain the contains the PIU data of the ROIs corresponding to cortex and basal ganglia/thalamus (left/right) drawn on the ex vivo phantom (cryoprobe) and the corresponding PNG image
  • PIU_values_inVivo.mat/.png: contain the PIU data of the ROIs corresponding to cortex and basal ganglia/thalamus (left/right) drawn on the in vivo mouse (cryoprobe) and the corresponding PNG image

FOLDER quantification_T1contrast_validation:

  • quant_T1contrast_errors_flipback.mat: contains the relative errors on T1 contrast and quantification of the three B1 correction methods and the original image (no correction) against a reference image (volume resonator) using RARE with flipback
  • quant_T1contrast_errors_NOflipback.mat: contains the relative errors on T1 contrast and quantification of the three B1 correction methods and the original image (no correction) against a reference image (volume resonator) using RARE without flipback

Contact

You are more than welcome to contact me at [email protected] for any doubts on the post-processing or the publication.

Also, don’t hesitate to let me know about any possible errors you might encounter using GitHub (https://github.com/pramosdelgado/B1correction-toolbox/issues) or my email address.

License, authorship and citations

All the code is licensed under GNU GPLv3.

The main author of this code is Paula Ramos Delgado.

The fitting tool used for signal intensity modelling was modified from:

John D'Errico (2018). polyfitn https://www.mathworks.com/matlabcentral/fileexchange/34765-polyfitn), MATLAB Central File Exchange.

The code used for T1 analysis was developed by João S. Periquito. For more information or assistance on this, please contact João Periquito (Github user: JoaoPeriquito).

b1correction-toolkit's People

Contributors

pramosdelgado avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.