forked from vistalab/RTP-preproc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
manifest.json
221 lines (221 loc) · 12.4 KB
/
manifest.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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
{
"name": "rtppreproc",
"label": "RTP Preprocessing Pipeline",
"description": "RTP-preproc runs the MRtrix3 preprocessing pipeline, based on FSL's topup when the optional inverse phase encoded data are provided, otherwise the pipeline uses FSL's eddy tool. The pipeline can also perform de-noising, reslicing, and alignment to an anatomical image. Required inputs are diffusion NIfTI, BVEC, BVAL, and Anatomical (ACPC aligned) NIfTI.",
"maintainer": "Garikoitz Lerma-Usabiaga <glerma@stanford.edu>",
"author": "MRtrix, FSL, ANTs and Brain-Life teams.",
"url": "https://mrtrix.readthedocs.io/en/latest/reference/scripts/dwipreproc.html#dwipreproc",
"source": "https://github.com/vistalab/rtppreproc",
"license": "Other",
"flywheel": "0",
"cite": "Gear adapted from https://github.com/brain-life/app-mrtrix3-preproc. Ref: https://mrtrix.readthedocs.io/en/latest/reference/scripts/dwipreproc.html#references",
"version": "1.1.3",
"custom": {
"docker-image": "vistalab/rtppreproc:1.1.3",
"gear-builder": {
"image": "vistalab/rtppreproc:1.1.3",
"category": "analysis"
},
"flywheel": {
"suite": "RTP: Reproducible Tract Profiles"
}
},
"config": {
"acqd": {
"description": "Acquisition phase encoding direction [default=PA]",
"default": "PA",
"type": "string"
},
"denoise": {
"description": "Denoise data using PCA [default=true]",
"default": true,
"type": "boolean"
},
"degibbs": {
"description": "Perform Gibbs ringing correction [default=true]",
"default": false,
"type": "boolean"
},
"eddy": {
"description": "Perform eddy current correction. If inverted phase encoding direction files are found, eddy will be done as part of topup. [default=true]",
"default": true,
"type": "boolean"
},
"bias": {
"description": "Compute bias correction with ANTs on dwi data [default=false]",
"default": false,
"type": "boolean"
},
"ricn": {
"description": "Perform Rician background noise removal [default=false]",
"default": false,
"type": "boolean"
},
"norm": {
"description": "Perform intensity normalization of dwi data [default=false]",
"default": false,
"type": "boolean"
},
"nval": {
"description": "Normalize the intensity of the FA white matter mask to this number [default=1000]",
"default": 1000,
"type": "number"
},
"anatalign": {
"description": "Align dwi data with anatomy [default=false]",
"default": false,
"type": "boolean"
},
"doreslice": {
"description": "Do reslicing [default=false]",
"default": false,
"type": "boolean",
"id": "-doreslice"
},
"saveoutput": {
"description": "Save all the intermediate files (both .mif and .nii.gz), for QC and debugging [default=false]",
"default": false,
"type": "boolean",
"id": "-saveoutput"
},
"reslice": {
"description": "Optional. By default reslicing is not done. If you want it done, set doreslice=true and set a number (e.g., 1) here to reslice the dwi data to this isotropic voxel size (in mm).",
"optional": true,
"type": "number"
},
"bias_method": {
"description": "ants or fsl option for dwibiascorrect: performs B1 field inhomogeneity correction for a DWI volume series",
"default": "ants",
"type": "string"
},
"antsb": {
"description": "param b for ANTs, when called from dwibiascorrect ants, N4BiasFieldCorrection option -b. [initial mesh resolution in mm, spline order] This value is optimised for human adult data and needs to be adjusted for rodent data. --bspline-fitting [splineDistance,<splineOrder=3>] [initialMeshResolution,<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.",
"default": "[150,3]",
"type": "string"
},
"antsc": {
"description": "param c for ANTs, when called from dwibiascorrect ants, N4BiasFieldCorrection option -c. [numberOfIterations,convergenceThreshold]. --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.",
"default": "[200x200,1e-6]",
"type": "string"
},
"antss": {
"description": "param s for ANTs, when called from dwibiascorrect ants, N4BiasFieldCorrection option -s. shrink-factor applied to spatial dimensions. --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.",
"default": "2",
"type": "string"
},
"eddy_data_is_shelled": {
"description":"At the moment eddy works for single- or multi-shell diffusion data, i.e. it doesn't work for DSI data. In order to ensure that the data is shelled eddy checks it, and only proceeds if it is happy that it is indeed shelled. The checking is performed through a set of heuristics such as i) how many shells are there? ii) what are the absolute numbers of directions for each shell? iii) what are the relative numbers of directions for each shell? etc. It will for example be suspicious of too many shells, too few directions for one of the shells etc. It has emerged that some popular schemes get caught in this test. Some groups will for example acquire a mini shell with low b-value and few directions and that has failed to pass the check, even though it turns out eddy works perfectly well on the data. For that reason we have introduced the --data_is_shelled flag. If set, it will bypass any checking and eddy will proceed as if data was shelled. Please be aware that if you have to use this flag you may be in untested territory and that it is a good idea to check your data extra carefully after having run eddy on it.",
"default":true,
"type":"boolean"
},
"eddy_slm": {
"description":"Second level model that specifies the mathematical form for how the diffusion gradients cause eddy currents. For high quality data with 60 directions, or more, sampled on the whole sphere we have not found any advantage of performing second level modelling. Hence our recommendation for such data is to use none, and that is also the default. If the data has quite few directions and/or is has not been sampled on the whole sphere it can be advantageous to specify --slm=linear.",
"default":"linear",
"type":"string"
},
"eddy_niter": {
"description":"eddy does not check for convergence. Instead it runs a fixed number of iterations given by --niter. This is not unusual for registration algorithms where each iteration is expensive (i.e. takes long time). Instead we run it for a fixed number of iterations, 5 as default. If, on visual inspection, one finds residual movement or EC-induced distortions it is possible that eddy has not fully converged. In that case we primarily recommend that one uses --fwhm=10,0,0,0,0, as described above, to speed up convergence. Only if that fails do we recommend increasing the number of iterations.",
"default":5,
"type":"number"
},
"eddy_repol": {
"description":"When set this flag instructs eddy to remove any slices deemed as outliers and replace them with predictions made by the Gaussian Process. Exactly what constitutes an outlier is affected by the parameters --ol_nstd, --ol_nvox, --ol_type, --ol_pos and --ol_sqr. If the defaults are used for all those parameters an outlier is defined as a slice whose average intensity is at least four standard deviations lower than the expected intensity, where the expectation is given by the Gaussian Process prediction. The default is to not do outlier replacement since we don't want to risk people using it unawares. However, our experience and tests indicate that it is always a good idea to use --repol.",
"default":true,
"type":"boolean"
},
"eddy_mporder": {
"description":"If one wants to do slice-to-vol motion correction --mporder should be set to an integer value greater than 0 and less than the number of excitations in a volume. Only when --mporder > 0 will any of the parameters prefixed by --s2v_ be considered. The larger the value of --mporder, the more degrees of freedom for modelling movement. If --mporder is set to N-1, where N is the number of excitations in a volume, the location of each slice/MB-group is individually estimated. We don't recommend going that high and in our tests we have used values of N/4 -- N/2. The underlying temporal model of movement is a DCT basis-set of order N. Slice-to-vol motion correction is computationally very expensive so it is only implemented for the CUDA version.",
"default":0,
"type":"number"
},
"eddy_slspec": {
"description":"Specifies a text-file that describes how the slices/MB-groups were acquired. This information is necessary for eddy to know how a temporally continuous movement translates into location of individual slices/MB-groups. Let us say a given acquisition has N slices and that m is the MB-factor (also known as Simultaneous Multi-Slice (SMS)). Then the file pointed to be --slspec will have N/m rows and m columns. Let us for example assume that we have a data-set which has been acquired with an MB-factor of 3, 15 slices and interleaved slice order. The file would then be [0 5 10;2 7 12;4 9 14;1 6 11;3 8 13] where the first row [0 5 10] specifies that the first, sixth and 11th slice are acquired first and together, followed by the third, eighth and 13th slice etc. For single-band data and for multi-band data with an odd number of excitations/MB-groups it is trivial to work out the --slspec file using the logic of the example. For an even number of excitations/MB-groups it is considerably more difficult and we recommend using a DICOM->niftii converter that writes the exact slice timings into a .JSON file. This can then be used to create the --slspec file.",
"default":"hi there\n1 1 1\n3 3 3",
"type":"string"
},
"topup_lambda": {
"description":"replace lambda value in topup. ",
"default":"0.005,0.001,0.0001,0.000015,0.000005,0.0000005,0.00000005,0.0000000005,0.00000000001",
"type":"string"
}
},
"inputs": {
"DIFF": {
"description": "Diffusion NIfTI image.",
"base": "file",
"type": {
"enum": [
"nifti"
]
}
},
"BVAL": {
"description": "BVAL file.",
"base": "file",
"type": {
"enum": [
"bval"
]
}
},
"BVEC": {
"description": "BVEC file.",
"base": "file",
"type": {
"enum": [
"bvec"
]
}
},
"ANAT": {
"description": "Optional anatomical T1w NIfTI image. Required only if anatalign=true",
"base": "file",
"optional": true,
"type": {
"enum": [
"nifti"
]
}
},
"FSMASK": {
"description": "Optional freesurfer mask, if not passed FSL will calculate it internally.",
"base": "file",
"optional": true,
"type": {
"enum": [
"nifti"
]
}
},
"RDIF": {
"description": "Optional reverse phase encoded (rpe) diffusion NIfTI image.",
"base": "file",
"optional": true,
"type": {
"enum": [
"nifti"
]
}
},
"RBVL": {
"description": "Optional reverse phase encoded (rpe) BVAL file.",
"base": "file",
"optional": true,
"type": {
"enum": [
"bval"
]
}
},
"RBVC": {
"description": "Optional reverse phase encoded (rpe) BVEC file.",
"base": "file",
"optional": true,
"type": {
"enum": [
"bvec"
]
}
}
}
}