Version 1.8.5 Beta (May 24, 2023)#

New Features

  • Extension of Template-Space Processing.

    • In an effort to support compatibility with other tools being used in the field, C-PAC now has the option of performing several operations in template space, where they have historically only been supported within C-PAC in native space. These features now include:

      • Time series despiking via AFNI 3dDespike.

      • Nuisance correction and denoising.

      • Calculation of the ALFF, f/ALFF and ReHo derivatives.

      • Connectome computation (already supported; included for completeness)

  • Improved Robustness of Default Pipeline Configuration.

    • A modified version of the legacy C-PAC default pipeline has been released that improves stability across datasets. This pipeline largely maintains the original preprocessing choices, with the modification of employing robust FSL BET for T1w brain mask generation rather than AFNI. This change was motivated by a difference in design of these two components, where AFNI would exclude ventricles from brain mask generation, occasionally leading to downstream errors in nuisance signal correction.

    • The pre-1.8.5 default pipeline is still available for users as a preconfigured pipeline under the name default-deprecated.

  • Downsampling of surface data.

    • While surface analysis is typically performed on high resolution surfaces and then downsampled to the resolution of the structural images being acquired, further downsampling may be required when working with functional data. To minimize the influence of signal interpolation on downstream markers, such as Regional Homogeneity, we now support downsampling of surface data to a resolution that matches the input functional data resolution.

  • Motion estimate filter forking capability expanded.

    • Previous versions of C-PAC allowed for the application of 0‒1 motion estimate filters. C-PAC now supports configuring any number of motion estimate filters; each filter is applied independently.

  • Support for Fail-Fast workflow execution.

    • To minimize waste of computational resources and reduce the possibility of misunderstanding of partial derived datasets, the new fail-fast option in C-PAC tells the workflow engine to stop running in the event of any failed or incomplete processing step.

Improvements

  • Freesurfer outputs ingress overhaul.

    • The process of ingressing Freesurfer recon-all outputs into the C-PAC pipeline has been streamlined. Freesurfer output directories are now linked in the C-PAC data configuration YAML files, rather than pipeline configurations, for each participant and session of data.

    • Preconfigured pipelines which employ Freesurfer-based surface processing, such as the abcd-options pipeline, now use the surface-derived T1w brain mask as the default, rather than redundantly computing separate masks.

  • Output directory BIDS-Derivatives compliance and naming improvement.

    • The output files in template space now feature the specific space-* tag, mapping to standardized names for the template entities, instead of the more generic space-template tag.

    • Data that has been nuisance corrected now feature BIDS labels which name the user-provided regressor strategy name, instead of providing this information in the information-dense sidecar JSONs.

  • Corrected erroneous forking in ABCD-options pipeline.

    • While no errors were produced in the terminal outputs, redundant computation was previously taking place which led to a slowdown for this configuration, or others which may have used the post-freesurfer processing blocks. The source of this issue has been identified and corrected.

  • For Nilearn-generated correlation matrices, diagonals are now set to all 1s (were all 0s).

  • Distortion correction improvements.

    • Fixed an issue where the distortion correction un-warps were not being applied to the final template-space BOLD time series data, depending on pipeline configuration decisions.

    • Replaces DwellTime with EffectiveEchoSpacing in the application of FSL FUGUE, consistent with the intention of the documentation and correcting inconsistent nomenclature.

    • Added the ability to ingress TotalReadoutTime from epi field map meta-data from JSON sidecars.

    • Added the ability to use TotalReadoutTime of epi field maps in the calculation of FSL topup distortion correction.

    • Identified future directions for refining distortion correction further, including the modernization of some libraries to support the adoption of the sdcflows library.

  • Run directory and logging improvements.

    • Added a level of depth to working directories to match log and output directory structure.

    • Renamed participant-pipeline-level output directory prefix to pipeline_ to match log and working paths.

    • Added crash messages from during and before graph building to logs.

    • Added data-config-specific hash string to C-PAC-generated config files.

Error Fixes

  • Single-step resampling has been fixed such that motion-corrected BOLD time series data is blocked from being used as the input, as the motion correction transforms are factored into the transform application.

  • Fixed a bug in which generated pipeline configs were not representative of the input configurations being specified. The only affected configurable option discovered in testing was when seed-based correlation analysis was used, the engine was always reverting to the default configuration.

  • Fixed bug that was causing cpac run to fail when passing a manual random seed via --random_seed rather than directly in the pipeline config file.

  • Fixed an issue that was causing some epi field maps to not be ingressed if the BIDS tags were not in a specific (BIDS-compliant) order.

  • Fixed an issue where phase-difference GRE field map files were not properly being ingressed if the filenames were not expected, such as including an index for cases with multiple maps.

  • Fixed a bug where ALFF & f/ALFF would not run if frequency filtering was disabled earlier in the pipeline.

  • Fixed a bug where Freesurfer directories were not successfully ingressed at runtime.

  • Added public read access to some overly restricted packaged templates.

  • Fixed a bug where the notch filter was always assuming the sampling frequency was 2.0.