qMRLab icon indicating copy to clipboard operation
qMRLab copied to clipboard

Computing B1+ Fails

Open AlexMorello opened this issue 3 years ago • 12 comments

So I cannot compute the B1+ map for my T1 batch. I'm using these two files (FA = 35 and 70 degrees, respectively) as per the method. What I get is precisely this:

=============== qMRLab::Fit ======================
Operation has been started: b1_dam
Array dimensions must match for binary array op.

Error in b1_dam/fit (line 83)
            FitResult.B1map_raw =
            abs(acos(data.SF2alpha./(2*data.SFalpha))./(deg2rad(obj.Prot.Alpha.Mat)));

Error in FitData (line 260)
    Fit = Model.fit(data);

Error in qMRLab>FitGo_FitData (line 406)
FitResults = FitData(data,Model,1);

Error in qMRLab>FitGO_Callback (line 388)
FitGo_FitData(hObject, eventdata, handles);

Error in gui_mainfcn (line 95)
        feval(varargin{:});

Error in qMRLab (line 41)
    gui_mainfcn(gui_State, varargin{:});

Error in
matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)qMRLab('FitGO_Callback',hObject,eventdata,guidata(hObject)) 
Error while evaluating UIControl Callback.

Could you guys please shed some light onto what's going on? The outcome is really important.

AlexMorello avatar Feb 01 '22 16:02 AlexMorello

@agahkarakuzu Have just attempted this using version 2.4.2.; the output hasn't changed. Manually loading the images reveals they are identical arrays:

   ans = 

  1×3 imtool3D array with properties:

    windowSpeed
    upsample
    upsampleMethod
    Visible
    brushsize
    rescaleFactor

AlexMorello avatar Feb 01 '22 19:02 AlexMorello

I have no way to piece together what is going on without knowing the steps you are following.

  • Please use bullet points
  • to guide us through the steps you follow
  • so that we can identify the issue and help you.

agahkarakuzu avatar Feb 01 '22 19:02 agahkarakuzu

I have no way to piece together what is going on without knowing the steps you are following.

* Please use bullet points

* to guide us through the steps you follow

* so that we can identify the issue and help you.

Pardonne-moi sauvage :( Here's what I did:

  • Took the VFA T1 data I had (images acquired at 35 and 70 degrees, respectively), loaded them into qMRLab manually (drag-and-drop), and obtained this:
 ans = 

  1×3 imtool3D array with properties:

    windowSpeed
    upsample
    upsampleMethod
    Visible
    brushsize
    rescaleFactor
  • Tried to compute the B1+ map using qMRLab's GUI, and got the following output (both in 2.4.1 and 2.4.2):
=============== qMRLab::Fit ======================
Operation has been started: b1_dam
Array dimensions must match for binary array op.

Error in b1_dam/fit (line 83)
            FitResult.B1map_raw =
            abs(acos(data.SF2alpha./(2*data.SFalpha))./(deg2rad(obj.Prot.Alpha.Mat)));

Error in FitData (line 260)
    Fit = Model.fit(data);

Error in qMRLab>FitGo_FitData (line 406)
FitResults = FitData(data,Model,1);

Error in qMRLab>FitGO_Callback (line 388)
FitGo_FitData(hObject, eventdata, handles);

Error in gui_mainfcn (line 95)
        feval(varargin{:});

Error in qMRLab (line 41)
    gui_mainfcn(gui_State, varargin{:});

Error in
matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)qMRLab('FitGO_Callback',hObject,eventdata,guidata(hObject)) 
Error while evaluating UIControl Callback.

AlexMorello avatar Feb 01 '22 19:02 AlexMorello

Took the VFA T1 data I had

Are you trying to fit a T1 map, or a B1 map?

If you read the documentation for double angle B1 mapping you will see that you need to provide images separately to calculate a B1+ map.

image

It should be also obvious from the GUI:

image

Please use blue ➕ button to load data in respective fields. When you drag and drop, there is not a robust way to infer in which variable to load that data.

The error above shows that you are trying to fit B1 after concatenating data. This is not expected by b1_dam.

agahkarakuzu avatar Feb 01 '22 19:02 agahkarakuzu

Are you trying to fit a T1 map, or a B1 map?

If you read the documentation for double angle B1 mapping you will see that you need to provide images separately to calculate a B1+ map. It should be also obvious from the GUI:

image

Please use blue heavy_plus_sign button to load data in respective fields. When you drag and drop, there is not a robust way to infer in which variable to load that data.

Yet that's exactly what I did: I loaded the 35-degree image as SFalpha, and the 70-degree one as SF2alpha, as per the method. I didn't drag-and-drop the files onto MATLAB's Command Window until after the error had already occurred. Basically, I did it just to see if the images indeed presented two different arrays.

Screenshot_2022-02-01_21-09-59

Are you trying to fit a T1 map, or a B1 map?

I'm trying to calculate a B1+ map to load it into the T1 fitting routine.

The error above shows that you are trying to fit B1 after concatenating data. This is not expected by b1_dam.

I'm not sure I follow. The images I used were two separate images, but I'll double-check it now.

AlexMorello avatar Feb 01 '22 20:02 AlexMorello

image

It should be like this. Make sure that the order of alpha/2alpha order is correct and provide alpha only.

image

I'm not sure I follow.

You mentioned fslmerge, then edited your question. It was there at the time I saw it, so that's why.

agahkarakuzu avatar Feb 01 '22 20:02 agahkarakuzu

image

It should be like this. Make sure that the order of alpha/2alpha order is correct and provide alpha only.

image

I'm not sure I follow.

You mentioned fslmerge, then edited your question. It was there at the time I saw it, so that's why.

Sorry :( I guess it's getting late over here. Pasted it and didn't notice it soon enough.

AlexMorello avatar Feb 01 '22 20:02 AlexMorello

No worries. With only one FA (lower FA) set in the protocol panel as the screenshot above shows, you should be able to get an output.

agahkarakuzu avatar Feb 01 '22 20:02 agahkarakuzu

No worries. With only one FA (lower FA) set in the protocol panel as the screenshot above shows, you should be able to get an output.

Thanks! I think the problem was that I had made a mistake naming one of the files; namely, the 35 degree image was, in fact, a 30-degree one (checked the corresponding original DICOM). So now, I don't seem to have a 2alpha to proceed with :( The sequence is as follows: 2,3,5,20,30,70,85. I did have a 10-degree batch, but I think it was damaged somehow, and the method works best with higher angles anyway. May you please take a look still?

AlexMorello avatar Feb 01 '22 21:02 AlexMorello

If you can make it work, I guess the rest is up to how you are setting up your imaging protocol, sequence choice and all.

Unless there are other issues concerning the use of qmrlab, feel free to close the issue.

Thanks for reaching out!

agahkarakuzu avatar Feb 01 '22 21:02 agahkarakuzu

If you can make it work, I guess the rest is up to how you are setting up your imaging protocol, sequence choice and all.

Unless there are other issues concerning the use of qmrlab, feel free to close the issue.

Thanks for reaching out!

Got it! I'll try it a few more times and close the issue if it works.

AlexMorello avatar Feb 01 '22 22:02 AlexMorello