You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The JSON sidecar accompanying the tractogram can contain the following metadata
36
+
The JSON sidecar accompanying the tractogram contains the following metadata
36
37
fields:
37
38
38
39
{{ MACROS___make_metadata_table(
39
40
{
40
41
"Name": ("OPTIONAL", "String", "A human-readable name corresponding to the primary tractography algorithm and/or software used to generate the streamlines data."),
41
42
"Description": ("OPTIONAL", "String", "A longer description of the nature of the tractography experiment"),
42
43
"URL": ("OPTIONAL", "String", "A web link to a more exhaustive description of the process by which the tractography data were generated. This could be a reference to a journal article, software, software command, documentation, or pipeline description."),
43
-
"StreamlineSeeding": ("REQUIRED", "Dict", "The contents of this dictionary are described in Table 5a."),
44
-
"StreamlinePropagation": ("REQUIRED", "Dict", "The contents of this dictionary are described in Table 6a."),
45
-
"StreamlineTermination": ("REQUIRED", "Dict", "The contents of this dictionary are described in Table 7a."),
46
-
"StreamlineAcceptanceCriteria": ("REQUIRED", "Dict", "The contents of this dictionary are described in Table 8a."),
47
-
"StreamlineReconstructionDensity": ("REQUIRED", "Dict", "The contents of this dictionary are described in Table 9a."),
44
+
"StreamlineSeeding": ("REQUIRED", "Dict", "The contents of this dictionary are described in Table 2a."),
45
+
"StreamlinePropagation": ("REQUIRED", "Dict", "The contents of this dictionary are described in Table 3a."),
46
+
"StreamlineTermination": ("REQUIRED", "Dict", "The contents of this dictionary are described in Table 4a."),
47
+
"StreamlineAcceptanceCriteria": ("REQUIRED", "Dict", "The contents of this dictionary are described in Table 5a."),
48
+
"StreamlineReconstructionDensity": ("OPTIONAL", "Dict", "The contents of this dictionary are described in Table 6a."),
48
49
}
49
50
) }}
50
51
51
-
Table 5a (contents of the value for key “StreamlineSeeding”)
52
+
Table 2a (contents of the value for key `StreamlineSeeding`)
52
53
53
54
{{ MACROS___make_metadata_table(
54
55
{
55
-
"Sources": ("REQUIRED", "List", "A list where each item describes a mechanism by which streamline seed points were derived. The contents of the elements of this list are described in Table 5b"),
56
-
"AcceptanceCriteria": ("OPTIONAL", "List", "he contents of this list are described in Table 5c"),
56
+
"Sources": ("REQUIRED", "List", "A list where each item describes a mechanism by which streamline seed points were derived. The contents of the elements of this list are described in Table 2b"),
57
+
"AcceptanceCriteria": ("OPTIONAL", "List", "he contents of this list are described in Table 2c"),
57
58
}
58
59
) }}
59
60
60
-
Table 5b (contents of elements within list `StreamlineSeeding[“Sources”]`):
61
+
Table 2b (contents of elements within list `StreamlineSeeding["Sources"]`):
61
62
62
63
{{ MACROS___make_metadata_table(
63
64
{
@@ -66,11 +67,11 @@ Table 5b (contents of elements within list `StreamlineSeeding[“Sources”]`):
66
67
"SeedsPerElement": ("Either REQUIRED or MUST NOT be specified based on the value of 'Type'", "Int", "For seeding mechanisms that involve a fixed number of streamline seeds for every image element in the seeding source ('RandomPerElement', 'GridPerElement', 'CountPerElement'), this value dictates the number of seeds to be drawn for each such element. For 'GridPerElement', this number must be a perfect cube."),
67
68
"AttemptsPerSeed": ("OPTIONAL", "Int", " If specified, it must be a positive integer. For a stochastic tracking algorithm, this is the number of attempts of initiation that are allowed in each seed."),
68
69
"Unidirectional": ("OPTIONAL", "Binary", "Specifies whether streamline propagation occurred in one direction from the seed point only, or in two antipodally symmetric directions."),
69
-
"InitialDirection": ("OPTIONAL", "Dict", "If absent, assume that the initial streamline tangent from the seed point was determined using the same mechanism as that used for orientation sampling during streamline propagation, but unconstrained by a prior incoming tangent. See Table 5c for possible values."),
70
+
"InitialDirection": ("OPTIONAL", "Dict", "If absent, assume that the initial streamline tangent from the seed point was determined using the same mechanism as that used for orientation sampling during streamline propagation, but unconstrained by a prior incoming tangent. See Table 2d for possible values."),
70
71
}
71
72
) }}
72
73
73
-
Table 5c (contents of elements of dict `StreamlineSeeding[AcceptanceCriteria]`):
74
+
Table 2c (contents of elements of dict `StreamlineSeeding["AcceptanceCriteria"]`):
74
75
75
76
{{ MACROS___make_metadata_table(
76
77
{
@@ -80,7 +81,86 @@ Table 5c (contents of elements of dict `StreamlineSeeding[AcceptanceCriteria]`):
80
81
}
81
82
) }}
82
83
84
+
Table 2d (contents of elements of dict `StreamlineSeeding["InitialDirection"]`):
83
85
84
-
# Tracking methods
86
+
TODO
87
+
88
+
Table 3a (contents of the value for key `StreamlinePropagation`):
89
+
90
+
{{ MACROS___make_metadata_table(
91
+
{
92
+
"Algorithm": ("REQUIRED", "Dict", "The contents of this dictionary are described in Table 3b."),
93
+
"AnglePerStep": ("OPTIONAL", "Float", "The maximal change in degrees in the streamline tangent between successive steps. Note that exactly how this parameter is interpreted may depend on the value of IntegrationOrder."),
94
+
"Interpolation": ("REQUIRED", "String", "Selection from the following: ['Nearest', 'Linear', 'Cubic', 'Spline']. The mechanism by which sub-voxel information is drawn from the Source based on the precise streamline location."),
95
+
"InterpolationOrder": ("REQUIRED", "Int", "The order of interpolation used (or 0 if linear)"),
96
+
"MinimumRadius": ("OPTIONAL", "Float", "The radius in mm of the circle formed by a streamline consistently turning at the maximum curvature angle at each step."),
97
+
"IntegrationOrder": ("OPTIONAL", "Int", "Polynomial complexity of numerical integration of fibre orientations over space to form the streamlines."),
98
+
"Source": ("REQUIRED", "String", "Filesystem path or BIDS URI to data used in the determination of streamline tangents during propagation."),
99
+
"StepSize": ("OPTIONAL", "Float", "The distance in mm covered by successive steps of the streamline algorithm. Note that this is not necessarily equivalent to the distance in mm between vertices in the tractogram as stored on file."),
100
+
"AttemptsPerVertex": ("OPTIONAL", "Int", "The maximal number of probabilistic attempts to make in propagating from a streamline vertex before ceasing propagation."),
101
+
}
102
+
) }}
103
+
104
+
Table 3b (contents of dict `StreamlinePropagation["Algorithm"]`):
105
+
106
+
{{ MACROS___make_metadata_table(
107
+
{
108
+
"Name": ("REQUIRED", "String", "A human-readable name corresponding to the tractography algorithm used to generate the streamlines."),
109
+
"Description": ("OPTIONAL", "String", "A longer description of the nature of the tractography algorithm."),
110
+
"URL": ("OPTIONAL", "String", "A web link to a more exhaustive description of the algorithm used to generate the tractography data."),
111
+
}
112
+
) }}
113
+
114
+
Table 4a (contents of the value for key `StreamlineTermination`):
115
+
116
+
{{ MACROS___make_metadata_table(
117
+
{
118
+
"AnatomicalSegmentation": ("OPTIONAL", "String", "Path to data containing anatomical segmentation that was used to constrain streamline termination."),
119
+
"Anisotropy": ("OPTIONAL", "List", "The contents of each element of this list are described in Table 4b."),
120
+
"AnglePerStep": ("OPTIONAL", "Float", "If a streamline changes tangent between successive steps of greater than this value in degrees, it is terminated."),
121
+
"MinimumRadius": ("OPTIONAL", "Float", "If a streamline changes tangent between successive steps corresponding to a circle of radius smaller than this value in mm, it is terminated."),
122
+
"Masks": ("OPTIONAL", "List", "List of strings corresponding to mask images; a streamline is terminated as soon as it exits the region defined by these masks."),
123
+
"SatisfiedAllAcceptance": ("OPTIONAL", "Binary", "Set to True if streamlines were immediately terminated at the first vertex upon which that streamline had satisfied all acceptance criteria."),
124
+
"MaximumLength": ("OPTIONAL", "Float", "Units of mm. Any streamline exceeding this length was no longer propagated."),
125
+
}
126
+
) }}
127
+
128
+
Table 4b (contents of elements of list `StreamlineTermination["Anisotropy"]`):
129
+
130
+
{{ MACROS___make_metadata_table(
131
+
{
132
+
"Metric": ("REQUIRED", "String", "Text description of the anisotropy metric mediating whether a streamline was terminated."),
133
+
"Source": ("REQUIRED", "String", "Filesystem path or BIDS URI of image data from which the corresponding anisotropy metric can be extracted."),
134
+
"Threshold": ("REQUIRED", "Float", "Numerical threshold applied to anisotropy metric."),
135
+
}
136
+
) }}
137
+
138
+
Table 5a (contents of the value for key `StreamlineAcceptanceCriteria`):
139
+
140
+
{{ MACROS___make_metadata_table(
141
+
{
142
+
"InclusionRegions": ("OPTIONAL", "List", "List of filesystem paths. A streamline must visit every item in this list at any location along its length in order to be deemed acceptable."),
143
+
"OrderedInclusionRegions": ("OPTIONAL", "List", "List of filesystem paths. A streamline must visit every item in this list in the same sequence as the order in which they appear during streamline propagation."),
144
+
"ExclusionRegions": ("OPTIONAL", "List", "List of filesystem paths. A streamline must not visit any item in this list at any location along its length."),
145
+
"MinimumLength": ("OPTIONAL", "Float", "In units of mm. Any streamline shorter than this length was discarded."),
146
+
"MaximumLength": ("OPTIONAL", "Float", "In units of mm. Any streamline exceeding this length was discarded."),
147
+
"AnatomicalSegmentation": ("OPTIONAL", "String", "Path to data containing anatomical segmentation that influenced whether streamlines were discarded."),
148
+
}
149
+
) }}
150
+
151
+
Table 6a (contents of the value for key `StreamlineReconstructionDensity`):
152
+
153
+
{{ MACROS___make_metadata_table(
154
+
{
155
+
"Seeds": ("OPTIONAL", "Int", "Tractogram generation was terminated if this number of unique seed vertices was drawn."),
156
+
"GeneratedStreamlines": ("OPTIONAL", "Int", "Tractogram generation was terminated if this number of streamlines were generated."),
157
+
"AcceptedStreamlines": ("OPTIONAL", "Int", "Tractogram generation was terminated once this number of streamlines was written to the output tractogram."),
158
+
}
159
+
) }}
160
+
161
+
## Tracking methods
162
+
163
+
The `track` entity uses a controlled vocabulary of tracking method abbreviations,
0 commit comments