Subspace_MESE.MESE_EPG
Subspace_MESE.MESE_basis_EPG
Subspace_MESE.MESE_basis_EPG
Subspace_MESE.MESE_basis_exp
Subspace_MESE.MESE_basis_exp
Subspace_MESE.RawAcquisitionData_MESE
Subspace_MESE.RawAcquisitionData_MESE_PV360
Subspace_MESE.RawAcquisitionData_MESE_PV6
Subspace_MESE.T2Fit_epg_noise
Subspace_MESE.T2Fit_exp_noise
Subspace_MESE.T2Fit_exp_noise
Subspace_MESE.basis_calibration
Subspace_MESE.basis_calibration
Subspace_MESE.subspace_bart_reconstruction
Subspace_MESE.MESE_EPG
— MethodMESE_EPG(T2::Ty,T1::Ty,TE::Ty,TR::Ty,ETL::Int,delta::Ty,dummy::Int) where Ty <: AbstractFloat
Generate the signal evolution of a Multi-Echo Spin-Echo sequence with an Extended Phase Graph model.
Input :
- `T2` : Transverse relaxation
- `T1` : Longitudinal relaxation
- `TE` : Echo Time
- `TR` : Repetition time
- `ETL` : Echo Train Length
Output :
- Amplitude of each echoes
Subspace_MESE.MESE_basis_EPG
— FunctionMESE_basis_EPG(NUM_BASIS::Int,TE,ETL::Int,T2_vec::Union{AbstractVector,AbstractFloat},B1_vec::Union{AbstractVector,AbstractFloat} = 1.0,T1_vec::Union{AbstractVector,AbstractFloat}=1000.0;TR = 1000.0,dummy::Int = 3)
Generate a temporal basis for a Multi-Echo Spin-Echo sequence with an Extended Phase Graph model for various value of T2/B1/T1
stored as a vector in T2_vec
/B1_vec
/T1_vec
.
Input :
- `NUM_BASIS::Int : Number of temporal basis to extract
- `TE::AbstractFloat` : Cartesian acquisition with a fully-sampled center.
- `ETL::Int` : Echo Train Length
- `T2_vec::Union{AbstractVector,AbstractFloat}` : Vector of T₂ values used to generate the signal dictionnary
- `B1_vec::Union{AbstractVector,AbstractFloat}` : Vector of B₁ values used to generate the signal dictionnary
- `T1_vec::Union{AbstractVector,AbstractFloat}` : Vector of T₁ values used to generate the signal dictionnary
Keyword :
- `TR` : Repetition time
- `dummy` : Number of dummy scan before extracting the signal value
Output :
- `basis` : Matrix of size (ETL,NUM_BASIS)
- `epg_dict` : Dictionnary of signal used to generate the basis
Example :
B1_vec = 0.8:0.01:1.0
T2_vec = 1.0:1.0:2000.0
T1_vec = 1000.0 #can also be a float
TE = 7.0
TR = 1000.0
dummy=3
ETL = 50
NUM_BASIS = 6
basis_epg, epg_dict =MESE_basis_EPG(NUM_BASIS,TE,ETL,T2_vec,B1_vec,T1_vec;TR=TR,dummy=dummy)
Subspace_MESE.MESE_basis_exp
— Method MESE_basis_exp(NUM_BASIS::Int,TE::AbstractFloat,ETL::Int, T2_vec::AbstractVector;removeFirstPoint::Bool=false)
Generate a temporal basis for a Multi-Echo Spin-Echo sequence with an exponential model.for various value of T2 stored as a vector in T2_vec
. The first point of the echo train can be removed from the dictionnary with the keyword removeFirstPoint
to minimize the effect of stimulated echoes.
Input :
- `NUM_BASIS::Int : Number of temporal basis to extract
- `TE::AbstractFloat` : Cartesian acquisition with a fully-sampled center.
- `ETL::Int` : Echo Train Length
- `T2_vec::AbstractVector` : Vector of T₂ values used to generate the signal dictionnary
Keyword :
- `removeFirstPoint::Bool=False` : Remove the first point of the dictionnary before the svd
Output :
- `basis` : Matrix of size (ETL,NUM_BASIS)
- `exp_dict` : Dictionnary of signal used to generate the basis
Example :
T2_vec = 1.0:1.0:2000.0
TE = 7.0
ETL = 50
NUM_BASIS = 6
basis_exp,exp_dict = MESE_basis_exp(NUM_BASIS,TE,ETL,T2_vec)
Subspace_MESE.RawAcquisitionData_MESE
— MethodRawAcquisitionData_MESE(b::BrukerFile)
Convert a Bruker dataset acquired with the aMESECS sequence into a RawAcquisitionData
object compatible with the MRIReco functions.
Input : - b::BrukerFile
Output : - raw::RawAcquisitionData
Subspace_MESE.RawAcquisitionData_MESE_PV360
— MethodRawAcquisitionData_MESE_PV360(b::BrukerFile)
Convert a Bruker dataset acquired with the aMESECS_360 sequence into a RawAcquisitionData
object compatible with the MRIReco functions.
Input : - b::BrukerFile
Output : - raw::RawAcquisitionData
Subspace_MESE.RawAcquisitionData_MESE_PV6
— MethodRawAcquisitionData_MESE_PV6(b::BrukerFile)
Convert a Bruker dataset acquired with the aMESECS sequence into a RawAcquisitionData
object compatible with the MRIReco functions.
Input : - b::BrukerFile
Output : - raw::RawAcquisitionData
Subspace_MESE.T2Fit_epg_noise
— MethodT2Fit_epg_noise(ima::Array{T,N}, t::AbstractVector{T},T1=1000.0,TE=7.0; EPGthresh = 1e-5,p0=nothing,mask = nothing) where {T<:Real,N}
WIP
Subspace_MESE.T2Fit_exp_noise
— Method T2Fit_exp_noise(ima::Array{T,N}, t::AbstractVector{T}; removePoint::Bool=true, L::Int=1, mask = nothing) where {T<:Real,N}
Fit the relaxation parameters T2 with the equation : $S(t) = \sqrt{(M_0 \exp(-\frac{t}{T2}))^2 + 2 L \sigma_g^2}$ where L est le nombre de canaux, et $\sigma_g$ le bruit gaussien sur les image
Arguments
ima::Array{T,N}
: multi-dimensionnal images. Last dimension stores the temporal dimensiont::AbstractVector{<:Real}
: times vector in msp0=nothing
: starting values for fit, if empty p0=[maximum(ima),30,maximum(ima)*0.1]
Keywords
removePoint::Bool=true
: remove the first point before fittingL::Int=1
: Number of coil elementsmask::
Returns
- fit_params : parameter maps last dimension stores the following maps (M₀ , T₂ , σ)
Bibliography
- Cárdenas-Blanco A, Tejos C, Irarrazaval P, Cameron I. Noise in magnitude magnetic
resonance images. Concepts Magn Reson Part A [Internet]. 2008 Nov;32A(6):409?16. Available from: http://doi.wiley.com/10.1002/cmr.a.20124
- Feng Y, He T, Gatehouse PD, Li X, Harith Alam M, Pennell DJ, et al. Improved MRI R 2 *
relaxometry of iron-loaded liver with noise correction. Magn Reson Med [Internet]. 2013 Dec;70(6):1765?74. Available from: http://doi.wiley.com/10.1002/mrm.24607
Subspace_MESE.basis_calibration
— Methodbasis_calibration(NUM_BASIS::Int,acq::AcquisitionData{T,D},crop_size::NTuple{D,Int}) where {T,D}
k_bart = kDataCart(acq);
Extract a temporal basis from a low-resolution images reconstructed using a fully sampled area at the center of the k-space with a size crop_size
.
Input :
- `NUM_BASIS::Int : Number of temporal basis to extract
- `acq::AcquisitionData` : Cartesian acquisition with a fully-sampled center.
- `crop_size::NTuple{D,Int})` : size of the central part of k-space used
Output :
- `basis` : Matrix of size (ETL,NUM_BASIS)
- `calib_dict` : Dictionnary of signal used to generate the basis
Example :
b = BrukerFile("path/to/dataset")
raw = RawAcquisitionData_MESE(b)
acq = AcquisitionData(raw,OffsetBruker = true);
basis, calib_dict = MESE_basis_calibration(acq,(15,15,15),6)
Subspace_MESE.subspace_bart_reconstruction
— Methodsubspace_bart_reconstruction(acq::AcquisitionData,params::Dict{Symbol,Any},bart_path::AbstractString)
Reconstruction of the accelerated MESE sequence with BART.
Input :
- `acq::AcquisitionData` : Cartesian acquisition with a fully-sampled center.
- `params::Dict{Symbol,Any}` : size of the central part of k-space used
- `bart_path::AbstractString` : path to the BART executable library
Output :
- `basis` : Matrix of size (ETL,NUM_BASIS)
- `calib_dict` : Dictionnary of signal used to generate the basis
Example :
b = BrukerFile("path/to/dataset")
raw = RawAcquisitionData_MESE(b)
acq = AcquisitionData(raw,OffsetBruker = true);
basis, calib_dict = MESE_basis_calibration(acq,(15,15,15),6)