Dear Ricardo,

 

It's been a while since I've emailed you but I have been busy as I'm sure you have as well.  I am still not able to find the answers to a few questions regarding how DCM works:

 

1. Is there a way to save the input that is computed "on the fly" as you said above?  I would like to plot this input versus time to compare to the other waveforms.  Is that possible?

 

Yes – in fact this is done for you by the routine that reviews the results: - just type >> spm_dcm_erp_results(DCM,'Input');

One can also compute it oneself using:

 

        t    = DCM.xY.pst;

        t    = t - t(1);

        U    = spm_erp_u(tU/1000,DCM.Ep,DCM.M);

 

 

2. Vladimir told me DCM averages the epochs into a single waveform before running its optimization algorithm.  Is this correct?  Does DCM optimize its solution on all epochs or a single average?

 

It fits a single waveform that can be a single trial but is more usually a trial average (ERP).

 

3. Does the DCM struct file keep convergence information anywhere?  I see when DCM is running it iterates through many steps until either convergence happens or the number of steps ends.  Does the struct file keep any of this information stating on which step convergence occurred if at all?

 

No – but it would be relatively easy to place this information in the structure - you would have to pass it from spm_nlsi_GH to DCM.mat

 

4. Related to (3) can we use a model that worked in a particular case to start the estimation for another set of data?  That is, we used DCM to predict waveforms recorded from different channels and it works reasonably well in many channels but fails to converge in a couple of cases.  Can we use the model estimated for one set of channels to start the modeling for the case that failed?  We think this could help DCM to start from a better location and it may not "get stuck" on what is known as "local minimum."

In other words, how can we use our own set of initial conditions, parameters.

 

Yes – this is common practice in group subjects, in which a few subjects do not converge.  This entails placing the initial parameters in DCM.M.P.  At the bottom of the GUI (spm_api_erp) there is a button called ‘initialise’ that allows you to do this automatically.

 

 

5. How is latency in the waveforms modeled with T(:)?  Are these values able to be changes as well?

 

Yes, they are.  The prior expectation is set by DCM.M.ons and this is adjusted using a free parameter (not pE.T but pE.R: pE.T sets the time constants for variance synaptic responses)

 

I hope this helps.

 

With very best wishes - Karl