-
Notifications
You must be signed in to change notification settings - Fork 0
/
manifest.json
324 lines (324 loc) · 17.1 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
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
{
"name": "afq-pipeline-sdk",
"label": "AFQ Pipeline SDK: Automated Fiber Quantification Processing Pipeline",
"description": "This SDK-enabled Gear is able to take a user-provided acquisition label and automatically find appropriate inputs for the Gear. The Gear runs a 3-step pipeline culminating in a run of AFQ. The first step is optional, and will merge two diffusion datasets using FSLMERGE. The second step is diffusion data preprocessing using DTIINIT. The final step is Automated Fiber Quantification (AFQ), which generates tract profiles of tissue properties for major white matter tracts in the brain.",
"maintainer": "Michael Perry <[email protected]>",
"author": "Jason D. Yeatman, et. al, VISTA Lab, FMRIB Software Laboratory",
"cite": "Yeatman J.D., Dougherty R.F., Myall N.J., Wandell B.A., Feldman H.M. (2012). Tract Profiles of White Matter Properties: Automating Fiber-Tract Quantification. PLoS One.; M. Jenkinson, C.F. Beckmann, T.E. Behrens, M.W. Woolrich, S.M. Smith. FSL. NeuroImage, 62:782-90, 2012",
"url": "https://github.com/yeatmanlab/afq",
"source": "https://github.com/scitran-apps/afq-pipeline-sdk",
"license": "Other",
"flywheel": "0",
"version": "1.1.0",
"custom": {
"docker-image": "scitran/afq-pipeline-sdk:1.1.0",
"flywheel": {
"suite": "VISTA Lab"
}
},
"inputs": {
"api_key": {
"description": "This gear uses the calling user's api_key, provided by the application, to issue SDK commands to find and download the required inputs to this gear.",
"base": "api-key"
}
},
"config": {
"diffusion_acquisition_label": {
"description": "Acquisition label for diffusion acquisitions that should be used as input to the pipeline. This label will be used to find the diffusion data that will be used as input for the pipeline. Given the nature of the pipeline, there can be no more than two acquisitions that match this label. If two acquisitions are found they will be merged and processed as one. If more than two (or none) are found an error will be raised.",
"default": "autodetect",
"type": "string"
},
"anatomical_acquisition_label": {
"description": "Acquisition label for anatomical acquisitions that should be used as input to the pipeline. This label will be used to find the anatomical (T1) data that will be used as input for the pipeline. If more than one acquisition (or none) is found an error will be raised.",
"default": "autodetect",
"type": "string"
},
"align_to_anatomical": {
"description": "During the initial phase of processing the diffusion data (b=0 images) will be aligned to a T1 Image. By default the DWI data will be aligned to the MNI_EPI template.",
"default": false,
"type": "boolean"
},
"catTime": {
"description": "FSLMERGE: concatenate images in time [default=false]",
"default": false,
"type": "boolean",
"id": "-t"
},
"catX": {
"description": "FSLMERGE: concatenate images in the x direction [default=false]",
"default": false,
"type": "boolean",
"id": "-x"
},
"catY": {
"description": "FSLMERGE: concatenate images in the y direction [default=false]",
"default": false,
"type": "boolean",
"id": "-y"
},
"catZ": {
"description": "FSLMERGE: concatenate images in the z direction [default=false]",
"default": false,
"type": "boolean",
"id": "-z"
},
"auto": {
"description": "FSLMERGE: auto-choose: single slices -> volume, volumes -> 4D (time series) [default=true]",
"default": true,
"type": "boolean",
"id": "-a"
},
"catTR": {
"description": "FSLMERGE: concatenate images in time and set the output image tr to this value. values other than '0' will trigger this option. [default=0, false]",
"default": 0,
"type": "number",
"id": "-tr"
},
"base_outname": {
"description": "FSLMERGE: Base name for output file(s) [by default, 'none' signals the code to use the input filenames, separated by '_', to generate a base name]",
"default": "none",
"base": "file",
"type": "string"
},
"flipLrApFlag": {
"description": "DTIINIT: This flag will signal dtiRawBuildBvecs to reorient the gradient directions specified in the dwepi.grads file to logical space rather than keeping the directions in scanner space. Thus, the bvecs do not need to be reoriented for oblique prescriptions as with some other DTI sequences. However, this sequence assumes that the 2nd column in dwepi.grads is the phase-encode dim. If your phase-encode is the usual '2', then this is fine. But, if you run ASSET and change the phase encode to L-R (dim 1), you need to swap the first and second columns of dwepi.grads. Also, there appears to be a flip in the phase-encode dim, so you also need to flip the sign on the phase-encode column. DEFAULT=0",
"default": 0,
"type": "integer"
},
"numBootStrapSamples": {
"description": "DTIINIT: Number of bootstrap iterations. DEFAULT=500",
"default": 500,
"type": "integer"
},
"fitMethod": {
"description": "DTIINIT: Fit-method for tensor fitting. Options are ['ls', 'rt', 'lsrt']: 'ls': least-squares (default) 'rt': RESTORE robust tensor fitting and outlier rejection (Chang, Jones & Pierpaoli (2005) RESTORE: Robust Estimation of Tensors by Outlier Rejection. Magnetic Resonance in Medicine, v53). 'lsrt': does least-squares and robust tensor fitting in one go. DEFAULT='ls'",
"default": "ls",
"type": "string"
},
"nStep": {
"description": "DTIINIT: The number of steps for the restore algorithm in the robust tensor fitting case. (dtiRawFitTensorRobust). DEFAULT=50",
"default": 50,
"type": "integer"
},
"eddyCorrect": {
"description": "DTIINIT: Motion and eddy-current correction. Options 0, 1, -1. 0=Only motion correction is done. 1=Do eddy-current and motion correction. -1=No motion or eddy correction. DEFAULT=1",
"default": 1,
"type": "integer"
},
"bsplineInterpFlag": {
"description": "DTIINIT: Method used for interpolation during resampling (dtiRawResample). 1=bspline. 0=trilinear. DEFAULT=0",
"default": 0,
"type": "integer"
},
"phaseEncodeDir": {
"description": "DTIINIT: Phase encoding direction. (1=L/R='row', 2=A/P='col'). This value is read from the raw dti nifti field, you should specify it here if it does not exist. If you collected your DTI data using GE's ASSET, you should provide the phase-encode direction (1=L/R='row', 2=A/P='col'). Information about this, as well as the b-value and gradient code, can be found in the DICOM file header. DEFAULT=2",
"type": "integer",
"default": 2
},
"dwOutMm_1": {
"description": "DTIINIT: Resolution of the output in mm. DEFAULT=2",
"type": "integer",
"default": 2
},
"dwOutMm_2": {
"description": "DTIINIT: Resolution of the output in mm. DEFAULT=2",
"type": "integer",
"default": 2
},
"dwOutMm_3": {
"description": "DTIINIT: Resolution of the output in mm. DEFAULT=2",
"type": "integer",
"default": 2
},
"rotateBvecsWithRx": {
"description": "DTIINIT: Rotate the b-vectors according to the scanner prescription. 0=false, 1=true. DEFAULT=0",
"default": 0,
"type": "integer"
},
"rotateBvecsWithCanXform": {
"description": "DTIINIT: Rotate the b-vectors according to the canonical xForm. 0=false, 1=true. DEFAULT=1",
"default": 1,
"type": "integer"
},
"noiseCalcMethod": {
"description": "DTIINIT: Noise calculation method for robust tensor fitting. Options are 'corner' or 'b0' (default). There are 2 ways to calculate the noise. The first is based on the standard deviation of the signal in the corner of the image (noiseCalcMethod = 'corner'). This method works well as long as the corner of the image has not been padded with zeros. Currently GE zeros out the pixel intensity outside of the brain. So for new GE data we calculate the noise by taking the standard deviation of the b=0 images (noiseCalcMethod = 'b0') which means that we need a number of b0 acquisitions. If you are using robust tensor fitting you must decide how to calculate the image noise. If the corner of the image is padded with zeros then you should use the 'b0' method which calculates the noise based on the std of the b0 image. DEFAULT='b0'",
"type": "string",
"default": "b0"
},
"cutoffLower": {
"description": "AFQ: The lower percentile cutoff to be used to determine what is 'abnormal' The default is cutoff = [10 90] meaning that subjects who fall below the 10th percentile or above the 90th percentile will be considered 'abnormal' and their data will be plotted with respect to the control population.",
"default": 10,
"type": "integer"
},
"cutoffUpper": {
"description": "AFQ: The upper percentile cutoff to be used to determine what is 'abnormal' The default is cutoff = [10 90] meaning that subjects who fall below the 10th percentile or above the 90th percentile will be considered 'abnormal' and their data will be plotted with respect to the control population.",
"default": 90,
"type": "integer"
},
"cleanFibers": {
"description": "AFQ: cleanFibers == 1 (default) means that once all the fiber groups have been segmented they will be cleaned such that any fiber that (1) is more than params.maxLen standard deviations above the mean fiber length will be removed and (2) any fiber that is more than params.maxDist standard deviations from the core of the tract will be removed. this means that fibers groups will be forced to be a compact bundle. (1 = YES, 0 = NO)",
"default": 1,
"type": "integer"
},
"cleanIter": {
"description": "AFQ: Maximum number of iterations of the cleaning algorithm.",
"default": 5,
"type": "integer"
},
"maxDist": {
"description": "AFQ: Remove fibers that are more than 'maxDist' standard deviations from the core of the tract. (Default = 5 standard deviations). cleanFibers must be set to 1.",
"default": 5,
"type": "integer"
},
"maxLen": {
"description": "AFQ: Remove fibers that are more than 'maxLen' standard deviations from the mean fiber length. (Default = 4 standard deviations). cleanFibers must be set to 1.",
"default": 4,
"type": "integer"
},
"numberOfNodes": {
"description": "AFQ: The number of nodes to represent each fiber.",
"default": 100,
"type": "integer"
},
"clip2rois": {
"description": "AFQ: Should we analyze the whole length of the fiber group or just the central portion spanning between 2 ROIs. (1=YES, 0=NO)",
"default": 1,
"type": "integer"
},
"fiberWeighting": {
"description": "AFQ: Set the amount of weighting that will be applied when calculating tract profiles. 0 means that each fiber contributes equally. 1 means that we apply gaussian weighting where each fibers contribution to the measurement at a node is weighted by its gaussian distance from the tract core. Values greater than 1 mean that the core of the tract is weighted more heavily and fibers further from the core are weighted less heavily (faster fall off than a gaussian). See ComputeTractProperties.",
"default": 1,
"type": "integer"
},
"cleanClippedFibers": {
"description": "AFQ: If cleanFibers == 1, then this will indicate whether to perform the cleaning on just the clipped portion of the tract or on the full tract. This may be helpful for tracts like the ILF that are extremely messy with looping fibers etc.",
"default": 0,
"type": "integer"
},
"savefigs": {
"description": "AFQ: Save figures of fiber groups. (1=yes, 0=no)",
"default": 0,
"type": "integer"
},
"computeCSD": {
"description": "AFQ: Whether or not to compute constrained spherical deconvolution using mrtrix. 0 means don't use mrtrix. 1 means use mrtrix with the default lmax (4). Otherwise you can set the lmax by with a scaler.",
"default": 0,
"type": "integer"
},
"computenorms": {
"description": "AFQ: Whether or not to compute control group norms.",
"default": 1,
"type": "integer"
},
"normalization": {
"description": "AFQ: Which software package to use for normalization. ('spm', 'ants')",
"type": "string",
"default": "spm"
},
"imresample": {
"description": "AFQ: For additional images that are passed into AFQ you can set a resolution to resample those images to before computing tract profiles (e.g., [2 2 2])",
"default": 0,
"type": "integer"
},
"track_algorithm": {
"description": "AFQ: Do fiber tracking with mrdiffusion by default. The other option is 'mrtrix' if it is installed and the data is HARDI.",
"type": "string",
"default": "mrdiffusion"
},
"track_stepSizeMm": {
"description": "AFQ: Distance between steps in the tractography algorithm.",
"default": 1,
"type": "integer"
},
"track_faThresh": {
"description": "AFQ: Stopping criteria FA<0.2",
"default": 0.2,
"type": "number"
},
"track_minLengthThreshMm": {
"description": "AFQ: Discard Fibers shorter than this threshold in mm.",
"default": 50,
"type": "integer"
},
"track_maxLengthThreshMm": {
"description": "AFQ: Discard Fibers longer than this threshold in mm.",
"default": 250,
"type": "integer"
},
"track_angleThresh": {
"description": "AFQ: Stopping criteria angle between steps >30 degrees.",
"default": 30,
"type": "integer"
},
"track_wPuncture": {
"description": "AFQ: This coefficient can take on values from 0 to 1, and affects how much the propagation should be encouraged to “puncture” through planar tensors oriented normal to its path, versus turning into the plane.",
"default": 0.2,
"type": "number"
},
"track_whichAlgorithm": {
"description": "AFQ: Algorithm type for tractography (0=STT Euler, 1=STT RK4, 2=TEND Euler, 3=TEND RK4). Default is STT. See: Basser PJ, Pajevic S, Pierpaoli C, Duda J, Aldroubi A. 2000. In vivo fiber tractography using DT-MRI data. Magnetic Resonance in Medicine 44(4):625-32.",
"default": 1,
"type": "integer"
},
"track_whichInterp": {
"description": "AFQ: Interpolation Type (0=NN, 1=linear): After each step we interpolate the tensor at that point. Trilinear interpolation works well.",
"default": 1,
"type": "integer"
},
"track_offsetJitter": {
"description": "AFQ: Offset Jitter is the standard deviation of a a random jitter applied to the seeds (in voxel units). E.g., offsetJitter=0.1 will jitter each seedVoxelOffset by a random amount with mean 0 and sigma 0.1. This adds some randomness to each seed point. Each seed point is move randomly by randn*.1mm",
"default": 0,
"type": "number"
},
"track_seedVoxelOffset_1": {
"description": "AFQ: seedVoxelOffsets is the relative position of the seed(s) within each seed voxel. E.g., seedVoxelOffsets = [0.5] will put one seed at the center of each voxel, while [0.25 0.75] will place 8 seeds in each voxel. Note that every seed voxel gets at least one seed.",
"default": 0.25,
"type": "number"
},
"track_seedVoxelOffset_2": {
"description": "AFQ: seedVoxelOffsets is the relative position of the seed(s) within each seed voxel. E.g., seedVoxelOffsets = [0.5] will put one seed at the center of each voxel, while [0.25 0.75] will place 8 seeds in each voxel. Note that every seed voxel gets at least one seed.",
"default": 0.75,
"type": "number"
},
"track_faMaskThresh": {
"description": "AFQ: FA mask threshold from which to initialize tracking.",
"default": 0.3,
"type": "number"
},
"track_nfibers": {
"description": "AFQ: Number of fibers to track. This parameter is only relevant for mrTrix.",
"default": 500000,
"type": "integer"
},
"qmr_meatadata_age": {
"description": "AFQ: Age of subject in years.",
"default": 0,
"type": "integer"
},
"qmr_metadata_sex": {
"description": "AFQ: Sex of subject. ('male', 'female', 'unknown')",
"default": "unknown",
"type": "string"
},
"qmr_metadata_age_comp": {
"description": "AFQ: Restrict comparison to 'age matched' based on the age of the subject.",
"default": 0,
"type": "integer"
},
"qmr_metadata_ndirs": {
"description": "AFQ: Number of directions for control data (30, 96).",
"default": 30,
"type": "integer"
},
"qmr_metadata_bvalue": {
"description": "AFQ: B-Value for control data (1000, 2000).",
"default": 1000,
"type": "integer"
},
"qmr_runcontrolcomp": {
"description": "AFQ: Compare subject to control dataset. For a description of the control dataset, see 'Lifespan maturation and degeneration of human brain white matter' J.D. Yeatman, B.A. Wandell and A. Mezer (2014) NATURE COMMUNICATIONS | 5:4932 | DOI: 10.1038/ncomms5932.",
"default": 1,
"type": "integer"
}
}
}