Print

Print


Dear FSL experts,
I would like to have your advice about a problem I am encountering using PALM.
I am not very familiar with Palm thus I apologize in advance for a potential naive question.
I am would like to investigate how 2 or 3 imaging metrics covariate across the whole brain (voxel-wise).
In the FSL archive I found a previous conversation that provide a skeleton of what I could do:

" If we want to estimate the interaction between modalities, should we transfer to joint inference (NPC or MANOVA/MANCOVA)? Just like FSLNets, explore the correlation between 2 RSN, using PALM to search the correlation between 2 modalities, for example, change of modality A causing positive/negative alteration of modality B?
Yes, this is possible through the use of voxelwise EVs. This example, on whether modality A is associated/correlated with modality B, can be done using A as input (dependent variable, -i), and B as a voxelwise EV in the design (or vice-versa). It can be done in either PALM or randomise.
And estimating the contribution of modality A and modality C to the alteration of modality B?
Yes, also possible. For this, use B as input, and prepare two designs, one having A as voxelwise EV, another with C as voxelwise EV, then run these two designs in PALM with -corrcon, and at the end, use fslmaths to find the largest corrected p-value across both, which will indicate a conjunction(IUT in the paper ).
Alternatively, for a joint test (UIT), use -npccon, that will do NPC over the contrasts for these two designs."

Unfortunately I have some problem in implementing it.
1. I designed the .mat and .con file using the GLM GUI but my impression is that it allows to introduce voxelwise EVs only on top of a main EV. Is that correct?
2. I created the .mat and the .con file introducing Age as a main EV (I am in the context of an aging study) + the voxelwise EV

matrix file:

/NumWaves       2
/NumPoints      54
/PPheights              3.270000e+01    2.795043e-02

/Matrix
-1.720000e+01   2.755630e-02
1.350000e+01    2.463088e-02
8.600000e+00    2.455896e-02

contrasts file:

/ContrastName1  age
/ContrastName2  fa
/NumWaves       2
/NumContrasts   2
/PPheights              3.270265e+01    2.766217e-02
/RequiredEffect         2.066   0.607

/Matrix
1.000000e+00 0.000000e+00
0.000000e+00 1.000000e+00

After that, I run PALM with the following spec.

# Configuration file for PALM.
# Version alpha105, running in MATLAB 7.14.0.739 (R2012a).
# 04-Apr-2017 14:05:50

-i all_brain_wqsm25.nii
-evperdat all_FA.nii 2 1
-m c2_maxprob.nii
-d Age_qsmFa.mat
-t Age_qsmFa.con
-T
-demean
-n 5000
-o qsmFa1

PALM routine starts:

Reading input 1/1: all_brain_wqsm25.nii
Reading EV per datum 1/1: all_FA.nii
Reading design matrix and contrasts.
Elapsed time parsing inputs: ~ 11.8342 seconds.
Doing maths for -evperdat before model fitting: [Design 1/1, Contrast 1/2] (may take several minutes)
Doing maths for -evperdat before model fitting: [Design 1/1, Contrast 2/2] (may take several minutes)

Generating 5000 shufflings (permutations only).
Building null distribution.
0.01%	 [Design 1/1, Contrast 1/2, Shuffling 1/5000, Modality 1/1]

But then I got the following warning several times:
Warning: Rank deficient, rank = 1, tol =  1.046556e-13. 
> In palm_core at 1406
  In palm at 81

Until the routine stopped after several iteration of the following warning:

Warning: Matrix is singular to working precision. 
> In palm_core>fastt3d at 2749
  In palm_core at 1462
  In palm at 81 

Saving file: qsmFa1_vox_tstat_c1
Error using betainc
X must be in the interval [0,1].

Error in palm_gcdf (line 63)
        gcdf(ig) = betainc(1./(1+G(ig).^2./df2(ig)),df2(ig)/2,.5)/2;

Error in palm_gtoz (line 80)
        Z(~idx) = -erfcinv(2*palm_gcdf( G(~idx),1,df2(~idx)))*sqrt(2);

Error in palm_core (line 1592)
                            G{y}{m}{c} = palm_gtoz(G{y}{m}{c},plm.rC0{m}(c),df2{y}{m}{c});

Error in palm (line 81)
palm_core(varargin{:});

Any suggestions?

As a note: when I tried the “equivalent” analysis with randomise_parallel (employing the same matrix and contrasts files) the routine run without producing warnings/errors.

I would also very much appreciate any comments about what would be the best way to investigate how/where different MRI metrics (all registered to the same space) covariate.

Thank you in advance for your help,
Nicola