Skip to content
Snippets Groups Projects
Commit 8c701b26 authored by Tamas Borbath's avatar Tamas Borbath
Browse files

Updated calculateMolal_MolarConcentrations.m with the tissue densities calculation

Updated the T1 values of metabolites in getRelaxationTimes
parent 01b88ca5
No related branches found
No related tags found
No related merge requests found
...@@ -64,6 +64,13 @@ a_WM = 0.65; ...@@ -64,6 +64,13 @@ a_WM = 0.65;
a_GM = 0.78; a_GM = 0.78;
a_CSF = 0.97; a_CSF = 0.97;
% tissue densities (g/mL)
% (Brooks R. - 1980 - Explanation of cerebral white - gray contrast in computer tomography
% additional reference in Kreis R. & Ernst T. - 1993 - Absolute Quantitation of Water and Metabolites in the Human Brain. I. Compartments and Water)
d_WM = 1.04;
d_GM = 1.04;
d_CSF = 1;
%T1 relaxation times of water in the given tissue type [ms] at 9.4T : From %T1 relaxation times of water in the given tissue type [ms] at 9.4T : From
%Gisela Hagberg 2017 Neuroimage %Gisela Hagberg 2017 Neuroimage
T1_GM = 2120; T1_GM = 2120;
...@@ -117,10 +124,12 @@ if strcmpi(doMolal_Molar, 'Molal') %MOLAL calculations ...@@ -117,10 +124,12 @@ if strcmpi(doMolal_Molar, 'Molal') %MOLAL calculations
%Calculate water fraction from volume fractions obtained from segmentation %Calculate water fraction from volume fractions obtained from segmentation
%and relative water fraction in each segmentation %and relative water fraction in each segmentation
f_sum = fv_GM .* a_GM + fv_WM .* a_WM + fv_CSF .* a_CSF; f_sum = fv_GM .* a_GM + fv_WM .* a_WM + fv_CSF .* a_CSF;
%corrected version considering also the water densities
f_sum = fv_GM .* a_GM .* d_GM + fv_WM .* a_WM .* d_WM + fv_CSF .* a_CSF .* d_CSF;
f_GM = fv_GM .* a_GM ./ f_sum; f_GM = fv_GM .* a_GM .* d_GM ./ f_sum;
f_WM = fv_WM .* a_WM ./ f_sum; f_WM = fv_WM .* a_WM .* d_WM ./ f_sum;
f_CSF = fv_CSF .* a_CSF ./f_sum; f_CSF = fv_CSF .* a_CSF .* d_CSF ./f_sum;
%% calculate true water concentration for each subject : density terms do not come in molality %% calculate true water concentration for each subject : density terms do not come in molality
water_conc_relaxation_corrected = conc_pure_water * ... water_conc_relaxation_corrected = conc_pure_water * ...
...@@ -136,9 +145,9 @@ else %MOLAR calculations ...@@ -136,9 +145,9 @@ else %MOLAR calculations
%% calculate true water concentration for each subject %% calculate true water concentration for each subject
water_conc_relaxation_corrected = conc_pure_water * ... water_conc_relaxation_corrected = conc_pure_water * ...
( fv_GM * a_GM * R_GM + ... correction for gray matter concentration ( fv_GM * a_GM * d_GM * R_GM + ... correction for gray matter concentration
fv_WM * a_WM * R_WM + ... correction for white matter concentration fv_WM * a_WM * d_WM * R_WM + ... correction for white matter concentration
fv_CSF * a_CSF * R_CSF ) / ... correction for cerebrospinal fluid concentration fv_CSF * a_CSF * d_CSF * R_CSF ) / ... correction for cerebrospinal fluid concentration
(1 - fv_CSF); (1 - fv_CSF);
end end
......
...@@ -102,9 +102,20 @@ switch compare ...@@ -102,9 +102,20 @@ switch compare
%values taken from A.Wright ISMRM 2019 abstract %values taken from A.Wright ISMRM 2019 abstract
metaboliteNamesT1 = {'NAA-asp'; 'NAA-ace'; 'tCho'; 'mI'; 'Gln'; 'Glu'; 'Cr-CH2'; 'Cr-CH3'; 'Tau'; 'GSH'; 'Glx'; 'tNAA'}; %'GABA' metaboliteNamesT1 = {'NAA-asp'; 'NAA-ace'; 'tCho'; 'mI'; 'Gln'; 'Glu'; 'Cr-CH2'; 'Cr-CH3'; 'Tau'; 'GSH'; 'Glx'; 'tNAA'}; %'GABA'
T1_met_known = [1158 ; 1602 ; 1111; 1309 ; 1831; 1405 ; 1162 ; 1565 ; 1961 ; 1310 ; 1618 ; 1380 ]; %'966' (Gaba) T1_met_known = [1158 ; 1602 ; 1111; 1309 ; 1831; 1405 ; 1162 ; 1565 ; 1961 ; 1310 ; 1618 ; 1380 ]; %'966' (Gaba)
%values taken from A.Wright MRM 2021 paper (revision 2)
metaboliteNamesT1 = {'NAA-asp'; 'NAA-ace'; 'tCho'; 'mI'; 'Gln'; 'Glu'; 'Cr-CH2'; 'Cr-CH3'; 'Tau'; 'GSH'; 'Asp'; 'GABA'; 'Glyc'; 'NAAG'; 'PE'; 'Scyllo'; 'Glx'; 'tNAA'; 'tCr'; 'tCho+'; 'mI+Glyc'};
T1_met_known = [1137 ; 1701 ; 1161; 1499; 1214; 1343 ; 1118 ; 1678 ; 2063; 1505; 1300; 1240; 739; 1185; 1305; 1632; 1366; 1385; 1528; 1241; 1540];
defaultT1 = round(mean(T1_met_known(1:end-1)),2); %average of the MM T1 times defaultT1 = round(mean(T1_met_known(1:end-1)),2); %average of the MM T1 times
[T1_met, metaboliteNames] = matchRelaxationTimes(T1_met_known, metaboliteNamesT1, defaultT1, metaboliteNames, true, mapMet_Names); [T1_met, metaboliteNames] = matchRelaxationTimes(T1_met_known, metaboliteNamesT1, defaultT1, metaboliteNames, true, mapMet_Names);%CHECK ME
Cr_names = {'Cr+PCr'};
Cr_to_replace = {'Cr', 'PCr', 'Cr+PCr'};
[T1_met] = replaceRelaxationTimes(T1_met_known, metaboliteNamesT1, defaultT1, Cr_names, true, mapMetNamesDisplay, metaboliteNames, T1_met, Cr_to_replace);
NAA_names = {'NAA+NAAG'};%trick to use tNAA - for T1 the name was used as NAA(CH2)+NAA(CH3), while normally it means NAA+NAAG
NAA_to_replace = {'NAA','NAA+NAAG'};
[T1_met] = replaceRelaxationTimes(T1_met_known, metaboliteNamesT1, defaultT1, NAA_names, true, mapMetNamesDisplay, metaboliteNames, T1_met, NAA_to_replace);
%get T2 values %get T2 values
% load(['D:\Software\Spectro Data\DATA_df\Output_UF\meanT2s.mat'], 'acceptableMeanT2s', 'metaboliteNamesDisplay'); % load(['D:\Software\Spectro Data\DATA_df\Output_UF\meanT2s.mat'], 'acceptableMeanT2s', 'metaboliteNamesDisplay');
...@@ -138,7 +149,7 @@ numberOfDesiredMetabolites = length(desiredMetaboliteNames); ...@@ -138,7 +149,7 @@ numberOfDesiredMetabolites = length(desiredMetaboliteNames);
desiredRelaxationTimes = zeros(1,numberOfDesiredMetabolites); desiredRelaxationTimes = zeros(1,numberOfDesiredMetabolites);
for index = 1:numberOfDesiredMetabolites for index = 1:numberOfDesiredMetabolites
if exist('mapMet_Names','var') if exist('mapMet_Names','var')
desiredMetaboliteName = mapMet_Names(desiredMetaboliteNames{index}) desiredMetaboliteName = mapMet_Names(desiredMetaboliteNames{index});
else else
desiredMetaboliteName = desiredMetaboliteNames{index}; desiredMetaboliteName = desiredMetaboliteNames{index};
end end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment