Releases: Washington-University/HCPpipelines
v5.0.0
Main new features:
- Addition of transmit field bias pipeline for correction of T1w/T2w myelin maps (#298)
- Addition of option to the ICAFIX pipeline to use python-based FIX (‘pyfix’), which is now the default for new set-ups. The legacy Matlab/R-based FIX will continue to be used by default for existing set-ups (see
--enable-legacy-fix
parameter for details). (#312) - Addition of Longitudinal Structural pipelines (FreeSurfer and PostFreeSurfer) for processing of multiple timepoints for the same subject (#295). Additional longitudinal pipelines are under development (e.g., for applying to the fMRI data).
- Addition of option to the ICAFIX pipeline to find the melodic ICA consensus decomposition using the ‘icasso’ algorithm and use it in a final ‘melodic’ run (#312)
- Addition of Gaussian mixture modeling to ‘RSNRegression’ to compute more valid z-stats (#310)
- Added Optional Wishart Filtering Capability after last temporal regression to all ‘RSNRegression’ modes to improve reproducibility of effect size maps
Other changes:
- Updated FSL binary location for FSL 6.0.6 and later to PATH (#299)
- Recompiled all MATLAB to MCR2022b
- Miscellaneous improvements and bugfixes.
Note that we have bumped the version from 4.x to 5.x based on the addition of major new functionality, but 5.0.0 should be backwards compatible with the 4.x tree.
Full list of changes from 4.8.0-->5.0.0 here.
v4.8.0
Main new features:
- Add the spatial ICA reclean pipeline (#279) with compiled feature generation (#281)
- Better support non-HCP/non-Siemens T1w, T2w, and T2w-FLAIR images (match mean of BC reference with mean of the input T1w/T2w image) with a new abstracted myelin map BC module to generate MyelinMap_BC files (#249) and associated changes in MSMAll.sh (#251), DeDriftAndResample.sh (#252), and other scripts (#259)
- Added correction for Philips (#271) and fix support for GE Healthcare (#285) fieldmap preprocessing
- Refactor MSMSulc.sh into a module, replacing a section of a PreFreesurfer internal script in the pipelines and to allow different MSMSulc to be run after an initial pipeline run (#290)
- Add multi-echo support to fMRI preprocessing
- Add task fMRI level 3 processing script
- Major improvements to the tICA pipeline, including (#284)
Other additions/changes:
- Refactoring of all pipelines to simplify the I/O interface code (#254, #280)
- MR FIX scripts updates and comments to support additional configurations and fewtimepoints icaDim mode for use with legacy data (#241).
- Modification of aff2rigid and ACPCAlignment for adapting to Non-Human Primates or other brains (#245)
- Enable frame range selection for fMRI runs in SingleSubjectConcat.sh and allow MSMAll to be run on partial timeseries (#247)
- Add custom outlier detection functions for tICA feature generation to maintain compatibility with MATLAB runtime r2017b (#263)
- Update conf2hires to remove reinitialization by bbregister for high resolution data in the FreeSurfer pipeline (#265)
- Introduce tICA weighted mode in RSN regression (#278)
- Add a seconds option for diffusion echo spacing to allow for harmonized time units across pipelines (#291)
- Miscellaneous improvements and bugfixes.
Full list of changes from 4.7.0-->4.8.0 here.
v4.7.0
Main new features:
- New MR+FIX option for detecting high motion runs that have bad dimensionality fitting, leading to too low of a MR+FIX overall dimensionality relative to the amount of motion. Detected runs above the specified threshold are processed with only a single Wishart Distribution.
- Beta release of the temporal ICA cleanup Pipeline -- supports only manual classification at this time (#219).
- Enable custom myelin map template in MSMAll, that can be used (together with the existing setting in PostFreeSurfer) to improve the quality of _BC myelin map bias field corrections when the mean T1w/T2w value and default template value are very different from each other (recommendation is to divide the default template by its mean and then multiply this result by the subject’s mean).
- Updates to TaskfMRIAnalysis to support additional processing options such as --lowpassfilter and --procstring, or turning off highpass filtering.
- Updates to TaskfMRIAnalysis to better support situations with Empty EVs or single runs.
Other additions/changes:
- Convert Matlab CIFTI I/O from legacy CIFTI matlab (based on GIFTI objects and wb_command conversions) to the more performant and fully featured native cifti-matlab package.
- Add VarCopes to converted CIFTI files for TaskfMRIAnalysis.
- Support odd numbers of slices in Diffusion Preprocessing (no longer remove a slice) (#218).
- Change default training file for MR+FIX.
- Numerous improvements to example scripts and pipeline instructions (#239).
- Improvements to pipeline versioning and option parsing.
FreeSurferPipeline
no longer automatically runs with 8 cores (#225).- PreFreeSurfer bugfix to use the same template for all linear with skull registrations, enabling HCD scans with a different head shape to be processed successfully (via a customized template).
- Remove incompletely supported --printcomm from many pipelines.
- Miscellaneous improvements and bugfixes.
Full list of changes from 4.3.0 -> 4.7.0 available here
v4.3.0
This release will be used for processing of the HCP-Lifespan (Development and Aging) and Connectomes Related to Human Disease projects going forward.
Main new features:
- Added a Workbench scene for Structural QC (with some automatically generated snapshots) (#201)
- Added a Workbench scene for fMRI QC (with some automatically generated snapshots) (#203)
- Added option for distortion correction using Philips fieldmaps (#191, #194)
- Added option to
DiffPreproc
(--select-best-b0
) to select the "best" (least-distorted) for each phase-encoding direction as input totopup
(#158, #198)
Other additions:
- Added options in
DeDriftAndResample
to extract a subset of the runs from multi-run FIX into a new concatenated series (#182) - Added a
single
mode ofRSNregression
, to apply just temporal regression (#170) - Added option to
OneStepResampling
(--wb-resample
) for futurewb_command -volume-resample
resampling of timeseries (to replace slow fslsplit/convertwarp/applywarp/fslmerge code) (#173). Not enabled yet, as not yet supported by public Workbench release.
Bug fixes/changes:
- Fix incorrect column header names in stats file (
MissingGrayordinates.2.txt
) that quantifies overlap between subject ROIs and Atlas (f4afdc5 and 64971e3) - 91282 template updated to cifti-2 format (e2d5bba)
- Some minor diffusion bug fixes/enhancements (#192, #193, #199, #202)
- Catch command errors in
DeDriftAndResample
(716e9f4). (Need to review error trapping across all scripts at some point...)
Known Issues:
- Testing revealed that using Octave mode for multi-run ICA-FIX does not always stably converge. Using Octave mode for multi-run ICA-FIX is not advised at this time.
- Input NIFTI files with a TR that does not use units of seconds result in incorrect TR of outputs - please set the TR in units of seconds before processing (#124)
Lifespan Spatial ICA FIX Processing Release
This release is the version used for HCP Development and HCP Aging data ICA-FIX and MSMAll processing.
Added features:
- Enabling creation of cleaned movement regressors to apply to spatial ICA-FIX (sICA-FIX) cleaned fMRI data. (#164)
- Extend the checking of the subcortical segmentation (originally #163) to evaluate, per individual subcortical structure and for the brain mask (at both 1x and 2x voxel resolution dilation), the number of voxels missing, those that overlap, and those that fall outside the Atlas (#165).
- Changes in sICA-FIX to reduce memory usage when applying hp filtering, estimating the dimensionalities of structured and unstructured noise, and computing variance normalization on volume files (#168).
Note: the biggest memory reduction is with interpreted matlab mode, with a smaller benefit for compiled matlab mode.
Known Issues:
- There is a bug in the naming of the column headers of the .txt file that quantifies the missingness/overlap of the subcortical segmentation, which was subsequently fixed with f4afdc5 and 64971e3.
- Testing revealed that using Octave mode for multi-run ICA-FIX does not always stably converge. Using Octave mode for multi-run ICA-FIX is not advised at this time.
- Input NIFTI files with a TR that does not use units of seconds result in incorrect TR of outputs - please set the TR in units of seconds before processing (#124)
Lifespan Functional Preprocessing Release
This release is the version used for HCP Development and HCP Aging data functional preprocessing.
Added features and fixed various bugs for processing Lifespan HCP data:
- New debugging library, with error trapping turned on in all scripts as a default
- Increase dilation in fMRI subcortical segmentation to avoid invalid CIFTI files being produced, plus add checking for mismatching atlas subcortical segmentation and subject's brain mask (#163)
- Improve/fix masking of dMRI data for voxels outside of the FOV (#129)
- Add assessment of spatial coverage completeness within both fMRIVolume and fMRISurface (#138)
- Add capability to use FLAIR style acquisitions within FreeSurferPipeline.sh (#149)
- Improvements to dimensionality estimation of multi-run FIX (MR-FIX) (#150)
- Extend single-run FIX to support the MotionRegression=FALSE condition (#157)
- Compiled matlab now uses R2017b (same version as used for the current FSL FIX compiled matlab) (#159)
- dMRI QC report generated using FSL's eddy “QUAD” QC tool (#155)
- Added option to use custom brain image or mask in PreFreeSurfer pipeline (#133)
Added an option to process legacy (non-HCP style) data (#133, #134, #135, #136, #156). Specifically to:
- Allow structural processing without a high resolution T2w image
- Allow functional processing without susceptibility distortion correction
- Enable use of slice timing correction
- Enable use of expanded fMRI masks
- Enable use of a reference fMRI run with linear or additional nonlinear registration to the reference fMRI run
Note: The listed legacy processing functionality has to be explicitly enabled using the --processing-mode
parameter. The added options acknowledge the need to process legacy style datasets. However, in these cases, the quality of the results may suffer. Please see related usage information, warnings and processing mode information provided in pipelines for more details.
Known issues:
- Input NIFTI files with a TR that does not use units of seconds result in incorrect TR of outputs - please set the TR in units of seconds before processing (#124)
Lifespan Processing Bugfix Release
Various bug fixes, minor functionally additions, example script tweaks, and minor across script harmonization, including:
- Bash command syntax compatibility with standard MacOS installations
- Fix bug in
ReApplyFixPipeline
, which affects the volume (NIFTI) data, in which the non-highpass-filtered volume data was being used, rather than the hp-filtered volume data. - Make the polynomial detrending option that was added to
hcp_fix_multi_run
more numerically robust, and limit it to 5th order or less. - Adapted
RestingStateStats
to use a similar approach to the other pipelines for invoking matlab. - Created a script (in global/matlab) to compile all matlab code.
- Modified
MSMAll
scripts to support use of multi-run FIX-cleaned data. - Bug fixes so that calls to
topup
andflirt
work in the context of FSL 6.0+ (necessitated by changes in how FSL 6.0+ treats multi-frame inputs in certain circumstances). [This is not fully resolved, see below, and #118]. - Revisions to
SetUpHCPPipeline.sh
to allow some reliance on $PATH environment variable. - Some improvements to the logging functions.
- Add --delete-intermediates flags to FIX and ReApplyFix family of scripts.
Known issues:
- Input NIFTI files with a TR that does not use units of seconds result in incorrect TR of outputs - please set the TR in units of seconds before processing (#124)
- FSL 6.0.0 and 6.0.1 changed how they handle reference images when resampling compared to 5.x, and it is likely that not all pipeline scripts take care to use a single-frame file as reference image (#118)
- Due to a limitation in FIX's argument parsing,
hcp_fix
cannot currently be run with motion regression disabled (#108)
Initial LifeSpan Processing Release
- Moved many FIX related scripts into the ICAFIX folder
- Added motion regression argument to FIX and related
- Added polynomial detrending option to MR FIX
- Improved Octave compatibility in FIX and related
- Accepted i/j/k notation in Topup scripts
- Added FSL 6.0.1 compatibility
- Added better support for compiled MATLAB
- Added support for FreeSurfer 6 with customizations
- Numerous minor bugfixes and tool version checks
Task fMRI Analysis Code Improvements
Improvements
- Includes improvements to the Task fMRI Analysis codebase
- Code reorganization
- Improved comments and log messages
- Moved some FSL version detection related functions into a script function library
Bug Fixes
- Bug fixed in interactive MATLAB use in MSMAll
- Correct the MATLAB path entries used when using interactive MATLAB for invoking MSMregression function so that GIFTI library functions are found.
v3.26 Bugfix 1
Correct basic cleanup code in IntensityNormalization.sh