-
Notifications
You must be signed in to change notification settings - Fork 8
/
n4_bias_field_correction.json
149 lines (149 loc) · 8.63 KB
/
n4_bias_field_correction.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
{
"name": "N4BiasFieldCorrection",
"command-line": "N4BiasFieldCorrection [IMAGE_DIMENSIONALITY] [SHRINK_FACTOR] [MASK_IMAGE] [RESCALE_INTENSITIES] [WEIGHT_IMAGE] [CONVERGENCE] [BSPLINE_FITTING] [HISTOGRAM_SHARPENING] [VERBOSE] [INPUT_IMAGE] --output [[CORRECTED_IMAGE],[BIAS_FIELD]]",
"author": "ANTs authors",
"description": "N4 is a variant of the popular N3 (nonparameteric nonuniform normalization) retrospective bias correction algorithm. Based on the assumption that the corruption of the low frequency bias field can be modeled as a convolution of the intensity histogram by a Gaussian, the basic algorithmic protocol is to iterate between deconvolving the intensity histogram by a Gaussian, remapping the intensities, and then spatially smoothing this result by a B-spline modeling of the bias field itself. The modifications from and improvements obtained over the original N3 algorithm are described in the following paper: N. Tustison et al., N4ITK: Improved N3 Bias Correction, IEEE Transactions on Medical Imaging, 29(6):1310-1320, June 2010.",
"url": "https://github.com/ANTsX/ANTs/wiki/N4BiasFieldCorrection",
"tool-version": "v2.4.3-gcaa60eb",
"inputs": [
{
"id": "image_dimensionality",
"name": "Image dimensionality",
"value-key": "[IMAGE_DIMENSIONALITY]",
"type": "Number",
"integer": true,
"optional": true,
"value-choices": [2, 3, 4],
"command-line-flag": "--image-dimensionality",
"description": "-d, --image-dimensionality 2/3/4. This option forces the image to be treated as a specified-dimensional image. If not specified, N4 tries to infer the dimensionality from the input image."
},
{
"id": "shrink_factor",
"name": "Shrink factor",
"value-key": "[SHRINK_FACTOR]",
"type": "Number",
"integer": true,
"optional": true,
"value-choices": [1, 2, 3, 4],
"command-line-flag": "--shrink-factor",
"description": "-s, --shrink-factor 1/2/3/(4)/... Running N4 on large images can be time consuming. To lessen computation time, the input image can be resampled. The shrink factor, specified as a single integer, describes this resampling. Shrink factors <= 4 are commonly used. Note that the shrink factor is only applied to the first two or three dimensions which we assume are spatial."
},
{
"id": "mask_image",
"name": "Mask image",
"value-key": "[MASK_IMAGE]",
"type": "File",
"optional": true,
"command-line-flag": "--mask-image",
"description": "-x, --mask-image maskImageFilename. If a mask image is specified, the final bias correction is only performed in the mask region. If a weight image is not specified, only intensity values inside the masked region are used during the execution of the algorithm. If a weight image is specified, only the non-zero weights are used in the execution of the algorithm although the mask region defines where bias correction is performed in the final output. Otherwise bias correction occurs over the entire image domain. See also the option description for the weight image. If a mask image is *not* specified then the entire image region will be used as the mask region. Note that this is different than the N3 implementation which uses the results of Otsu thresholding to define a mask. However, this leads to unknown anatomical regions being included and excluded during the bias correction."
},
{
"id": "rescale_intensities",
"name": "Rescale intensities",
"value-key": "[RESCALE_INTENSITIES]",
"type": "Number",
"integer": true,
"value-choices": [0, 1],
"optional": true,
"requires-inputs": ["mask_image"],
"command-line-flag": "--rescale-intensities",
"description": "-r, --rescale-intensities 0/(1). At each iteration, a new intensity mapping is calculated and applied but there is nothing which constrains the new intensity range to be within certain values. The result is that the range can \"drift\" from the original at each iteration. This option rescales to the [min,max] range of the original image intensities within the user-specified mask. A mask is required to perform rescaling."
},
{
"id": "weight_image",
"name": "Weight image",
"value-key": "[WEIGHT_IMAGE]",
"type": "File",
"optional": true,
"command-line-flag": "--weight-image",
"description": "-w, --weight-image weightImageFilename. The weight image allows the user to perform a relative weighting of specific voxels during the B-spline fitting. For example, some studies have shown that N3 performed on white matter segmentations improves performance. If one has a spatial probability map of the white matter, one can use this map to weight the b-spline fitting towards those voxels which are more probabilistically classified as white matter. See also the option description for the mask image."
},
{
"id": "convergence",
"name": "Convergence",
"value-key": "[CONVERGENCE]",
"type": "String",
"optional": true,
"command-line-flag": "--convergence",
"description": "-c, --convergence [<numberOfIterations=50x50x50x50>,<convergenceThreshold=0.0>]. Convergence is determined by calculating the coefficient of variation between subsequent iterations. When this value is less than the specified threshold from the previous iteration or the maximum number of iterations is exceeded the program terminates. Multiple resolutions can be specified by using 'x' between the number of iterations at each resolution, e.g. 100x50x50."
},
{
"id": "bspline_fitting",
"name": "Bspline fitting",
"value-key": "[BSPLINE_FITTING]",
"type": "String",
"optional": true,
"command-line-flag": "--bspline-fitting",
"description": "-b, --bspline-fitting [splineDistance,<splineOrder=3>]. These options describe the b-spline fitting parameters. The initial b-spline mesh at the coarsest resolution is specified either as the number of elements in each dimension, e.g. 2x2x3 for 3-D images, or it can be specified as a single scalar parameter which describes the isotropic sizing of the mesh elements. The latter option is typically preferred. For each subsequent level, the spline distance decreases in half, or equivalently, the number of mesh elements doubles Cubic splines (order = 3) are typically used. The default setting is to employ a single mesh element over the entire domain, i.e., -b [1x1x1,3]."
},
{
"id": "histogram_sharpening",
"name": "Histogram sharpening",
"value-key": "[HISTOGRAM_SHARPENING]",
"type": "String",
"optional": true,
"command-line-flag": "--histogram-sharpening",
"description": "-t, --histogram-sharpening [<FWHM=0.15>,<wienerNoise=0.01>,<numberOfHistogramBins=200>]. These options describe the histogram sharpening parameters, i.e. the deconvolution step parameters described in the original N3 algorithm. The default values have been shown to work fairly well."
},
{
"id": "verbose",
"name": "Verbose",
"value-key": "[VERBOSE]",
"type": "Number",
"integer": true,
"optional": true,
"value-choices": [0, 1],
"command-line-flag": "--verbose",
"description": "Verbose output."
},
{
"id": "input_image",
"name": "Input image",
"value-key": "[INPUT_IMAGE]",
"type": "File",
"optional": false,
"command-line-flag": "--input-image",
"description": "-i, --input-image inputImageFilename. A scalar image is expected as input for bias correction. Since N4 log transforms the intensities, negative values or values close to zero should be processed prior to correction."
},
{
"id": "corrected_image_path",
"name": "Corrected image path",
"value-key": "[CORRECTED_IMAGE]",
"type": "String",
"optional": false,
"description": "The bias corrected version of the input image."
},
{
"id": "bias_field_path",
"name": "Bias field path",
"value-key": "[BIAS_FIELD]",
"type": "String",
"optional": false,
"description": "Estimated bias field image."
}
],
"output-files": [
{
"id": "corrected_image",
"name": "Corrected image",
"path-template": "[CORRECTED_IMAGE]",
"description": "The bias corrected version of the input image.",
"optional": false
},
{
"id": "bias_field",
"name": "Bias field",
"path-template": "[BIAS_FIELD]",
"description": "Estimated bias field image.",
"optional": false
}
],
"schema-version": "0.5",
"container-image": {
"image": "fcpindi/c-pac:latest",
"type": "docker"
},
"tags": {
"domain": "neuroinformatics"
}
}