Please find below the reply to the queries raised by Serdar Ali.
I am sorry for any inconvenience.
Best wishes,
Sungho
--------------------------------------------------------
From: Sungho Tak <[log in to unmask]>
Date: 30 May 2016 at 22:22
Subject: Re: spm_fx_fnirs mismatch between paper and software code
To: Serdar Ali <[log in to unmask]>
Cc: Will Penny <[log in to unmask]>
Dear Serdar,
There was a bug in the spm_fx_fnirs.m code.
--
Log-transformed hemodynamic state equations were implemented in the spm_fx_fnirs.m code.
--
Log-transformation gives:
dp'/dt = (f_in - f_out) * p/v * 1/(tau*p),
where p' is ln(p), p is total hemoglobin, and v is cerebral blood volume.
This equation can be written as MATLAB code:
f(:,6) = (x(:,3) - fv_d) .* x(:,6) ./ x(:,4) ./ (tt .* x(:,6));
--
However, there was a bug in the spm_fx_fnirs.m code:
f(:,6) = (x(:,3) - fv_d .* x(:,6) ./ x(:,4)) ./ (tt .* x(:,6));
This corresponds to a equation:
dp'/dt = (f_in - f_out * p/v) * 1/(tau*p)
--
This problem was fixed, and an updated spm_fx_fnirs.m code was tested again using a sample data.
Updated codes give almost the same results, because (estimated) p/v is approximately 1. Total hemoglobin (p) has similar temporal information with cerebral blood volume (v), and this has been verified by Siegel et al., (2003) (Please see Fig. 4). Thus, v is often substituted with q in fNIRS studies.
A.M. Siegel et al., / Phys. Med. Biol. 48 (2003) 1391 - 1403.
Please find the attached file (updated spm_fx_fnirs.m code).
Thank you for reporting a bug.
Best wishes,
Sungho
On Thu, 26 May 2016 09:16:59 +0300, Serdar Ali <[log in to unmask]> wrote:
>Hello dear collegues.
>I am checking the paper
>DCM for fNIRS by Tak et. al.
>
>The equation for total hemoglobin content both in Cui paper and Tak et al.
>is
>
>tao_j* dp/dt = (f_in-f_out)*p/v
>
>Here
> p is total hemoglobin
> f_in is the inflowing blood
> f_out is the outflowing blood
> v is the blood volume
>
>However the code for the total hemoglobin content in spm_fx_fnirs is
>
>f(:,6) = (x(:,3) - fv_d .* x(:,6)./x(:,4))./(tt.*x(:,6));
>
>This corresponds to actually the equation
>
>tao_j* dp/dt = (f_in-f_out*p/v )
>
>which is different than above explicitly written in the papers.
>Which one is true?
>
>Kind Regards
>Serdar
>
|