Freesurfer-based pipeline hangs if recon-all and ABCD surface post-processing are run in the same pipeline

See issue #2104 for the latest developments on this issue.

When running both recon-all within C-PAC via Nipype and the ABCD surface post-processing workflow,

# PREPROCESSING
# -------------
surface_analysis:

  # Will run Freesurfer for surface-based analysis. Will output traditional Freesurfer derivatives.
  # If you wish to employ Freesurfer outputs for brain masking or tissue segmentation in the voxel-based pipeline,
  # select those 'Freesurfer-' labeled options further below in anatomical_preproc.
  freesurfer:
    run_reconall: On

  # Run ABCD-HCP post FreeSurfer and fMRISurface pipeline
  post_freesurfer:
    run: On

the pipeline tends to hang roughly around the timeseries warp-to-template part of the pipeline, although the warp-to-template portion seems unrelated to the stall.

(The stall always happens with one of the abcd timeseries warp-to-template nodeblock’s nodes being listed in the pypeline.log as the last to complete - and when you search the working directory, often ANTs registration never even started.)

However, post-proc runs well on its own. It’s the combination.

Workarounds

Preferred

Running FreeSurfer recon-all first and ingressing its outputs, which is now our recommended usage, doesn’t hit this problem.

Alternative

Running it normally, hitting a stall, and simply restarting the pipeline run also gets past it. That is, cancelling the stalled pipeline, and then re-starting it as-is via warm restart (if the Nipype working directory remains).

Planned resolution

  • Removing FreeSurfer recon-all as a workflow within C-PAC, instead requiring its outputs as input data for configurations that involve surface analysis.