bids-apps/DPARSF

Split DARTEL processing into a 'group' level processing

chrisgorgo opened this issue · 4 comments

To improve scalability across multiple machines it would be beneficial to extract the DARTEL processing into a group level processing step. This way all the operations that do not require combining data across participants could be run in parallel on different machines and then followed by a a group level (DARTEL) that uses outputs of all previous levels and data from all participants. For example:

in parallel

dparsf-app /input /output participant --participant_label 01
dparsf-app /input /output participant --participant_label 02
dparsf-app /input /output participant --participant_label 03

when all of the above finish

dparsf-app /input /output group --participant_label 01 02 03

It is also possible to add another participant level that will be run after the group level

dparsf-app /input /output participant1 --participant_label 01
dparsf-app /input /output participant1 --participant_label 02
dparsf-app /input /output participant1 --participant_label 03
dparsf-app /input /output group --participant_label 01 02 03
dparsf-app /input /output participant2 --participant_label 01
dparsf-app /input /output participant2 --participant_label 02
dparsf-app /input /output participant2 --participant_label 03

See http://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1005209#sec013 for more details.

Related to this it could also be very helpful to be able first run the group level processing as is the default, generate a group template, and then specify this same group template for any additional subjects. @Chaogan-Yan is there currently any way to specify a group template to be used in the DARTEL processing (i.e. skip the template estimation step?) Much appreciation in advance!

Hi, just added a new function: users put Config_DPARSF.m in the output directory, and setup it according to the instructions at: http://rfmri.org/content/configurations-dparsfarun.

However, separating DARTEL will be too complicated, but can be done with appropriate Config_DPARSF.m as for now. Refining it should be a future plan.

@spiropan Than function has been implemented yet. Should consider it in the future.

Feature added. Please see #5 in readme.