niwrap-afni 0.5.0__py3-none-any.whl → 0.5.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of niwrap-afni might be problematic. Click here for more details.

Files changed (111) hide show
  1. niwrap_afni/afni/abids_json_tool_py.py +104 -1
  2. niwrap_afni/afni/abids_tool.py +43 -1
  3. niwrap_afni/afni/adjunct_make_script_and_rst_py.py +2 -2
  4. niwrap_afni/afni/afni_batch_r.py +1 -2
  5. niwrap_afni/afni/balloon.py +25 -1
  6. niwrap_afni/afni/brain_skin.py +16 -1
  7. niwrap_afni/afni/build_afni_py.py +28 -1
  8. niwrap_afni/afni/cat_matvec.py +23 -1
  9. niwrap_afni/afni/convert_surface.py +38 -1
  10. niwrap_afni/afni/dicom_hinfo.py +9 -2
  11. niwrap_afni/afni/dsetstat2p.py +19 -1
  12. niwrap_afni/afni/fat_proc_align_anat_pair.py +10 -1
  13. niwrap_afni/afni/fat_proc_convert_dcm_anat.py +16 -1
  14. niwrap_afni/afni/fat_roi_row.py +1 -4
  15. niwrap_afni/afni/fsread_annot.py +2 -2
  16. niwrap_afni/afni/imrotate.py +10 -1
  17. niwrap_afni/afni/myget.py +16 -3
  18. niwrap_afni/afni/nifti_tool.py +3 -2
  19. niwrap_afni/afni/p2dsetstat.py +19 -1
  20. niwrap_afni/afni/plugout_drive.py +93 -1
  21. niwrap_afni/afni/prompt_popup.py +46 -1
  22. niwrap_afni/afni/prompt_user.py +16 -1
  23. niwrap_afni/afni/rbox.py +170 -9
  24. niwrap_afni/afni/samp_bias.py +16 -1
  25. niwrap_afni/afni/sfim.py +9 -2
  26. niwrap_afni/afni/stimband.py +22 -3
  27. niwrap_afni/afni/surf_dist.py +47 -1
  28. niwrap_afni/afni/surf_fwhm.py +1 -5
  29. niwrap_afni/afni/surf_info.py +99 -2
  30. niwrap_afni/afni/surface_metrics.py +179 -172
  31. niwrap_afni/afni/tedana_wrapper_py.py +19 -1
  32. niwrap_afni/afni/v_1d_bport.py +12 -1
  33. niwrap_afni/afni/v_1d_correlate.py +39 -1
  34. niwrap_afni/afni/v_1d_marry.py +1 -2
  35. niwrap_afni/afni/v_1d_rplot.py +233 -4
  36. niwrap_afni/afni/v_1d_sem.py +157 -2
  37. niwrap_afni/afni/v_1d_tsort.py +10 -1
  38. niwrap_afni/afni/v_1ddot.py +5 -4
  39. niwrap_afni/afni/v_1deval.py +16 -1
  40. niwrap_afni/afni/v_1dgen_arma11.py +16 -1
  41. niwrap_afni/afni/v_3_droimaker.py +16 -1
  42. niwrap_afni/afni/v_3d_afnito3_d.py +34 -4
  43. niwrap_afni/afni/v_3d_afnito_niml.py +34 -2
  44. niwrap_afni/afni/v_3d_amp_to_rsfc.py +10 -9
  45. niwrap_afni/afni/v_3d_anova3.py +323 -20
  46. niwrap_afni/afni/v_3d_clip_level.py +38 -2
  47. niwrap_afni/afni/v_3d_clust_sim.py +275 -22
  48. niwrap_afni/afni/v_3d_cm.py +103 -2
  49. niwrap_afni/afni/v_3d_dtto_dwi.py +58 -4
  50. niwrap_afni/afni/v_3d_dwito_dt.py +299 -2
  51. niwrap_afni/afni/v_3d_ecm.py +24 -2
  52. niwrap_afni/afni/v_3d_fdr.py +14 -1
  53. niwrap_afni/afni/v_3d_gen_feature_dist.py +53 -1
  54. niwrap_afni/afni/v_3d_hist.py +14 -1
  55. niwrap_afni/afni/v_3d_icc.py +137 -2
  56. niwrap_afni/afni/v_3d_lfcd.py +24 -5
  57. niwrap_afni/afni/v_3d_lme.py +1 -3
  58. niwrap_afni/afni/v_3d_local_histog.py +32 -1
  59. niwrap_afni/afni/v_3d_lrflip.py +46 -1
  60. niwrap_afni/afni/v_3d_lss.py +107 -4
  61. niwrap_afni/afni/v_3d_mask_to_ascii.py +12 -4
  62. niwrap_afni/afni/v_3d_mema.py +301 -3
  63. niwrap_afni/afni/v_3d_mepfm.py +1 -2
  64. niwrap_afni/afni/v_3d_nlfim.py +487 -30
  65. niwrap_afni/afni/v_3d_nwarp_xyz.py +27 -14
  66. niwrap_afni/afni/v_3d_overlap.py +20 -6
  67. niwrap_afni/afni/v_3d_par2_afni.py +32 -1
  68. niwrap_afni/afni/v_3d_pfm.py +200 -2
  69. niwrap_afni/afni/v_3d_remlfit.py +41 -1
  70. niwrap_afni/afni/v_3d_roistats.py +1 -2
  71. niwrap_afni/afni/v_3d_rsfc.py +240 -6
  72. niwrap_afni/afni/v_3d_stat_clust.py +19 -1
  73. niwrap_afni/afni/v_3d_tcat.py +24 -5
  74. niwrap_afni/afni/v_3d_threeto_rgb.py +1 -2
  75. niwrap_afni/afni/v_3d_toy_prog.py +111 -1
  76. niwrap_afni/afni/v_3d_tsgen.py +18 -1
  77. niwrap_afni/afni/v_3d_tsort.py +10 -1
  78. niwrap_afni/afni/v_3d_tstat.py +25 -15
  79. niwrap_afni/afni/v_3d_undump.py +10 -1
  80. niwrap_afni/afni/v_3d_warp.py +236 -2
  81. niwrap_afni/afni/v_3d_wilcoxon.py +9 -7
  82. niwrap_afni/afni/v_3dbucket.py +14 -1
  83. niwrap_afni/afni/v_3dcalc.py +1 -1
  84. niwrap_afni/afni/v_3dcopy.py +31 -3
  85. niwrap_afni/afni/v_3dmask_svd.py +99 -2
  86. niwrap_afni/afni/v__4_daverage.py +11 -2
  87. niwrap_afni/afni/v__afni_env.py +19 -1
  88. niwrap_afni/afni/v__afni_refacer_run.py +36 -1
  89. niwrap_afni/afni/v__build_afni_xlib.py +21 -1
  90. niwrap_afni/afni/v__chauffeur_afni.py +184 -2
  91. niwrap_afni/afni/v__command_globb.py +13 -7
  92. niwrap_afni/afni/v__compute_oc_weights.py +16 -1
  93. niwrap_afni/afni/v__deblank_file_names.py +13 -2
  94. niwrap_afni/afni/v__dice_metric.py +18 -14
  95. niwrap_afni/afni/v__djunct_edgy_align_check.py +82 -10
  96. niwrap_afni/afni/v__djunct_montage_coordinator.py +10 -1
  97. niwrap_afni/afni/v__get_afni_res.py +3 -2
  98. niwrap_afni/afni/v__grad_flip_test.py +38 -42
  99. niwrap_afni/afni/v__grayplot.py +34 -1
  100. niwrap_afni/afni/v__help_afni.py +63 -2
  101. niwrap_afni/afni/v__make_label_table.py +14 -1
  102. niwrap_afni/afni/v__no_ext.py +9 -2
  103. niwrap_afni/afni/v__reorder.py +10 -1
  104. niwrap_afni/afni/v__skull_strip_touch_up.py +10 -1
  105. niwrap_afni/afni/v__suma_make_spec_caret.py +62 -2
  106. niwrap_afni/afni/v__suma_make_spec_fs.py +180 -2
  107. niwrap_afni/afni/v__to_mni_qwarpar.py +21 -1
  108. niwrap_afni/afni/v__to_rai.py +23 -7
  109. {niwrap_afni-0.5.0.dist-info → niwrap_afni-0.5.2.dist-info}/METADATA +1 -1
  110. {niwrap_afni-0.5.0.dist-info → niwrap_afni-0.5.2.dist-info}/RECORD +111 -111
  111. {niwrap_afni-0.5.0.dist-info → niwrap_afni-0.5.2.dist-info}/WHEEL +0 -0
@@ -6,7 +6,7 @@ import pathlib
6
6
  from styxdefs import *
7
7
 
8
8
  SURF_INFO_METADATA = Metadata(
9
- id="91fa2904287da85a4df485d2f8c7ffbc9ba1a073.boutiques",
9
+ id="869be3f2fd4b338333ddb5e88a1f6d232910e89e.boutiques",
10
10
  name="SurfInfo",
11
11
  package="afni",
12
12
  container_image_tag="afni/afni_make_build:AFNI_24.2.06",
@@ -19,12 +19,22 @@ SurfInfoParameters = typing.TypedDict('SurfInfoParameters', {
19
19
  "com": bool,
20
20
  "debug_level": typing.NotRequired[float | None],
21
21
  "detail_level": typing.NotRequired[float | None],
22
+ "n_node": bool,
23
+ "n_faceset": bool,
24
+ "n_tri": bool,
22
25
  "quiet": bool,
23
26
  "separator": typing.NotRequired[str | None],
24
27
  "input_surface": typing.NotRequired[str | None],
25
28
  "surface_state": typing.NotRequired[str | None],
26
29
  "surface_volume": typing.NotRequired[InputPathType | None],
27
30
  "spec_file": typing.NotRequired[InputPathType | None],
31
+ "novolreg": bool,
32
+ "noxform": bool,
33
+ "setenv": typing.NotRequired[str | None],
34
+ "trace": bool,
35
+ "extreme_trace": bool,
36
+ "nomall": bool,
37
+ "yesmall": bool,
28
38
  })
29
39
 
30
40
 
@@ -75,12 +85,22 @@ def surf_info_params(
75
85
  com: bool = False,
76
86
  debug_level: float | None = None,
77
87
  detail_level: float | None = None,
88
+ n_node: bool = False,
89
+ n_faceset: bool = False,
90
+ n_tri: bool = False,
78
91
  quiet: bool = False,
79
92
  separator: str | None = None,
80
93
  input_surface: str | None = None,
81
94
  surface_state: str | None = None,
82
95
  surface_volume: InputPathType | None = None,
83
96
  spec_file: InputPathType | None = None,
97
+ novolreg: bool = False,
98
+ noxform: bool = False,
99
+ setenv: str | None = None,
100
+ trace_: bool = False,
101
+ extreme_trace: bool = False,
102
+ nomall: bool = False,
103
+ yesmall: bool = False,
84
104
  ) -> SurfInfoParameters:
85
105
  """
86
106
  Build parameters.
@@ -90,6 +110,9 @@ def surf_info_params(
90
110
  com: Output the center of mass.
91
111
  debug_level: Debugging level (2 turns LocalHead ON).
92
112
  detail_level: Calculate surface metrics. 1=yes, 0=no.
113
+ n_node: Output the number of nodes.
114
+ n_faceset: Output the number of face sets.
115
+ n_tri: Output the number of triangles.
93
116
  quiet: Do not include the name of the parameter in output.
94
117
  separator: Use string SEP to separate parameter values. Default is ' ;\
95
118
  '.
@@ -97,6 +120,15 @@ def surf_info_params(
97
120
  surface_state: Specify surface type, state, and name.
98
121
  surface_volume: Specify a surface volume file.
99
122
  spec_file: Specify a surface specification (spec) file.
123
+ novolreg: Ignore any Rotate, Volreg, Tagalign, or WarpDrive\
124
+ transformations present in the Surface Volume.
125
+ noxform: Same as -novolreg.
126
+ setenv: Set environment variable ENVname to be ENVvalue. Quotes are\
127
+ necessary.
128
+ trace_: Turns on In/Out debug and Memory tracing.
129
+ extreme_trace: Turns on extreme tracing.
130
+ nomall: Turn off memory tracing.
131
+ yesmall: Turn on memory tracing (default).
100
132
  Returns:
101
133
  Parameter dictionary
102
134
  """
@@ -104,7 +136,16 @@ def surf_info_params(
104
136
  "__STYXTYPE__": "SurfInfo",
105
137
  "surface": surface,
106
138
  "com": com,
139
+ "n_node": n_node,
140
+ "n_faceset": n_faceset,
141
+ "n_tri": n_tri,
107
142
  "quiet": quiet,
143
+ "novolreg": novolreg,
144
+ "noxform": noxform,
145
+ "trace": trace_,
146
+ "extreme_trace": extreme_trace,
147
+ "nomall": nomall,
148
+ "yesmall": yesmall,
108
149
  }
109
150
  if debug_level is not None:
110
151
  params["debug_level"] = debug_level
@@ -120,6 +161,8 @@ def surf_info_params(
120
161
  params["surface_volume"] = surface_volume
121
162
  if spec_file is not None:
122
163
  params["spec_file"] = spec_file
164
+ if setenv is not None:
165
+ params["setenv"] = setenv
123
166
  return params
124
167
 
125
168
 
@@ -138,7 +181,6 @@ def surf_info_cargs(
138
181
  """
139
182
  cargs = []
140
183
  cargs.append("SurfInfo")
141
- cargs.append("[options]")
142
184
  cargs.append(execution.input_file(params.get("surface")))
143
185
  if params.get("com"):
144
186
  cargs.append("-COM")
@@ -152,6 +194,12 @@ def surf_info_cargs(
152
194
  "-detail",
153
195
  str(params.get("detail_level"))
154
196
  ])
197
+ if params.get("n_node"):
198
+ cargs.append("-N_Node")
199
+ if params.get("n_faceset"):
200
+ cargs.append("-N_FaceSet")
201
+ if params.get("n_tri"):
202
+ cargs.append("-N_Tri")
155
203
  if params.get("quiet"):
156
204
  cargs.append("-quiet")
157
205
  if params.get("separator") is not None:
@@ -179,6 +227,23 @@ def surf_info_cargs(
179
227
  "-spec",
180
228
  execution.input_file(params.get("spec_file"))
181
229
  ])
230
+ if params.get("novolreg"):
231
+ cargs.append("-novolreg")
232
+ if params.get("noxform"):
233
+ cargs.append("-noxform")
234
+ if params.get("setenv") is not None:
235
+ cargs.extend([
236
+ "-setenv",
237
+ params.get("setenv")
238
+ ])
239
+ if params.get("trace"):
240
+ cargs.append("-trace")
241
+ if params.get("extreme_trace"):
242
+ cargs.append("-TRACE")
243
+ if params.get("nomall"):
244
+ cargs.append("-nomall")
245
+ if params.get("yesmall"):
246
+ cargs.append("-yesmall")
182
247
  return cargs
183
248
 
184
249
 
@@ -231,12 +296,22 @@ def surf_info(
231
296
  com: bool = False,
232
297
  debug_level: float | None = None,
233
298
  detail_level: float | None = None,
299
+ n_node: bool = False,
300
+ n_faceset: bool = False,
301
+ n_tri: bool = False,
234
302
  quiet: bool = False,
235
303
  separator: str | None = None,
236
304
  input_surface: str | None = None,
237
305
  surface_state: str | None = None,
238
306
  surface_volume: InputPathType | None = None,
239
307
  spec_file: InputPathType | None = None,
308
+ novolreg: bool = False,
309
+ noxform: bool = False,
310
+ setenv: str | None = None,
311
+ trace_: bool = False,
312
+ extreme_trace: bool = False,
313
+ nomall: bool = False,
314
+ yesmall: bool = False,
240
315
  runner: Runner | None = None,
241
316
  ) -> SurfInfoOutputs:
242
317
  """
@@ -251,6 +326,9 @@ def surf_info(
251
326
  com: Output the center of mass.
252
327
  debug_level: Debugging level (2 turns LocalHead ON).
253
328
  detail_level: Calculate surface metrics. 1=yes, 0=no.
329
+ n_node: Output the number of nodes.
330
+ n_faceset: Output the number of face sets.
331
+ n_tri: Output the number of triangles.
254
332
  quiet: Do not include the name of the parameter in output.
255
333
  separator: Use string SEP to separate parameter values. Default is ' ;\
256
334
  '.
@@ -258,6 +336,15 @@ def surf_info(
258
336
  surface_state: Specify surface type, state, and name.
259
337
  surface_volume: Specify a surface volume file.
260
338
  spec_file: Specify a surface specification (spec) file.
339
+ novolreg: Ignore any Rotate, Volreg, Tagalign, or WarpDrive\
340
+ transformations present in the Surface Volume.
341
+ noxform: Same as -novolreg.
342
+ setenv: Set environment variable ENVname to be ENVvalue. Quotes are\
343
+ necessary.
344
+ trace_: Turns on In/Out debug and Memory tracing.
345
+ extreme_trace: Turns on extreme tracing.
346
+ nomall: Turn off memory tracing.
347
+ yesmall: Turn on memory tracing (default).
261
348
  runner: Command runner.
262
349
  Returns:
263
350
  NamedTuple of outputs (described in `SurfInfoOutputs`).
@@ -269,12 +356,22 @@ def surf_info(
269
356
  com=com,
270
357
  debug_level=debug_level,
271
358
  detail_level=detail_level,
359
+ n_node=n_node,
360
+ n_faceset=n_faceset,
361
+ n_tri=n_tri,
272
362
  quiet=quiet,
273
363
  separator=separator,
274
364
  input_surface=input_surface,
275
365
  surface_state=surface_state,
276
366
  surface_volume=surface_volume,
277
367
  spec_file=spec_file,
368
+ novolreg=novolreg,
369
+ noxform=noxform,
370
+ setenv=setenv,
371
+ trace_=trace_,
372
+ extreme_trace=extreme_trace,
373
+ nomall=nomall,
374
+ yesmall=yesmall,
278
375
  )
279
376
  return surf_info_execute(params, execution)
280
377
 
@@ -6,7 +6,7 @@ import pathlib
6
6
  from styxdefs import *
7
7
 
8
8
  SURFACE_METRICS_METADATA = Metadata(
9
- id="5e58dccd9bd1540ac2ae342efc61a7a9fc45c4c2.boutiques",
9
+ id="4e6e190bf1b36c5ffeddbab85844677bc3f68fe2.boutiques",
10
10
  name="SurfaceMetrics",
11
11
  package="afni",
12
12
  container_image_tag="afni/afni_make_build:AFNI_24.2.06",
@@ -15,26 +15,25 @@ SURFACE_METRICS_METADATA = Metadata(
15
15
 
16
16
  SurfaceMetricsParameters = typing.TypedDict('SurfaceMetricsParameters', {
17
17
  "__STYX_TYPE__": typing.Literal["SurfaceMetrics"],
18
+ "volume": bool,
19
+ "convexity": bool,
20
+ "closest_node": typing.NotRequired[InputPathType | None],
21
+ "area": bool,
22
+ "tri_sines": bool,
23
+ "tri_CoSines": bool,
24
+ "tri_angles": bool,
25
+ "node_angles": bool,
26
+ "curvature": bool,
27
+ "edges": bool,
28
+ "node_normals": bool,
29
+ "face_normals": bool,
30
+ "normals_scale": typing.NotRequired[float | None],
31
+ "coords": bool,
32
+ "sph_coords": bool,
33
+ "sph_coords_center": typing.NotRequired[list[float] | None],
34
+ "boundary_nodes": bool,
35
+ "boundary_triangles": bool,
18
36
  "internal_nodes": bool,
19
- "internal_nodes_1": bool,
20
- "internal_nodes_2": bool,
21
- "internal_nodes_3": bool,
22
- "internal_nodes_4": bool,
23
- "internal_nodes_5": bool,
24
- "internal_nodes_6": bool,
25
- "internal_nodes_7": bool,
26
- "internal_nodes_8": bool,
27
- "internal_nodes_9": bool,
28
- "internal_nodes_10": bool,
29
- "internal_nodes_11": bool,
30
- "internal_nodes_12": bool,
31
- "internal_nodes_13": bool,
32
- "internal_nodes_14": bool,
33
- "internal_nodes_15": bool,
34
- "internal_nodes_16": bool,
35
- "internal_nodes_17": bool,
36
- "internal_nodes_18": bool,
37
- "internal_nodes_19": bool,
38
37
  "surf1": str,
39
38
  "tlrc": bool,
40
39
  "prefix": typing.NotRequired[str | None],
@@ -82,26 +81,25 @@ class SurfaceMetricsOutputs(typing.NamedTuple):
82
81
 
83
82
  def surface_metrics_params(
84
83
  surf1: str,
84
+ volume: bool = False,
85
+ convexity: bool = False,
86
+ closest_node: InputPathType | None = None,
87
+ area: bool = False,
88
+ tri_sines: bool = False,
89
+ tri_co_sines: bool = False,
90
+ tri_angles: bool = False,
91
+ node_angles: bool = False,
92
+ curvature: bool = False,
93
+ edges: bool = False,
94
+ node_normals: bool = False,
95
+ face_normals: bool = False,
96
+ normals_scale: float | None = None,
97
+ coords: bool = False,
98
+ sph_coords: bool = False,
99
+ sph_coords_center: list[float] | None = None,
100
+ boundary_nodes: bool = False,
101
+ boundary_triangles: bool = False,
85
102
  internal_nodes: bool = False,
86
- internal_nodes_1: bool = False,
87
- internal_nodes_2: bool = False,
88
- internal_nodes_3: bool = False,
89
- internal_nodes_4: bool = False,
90
- internal_nodes_5: bool = False,
91
- internal_nodes_6: bool = False,
92
- internal_nodes_7: bool = False,
93
- internal_nodes_8: bool = False,
94
- internal_nodes_9: bool = False,
95
- internal_nodes_10: bool = False,
96
- internal_nodes_11: bool = False,
97
- internal_nodes_12: bool = False,
98
- internal_nodes_13: bool = False,
99
- internal_nodes_14: bool = False,
100
- internal_nodes_15: bool = False,
101
- internal_nodes_16: bool = False,
102
- internal_nodes_17: bool = False,
103
- internal_nodes_18: bool = False,
104
- internal_nodes_19: bool = False,
105
103
  tlrc: bool = False,
106
104
  prefix: str | None = None,
107
105
  ) -> SurfaceMetricsParameters:
@@ -110,26 +108,27 @@ def surface_metrics_params(
110
108
 
111
109
  Args:
112
110
  surf1: Specifies the input surface.
111
+ volume: Calculates the volume of a surface.
112
+ convexity: Output surface convexity at each node.
113
+ closest_node: Find the closest node to each XYZ triplet in XYZ_LIST.1D.
114
+ area: Output area of each triangle.
115
+ tri_sines: Output sine of angles at nodes forming triangles.
116
+ tri_co_sines: Output both cosines and sines of angles at nodes forming\
117
+ triangles.
118
+ tri_angles: Unsigned angles in radians of triangles.
119
+ node_angles: Unsigned angles in radians at nodes of surface.
120
+ curvature: Output curvature at each node.
121
+ edges: Outputs info on each edge.
122
+ node_normals: Outputs segments along node normals.
123
+ face_normals: Outputs segments along triangle normals.
124
+ normals_scale: Scale the normals by a given factor.
125
+ coords: Output coordinates of each node after any transformation.
126
+ sph_coords: Output spherical coordinates of each node.
127
+ sph_coords_center: Shift each node by x y z before calculating\
128
+ spherical coordinates.
129
+ boundary_nodes: Output nodes that form a boundary of a surface.
130
+ boundary_triangles: Output triangles that form a boundary of a surface.
113
131
  internal_nodes: Output nodes that are not a boundary.
114
- internal_nodes_1: Output nodes that are not a boundary.
115
- internal_nodes_2: Output nodes that are not a boundary.
116
- internal_nodes_3: Output nodes that are not a boundary.
117
- internal_nodes_4: Output nodes that are not a boundary.
118
- internal_nodes_5: Output nodes that are not a boundary.
119
- internal_nodes_6: Output nodes that are not a boundary.
120
- internal_nodes_7: Output nodes that are not a boundary.
121
- internal_nodes_8: Output nodes that are not a boundary.
122
- internal_nodes_9: Output nodes that are not a boundary.
123
- internal_nodes_10: Output nodes that are not a boundary.
124
- internal_nodes_11: Output nodes that are not a boundary.
125
- internal_nodes_12: Output nodes that are not a boundary.
126
- internal_nodes_13: Output nodes that are not a boundary.
127
- internal_nodes_14: Output nodes that are not a boundary.
128
- internal_nodes_15: Output nodes that are not a boundary.
129
- internal_nodes_16: Output nodes that are not a boundary.
130
- internal_nodes_17: Output nodes that are not a boundary.
131
- internal_nodes_18: Output nodes that are not a boundary.
132
- internal_nodes_19: Output nodes that are not a boundary.
133
132
  tlrc: Apply Talairach transform to surface.
134
133
  prefix: Use prefix for output files.
135
134
  Returns:
@@ -137,29 +136,31 @@ def surface_metrics_params(
137
136
  """
138
137
  params = {
139
138
  "__STYXTYPE__": "SurfaceMetrics",
139
+ "volume": volume,
140
+ "convexity": convexity,
141
+ "area": area,
142
+ "tri_sines": tri_sines,
143
+ "tri_CoSines": tri_co_sines,
144
+ "tri_angles": tri_angles,
145
+ "node_angles": node_angles,
146
+ "curvature": curvature,
147
+ "edges": edges,
148
+ "node_normals": node_normals,
149
+ "face_normals": face_normals,
150
+ "coords": coords,
151
+ "sph_coords": sph_coords,
152
+ "boundary_nodes": boundary_nodes,
153
+ "boundary_triangles": boundary_triangles,
140
154
  "internal_nodes": internal_nodes,
141
- "internal_nodes_1": internal_nodes_1,
142
- "internal_nodes_2": internal_nodes_2,
143
- "internal_nodes_3": internal_nodes_3,
144
- "internal_nodes_4": internal_nodes_4,
145
- "internal_nodes_5": internal_nodes_5,
146
- "internal_nodes_6": internal_nodes_6,
147
- "internal_nodes_7": internal_nodes_7,
148
- "internal_nodes_8": internal_nodes_8,
149
- "internal_nodes_9": internal_nodes_9,
150
- "internal_nodes_10": internal_nodes_10,
151
- "internal_nodes_11": internal_nodes_11,
152
- "internal_nodes_12": internal_nodes_12,
153
- "internal_nodes_13": internal_nodes_13,
154
- "internal_nodes_14": internal_nodes_14,
155
- "internal_nodes_15": internal_nodes_15,
156
- "internal_nodes_16": internal_nodes_16,
157
- "internal_nodes_17": internal_nodes_17,
158
- "internal_nodes_18": internal_nodes_18,
159
- "internal_nodes_19": internal_nodes_19,
160
155
  "surf1": surf1,
161
156
  "tlrc": tlrc,
162
157
  }
158
+ if closest_node is not None:
159
+ params["closest_node"] = closest_node
160
+ if normals_scale is not None:
161
+ params["normals_scale"] = normals_scale
162
+ if sph_coords_center is not None:
163
+ params["sph_coords_center"] = sph_coords_center
163
164
  if prefix is not None:
164
165
  params["prefix"] = prefix
165
166
  return params
@@ -180,46 +181,53 @@ def surface_metrics_cargs(
180
181
  """
181
182
  cargs = []
182
183
  cargs.append("SurfaceMetrics")
184
+ if params.get("volume"):
185
+ cargs.append("-vol")
186
+ if params.get("convexity"):
187
+ cargs.append("-conv")
188
+ if params.get("closest_node") is not None:
189
+ cargs.extend([
190
+ "-closest_node",
191
+ execution.input_file(params.get("closest_node"))
192
+ ])
193
+ if params.get("area"):
194
+ cargs.append("-area")
195
+ if params.get("tri_sines"):
196
+ cargs.append("-tri_sines")
197
+ if params.get("tri_CoSines"):
198
+ cargs.append("-tri_CoSines")
199
+ if params.get("tri_angles"):
200
+ cargs.append("-tri_angles")
201
+ if params.get("node_angles"):
202
+ cargs.append("-node_angles")
203
+ if params.get("curvature"):
204
+ cargs.append("-curv")
205
+ if params.get("edges"):
206
+ cargs.append("-edges")
207
+ if params.get("node_normals"):
208
+ cargs.append("-node_normals")
209
+ if params.get("face_normals"):
210
+ cargs.append("-face_normals")
211
+ if params.get("normals_scale") is not None:
212
+ cargs.extend([
213
+ "-normals_scale",
214
+ str(params.get("normals_scale"))
215
+ ])
216
+ if params.get("coords"):
217
+ cargs.append("-coords")
218
+ if params.get("sph_coords"):
219
+ cargs.append("-sph_coords")
220
+ if params.get("sph_coords_center") is not None:
221
+ cargs.extend([
222
+ "-sph_coords_center",
223
+ *map(str, params.get("sph_coords_center"))
224
+ ])
225
+ if params.get("boundary_nodes"):
226
+ cargs.append("-boundary_nodes")
227
+ if params.get("boundary_triangles"):
228
+ cargs.append("-boundary_triangles")
183
229
  if params.get("internal_nodes"):
184
230
  cargs.append("-internal_nodes")
185
- if params.get("internal_nodes_1"):
186
- cargs.append("-internal_nodes")
187
- if params.get("internal_nodes_2"):
188
- cargs.append("-internal_nodes")
189
- if params.get("internal_nodes_3"):
190
- cargs.append("-internal_nodes")
191
- if params.get("internal_nodes_4"):
192
- cargs.append("-internal_nodes")
193
- if params.get("internal_nodes_5"):
194
- cargs.append("-internal_nodes")
195
- if params.get("internal_nodes_6"):
196
- cargs.append("-internal_nodes")
197
- if params.get("internal_nodes_7"):
198
- cargs.append("-internal_nodes")
199
- if params.get("internal_nodes_8"):
200
- cargs.append("-internal_nodes")
201
- if params.get("internal_nodes_9"):
202
- cargs.append("-internal_nodes")
203
- if params.get("internal_nodes_10"):
204
- cargs.append("-internal_nodes")
205
- if params.get("internal_nodes_11"):
206
- cargs.append("-internal_nodes")
207
- if params.get("internal_nodes_12"):
208
- cargs.append("-internal_nodes")
209
- if params.get("internal_nodes_13"):
210
- cargs.append("-internal_nodes")
211
- if params.get("internal_nodes_14"):
212
- cargs.append("-internal_nodes")
213
- if params.get("internal_nodes_15"):
214
- cargs.append("-internal_nodes")
215
- if params.get("internal_nodes_16"):
216
- cargs.append("-internal_nodes")
217
- if params.get("internal_nodes_17"):
218
- cargs.append("-internal_nodes")
219
- if params.get("internal_nodes_18"):
220
- cargs.append("-internal_nodes")
221
- if params.get("internal_nodes_19"):
222
- cargs.append("-internal_nodes")
223
231
  cargs.extend([
224
232
  "-SURF_1",
225
233
  params.get("surf1")
@@ -279,26 +287,25 @@ def surface_metrics_execute(
279
287
 
280
288
  def surface_metrics(
281
289
  surf1: str,
290
+ volume: bool = False,
291
+ convexity: bool = False,
292
+ closest_node: InputPathType | None = None,
293
+ area: bool = False,
294
+ tri_sines: bool = False,
295
+ tri_co_sines: bool = False,
296
+ tri_angles: bool = False,
297
+ node_angles: bool = False,
298
+ curvature: bool = False,
299
+ edges: bool = False,
300
+ node_normals: bool = False,
301
+ face_normals: bool = False,
302
+ normals_scale: float | None = None,
303
+ coords: bool = False,
304
+ sph_coords: bool = False,
305
+ sph_coords_center: list[float] | None = None,
306
+ boundary_nodes: bool = False,
307
+ boundary_triangles: bool = False,
282
308
  internal_nodes: bool = False,
283
- internal_nodes_1: bool = False,
284
- internal_nodes_2: bool = False,
285
- internal_nodes_3: bool = False,
286
- internal_nodes_4: bool = False,
287
- internal_nodes_5: bool = False,
288
- internal_nodes_6: bool = False,
289
- internal_nodes_7: bool = False,
290
- internal_nodes_8: bool = False,
291
- internal_nodes_9: bool = False,
292
- internal_nodes_10: bool = False,
293
- internal_nodes_11: bool = False,
294
- internal_nodes_12: bool = False,
295
- internal_nodes_13: bool = False,
296
- internal_nodes_14: bool = False,
297
- internal_nodes_15: bool = False,
298
- internal_nodes_16: bool = False,
299
- internal_nodes_17: bool = False,
300
- internal_nodes_18: bool = False,
301
- internal_nodes_19: bool = False,
302
309
  tlrc: bool = False,
303
310
  prefix: str | None = None,
304
311
  runner: Runner | None = None,
@@ -312,26 +319,27 @@ def surface_metrics(
312
319
 
313
320
  Args:
314
321
  surf1: Specifies the input surface.
322
+ volume: Calculates the volume of a surface.
323
+ convexity: Output surface convexity at each node.
324
+ closest_node: Find the closest node to each XYZ triplet in XYZ_LIST.1D.
325
+ area: Output area of each triangle.
326
+ tri_sines: Output sine of angles at nodes forming triangles.
327
+ tri_co_sines: Output both cosines and sines of angles at nodes forming\
328
+ triangles.
329
+ tri_angles: Unsigned angles in radians of triangles.
330
+ node_angles: Unsigned angles in radians at nodes of surface.
331
+ curvature: Output curvature at each node.
332
+ edges: Outputs info on each edge.
333
+ node_normals: Outputs segments along node normals.
334
+ face_normals: Outputs segments along triangle normals.
335
+ normals_scale: Scale the normals by a given factor.
336
+ coords: Output coordinates of each node after any transformation.
337
+ sph_coords: Output spherical coordinates of each node.
338
+ sph_coords_center: Shift each node by x y z before calculating\
339
+ spherical coordinates.
340
+ boundary_nodes: Output nodes that form a boundary of a surface.
341
+ boundary_triangles: Output triangles that form a boundary of a surface.
315
342
  internal_nodes: Output nodes that are not a boundary.
316
- internal_nodes_1: Output nodes that are not a boundary.
317
- internal_nodes_2: Output nodes that are not a boundary.
318
- internal_nodes_3: Output nodes that are not a boundary.
319
- internal_nodes_4: Output nodes that are not a boundary.
320
- internal_nodes_5: Output nodes that are not a boundary.
321
- internal_nodes_6: Output nodes that are not a boundary.
322
- internal_nodes_7: Output nodes that are not a boundary.
323
- internal_nodes_8: Output nodes that are not a boundary.
324
- internal_nodes_9: Output nodes that are not a boundary.
325
- internal_nodes_10: Output nodes that are not a boundary.
326
- internal_nodes_11: Output nodes that are not a boundary.
327
- internal_nodes_12: Output nodes that are not a boundary.
328
- internal_nodes_13: Output nodes that are not a boundary.
329
- internal_nodes_14: Output nodes that are not a boundary.
330
- internal_nodes_15: Output nodes that are not a boundary.
331
- internal_nodes_16: Output nodes that are not a boundary.
332
- internal_nodes_17: Output nodes that are not a boundary.
333
- internal_nodes_18: Output nodes that are not a boundary.
334
- internal_nodes_19: Output nodes that are not a boundary.
335
343
  tlrc: Apply Talairach transform to surface.
336
344
  prefix: Use prefix for output files.
337
345
  runner: Command runner.
@@ -341,26 +349,25 @@ def surface_metrics(
341
349
  runner = runner or get_global_runner()
342
350
  execution = runner.start_execution(SURFACE_METRICS_METADATA)
343
351
  params = surface_metrics_params(
352
+ volume=volume,
353
+ convexity=convexity,
354
+ closest_node=closest_node,
355
+ area=area,
356
+ tri_sines=tri_sines,
357
+ tri_co_sines=tri_co_sines,
358
+ tri_angles=tri_angles,
359
+ node_angles=node_angles,
360
+ curvature=curvature,
361
+ edges=edges,
362
+ node_normals=node_normals,
363
+ face_normals=face_normals,
364
+ normals_scale=normals_scale,
365
+ coords=coords,
366
+ sph_coords=sph_coords,
367
+ sph_coords_center=sph_coords_center,
368
+ boundary_nodes=boundary_nodes,
369
+ boundary_triangles=boundary_triangles,
344
370
  internal_nodes=internal_nodes,
345
- internal_nodes_1=internal_nodes_1,
346
- internal_nodes_2=internal_nodes_2,
347
- internal_nodes_3=internal_nodes_3,
348
- internal_nodes_4=internal_nodes_4,
349
- internal_nodes_5=internal_nodes_5,
350
- internal_nodes_6=internal_nodes_6,
351
- internal_nodes_7=internal_nodes_7,
352
- internal_nodes_8=internal_nodes_8,
353
- internal_nodes_9=internal_nodes_9,
354
- internal_nodes_10=internal_nodes_10,
355
- internal_nodes_11=internal_nodes_11,
356
- internal_nodes_12=internal_nodes_12,
357
- internal_nodes_13=internal_nodes_13,
358
- internal_nodes_14=internal_nodes_14,
359
- internal_nodes_15=internal_nodes_15,
360
- internal_nodes_16=internal_nodes_16,
361
- internal_nodes_17=internal_nodes_17,
362
- internal_nodes_18=internal_nodes_18,
363
- internal_nodes_19=internal_nodes_19,
364
371
  surf1=surf1,
365
372
  tlrc=tlrc,
366
373
  prefix=prefix,