A DCMBatch processor is in the works. So far, it's mostly been designed by @dankessler and coded by @shijiaguo.
Here is how it works:
dcm_batch.m
Inputs:
- VOI path templates
- SPM.mat templates (first level specifications)
- Subject List
- SubjDir path template
- Permissibility matrices for driving inputs (a), fixed connectivity (b), and modulatory (c) connectivity.
Results
A DCM model for each subject, for each possible combination of DCM wiring matrices.
This script would first call...
permutation.m
Inputs:
permissibility matrices a, b, c (supplied by the batch caller)
Returns
cell array of all possibly a, b, and c permutations as restricted by the permissibility matrices
Next up it calls
dcm_job_config
Inputs:
- one set of connectivity matrices (a, b, and c)
- full path name of where to place the dcm.mat job object
- full path to an SPM.mat job to extract time series of inputs from
- full paths to VOIs (as a cell array)
Given these inputs, and using code borrowed largely from a template dcm_batch script, it will...
Returns
Stores a dcm.mat job with all options specified
A full path to this dcm.mat job
Next, it calls
dcm_do_job
Inputs
- Cell array of paths to dcm.mat jobs
Results
For each of these jobs, it will just simply call the dcm_job spm function, which will do the model, creating the result where specified.
At present, we have written permutation and dcm_job_config, which are arguably the trickiest of the scripts. @dankessler is planning to undertake scripting of the dcm_batch and dcm_do_job routines.
Future developments would include a possible VOI generator (at present, you would have to have already done your extractions). We're not sure if it'd be better to include the VOI generator as part of this script, or as a separate project, maybe with a bridge.
The scope of the present project will not include SecondLevel analysis, but since this script will now where all of your jobs are being stored, using it to invoke model selection and parameter estimating, etc, would save the user some serious gui clicking time.
Thoughts? Especially any from @sripada who developed the original concept with @dankessler?
A DCMBatch processor is in the works. So far, it's mostly been designed by @dankessler and coded by @shijiaguo.
Here is how it works:
dcm_batch.m
Inputs:
Results
A DCM model for each subject, for each possible combination of DCM wiring matrices.
This script would first call...
permutation.m
Inputs:
permissibility matrices a, b, c (supplied by the batch caller)
Returns
cell array of all possibly a, b, and c permutations as restricted by the permissibility matrices
Next up it calls
dcm_job_config
Inputs:
Given these inputs, and using code borrowed largely from a template dcm_batch script, it will...
Returns
Stores a dcm.mat job with all options specified
A full path to this dcm.mat job
Next, it calls
dcm_do_job
Inputs
Results
For each of these jobs, it will just simply call the dcm_job spm function, which will do the model, creating the result where specified.
At present, we have written permutation and dcm_job_config, which are arguably the trickiest of the scripts. @dankessler is planning to undertake scripting of the dcm_batch and dcm_do_job routines.
Future developments would include a possible VOI generator (at present, you would have to have already done your extractions). We're not sure if it'd be better to include the VOI generator as part of this script, or as a separate project, maybe with a bridge.
The scope of the present project will not include SecondLevel analysis, but since this script will now where all of your jobs are being stored, using it to invoke model selection and parameter estimating, etc, would save the user some serious gui clicking time.
Thoughts? Especially any from @sripada who developed the original concept with @dankessler?