Print

Print


Hi Amnah,


This is an issue with oxford_asl when used with FSL6. In FSL6, FLIRT and APPLYWARP behave differently when the reference data is 4D - specifically they create an output data set with one volume for each reference volume. As a result, the corrected calibration data being fed into TOPUP does not have the expected dimensions.


I've built an updated oxford_asl package (v3.9.22) which addresses this problem and runs correctly on the ASL primer data using TOPUP. You can get the update from the GitHub release page:


https://github.com/ibme-qubic/oxford_asl/releases/tag/v3.9.22


There is also another issue you need to be aware of! In older versions of oxford_asl the --echospacing parameter behaved differently for fieldmap and TOPUP distortion correction. For fieldmap correction it was given as the true echo spacing (dwell time) whereas for TOPUP correction it had to be specified as the total readout time (echo spacing * number of slices in PE direction - 1). This has now been fixed so that the parameter means the same thing in both cases (the true echo spacing).


In the ASL primer example that you're working from, the value has been given using the old convention and is therefore much too big! To correct it you need to divide it by 63 since the data size in the Y dimension is 64. This gives an echo spacing of approximately 0.00095s, so you should use --echospacing=0.00095.


A line in the output should confirm how this value is being used, e.g.


       For TOPUP using total read-out time of (64 - 1) x 0.00095 s = .05985 s

Hope this helps - please ask if you're unsure about the above,
Martin


________________________________
From: FSL - FMRIB's Software Library <[log in to unmask]> on behalf of Amnah Mahroo <[log in to unmask]>
Sent: 04 January 2019 10:06:12
To: [log in to unmask]
Subject: [FSL] Topup Error while performing perfusion analysis using BASIL

Hi FSL Experts,

I have encountered Topup error report on ubuntu saying 'Sorry, the application applytop has stopped unexpectedly', while performing perfusion analysis using BASIL. The same message appears during both the command-line and the gui versions of BASIL. The analysis still goes on and produce the results as mentioned in the primer example box (http://www.neuroimagingprimers.org/examples/introduction-to-perfusion-quantification-using-asl/). Does this mean no distortion correction was applied during the analysis? Should I ignore this or fix this?
The output from the run looks like this:


/home/amnah/Downloads/oxford_asl/oxford_asl  -i "/home/amnah/Desktop/ASL_Oxford_Primers_GUI/Example_2/singlePLDpcASL/asltc.nii.gz" --ibf=rpt --iaf=tc --tis 3.60 --bolus 1.80 --casl --slicedt 0.04520 -c "/home/amnah/Desktop/ASL_Oxford_Primers_GUI/Example_2/singlePLDpcASL/aslcalib.nii.gz" --tr 4.80 --cgain 1.00 --cmethod voxel --cblip="/home/amnah/Desktop/ASL_Oxford_Primers_GUI/Example_2/singlePLDpcASL/aslcalib_PA.nii.gz" --echospacing=0.06000 --pedir=y --wp --t1b 1.65 --alpha 0.85 --fixbolus --spatial --mc --artoff -o "oxasl"
OXFORD_ASL - running
Version: v3.9.21 Mon Nov 19 14:31:46 2018
Saving results in natve (ASL aquisition) space to oxasl/native_space
Pre-processing
Motion Correction
Number of voxels is:98304
Number of repeats in data is:30
Outputting ASL data mean at each TI
Done.
Number of inversion times: 1
Number of timepoints in data:            30
Number of repeats in data: 30
3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60 3.60
Creating mask
Distortion correction: running topup
For TOPUP using total read-out time of (                64 - 1) x 0.06000 s = 3.78000 s

Part of FSL (ID: 6.0.0)
topup

Usage:
topup --imain=<some 4D image> --datain=<text file> --config=<text file with parameters> --out=my_topup_results


Compulsory arguments (You MUST set one or more of):
        --imain         name of 4D file with images
        --datain        name of text file with PE directions/times

Optional arguments (You may optionally specify one or more of):
        --out           base-name of output files (spline coefficients (Hz) and movement parameters)
        --fout          name of image file with field (Hz)
        --iout          name of 4D image file with unwarped images
        --logout        Name of log-file
        --warpres       (approximate) resolution (in mm) of warp basis for the different sub-sampling levels, default 10
        --subsamp       sub-sampling scheme, default 1
        --fwhm          FWHM (in mm) of gaussian smoothing kernel, default 8
        --config        Name of config file specifying command line arguments
        --miter         Max # of non-linear iterations, default 5
        --lambda        Weight of regularisation, default depending on --ssqlambda and --regmod switches. See user documetation.
        --ssqlambda     If set (=1), lambda is weighted by current ssq, default 1
        --regmod        Model for regularisation of warp-field [membrane_energy bending_energy], default bending_energy
        --estmov        Estimate movements if set, default 1 (true)
        --minmet        Minimisation method 0=Levenberg-Marquardt, 1=Scaled Conjugate Gradient, default 0 (LM)
        --splineorder   Order of spline, 2->Qadratic spline, 3->Cubic spline. Default=3
        --numprec       Precision for representing Hessian, double or float. Default double
        --interp        Image interpolation model, linear or spline. Default spline
        --scale         If set (=1), the images are individually scaled to a common mean, default 0 (false)
        --regrid                If set (=1), the calculations are done in a different grid, default 1 (true)
        -h,--help       display help info
        -v,--verbose    Print diagonostic information while running
        -h,--help       display help info



Topup: msg=topup_clp::topup_clp: Mismatch between /tmp/fsl_wW0Wyf_ox_asl/calib_blipped and /tmp/fsl_wW0Wyf_ox_asl/topup_params.txt
Distortion Correction using TOPUP
terminate called after throwing an instance of 'TOPUP::TopupFileIOException'
  what():  TopupFileIO:: msg=TopupFileReader::TopupFileReader: Unable to read file /tmp/fsl_wW0Wyf_ox_asl/topupresult
/home/amnah/Downloads/oxford_asl/oxford_asl: line 1687:  2453 Aborted                 (core dumped) applytopup --imain=$tempdir/calib,$tempdir/cblip --inindex=1,2 --datain=$tempdir/topup_params.txt --topup=${topupresult} --out=$tempdir/calib --method=jac
terminate called after throwing an instance of 'TOPUP::TopupFileIOException'
  what():  TopupFileIO:: msg=TopupFileReader::TopupFileReader: Unable to read file /tmp/fsl_wW0Wyf_ox_asl/topupresult
/home/amnah/Downloads/oxford_asl/oxford_asl: line 1687:  2459 Aborted                 (core dumped) applytopup --imain=$tempdir/asldata --datain=$tempdir/topup_params.txt --inindex=1 --topup=${topupresult} --out=$tempdir/asldata --method=jac
Number of voxels is:98304
Number of repeats in data is:30
Outputting ASL data mean at each TI
Done.
Setting up BASIL
Instructing BASIL to use automated spatial smoothing
Calling BASIL on data - conventional perusion image
Creating output directory: /tmp/fsl_wW0Wyf_ox_asl/init/basil
here
STEP 1: VB - Tissue
----------------------
Welcome to FABBER v3.9.2-97-g3b6aec1
----------------------
Last commit: Wed Sep 12 10:12:07 2018
Logfile started: /tmp/fsl_wW0Wyf_ox_asl/init/basil/step1/logfile
 0%1%2%3%4%5%6%7%8%9%10%11%12%13%14%15%16%17%18%19%20%21%22%23%24%25%26%27%28%29%30%31%32%33%34%35%36%37%38%39%40%41%42%43%44%45%46%47%48%49%50%51%52%53%54%55%56%57%58%59%60%61%62%63%64%65%66%67%68%69%70%71%72%73%74%75%76%77%78%79%80%81%82%83%84%85%86%87%88%89%90%91%92%93%94%95%96%97%98%99%100%

Final logfile: /tmp/fsl_wW0Wyf_ox_asl/init/basil/step1/logfile
STEP 2: Spatial VB Tissue - init with STEP 1
----------------------
Welcome to FABBER v3.9.2-97-g3b6aec1
----------------------
Last commit: Wed Sep 12 10:12:07 2018
Logfile started: /tmp/fsl_wW0Wyf_ox_asl/init/basil/step2/logfile
 0%5%10%15%20%25%30%35%40%45%50%55%60%65%70%75%80%85%90%95%100%

Final logfile: /tmp/fsl_wW0Wyf_ox_asl/init/basil/step2/logfile
End.
Fabber variance calculator
Working in /tmp/fsl_wW0Wyf_ox_asl/init/basil/step2
Calculating variance for: ftiss
FABBER: MVNtool
FabberRunDataNewimage::Loading mask data from '/tmp/fsl_wW0Wyf_ox_asl/mask'
FabberRunDataNewimage::Dimensions: x=64, y=64, z=24, vols=1
FabberRunDataNewimage::Voxel size: x=3.4375mm, y=3.4375mm, z=4.95mm, TR=1 sec
FabberRunDataNewimage::Intents: 0, 0, 0, 0
FabberRunDataNewimage::Setting coordinates from extent
FabberRunDataNewimage::Loading data from '/tmp/fsl_wW0Wyf_ox_asl/init/basil/step2/finalMVN'
FabberRunDataNewimage::Dimensions: x=64, y=64, z=24, vols=10
FabberRunDataNewimage::Voxel size: x=3.4375mm, y=3.4375mm, z=4.95mm, TR=1 sec
FabberRunDataNewimage::Intents: 1005, 0, 0, 0
FabberRunDataNewimage::Applying mask to data...
FabberRunData::GetVoxelData: input=/tmp/fsl_wW0Wyf_ox_asl/init/basil/step2/finalMVN mean value=1.13134e+06
FabberRunDataNewimage::Saving to nifti: /tmp/fsl_wW0Wyf_ox_asl/init/basil/step2/var_ftiss
Calculating variance for: delttiss
FABBER: MVNtool
FabberRunDataNewimage::Loading mask data from '/tmp/fsl_wW0Wyf_ox_asl/mask'
FabberRunDataNewimage::Dimensions: x=64, y=64, z=24, vols=1
FabberRunDataNewimage::Voxel size: x=3.4375mm, y=3.4375mm, z=4.95mm, TR=1 sec
FabberRunDataNewimage::Intents: 0, 0, 0, 0
FabberRunDataNewimage::Setting coordinates from extent
FabberRunDataNewimage::Loading data from '/tmp/fsl_wW0Wyf_ox_asl/init/basil/step2/finalMVN'
FabberRunDataNewimage::Dimensions: x=64, y=64, z=24, vols=10
FabberRunDataNewimage::Voxel size: x=3.4375mm, y=3.4375mm, z=4.95mm, TR=1 sec
FabberRunDataNewimage::Intents: 1005, 0, 0, 0
FabberRunDataNewimage::Applying mask to data...
FabberRunData::GetVoxelData: input=/tmp/fsl_wW0Wyf_ox_asl/init/basil/step2/finalMVN mean value=1.13134e+06
FabberRunDataNewimage::Saving to nifti: /tmp/fsl_wW0Wyf_ox_asl/init/basil/step2/var_delttiss
Done.
Creating output directory: /tmp/fsl_wW0Wyf_ox_asl/basil
here
STEP 1: VB - Tissue - init with STEP 0
----------------------
Welcome to FABBER v3.9.2-97-g3b6aec1
----------------------
Last commit: Wed Sep 12 10:12:07 2018
Logfile started: /tmp/fsl_wW0Wyf_ox_asl/basil/step1/logfile
 0%1%2%3%4%5%6%7%8%9%10%11%12%13%14%15%16%17%18%19%20%21%22%23%24%25%26%27%28%29%30%31%32%33%34%35%36%37%38%39%40%41%42%43%44%45%46%47%48%49%50%51%52%53%54%55%56%57%58%59%60%61%62%63%64%65%66%67%68%69%70%71%72%73%74%75%76%77%78%79%80%81%82%83%84%85%86%87%88%89%90%91%92%93%94%95%96%97%98%99%100%

Final logfile: /tmp/fsl_wW0Wyf_ox_asl/basil/step1/logfile
STEP 2: Spatial VB Tissue - init with STEP 1
----------------------
Welcome to FABBER v3.9.2-97-g3b6aec1
----------------------
Last commit: Wed Sep 12 10:12:07 2018
Logfile started: /tmp/fsl_wW0Wyf_ox_asl/basil/step2/logfile
 0%5%10%15%20%25%30%35%40%45%50%55%60%65%70%75%80%85%90%95%100%

Final logfile: /tmp/fsl_wW0Wyf_ox_asl/basil/step2/logfile
End.
Fabber variance calculator
Working in /tmp/fsl_wW0Wyf_ox_asl/basil/step2
Calculating variance for: ftiss
FABBER: MVNtool
FabberRunDataNewimage::Loading mask data from '/tmp/fsl_wW0Wyf_ox_asl/mask'
FabberRunDataNewimage::Dimensions: x=64, y=64, z=24, vols=1
FabberRunDataNewimage::Voxel size: x=3.4375mm, y=3.4375mm, z=4.95mm, TR=1 sec
FabberRunDataNewimage::Intents: 0, 0, 0, 0
FabberRunDataNewimage::Setting coordinates from extent
FabberRunDataNewimage::Loading data from '/tmp/fsl_wW0Wyf_ox_asl/basil/step2/finalMVN'
FabberRunDataNewimage::Dimensions: x=64, y=64, z=24, vols=10
FabberRunDataNewimage::Voxel size: x=3.4375mm, y=3.4375mm, z=4.95mm, TR=1 sec
FabberRunDataNewimage::Intents: 1005, 0, 0, 0
FabberRunDataNewimage::Applying mask to data...
FabberRunData::GetVoxelData: input=/tmp/fsl_wW0Wyf_ox_asl/basil/step2/finalMVN mean value=0.606532
FabberRunDataNewimage::Saving to nifti: /tmp/fsl_wW0Wyf_ox_asl/basil/step2/var_ftiss
Calculating variance for: delttiss
FABBER: MVNtool
FabberRunDataNewimage::Loading mask data from '/tmp/fsl_wW0Wyf_ox_asl/mask'
FabberRunDataNewimage::Dimensions: x=64, y=64, z=24, vols=1
FabberRunDataNewimage::Voxel size: x=3.4375mm, y=3.4375mm, z=4.95mm, TR=1 sec
FabberRunDataNewimage::Intents: 0, 0, 0, 0
FabberRunDataNewimage::Setting coordinates from extent
FabberRunDataNewimage::Loading data from '/tmp/fsl_wW0Wyf_ox_asl/basil/step2/finalMVN'
FabberRunDataNewimage::Dimensions: x=64, y=64, z=24, vols=10
FabberRunDataNewimage::Voxel size: x=3.4375mm, y=3.4375mm, z=4.95mm, TR=1 sec
FabberRunDataNewimage::Intents: 1005, 0, 0, 0
FabberRunDataNewimage::Applying mask to data...
FabberRunData::GetVoxelData: input=/tmp/fsl_wW0Wyf_ox_asl/basil/step2/finalMVN mean value=0.606532
FabberRunDataNewimage::Saving to nifti: /tmp/fsl_wW0Wyf_ox_asl/basil/step2/var_delttiss
Done.
Number of voxels is:35238
Number of repeats in data is:1
Start extrapolation!
Done.
Output is oxasl/
OXFORD_ASL - done.

Return code: 0


I would really appreciate if someone can clarify this.

Best Regards,
Amnah

########################################################################

To unsubscribe from the FSL list, click the following link:
https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=FSL&A=1

########################################################################

To unsubscribe from the FSL list, click the following link:
https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=FSL&A=1