Dear Guoshi
If your PEB analysis has taken 6 days, then something is wrong. It should take a few seconds! Minutes at most. The only exception is when you use the function spm_dcm_peb_fit instead of spm_dcm_fit, which iteratively re-estimates all subjects' DCMs using the group-average connectivity as priors. If you're doing that, then just switch back to spm_dcm_fit.
Perhaps you could try the analysis on your local computer rather than the cluster?
Best
Peter
-----Original Message-----
From: SPM (Statistical Parametric Mapping) <[log in to unmask]> On Behalf Of Guoshi Li
Sent: 02 January 2019 16:46
To: [log in to unmask]
Subject: [SPM] Running time issue of PEB model
Dear Peter:
I used spectral DCM to estimate the effective connectivity (EC) of a pretty large model (27 nodes) of resting-state fMRI for two groups of subjects (each group has 100 subjects). I have completed the estimation of all 200 subjects (full connectivity) and now I need to compare the EC difference between the two groups. Previously I used traditional t-test in conjunction with network-based statistic (NBS; Zalesky et al., NeuroImage, 2010) to identify the significant EC links (edges) between the two groups. After reading your paper (Friston et al., NeuroImage, 2016) and some posts of this forum, I know there is an alternative approach (Bayesian Model Reduction with PEB) to compare the group difference. I am following the instructions in the Wikibooks (https://en.wikibooks.org/wiki/SPM/Parametric_Empirical_Bayes_(PEB)) and your previous responses related to the PEB method. Now the problem I have is the running time issue. I am running the PEB code in a cluster (SPM version 7219) and it has not been completed after 6 days. I can see a temporal data file (tmp.mat) generated and no error message was given (the PEB data file is not produced yet). I am not sure whether it is because I have too many nodes (27) and subjects (200) in my model or because there is something wrong in my handling of the PEB model. In your view, what is the reasonable time frame to perform the PEB analysis on such a large model? Below are my steps/codes.
Thank you very much for your help and best wishes for the new year!
Best regards,
Guoshi Li
___________________________________________________________________________________________
1) Estimate the EC of 200 DCMs with full connectivity using spectral DCM approach
2) Assemble all DCMs in a GCM cell array (I used DCM structure directly instead of mat file)
GCM = { DCM1
DCM2
⁞
DCM200 }
3) Estimate a second level PEB model
% Specify PEB model settings
M = struct();
M.alpha = 1;
M.beta = 16;
M.hE = 0;
M.hC = 1/16;
M.Q = 'all';
% Specify design matrix for N subjects.
M.X(:,1) = ones(200,1);
M.X(:,2) = [ones(100, 1); -1*ones(100, 1)];
% Choose field
field = {'A'};
% Estimate model
PEB = spm_dcm_peb(GCM,M,field);
save('PEB_Model.mat','PEB');
4) Search over nested PEB models
BMA = spm_dcm_peb_bmc(PEB(1));
save('BMA_Model.mat','BMA');
|