Dear Dr. Wang, and Dear QSM experts,
My name is Germain Arribarat and I am a PhD student in University of Toulouse Neuro Institute, France. In my lab, we are currently working with QSM images. After reading your article "Quantitative Susceptibility Mapping (QSM): Decoding MRI Data for a Tissue Magnetic Biomarker", and also downloading the QSM toolbox, I tried to implement your program with my own DICOM (magnitude + phase = real + imaginary).
First, when I implements the guibeta03withStrip.m, I have a warning that appears, which provides:
Warning: Name is nonexistent or not a directory:..\fucntions\_spurs_gc.
>> In path at 110
In addpath at 87
In guibeta03withStrip at 28
In@(hObject,eventdata)guibeta03withStrip('DataLocationEditable_CreateFcn',hObject,eventdata,guidata(hObject))
In graphics\private\hgloadStructDbl at 97
In hgload at 69
In openfig at 72
In gui_mainfcn>local_openfig at 286
In gui_mainfcn at 159
In guibeta03withStrip at 43
In run at 57
This error message appears five times in a row. That may be just a 'bug' GUI. However the GUI works properly afterwards.
Also, when I try to load my DICOM, (as explained in the README.m) an error message appears, which is:
??? Reference to non-existent field 'Private_0051_100f'.
Error in ==> Read_DICOM at 59
channelname{NumChannel} =info.Private_0051_100f;
Error in ==> guibeta03withStrip>Loadbutton_Callback at 163
[iField,voxel_size,matrix_size,CF,delta_TE,TE,B0_dir] = Read_DICOM(FilePath);
Error in ==> gui_mainfcn at 96
feval(varargin{:});
Error in ==> guibeta03withStrip at 43
gui_mainfcn(gui_State, varargin{:});
Error in ==> @(hObject,eventdata)guibeta03withStrip('Loadbutton_Callback',hObject,eventdata,guidata(hObject))
??? Error while evaluating uicontrol Callback
I do not know what the field 'Private_0051_100f' dicom. Looking in your code, I think I understand that this is the number of channel, but I'm not sure.
My question is this: How can I do to run the Toolbox? Is this missing field is related to the manufacturer? Maybe is a prob with my own files DICOM...
Finally, I wanted to congratulate you for your work, and the possibility of having access! The information on the site is very clear and precise. Thank you very much
------------------------------------
Arribarat Germain
INSERM Neuro Institute - 1214
Hello !
Thank you very much for your quick response. For the first problem, your solution has functioned properly, there is no problem with the GUI now. Thank you very much for that specific answer !
For the second problem, I try to load data from Siemens DICOMs.
I type dicominfo('name of any DICOM file from the folder you try to load') in Matlab, and i get a print out of all header fields.
I find 'Private_...' entries, but which do not correspond to 'Private_0051_100f'… These are not the same head names.
I enclose a file that corresponds to the Matlab command: dicominfo ( 'name of DICOM file').
Best regards,
------------------------------------
Arribarat Germain
INSERM Neuro Institute - 1214
Hello Alexey!
Thanks you very much for this quick answer! I have download your new file "Read_DICOM_edt.m", and follow your instruction. I have no more of error for the recovery of the "Private" data. Thank you again ! (--- Maybe we should also substitute Read DICOM.m by Read_DICOM_edt.m all over the program?)
However a new error appears, on retrieving the number of TE ("EchoNumber)". I try to understand why, but I can not find. The error is in line 74, in Read_DICOM_edt.m.
When I consult the DICOM fields, I find the number of echo = 0. And normally, the program do :
if TE(info.EchoNumber)==0
TE(info.EchoNumber)=info.EchoTime*1e-3;
The fields EchoNumber and Echotime appears in DICOM fields, but when Matlab attempted to access TE(0); he said the index must be a positive integer or logical.
I shall send you an attachment, the error report.
(I specify that this error occurs anyway, if we replace READ_DICOM.m by READ_DICOM_edt.m)
Best regards
------------------------
Arribarat Germain