Print

Print


It looks like the main (non partial volume corrected version) of the CBF quantification has worked and something has gone wrong at the final PVC step. I have seen a similar problem before and I suspect it will have something to do with the mask or partial volume estimates created internally. I will try to have a look soon and get back to you - it may be that this has been fixed by some improvements to oxford_asl that have not been released yet (in which case I might be able to give you a newer version temporarily).

Michael

On 23 Jan 2015, at 16:07, Matthieu Vanhoutte <[log in to unmask]> wrote:

Hello experts,

I remembered to use "bash" before "oxford_asl" command to prevent from some bugs.

So it went far away but still got lot of errors :

OXFORD_ASL - running
Creating output directory
Saving results in natve (ASL aquisition) space to pvc2/native_space
Saving results in structural space to pvc2/struct_space
Pre-processing
Creating mask
Performing registration
ASL_REG
Input file is: control
Running FLIRT
Tidying up
ASL_REG - Done.
Segmenting the structural image
Calculating M0a - calling ASL_CALIB
ASL_CALIB
Tissue reference is: csf
Image Exception : #22 :: ERROR: Could not open image /tmp/fsl_7D0Jbn_asl_calib/seg_bias
terminate called after throwing an instance of 'RBD_COMMON::BaseException'
Aborted (core dumped)
Cannot open volume /tmp/fsl_7D0Jbn_asl_calib/biasfield for reading!
Image Exception : #22 :: ERROR: Could not open image /tmp/fsl_7D0Jbn_asl_calib/sens
terminate called after throwing an instance of 'RBD_COMMON::BaseException'
Aborted (core dumped)
M0:785.90172355273613219438
ASL_calib - DONE.
Number of inversion times: 1
Number of timepoints in data: 30
Number of repeats in data: 30
3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175 3.175
Setting up BASIL
Calling BASIL on data
Creating output directory: /tmp/fsl_eIyKnR_ox_asl/basil
Model for analysis is: aslpvc
Using bolus length: 1.650
STEP 1: VB (2 param: CBF and ^t)
------------------
Welcome to FABBER v2.0
Logfile started: /tmp/fsl_eIyKnR_ox_asl/basil/step1/logfile
Start time: Fri Jan 23 16:52:01 2015
FABBER release v2.0
    Forward Model version:
      $Id: fwdmodel_asl_pvc.cc,v 1.6 2013/09/03 15:08:04 chappell Exp $
    Loading mask data from '/tmp/fsl_eIyKnR_ox_asl/mask'
    Loading data from 'diffdata'
here
. . . . . . . . . . Saving!
FABBER is all done.
Duration: 90 seconds.
Logfile was: /tmp/fsl_eIyKnR_ox_asl/basil/step1/logfile
STEP 2: VB (4 param: CBF and ^t, fwm, ^twm) - init with STEP 1
FABBER: MVNtool
Reading MVNs from /tmp/fsl_eIyKnR_ox_asl/basil/temp
Reading MVNs from /tmp/fsl_eIyKnR_ox_asl/basil/temp
FABBER: MVNtool
Reading MVNs from /tmp/fsl_eIyKnR_ox_asl/basil/temp
Reading MVNs from /tmp/fsl_eIyKnR_ox_asl/basil/temp
Spatial prior specification: MNMNII
STEP 2: Spatial VB (4 param: CBF and ^t, fwm, ^twm) - init with STEP 1
FABBER: MVNtool
Reading MVNs from /tmp/fsl_eIyKnR_ox_asl/basil/temp
Reading MVNs from /tmp/fsl_eIyKnR_ox_asl/basil/temp
FABBER: MVNtool
Reading MVNs from /tmp/fsl_eIyKnR_ox_asl/basil/temp
Reading MVNs from /tmp/fsl_eIyKnR_ox_asl/basil/temp
FABBER: MVNtool
Reading MVNs from /tmp/fsl_eIyKnR_ox_asl/basil/temp
Reading MVNs from /tmp/fsl_eIyKnR_ox_asl/basil/temp
------------------
Welcome to FABBER v2.0
FABBER: MVNtool
Reading MVNs from /tmp/fsl_eIyKnR_ox_asl/basil/temp
Reading MVNs from /tmp/fsl_eIyKnR_ox_asl/basil/temp
------------------
Welcome to FABBER v2.0
Logfile started: /tmp/fsl_eIyKnR_ox_asl/basil/step2/logfile
Start time: Fri Jan 23 16:53:39 2015
FABBER release v2.0
    Forward Model version:
      $Id: fwdmodel_asl_pvc.cc,v 1.6 2013/09/03 15:08:04 chappell Exp $
Expanded, --param-spatial-priors=MNMNII
    Loading mask data from '/tmp/fsl_eIyKnR_ox_asl/mask'
    Loading data from 'diffdata'
fabber: inference_spatialvb.cc:1982: void SpatialVariationalBayes::CalcNeighbours(const NEWIMAGE::volume<float>&): Assertion `checkNofN == 1' failed.
Aborted (core dumped)
End.
Cannot open volume /tmp/fsl_eIyKnR_ox_asl/basil/step2/mean_ftiss for reading!
Cannot open volume /tmp/fsl_eIyKnR_ox_asl/basil/step2/mean_delttiss for reading!
Cannot open volume /tmp/fsl_eIyKnR_ox_asl/basil/step2/mean_fwm for reading!
Cannot open volume /tmp/fsl_eIyKnR_ox_asl/basil/step2/mean_deltwm for reading!
Image Exception : #22 :: ERROR: Could not open image /tmp/fsl_eIyKnR_ox_asl///ftiss
terminate called after throwing an instance of 'RBD_COMMON::BaseException'
/home/global//fsl50/bin/oxford_asl: line 173:  8854 Aborted                 (core dumped) flirt -in $tempdir/$subdir/$param -applyxfm -init $tempdir/asl2struct.mat -ref $struc -out $outdir/struct_space/$subdir/$parname
Image Exception : #22 :: ERROR: Could not open image /tmp/fsl_eIyKnR_ox_asl///delttiss
terminate called after throwing an instance of 'RBD_COMMON::BaseException'
/home/global//fsl50/bin/oxford_asl: line 173:  8903 Aborted                 (core dumped) flirt -in $tempdir/$subdir/$param -applyxfm -init $tempdir/asl2struct.mat -ref $struc -out $outdir/struct_space/$subdir/$parname
Image Exception : #22 :: ERROR: Could not open image /tmp/fsl_eIyKnR_ox_asl///ftisswm
terminate called after throwing an instance of 'RBD_COMMON::BaseException'
/home/global//fsl50/bin/oxford_asl: line 173:  8952 Aborted                 (core dumped) flirt -in $tempdir/$subdir/$param -applyxfm -init $tempdir/asl2struct.mat -ref $struc -out $outdir/struct_space/$subdir/$parname
Image Exception : #22 :: ERROR: Could not open image /tmp/fsl_eIyKnR_ox_asl///deltwm
terminate called after throwing an instance of 'RBD_COMMON::BaseException'
/home/global//fsl50/bin/oxford_asl: line 173:  9001 Aborted                 (core dumped) flirt -in $tempdir/$subdir/$param -applyxfm -init $tempdir/asl2struct.mat -ref $struc -out $outdir/struct_space/$subdir/$parname
Cannot open volume pvc2/native_space///perfusion for reading!
Cannot open volume pvc2/native_space///perfusion_wm for reading!
Cannot open volume pvc2/native_space///arrival for reading!
Cannot open volume pvc2/native_space///deltwm for reading!
Cannot open volume pvc2/native_space///perfusion for reading!
Cannot open volume pvc2/struct_space///perfusion for reading!
Cannot open volume pvc2/native_space///perfusion_calib for reading!
Cannot open volume pvc2/native_space///perfusion_wm for reading!
Cannot open volume pvc2/struct_space///perfusion_wm for reading!
Cannot open volume pvc2/native_space///perfusion_wm_calib for reading!
Output is pvc2/
OXFORD_ASL - done.

==> End of this command, the output directory "native_space" is incomplete (no perfusion and perfusion_calib) and "struct_space" is empty.

You can find attached to this link the files I have used with the oxford_asl command :
http://we.tl/DXkTsFIQwX

Could you please take a look at these and explain me why this problem happened ?

Many thanks in advance !

Best regards,

-------------------------------------
Matthieu Vanhoutte, MSc
Research Engineer - Department of Neuroradiology
Regional University Hospital, Lille, France

2015-01-23 16:43 GMT+01:00 Matthieu Vanhoutte <[log in to unmask]>:
Hello experts,

I update this post and still can't generate output datas from oxford_asl (with single delay pCASL data & PVC) :

oxford_asl -i diffdata -o pvc2 --tis 3.175 --bolus 1.650 --casl -c control -s T1Proc_BrainSegmentation0N4 --tr 4.05 --te 14 --regfrom control --pvcorr

This is the error message :

OXFORD_ASL - running
Creating output directory
Saving results in natve (ASL aquisition) space to pvc2/native_space
Saving results in structural space to pvc2/struct_space
Pre-processing
Creating mask
Performing registration
ASL_REG
Input file is: control
Running FLIRT
Tidying up
ASL_REG - Done.
Segmenting the structural image
Calculating M0a - calling ASL_CALIB
ASL_CALIB
Tissue reference is: csf
Image Exception : #22 :: ERROR: Could not open image /tmp/fsl_18mRY5_asl_calib/seg_bias
terminate called after throwing an instance of 'RBD_COMMON::BaseException'
Aborted (core dumped)
Cannot open volume /tmp/fsl_18mRY5_asl_calib/biasfield for reading!
Image Exception : #22 :: ERROR: Could not open image /tmp/fsl_18mRY5_asl_calib/sens
terminate called after throwing an instance of 'RBD_COMMON::BaseException'
Aborted (core dumped)

M0:785.90172355273613219438
ASL_calib - DONE.
/home/global//fsl50/bin/oxford_asl: 1060: /home/global//fsl50/bin/oxford_asl: alltis[0]=3.175: not found
Number of inversion times: 1
Number of timepoints in data: 30
Number of repeats in data: 30
/home/global//fsl50/bin/oxford_asl: 1074: /home/global//fsl50/bin/oxford_asl: Syntax error: Bad for loop variable



==> End of this command, the output directories "native_space" and "struct_space" are empty...

You can find attached to this link the files I have used with the oxford_asl command :
http://we.tl/DXkTsFIQwX

Could you please take a look at these and explain me why this problem happened ?

Many thanks in advance !

Best regards,


-------------------------------------
Matthieu Vanhoutte, MSc
Research Engineer - Department of Neuroradiology
Regional University Hospital, Lille, France

2014-12-03 20:32 GMT+01:00 Michael Chappell <[log in to unmask]>:
That this error is internal to the software and not to do with your data. However, it would not prevent the software from giving you perfusion images and will not have adversely affected these images. 

Michael

On 2 Dec 2014, at 17:16, Matthieu Vanhoutte <[log in to unmask]> wrote:

So what should I do ?
My data aren't good ? Or is this purely a software problem I can correct ? (to obtain perfusion_calib and pvcorr CBF file)

Best,

Matthieu

-------------------------------------
Matthieu Vanhoutte, MSc
Research Engineer - Department of Neuroradiology
Regional University Hospital, Lille, France

2014-12-02 18:04 GMT+01:00 Michael Chappell <[log in to unmask]>:
This appears to be a tiny bug due to a missing ‘&’ in asl_calib. However, my testing suggests that it will not have affected anything that comes after that point.

Michael


On 26 Nov 2014, at 17:26, Matthieu Vanhoutte <[log in to unmask]> wrote:

Hello Michael,

I have tried to run partial volume correction with this command :
bash oxford_asl -i diffdata -o pvc --tis 3.175 --bolus 1.650 --casl -c control -s T1Proc_BrainExtractionBrain --tr 4.05 --te 14 --regfrom control --pvcorr

But I've got this error message on ASL_CALIB step :

OXFORD_ASL - running
Creating output directory
Saving results in natve (ASL aquisition) space to pvc/native_space
Saving results in structural space to pvc/struct_space
Pre-processing
Creating mask
Performing registration
ASL_REG
Input file is: control
Running FLIRT
Tidying up
ASL_REG - Done.
Segmenting the structural image
Calculating M0a - calling ASL_CALIB
ASL_CALIB
Tissue reference is: csf
Image Exception : #22 :: ERROR: Could not open image /tmp/fsl_3GAiyq_asl_calib/seg_bias
terminate called after throwing an instance of 'RBD_COMMON::BaseException'
Aborted (core dumped)
Cannot open volume /tmp/fsl_3GAiyq_asl_calib/biasfield for reading!
Image Exception : #22 :: ERROR: Could not open image /tmp/fsl_3GAiyq_asl_calib/sens
terminate called after throwing an instance of 'RBD_COMMON::BaseException'
Aborted (core dumped)
M0:785.72033545478675808106
ASL_calib - DONE.


Where could it come from ?

Best,

-------------------------------------
Matthieu Vanhoutte, MSc
Research Engineer - Department of Neuroradiology
Regional University Hospital, Lille, France

2014-11-26 15:09 GMT+01:00 Matthieu Vanhoutte <[log in to unmask]>:
Hello Michael,

Thank you very much for your quick and detailed answer.

Concerning the partial volume correction, how to estimate PV and apply PV correction : just by typing --pvcorr in the oxford_asl command ?

What if I supply my own PV estimates : how should I use this with command line ?

Thanks again  !

Best,

-------------------------------------
Matthieu Vanhoutte, MSc
Research Engineer - Department of Neuroradiology
Regional University Hospital, Lille, France

2014-11-26 14:16 GMT+01:00 Michael Chappell <[log in to unmask]>:
CBF is computed using the ‘standard’ model for ASL, this is very nicely described in the Buxton 1998 paper. It is marginally different from the assumptions made in the recent white paper - although if you set the T1 of tissue equal to that of blood (=1.65 s) the you will get a model that is very close to those recommendations. The algorithm used to process the data according to the ASL model is the Chappell 2009 paper. By default oxford_asl uses the CSF in the calibration image (in your case control) to estimate the M0 value needed for absolute quantification, this also differs from the simple procedure in the white paper.

Partial volume correction is possible using the --pvcorr command - by default oxford_asl will use FAST to segment the structural image and create the partial volume estimates You can supply your own PV estimates (these need to be at the same resolution as your ASL data) if you want. This will try to create a perfusion image of grey matter perfusion (along with a separate white matter estimate). This uses the method in the Chappell 2011 paper.In principle this method was originally designed for multi-delay data, experience suggests it will operate on single delay data like you are using (but do enter your data without having taken the mean over the individual repeats), but the separation will not be as effective.

Michael

References:
Buxton 1998: Buxton, R. et al. A general kinetic model for quantitative perfusion imaging with arterial spin labeling. Magn Reson Med 40, 383–396 (1998).
White Paper: Alsop, D. C. et al. Recommended implementation of arterial spin-labeled perfusion MRI for clinical applications: A consensus of the ISMRM perfusion study group and the European consortium for ASL in dementia. Magn Reson Med (2014). doi:10.1002/mrm.25197
Chappell 2009: Chappell, M. A., Groves, A., Whitcher, B. & Woolrich, M. Variational Bayesian Inference for a Nonlinear Forward Model. IEEE Transactions on Signal Processing 57, 223–236 (2009).
Chappell 2011: Chappell, M. A. et al. Partial volume correction of multiple inversion time arterial spin labeling MRI data. Magn Reson Med 65, 1173–1183 (2011).

On 25 Nov 2014, at 13:41, Matthieu Vanhoutte <[log in to unmask]> wrote:

Dear FSL's experts,

1) From my own pCASL data, I would like to compute the CBF map and according my parameters sequence I used this command :
bash oxford_asl -i diffdata -o asl --tis 3.175 --bolus 1.650 --casl -c control -s ExtractionBrain --tr 4.05 --te 14

Could you tell me the underlying used mathematical equations and the publications whose these equations came from ?

2) I saw since FSL 5.0.6 Partial Volume Correction is possible but I didn't found how to apply this ?

Thank you in advance !

Best regards,

-------------------------------------
Matthieu Vanhoutte, MSc
Research Engineer - Department of Neuroradiology
Regional University Hospital, Lille, France

---
Michael Chappell MEng DPhil
Associate Professor, Institute of Biomedical Engineering, University of Oxford.
Director of Training, EPSRC-MRC CDT in Biomedical Imaging
Governing Body Fellow, Wolfson College, Oxford.
    http://www.wolfson.ox.ac.uk        
Research Fellow, FMRIB Centre







---
Michael Chappell MEng DPhil
Associate Professor, Institute of Biomedical Engineering, University of Oxford.
Director of Training, EPSRC-MRC CDT in Biomedical Imaging
Governing Body Fellow, Wolfson College, Oxford.
    http://www.wolfson.ox.ac.uk        
Research Fellow, FMRIB Centre









---
Michael Chappell MEng DPhil
    T: +44 1865 617657
Associate Professor, Institute of Biomedical Engineering, University of Oxford.
Director of Training, EPSRC-MRC CDT in Biomedical Imaging
Governing Body Fellow, Wolfson College, Oxford.
    http://www.wolfson.ox.ac.uk        
Research Fellow, FMRIB Centre