Dear Jung,
> when I use FNIRT to perform study, some cases I get these error message as
> below:
>
> SpMat::SolveForx: Warning requested tolerence not obtained.
> Requested tolerance was 0.001, and achieved tolerance was 0.0934516
> This may or may not be a problem in your application, but you should look
> into
> it
This is an error message that indicates that the linear system of
equations which is part of the Gauss-Newton update hasn't been solved to
the required precision. However, fnirt will then make the system better
conditioned, and try again. So this error message is typically safe to
ignore. It is really more for my own sake, and I will turn it off for the
next release.
> Warning, Jacobian not within prescribed range. Prescription is 0.01 -- 100
> and
> obtained range is -0.00444645 -- 3.01544
After each iteration fnirt attempts to make sure that the Jacobians
(stretches and compressions) are within a pre-determined range. You have
used the default range, which basically just assures that the field is
invertible. When doing that fnirt runs a fixed number of iterations, and
if it hasn't succeeded after those iterations it prints the error message
above.
For the next release I'll change that so that one can set the number of
iterations (to make sure it "always" succeeds). For the time being I would
recommend that you slightly increase the amount of regularisation that you
are using. I.e. in your config file you increase the values for lambda.
If you are using the T1_2_MNI152_2mm file you might e.g. change lamda to
--lambda=400,200,150,75,60,45
and I would expect the problem to go away.
Good luck Jesper
|