Parameters¶
The parameters are listed under the parameters key in the configuration file and passed to workflow tasks when needed. Importantly, not all parameters are used for each modality. In fact, some parameters may only be used if other parameters are defined in a certain way. When a parameter is set that is not used, CBPtools will warn about this in the log file, however.
Below is an example of what parameters look like in the configuration file:
parameters:
clustering:
method: kmeans
n_clusters: [2, 3, 4, 5]
cluster_options:
algorithm: auto
init: k-means++
max_iter: 1000
n_init: 256
...
In this snippet the clustering parameters are defined for the k-means clustering algorithm (method). The parameters:clustering:n_clusters field is required regardless of modality and clustering algorithm, although the parameters:clustering:cluster_options differ based on the selected method.
When a parameter is not required and not defined in the configuration file, the default value is used. This will cause the setup procedure to issue a warning in the log file. If no default value can be found, an error will be logged that must first be resolved before resuming the setup.
Parameter fields¶
masking:
seed:
binarization: float, default = 0.0, modality = [‘rsfmri’, ‘dmri’] Threshold above which voxels in the ROI mask image are defined as 1’s. This is only applied if the mask is not binary.
median_filtering:
apply: boolean, default = False, modality = [‘rsfmri’, ‘dmri’] Apply median filtering to the ROI mask
distance: integer, default = 1, modality = [‘rsfmri’, ‘dmri’] Median filtering distance
upsample_to:
apply: boolean, default = False, modality = dmri Upsample the seed mask to the specified voxel size (e.g., from [3, 3, 3] as 3mm isotropic to [1, 1, 1] as 1mm isotropic). If left empty or as null, no upsampling will be done.
voxel_dimensions: list[float], default = [1, 1, 1], modality = dmri The voxel dimensions to which the seed mask should be upsampled.
target:
binarization: float, default = 0.0, modality = [‘rsfmri’, ‘dmri’] Threshold above which voxels in the target mask image are defined as 1’s. This is only applied if the mask is not binary.
remove_seed:
apply: boolean, default = False, modality = [‘rsfmri’, ‘dmri’] Remove the seed voxels from the target mask.
distance: integer, default = 0, modality = [‘rsfmri’, ‘dmri’] Expand the border around the seed mask (in milimeter) for removal from the target mask. This should only be applied if the input time-series data is smoothed, using the smoothing kernel as a value for this parameter.
subsampling: boolean, default = True, modality = rsfmri Apply subsampling to the target mask to improve computational efficiency at minimal loss of specificity. This removes every second voxel from the mask and is only recommended if the data has been smoothed.
downsample_to:
apply: boolean, default = False, modality = dmri Downsample the target mask to the specified voxel size, similar to how upsample_seed_to works.
voxel_dimensions: list[float], default = [3, 3, 3], modality = dmri The voxel dimensions to which the target mask should be downsampled.
connectivity:
low_variance_error:
apply: boolean, default = True, modality = rsfmri When more than this specified percentage of voxels within the seed has low or no variance over the entire time course, the processing for this participant will not continue. A detailed error report is provided once all connectivity is processed and further processing is halted until the problems are resolved.
in_seed: float, default = 0.05, modality = rsfmri Percentage of allowed low-variance voxels occurring within the seed region.
in_target: float, default = 0.1, modality = rsfmri Percentage of allowed low-variance voxels occurring within the target region.
band_pass_filtering:
apply: boolean, default = False, modality = rsfmri Perform band-pass filtering on the signal time-series.
band: list[float], default = [0.01, 0.08], required, modality = any High- and low-pass value for the band-pass filter. Note that if this value is set, tr should also be defined.
tr: float, default = None, required, modality = any Repetition time in seconds
smoothing:
apply: boolean, default = False, modality = rsfmri Apply smoothing on the signal time-series.
fwhm: integer, default = 5, modality = rsfmri FWHM kernel value for smoothing.
arctanh_transform:
apply: boolean, default = True, modality = rsfmri Arctanh transform applied to the connectivity matrix
pca_transform:
apply: boolean, default = False, modality = [‘rsfmri’, ‘dmri’] PCA transform applied to the connectivity matrix.
components: float, default = 0.95, modality = [‘rsfmri’, ‘dmri’] Number of components to keep (if integer) or amount of explained variance (if float). This value is equivalent to n_components in sklearn.decomposition.PCA
dist_thresh: float, default = 5.0, modality = dmri (probtrackx2) Discards samples shorter than this threshold (in mm)
loop_check: boolean, default = True, modality = dmri (probtrackx2) Perform loopchecks on paths - slower, but allows lower curvature threshold
c_thresh: float, default = 0.2, modality = dmri (probtrackx2) Curvature threshold
step_length: float, default = 0.5, modality = dmri (probtrackx2) Steplength in mm
n_samples: integer, default = 5000, modality = dmri (probtrackx2) Number of samples
n_steps: integer, default = 2000, modality = dmri (probtrackx2) Number of steps per sample
correct_path_distribution: boolean, default = True, modality = dmri (probtrackx2) Correct path distribution for the length of the pathways
cubic_transform:
apply: boolean, default = True, modality = dmri Apply a cubic transformation on the connectivity matrix
cleanup_fsl: boolean, default = True, modality = dmri Remove all files created by probtrackx2 (except fdt_matrix2.dot) after the connectivity matrix has been extracted.
clustering:
method: string, default = kmeans, allowed = [‘kmeans’, ‘spectral’, ‘agglomerative’], modality = any Clustering method to be used, either kmeans, spectral, or agglomerative
n_clusters: list[integer], default = [], required, modality = any A list of cluster numbers to be evaluated (entered as [2, 3, 8] to receive a 2, 3, and 8-cluster solution)
cluster_options:
algorithm: string, default = auto, allowed = [‘auto’, ‘full’, ‘elkan’], modality = any (sklearn.cluster.KMeans) K-means algorithm to use
init: string, default = k-means++, allowed = [‘k-means++’, ‘random’], modality = any (sklearn.cluster.KMeans) Method for initialization
max_iter: integer, default = 10000, modality = any (sklearn.cluster.KMeans) Maximum number of iterations of the k-means algorithm for a single run.
n_init: integer, default = 256, modality = any (sklearn.cluster.KMeans or sklearn.cluster.SpectralClustering) Number of time the k-means algorithm will be run with different centroid seeds.
kernel: string, default = nearest_neighbors, allowed = [‘additive_chi2’, ‘chi2’, ‘linear’, ‘polynomial’, ‘rbf’, ‘laplacian’, ‘sigmoid’, ‘cosine’, ‘nearest_neighbors’, ‘precomputed’, ‘precomputed_nearest_neighbors’], modality = any (sklearn.cluster.SpectralClustering; affinity) Kernel to be used.
gamma: float, default = , modality = any (sklearn.cluster.SpectralClustering) Kernel coefficient for rbf, poly, sigmoid, laplacian and chi2 kernels. Ignored for affinity=nearest_neighbors.
n_neighbors: integer, default = 10, modality = any (sklearn.cluster.SpectralClustering) Number of neighbors to use when constructing the affinity matrix using the nearest neighbors method.
assign_labels: string, default = kmeans, allowed = [‘kmeans’, ‘discretize’], modality = any (sklearn.cluster.SpectralClustering) The strategy to use to assign labels in the embedding space.
degree: float, default = 3.0, modality = any (sklearn.cluster.SpectralClustering) Degree of the polynomial kernel.
coef0: float, default = 1.0, modality = any (sklearn.cluster.SpectralClustering) Zero coefficient for polynomial and sigmoid kernels
eigen_tol: float, default = 1e-10, modality = any (sklearn.cluster.SpectralClustering) Stopping criterion for eigendecomposition of the Laplacian matrix when eigen_solver=”arpack”
eigen_solver: string, default = None, allowed = [None, ‘arpack’, ‘lobpcg’, ‘amg’], modality = any (sklearn.cluster.SpectralClustering) The eigenvalue decomposition strategy to use. AMG requires pyamg to be installed
distance_metric: string, default = euclidean, allowed = [‘euclidean’, ‘l1’, ‘l2’, ‘manhattan’, ‘cosine’], modality = any (sklearn.cluster.AgglomerativeClustering; affinity) Metric to compute the linkage. If linkage is “ward”, only “euclidean” is accepted.
linkage: string, default = ward, allowed = [‘ward’, ‘complete’, ‘average’, ‘single’], modality = any (sklearn.cluster.AgglomerativeClustering) Which linkage criterion to use.
grouping:
linkage: string, default = complete, allowed = [‘complete’, ‘average’, ‘single’], modality = any (scipy.cluster.hierarchy.linkage) The linkage algorithm to use
method: string, default = mode, allowed = [‘mode’, ‘agglomerative’], modality = any Method for obtaining group-level clustering results
validity:
internal: list[string], default = [‘silhouette_score’], allowed = [‘silhouette_score’, ‘davies_bouldin_score’, ‘calinski_harabasz_score’], modality = any List of internal validity metrics to assess
similarity: string, default = adjusted_rand_score, allowed = [‘adjusted_rand_score’, ‘adjusted_mutual_info_score’, ‘v_measure_score’], modality = any Similarity metric to use to generate between-subject cluster comparisons and subject to group-level cluster comparisons
report:
figure_format: string, default = png, allowed = [‘png’, ‘svg’, ‘pdf’, ‘ps’, ‘eps’], modality = any Format of the output figures generated for the summary
individual_plots: boolean, default = False, modality = any Provide cluster-labeled ROI voxel plots for each individual subjects
benchmark: boolean, default = False, modality = any benchmark the execution of each workflow task
compress_output: boolean, default = True, modality = any Compress interim output (i.e., NIfTI images and NumPy arrays) to reduce the file size. This comes at the cost of slower processing speed.