All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Robustfov
feature inFSL-BET
to crop images ensuring removal of neck regions that may appear in the skull-stripped images.- Ability to throttle nodes, estimating all available memory when threading.
- Ability to configure FreeSurfer ingress from the command line.
- The ABCD-pipeline based surface post-processing workflows have been modularized to be more robust, resolving a running issue with this part of the pipeline stalling or crashing in some runs.
- Moved autoversioning from CI to pre-commit
- Updated
FSL-BET
config to default-mask-boolean
flag as on, and removed all removedmask-boolean
keys from configs. - Added
dvars
as optional output incpac_outputs
.
- Fixed a bug where ingressing fmriprep outputs into C-PAC with a blank nuisance confounds field in the C-PAC pipeline configuration file would cause a crash.
- Fixed a bug where spatial smoothing and z-scoring of final outputs would sometimes fail to run when running a C-PAC pipeline that would ingress fmriprep outputs.
- Fixed a bug where ingress of distortion correction-related field map metadata would sometimes fail to recognize both echo times, when there were two present, leading to an error message claiming an echo time is missing.
- Changed an extraneous default pipeline configuration setting -
surface_connectivity
is now disabled in the default configuration as intended.
1.8.6 - 2024-01-15
- Some automatic handling of user-provided BIDSy atlas names.
sig_imports
static method decorator forFunction
nodes, to accommodate type hinting in signatures ofFunction
node functions.- Ability to ingress an fmriprep output directory and run derivatives with C-PAC
- fmriprep-ingress preconfig that runs derivatives
- String representations for NodeBlock and ResourcePool class instances
switch_is_off
,switch_is_on
andswitch_is_on_off
methods toConfiguration
class__repr__
and__str__
methods toResourcePool
s andNodeBlockFunction
s
- Fixed a bug where some connectivity matrices wouldn't generate if anatomical and functional outputs were in different resolutions.
- Handling of
3dECM
outputs for AFNI ≥ 21.1.1. - Fixed a bug where sparsity thresholds were not being scaled for network centrality.
- Fixed a bug where
calculate_motion_first
would not calculate motion at all. - Fixed a bug in parsing
FROM: /file/path
syntax
- Updates develop version numbers to adhere to PEP440 by changing
{major}.{minor}.{patch}.{SHA}-{dev}
to{major}.{minor}.{patch}.dev{integer}+{SHA}
- Adds checksum steps to
curl
d steps in Docker build process (for standard andlite
images) - Makes in-container root directory writable by all
- Updates multiword CLI commands and options to accept either standard
-
s or backwards-compatible_
s interchangeably - Disabled
--use-estimate-learning-rate-once
inantsRegistration
(ANTsX/ANTs#1405; ANTsX/ANTs#1411) - Removes
torch
from preinstalled dependencies and only installs if we're runningunet
- Uses highest resolution available locally as reference when resampling a template to a non-packaged resolution (was always using 1mm reference before)
- Updates config boolean validation from anything-truthy-is-True (e.g.,
[True, False]
, or[False]
, or a typo likeOfff
) to only accepting bools, ints, and YAML boolean strings like "On" and "Off" as boolean - When applying a filter to motion parameters, now C-PAC reports both the original and the filtered motion parameters and uses the original parameters for qc. Previous versions only reported the filtered parameters and used the filtered parameters for qc.
- Makes nuisance regression space non-forkable. In v1.8.5, nuisance regression forking was broken, so this change should not cause backwards-compatibility issues.
click-aliases
dc
semver
bids-validator
MSM
(now packaged withFSL
)Node
NVM
simplejson
wxpython
yamlordereddictloader
AFNI
21.1.00 'Domitian' → 23.3.09 'Septimius Severus'ANTs
2.3.3 'Leptomyrmex' → 2.4.3 'Emplastus'boto3
1.7.37 → 1.28.4click
6.7 → 8.1.5configparser
3.7.4 → 5.3.0FSL
5.0.10 (5.0.9) → 6.0.6.5future
0.16.0 → 0.18.3ICA-AROMA
0.4.3-beta → 0.4.4-betaINDI-Tools
0.0.7@main
→ 0.0.7@998c246
joblib
1.0.1 → 1.2.0matplotlib
3.1.3 → 3.7.1networkx
2.4 → 3.1nibabel
3.0.1 → 5.1.0nilearn
0.4.1 → 0.10.0nipype
1.5.1 → 1.8.6numpy
1.21.0 → 1.25.1pandas
1.0.5 → 2.0.3patsy
0.5.0 → 0.5.3prov
1.5.2 → 2.0.0psutil
5.6.6 → 5.9.5pybids
0.15.1 → 0.15.6PyPEER
1.0@main
→ 1.1@6965d2b
Python
3.7.13 → 3.10.6 (holding back from 3.11 forsdcflows
,torch
, andtorchvision
)python-dateutil
2.7.3 → 2.8.2PyYAML
5.4 → 6.0requests
2.21.0 → 2.28.2scipy
1.6.3 → 1.11.1sdcflows
2.0.5 → 2.4.0torch
1.2.0+cu92 → 1.13.1torchvision
0.4.0+cu92 → 0.14.1traits
4.6.0 → 6.3.2Ubuntu
18.04 'Bionic Beaver' → 22.04 'Jammy Jellyfish'voluptuous
0.12.0 → 0.13.1wb_command
neurodebian latest → 1.5.0
1.8.5 - 2023-05-24
- Added the ability to downsample to 10K or 2K resolution for freesurfer runs
- Added the ability to run AFNI 3dDespike on template-space BOLD data.
- Added the ability to ingress TotalReadoutTime from epi field map meta-data from the JSON sidecars.
- Added the ability to use TotalReadoutTime of epi field maps in the calculation of FSL topup distortion correction.
- Difference method (
-
) forCPAC.utils.configuration.Configuration
instances - Calculate reho and alff when timeseries in template space
- Added new default pipeline that uses FSL-BET for brain extraction. Previous default pipleine is now called default-deprecated.
- Added
fail_fast
configuration setting and CLI flag - Added abililty to fork on motion filter
- Added
sdcflows
to CPAC requirements - Added NodeBlock information to
pypeline.log
when verbose debugging is on - Added the ability to ingress FreeSurfer data into CPAC
- Added the ability to toggle FreeSurfer derived masks for brain extraction
- Added an optional volume center to FD-J calculation
- Added new preconfig
abcd-prep
, which performs minimal preprocessing on the T1w data in preparation for Freesurfer Recon-All
- Freesurfer output directory ingress moved to the data configuration YAML
- Space labels in output filenames now contain specific template labels for MNI templates
- Added a level of depth to
working
directories to matchlog
andoutput
directory structure - Renamed participant-pipeline-level
output
directory prefix topipeline_
to matchlog
andworking
paths - Changed the 1mm atlases chosen in the rbc-options preconfig to the 2mm versions
- For Nilearn-generated correlation matrices, diagonals are now set to all
1
s (were all0
s) - Added ability to apply nusiance correction to template-space BOLD images
- Removed ability to run single-step-resampling on motion-corrected BOLD data
- Moved default pipeline config into directory with other preconfigs
- Added crash messages from during and before graph building to logs
- Added data-config-specific hash string to C-PAC-generated config files
- Updated
rbc-options
preconfig to usefmriprep-options
preprocessing - Changed minimized pipeline base from
default
toblank
- Removed deprecated
--disable_file_logging
CLI flag - Improved flexibility of some pipeline options regarding the application of distortion correction transforms
- Pinned AFNI to AFNI_21.1.00
- Updated some output filenaming conventions for human-readability and to move closer to BIDS-derivatives compliance
- Changed motion filter from single dictionary to list of dictionaries
- Changed CI logic to allow non-release tags
nibabel
2.3.3 → 3.0.1numpy
1.16.4 → 1.21.0pandas
0.23.4 → 1.0.5pybids
0.13.2 → 0.15.1scipy
1.4.1 → 1.6.0
- 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.
- Fixed a bug in which generated pipeline configs were not 100% accurate. The only affected configurable option discovered in testing was seed-based correlation analysis always reverting to the default configuration.
- Fixed bug that was causing
cpac run
to fail when passing a manual random seed via--random_seed
. - Replaces
DwellTime
withEffectiveEchoSpacing
for FSL usage of the term - Fixed an issue that was causing some epi field maps to not be ingressed if the BIDS tags were not in the correct order.
- Fixed an issue where some phase-difference GRE field map files were not properly being ingressed if the filenames were not expected.
- Fixed a bug where ALFF & f/ALFF would not run if frequency filtering was disabled earlier in the pipeline.
- Fixed a bug where
surface_analysis.freesurfer.freesurfer_dir
in the pipeline config was not ingressed at runtime. - Added public read access to some overly restricted packaged templates
- Fixed a bug where notch filter was always assuming the sampling frequency was
2.0
.
1.8.4 - 2022-06-27
- Added the ability to follow symlinks for BIDS directories
- Added log of expected outputs, generated at the beginning of the run
- Added additional surface derivatives to outputs directory
- Added additional time series outputs from ABCD-options related processes to outputs directory
- Added the ability to disable the exception raised if the initial resource check estimates more memory is needed
- Added
--runtime_usage
and--runtime_buffer
flags and related pipeline config entries and functionality - Added additional error checks and a more informative message for node block connecting in the engine
- Expanded some surface post-processing workflows to be more flexible with other pipeline configurations
- Added lint definition file (for developers)
- Added list of preconfigured pipelines to the usage string
- Added CI smoke tests for preconfigs
- Made ndmg correlation matrices a configurable option
- Made surface output filenames BIDSier
- Uses max instead of sum for intial memory estimation
- Updated rbc-options configuration
- Updated XCP-QC files to better adhere to XCP
- Updated CI to only rebuild software dependencies on change
- Replaced deprecated
optparse.OptionError
with toclick.BadParameter
- Relicensed C-PAC from BSD-3-Clause to LGPL-3.0-or-later
- Fixed bug that was causing
single_step_resampling
to inadvertently cause unexpected forks in the pipeline past transform application. - Fixed bug that was causing
single_step_resampling
to crash with3dVolReg
- Fixed bug that was causing datasets containing phase-difference field maps to crash.
- Fixed merge error preventing QC files and surface derivatives copying to output directory and renaming connectome → connectivity matrix files
- Fixed some incorrect connections in XCP-QC file generation
- Fixed a bug where subsequent subjects' logs were being appended to prior subjects' logs
- Fixed templates used for rodent pipeline and added outputs that were missing
- Fixed bug in which ITK header imprecision was causing N4 bias correction to crash
- Fixed a bug where a node with zero nanoseconds in timing information causes report generation to fail.
- Fixed a bug in which
--tracking_opt-out
was not applied to calls toutils
1.8.3 - 2022-02-11
- Added XCP-style quality control file
- Added RBC-options pipeline preconfiguration
- Added
engine.log
(when verbose debugging is on) - Added ability to fix random seed for
antsAI
antsRegistration
Atropos
(fixed but not specified)fslmaths
mri_vol2vol
recon-all
- Added ability to use lateral ventricles mask in place of cerebrospinal fluid mask when when segmentation is Off, specifically for the rodent pipeline, but works on any dataset when segmentation is off
- In a given pipeline configuration, segmentation probability maps and binary tissue masks are warped to template space, and those warped masks are included in the output directory
-
if
registration_workflows['functional_registration']['EPI_registration']['run segmentation']
isOn
andsegmentation['tissue_segmentation']['Template_Based']['template_for_segmentation']
includesEPI_Template
and/or
-
if
registration_workflows['anatomical_registration']['run']
isOn
andsegmentation['tissue_segmentation']['Template_Based']['template_for_segmentation']
includesT1_Template
-
- Renamed connectivity matrices from
*_connectome.tsv
to*_correlations.tsv
- Moved some ephemeral logging statements into
pypeline.log
- Fixed bug in which working connectivity matrix filepaths were generated incorrectly, preventing generating matrices depending on container bindings
- Fixed broken links in README
- Fixed bug in which anatomical-only configurations required functional data directories
- Fixed bug in which nuisance regressors would crash when segmentation is off and no CSF mask is provided
1.8.2 - 2021-12-02
- Added FSL-TOPUP as an option for distortion correction.
- Added changelog
- Added CHD8 mouse template (
/cpac_templates/chd8_functional_template_noise_mask_ag.nii.gz
) - Added commandline flags
--T1w_label
and--bold_label
- Added the ability to ingress an entire FreeSurfer output directory to bypass surface analysis if already completed elsewhere
- Added AFNI and Nilearn implementations of Pearson and partial correlation matrices
- Expanded meta-data ingress for EPI field maps to include more fields when parsing BIDS sidecar JSONs.
- Updated possible inputs for T2w processing and ACPC-alignment blocks to increase the modularity of these pipeline options.
master
branch renamedmain
- Packaged templates in /FCP-INDI/C-PAC_templates
master
branch name (renamedmain
)
- Fixed bug in which the preprocessed T2w data would not be found in the resource pool when expected.
- Fixed bug in which distortion correction-related field map ingress would raise
IndexError: list index out of range
when ingressing the field maps. - Fixed bug in which some nodes would raise
KeyError: 'in_file'
when estimating memory allocation - Improved memory management for multi-core node allocation.
- Fixed bug where
--participant_label [A B C]
would skip first and last labels (A
andC
). - Stripped the ABI tag note (which was preventing the library from loading dynamically on some host operating systems) from
libQt5Core.so.5
in the ABCD-HCP variant image. - Fixed an issue blocking non-C-PAC output data from being read in without sidecar meta-data.
1.8.1 - 2021-09-17
See Version 1.8.1 Beta for release notes for v1.8.1 and Release Notes for all release notes back to v0.1.1.