When I add more subjects, what is the best way to run the rest of the subjects in parallel?
By default, all underlying commands will utilise multi-threading to the maximum extent possible for the system being executed on; so there may not be any large benefit in running multiple subjects in parallel on a single system. Even the FreeSurfer step (if utilised) will engage multi-threading if the installed FreeSurfer version supports it.
If you want to run multiple subjects in parallel across multiple systems, then that is entirely independent of the particulars of this script. You could run each individually, or if operating in a HPC environment use something like sbatch
.
What is the difference between the “participant” and “group” analysis types? Do I do the participant analysis first, and then do the group analysis to do comparisons between the subjects?
The two analysis levels are consistent with the interfaces to other BIDS Apps, following a MapReduce type of processing model. For this specific pipeline: the participant level analysis generates as much data as can be generated when each participant is processed independently, including the individual connectome matrix; the group-level analysis performs inter-subject connection density normalisation, modulating the connectome matrices that were produced for each subject independently by the participant-level analysis in order to make the connection densities within them comparable across subjects.
Of the multitude of manuscripts I’m writing at the moment, one explains why this step is even necessary at all, another describes this particular BIDS App script in full detail (including how the normalisation step is performed). Unfortunately I keep making the mistake of releasing tools before having published the details
Although I understand the risk for connectome construction, but if we are interested by local metric (like fiber density) or connection density of a specific track, may be a way to go is to remove the ACT option?
Technically connectome construction is getting connection densities of specific tracts; it’s just that there are many tracts of interest. So the same reasoning applies: Yes technically you can run SIFT / SIFT2 without ACT / on a tractogram generated without ACT, but the difficulty will be in isolating the streamlines that correspond to the pathway of interest. Without stringent control of streamlines terminations, applying endpoint-based criteria (i.e. a grey matter parcellation) is deceptively difficult and error-prone.
In addition: If you are using streamlines tractography only to generate a voxel mask corresponding to a pathway of interest, from which you will extract some quantitative property, then application of SIFT / SIFT2 to the tractogram is unlikely to have much of an influence on the mechanism(s) used to derive that mask.