niwrap-freesurfer 0.5.1__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-freesurfer might be problematic. Click here for more details.

Files changed (153) hide show
  1. niwrap_freesurfer/freesurfer/__init__.py +0 -11
  2. niwrap_freesurfer/freesurfer/annot2std.py +32 -1
  3. niwrap_freesurfer/freesurfer/aparc2feat.py +19 -1
  4. niwrap_freesurfer/freesurfer/bbregister.py +143 -4
  5. niwrap_freesurfer/freesurfer/bmedits2surf.py +2 -2
  6. niwrap_freesurfer/freesurfer/compute_interrater_variability_csh.py +20 -2
  7. niwrap_freesurfer/freesurfer/compute_label_volumes_csh.py +17 -2
  8. niwrap_freesurfer/freesurfer/conf2hires.py +59 -1
  9. niwrap_freesurfer/freesurfer/connected_components.py +34 -2
  10. niwrap_freesurfer/freesurfer/dcmdir_info_mgh.py +3 -2
  11. niwrap_freesurfer/freesurfer/dcmdjpeg_fs.py +2 -2
  12. niwrap_freesurfer/freesurfer/dcmdrle_fs.py +2 -2
  13. niwrap_freesurfer/freesurfer/dicom_rename.py +21 -2
  14. niwrap_freesurfer/freesurfer/dmri_bset.py +14 -2
  15. niwrap_freesurfer/freesurfer/dmri_forrest.py +10 -1
  16. niwrap_freesurfer/freesurfer/dmri_mergepaths.py +2 -2
  17. niwrap_freesurfer/freesurfer/dmri_pathstats.py +2 -2
  18. niwrap_freesurfer/freesurfer/dmri_stats_ac.py +1 -3
  19. niwrap_freesurfer/freesurfer/exvivo_hemi_proc.py +10 -1
  20. niwrap_freesurfer/freesurfer/fiducials_calibration.py +15 -1
  21. niwrap_freesurfer/freesurfer/fiducials_correction.py +10 -3
  22. niwrap_freesurfer/freesurfer/fix_subject_corrected_rh.py +3 -2
  23. niwrap_freesurfer/freesurfer/fix_subject_rh.py +3 -2
  24. niwrap_freesurfer/freesurfer/fs_check_version.py +19 -1
  25. niwrap_freesurfer/freesurfer/fs_spmreg_glnxa64.py +19 -4
  26. niwrap_freesurfer/freesurfer/fs_temp_file.py +36 -1
  27. niwrap_freesurfer/freesurfer/fs_update.py +19 -1
  28. niwrap_freesurfer/freesurfer/fsl_sub_mgh.py +1 -2
  29. niwrap_freesurfer/freesurfer/fsr_import.py +55 -5
  30. niwrap_freesurfer/freesurfer/fvcompare.py +10 -1
  31. niwrap_freesurfer/freesurfer/gca_apply.py +3 -2
  32. niwrap_freesurfer/freesurfer/gdcmconv_fs.py +2 -2
  33. niwrap_freesurfer/freesurfer/get_label_thickness.py +1 -2
  34. niwrap_freesurfer/freesurfer/groupstats.py +97 -1
  35. niwrap_freesurfer/freesurfer/groupstatsdiff.py +4 -4
  36. niwrap_freesurfer/freesurfer/hiam_make_surfaces.py +1 -2
  37. niwrap_freesurfer/freesurfer/histo_synthesize.py +1 -2
  38. niwrap_freesurfer/freesurfer/inflate_subject_lh.py +3 -2
  39. niwrap_freesurfer/freesurfer/inflate_subject_new_lh.py +3 -3
  40. niwrap_freesurfer/freesurfer/inflate_subject_new_rh.py +3 -2
  41. niwrap_freesurfer/freesurfer/inflate_subject_rh.py +3 -2
  42. niwrap_freesurfer/freesurfer/inflate_subject_sc.py +28 -3
  43. niwrap_freesurfer/freesurfer/irepifitvol_glnx64.py +2 -2
  44. niwrap_freesurfer/freesurfer/is_surface.py +3 -2
  45. niwrap_freesurfer/freesurfer/isolate_labels_csh.py +17 -2
  46. niwrap_freesurfer/freesurfer/label_subject_flash.py +2 -2
  47. niwrap_freesurfer/freesurfer/label_subject_mixed.py +2 -2
  48. niwrap_freesurfer/freesurfer/listsubj.py +82 -2
  49. niwrap_freesurfer/freesurfer/long_stats_combine.py +1 -2
  50. niwrap_freesurfer/freesurfer/long_stats_tps.py +7 -7
  51. niwrap_freesurfer/freesurfer/long_submit_jobs.py +1 -5
  52. niwrap_freesurfer/freesurfer/longmc.py +10 -1
  53. niwrap_freesurfer/freesurfer/lta_convert.py +157 -1
  54. niwrap_freesurfer/freesurfer/make_average_volume.py +19 -1
  55. niwrap_freesurfer/freesurfer/make_folding_atlas.py +10 -1
  56. niwrap_freesurfer/freesurfer/map_all_labels_lh.py +11 -3
  57. niwrap_freesurfer/freesurfer/map_central_sulcus.py +2 -2
  58. niwrap_freesurfer/freesurfer/merge_stats_tables.py +58 -35
  59. niwrap_freesurfer/freesurfer/mideface.py +121 -14
  60. niwrap_freesurfer/freesurfer/mni152reg.py +2 -2
  61. niwrap_freesurfer/freesurfer/morph_only_subject_lh.py +3 -2
  62. niwrap_freesurfer/freesurfer/morph_only_subject_rh.py +3 -2
  63. niwrap_freesurfer/freesurfer/morph_rgb_lh.py +3 -2
  64. niwrap_freesurfer/freesurfer/morph_rgb_rh.py +3 -2
  65. niwrap_freesurfer/freesurfer/morph_subject_lh.py +3 -2
  66. niwrap_freesurfer/freesurfer/morph_subject_rh.py +3 -2
  67. niwrap_freesurfer/freesurfer/morph_tables_lh.py +3 -2
  68. niwrap_freesurfer/freesurfer/morph_tables_rh.py +3 -2
  69. niwrap_freesurfer/freesurfer/mri_aparc2aseg.py +10 -1
  70. niwrap_freesurfer/freesurfer/mri_apply_bias.py +1 -2
  71. niwrap_freesurfer/freesurfer/mri_average.py +10 -1
  72. niwrap_freesurfer/freesurfer/mri_brain_volume.py +23 -2
  73. niwrap_freesurfer/freesurfer/mri_ca_label.py +603 -2
  74. niwrap_freesurfer/freesurfer/mri_ca_train.py +10 -1
  75. niwrap_freesurfer/freesurfer/mri_convert.py +188 -2
  76. niwrap_freesurfer/freesurfer/mri_fuse_segmentations.py +10 -3
  77. niwrap_freesurfer/freesurfer/mri_gcab_train.py +15 -1
  78. niwrap_freesurfer/freesurfer/mri_gdfglm.py +13 -1
  79. niwrap_freesurfer/freesurfer/mri_gtmpvc.py +19 -1
  80. niwrap_freesurfer/freesurfer/mri_hausdorff_dist.py +1 -2
  81. niwrap_freesurfer/freesurfer/mri_head.py +19 -1
  82. niwrap_freesurfer/freesurfer/mri_jacobian.py +10 -1
  83. niwrap_freesurfer/freesurfer/mri_nl_align.py +27 -1
  84. niwrap_freesurfer/freesurfer/mri_relabel_nonwm_hypos.py +3 -3
  85. niwrap_freesurfer/freesurfer/mri_reorient_lr_csh.py +2 -2
  86. niwrap_freesurfer/freesurfer/mri_seg_diff.py +14 -1
  87. niwrap_freesurfer/freesurfer/mri_twoclass.py +1 -2
  88. niwrap_freesurfer/freesurfer/mri_validate_skull_stripped.py +2 -2
  89. niwrap_freesurfer/freesurfer/mri_warp_convert.py +131 -1
  90. niwrap_freesurfer/freesurfer/mri_z2p.py +37 -1
  91. niwrap_freesurfer/freesurfer/mris_add_template.py +11 -1
  92. niwrap_freesurfer/freesurfer/mris_apply_reg.py +1 -2
  93. niwrap_freesurfer/freesurfer/mris_curvature_stats.py +419 -7
  94. niwrap_freesurfer/freesurfer/mris_diff.py +255 -1
  95. niwrap_freesurfer/freesurfer/mris_distance_map.py +1 -2
  96. niwrap_freesurfer/freesurfer/mris_errors.py +1 -2
  97. niwrap_freesurfer/freesurfer/mris_info.py +45 -46
  98. niwrap_freesurfer/freesurfer/mris_label_calc.py +14 -1
  99. niwrap_freesurfer/freesurfer/mris_map_cuts.py +1 -2
  100. niwrap_freesurfer/freesurfer/mris_nudge.py +1 -2
  101. niwrap_freesurfer/freesurfer/mris_place_surface.py +1 -2
  102. niwrap_freesurfer/freesurfer/mris_preproc.py +16 -2
  103. niwrap_freesurfer/freesurfer/mris_spherical_average.py +93 -8
  104. niwrap_freesurfer/freesurfer/mris_thickness_diff.py +1 -5
  105. niwrap_freesurfer/freesurfer/mris_volmask_vtk.py +2 -2
  106. niwrap_freesurfer/freesurfer/pctsurfcon.py +2 -2
  107. niwrap_freesurfer/freesurfer/plot_structure_stats_tcl.py +2 -2
  108. niwrap_freesurfer/freesurfer/post_recon_all.py +39 -2
  109. niwrap_freesurfer/freesurfer/predict_v1_sh.py +11 -2
  110. niwrap_freesurfer/freesurfer/print_unique_labels_csh.py +34 -3
  111. niwrap_freesurfer/freesurfer/rbbr.py +37 -1
  112. niwrap_freesurfer/freesurfer/rca_base_init.py +3 -2
  113. niwrap_freesurfer/freesurfer/rca_config.py +3 -2
  114. niwrap_freesurfer/freesurfer/rca_config2csh.py +3 -2
  115. niwrap_freesurfer/freesurfer/recon_all.py +75 -1
  116. niwrap_freesurfer/freesurfer/register_elderly_subject.py +2 -2
  117. niwrap_freesurfer/freesurfer/reinflate_subject_lh.py +3 -2
  118. niwrap_freesurfer/freesurfer/reinflate_subject_rh.py +3 -2
  119. niwrap_freesurfer/freesurfer/renormalize_subject_keep_editting.py +13 -1
  120. niwrap_freesurfer/freesurfer/rtview.py +34 -1
  121. niwrap_freesurfer/freesurfer/run_qdec_glm.py +3 -2
  122. niwrap_freesurfer/freesurfer/samseg.py +14 -1
  123. niwrap_freesurfer/freesurfer/samseg_long.py +17 -8
  124. niwrap_freesurfer/freesurfer/samsegmesh2surf.py +5 -7
  125. niwrap_freesurfer/freesurfer/seg2filled.py +4 -4
  126. niwrap_freesurfer/freesurfer/segment_subject.py +2 -2
  127. niwrap_freesurfer/freesurfer/segment_subject_old_skull_strip.py +4 -4
  128. niwrap_freesurfer/freesurfer/segment_subject_sc.py +4 -4
  129. niwrap_freesurfer/freesurfer/segment_subject_t2_auto_estimate_alveus_ml.py +11 -1
  130. niwrap_freesurfer/freesurfer/segpons.py +2 -2
  131. niwrap_freesurfer/freesurfer/sphere_subject_lh.py +3 -2
  132. niwrap_freesurfer/freesurfer/sphere_subject_rh.py +3 -2
  133. niwrap_freesurfer/freesurfer/talairach.py +4 -4
  134. niwrap_freesurfer/freesurfer/trac_all.py +283 -1
  135. niwrap_freesurfer/freesurfer/train_gcs_atlas.py +19 -1
  136. niwrap_freesurfer/freesurfer/update_needed.py +13 -2
  137. niwrap_freesurfer/freesurfer/vertexvol.py +19 -1
  138. niwrap_freesurfer/freesurfer/vol2subfield.py +72 -1
  139. niwrap_freesurfer/freesurfer/wmsaseg.py +2 -2
  140. {niwrap_freesurfer-0.5.1.dist-info → niwrap_freesurfer-0.5.2.dist-info}/METADATA +1 -1
  141. {niwrap_freesurfer-0.5.1.dist-info → niwrap_freesurfer-0.5.2.dist-info}/RECORD +142 -153
  142. niwrap_freesurfer/freesurfer/bet_fsl.py +0 -441
  143. niwrap_freesurfer/freesurfer/epidewarp_fsl.py +0 -439
  144. niwrap_freesurfer/freesurfer/flirt_fsl.py +0 -604
  145. niwrap_freesurfer/freesurfer/fscalc_fsl.py +0 -196
  146. niwrap_freesurfer/freesurfer/fsfirst_fsl.py +0 -166
  147. niwrap_freesurfer/freesurfer/fslmaths_fsl.py +0 -196
  148. niwrap_freesurfer/freesurfer/fslorient_fsl.py +0 -207
  149. niwrap_freesurfer/freesurfer/fslswapdim_fsl.py +0 -216
  150. niwrap_freesurfer/freesurfer/fspython.py +0 -175
  151. niwrap_freesurfer/freesurfer/mri_motion_correct_fsl.py +0 -185
  152. niwrap_freesurfer/freesurfer/slicetimer_fsl.py +0 -291
  153. {niwrap_freesurfer-0.5.1.dist-info → niwrap_freesurfer-0.5.2.dist-info}/WHEEL +0 -0
@@ -6,7 +6,7 @@ import pathlib
6
6
  from styxdefs import *
7
7
 
8
8
  MRI_Z2P_METADATA = Metadata(
9
- id="993304b1f6f275d376d70048d9e4d541fe6daff2.boutiques",
9
+ id="78dfd44d5447e6090f81e24d6551a8f322082fcf.boutiques",
10
10
  name="mri_z2p",
11
11
  package="freesurfer",
12
12
  container_image_tag="freesurfer/freesurfer:7.4.1",
@@ -24,6 +24,10 @@ MriZ2pParameters = typing.TypedDict('MriZ2pParameters', {
24
24
  "signed": bool,
25
25
  "feat": typing.NotRequired[str | None],
26
26
  "feat_format": typing.NotRequired[str | None],
27
+ "nii_format": bool,
28
+ "niigz_format": bool,
29
+ "mgh_format": bool,
30
+ "mgz_format": bool,
27
31
  "img_format": bool,
28
32
  "debug": bool,
29
33
  "check_opts": bool,
@@ -84,6 +88,10 @@ def mri_z2p_params(
84
88
  signed: bool = False,
85
89
  feat: str | None = None,
86
90
  feat_format: str | None = None,
91
+ nii_format: bool = False,
92
+ niigz_format: bool = False,
93
+ mgh_format: bool = False,
94
+ mgz_format: bool = False,
87
95
  img_format: bool = False,
88
96
  debug: bool = False,
89
97
  check_opts: bool = False,
@@ -102,6 +110,10 @@ def mri_z2p_params(
102
110
  feat: Convert all z-stats and zf-stats to sigs in the specified\
103
111
  directory.
104
112
  feat_format: Use specified format for output (e.g., nii, nii.gz, mgh).
113
+ nii_format: Use NIfTI output format.
114
+ niigz_format: Use compressed NIfTI output format.
115
+ mgh_format: Use MGH output format.
116
+ mgz_format: Use MGZ output format.
105
117
  img_format: Use Analyze output format.
106
118
  debug: Turn on debugging.
107
119
  check_opts: Don't run anything, just check options and exit.
@@ -116,6 +128,10 @@ def mri_z2p_params(
116
128
  "two_sided": two_sided,
117
129
  "one_sided": one_sided,
118
130
  "signed": signed,
131
+ "nii_format": nii_format,
132
+ "niigz_format": niigz_format,
133
+ "mgh_format": mgh_format,
134
+ "mgz_format": mgz_format,
119
135
  "img_format": img_format,
120
136
  "debug": debug,
121
137
  "check_opts": check_opts,
@@ -177,6 +193,14 @@ def mri_z2p_cargs(
177
193
  "--featfmt",
178
194
  params.get("feat_format")
179
195
  ])
196
+ if params.get("nii_format"):
197
+ cargs.append("--nii")
198
+ if params.get("niigz_format"):
199
+ cargs.append("--nii.gz")
200
+ if params.get("mgh_format"):
201
+ cargs.append("--mgh")
202
+ if params.get("mgz_format"):
203
+ cargs.append("--mgz")
180
204
  if params.get("img_format"):
181
205
  cargs.append("--img")
182
206
  if params.get("debug"):
@@ -241,6 +265,10 @@ def mri_z2p(
241
265
  signed: bool = False,
242
266
  feat: str | None = None,
243
267
  feat_format: str | None = None,
268
+ nii_format: bool = False,
269
+ niigz_format: bool = False,
270
+ mgh_format: bool = False,
271
+ mgz_format: bool = False,
244
272
  img_format: bool = False,
245
273
  debug: bool = False,
246
274
  check_opts: bool = False,
@@ -264,6 +292,10 @@ def mri_z2p(
264
292
  feat: Convert all z-stats and zf-stats to sigs in the specified\
265
293
  directory.
266
294
  feat_format: Use specified format for output (e.g., nii, nii.gz, mgh).
295
+ nii_format: Use NIfTI output format.
296
+ niigz_format: Use compressed NIfTI output format.
297
+ mgh_format: Use MGH output format.
298
+ mgz_format: Use MGZ output format.
267
299
  img_format: Use Analyze output format.
268
300
  debug: Turn on debugging.
269
301
  check_opts: Don't run anything, just check options and exit.
@@ -283,6 +315,10 @@ def mri_z2p(
283
315
  signed=signed,
284
316
  feat=feat,
285
317
  feat_format=feat_format,
318
+ nii_format=nii_format,
319
+ niigz_format=niigz_format,
320
+ mgh_format=mgh_format,
321
+ mgz_format=mgz_format,
286
322
  img_format=img_format,
287
323
  debug=debug,
288
324
  check_opts=check_opts,
@@ -6,7 +6,7 @@ import pathlib
6
6
  from styxdefs import *
7
7
 
8
8
  MRIS_ADD_TEMPLATE_METADATA = Metadata(
9
- id="cad5f1397d4979ef787014fa2412a1f0a10cfe8b.boutiques",
9
+ id="27b09d413ee029bc56c1679ca8d443e525504262.boutiques",
10
10
  name="mris_add_template",
11
11
  package="freesurfer",
12
12
  container_image_tag="freesurfer/freesurfer:7.4.1",
@@ -15,6 +15,7 @@ MRIS_ADD_TEMPLATE_METADATA = Metadata(
15
15
 
16
16
  MrisAddTemplateParameters = typing.TypedDict('MrisAddTemplateParameters', {
17
17
  "__STYX_TYPE__": typing.Literal["mris_add_template"],
18
+ "placeholder_input": typing.NotRequired[str | None],
18
19
  })
19
20
 
20
21
 
@@ -61,17 +62,21 @@ class MrisAddTemplateOutputs(typing.NamedTuple):
61
62
 
62
63
 
63
64
  def mris_add_template_params(
65
+ placeholder_input: str | None = None,
64
66
  ) -> MrisAddTemplateParameters:
65
67
  """
66
68
  Build parameters.
67
69
 
68
70
  Args:
71
+ placeholder_input: No inputs available as the tool has been removed.
69
72
  Returns:
70
73
  Parameter dictionary
71
74
  """
72
75
  params = {
73
76
  "__STYXTYPE__": "mris_add_template",
74
77
  }
78
+ if placeholder_input is not None:
79
+ params["placeholder_input"] = placeholder_input
75
80
  return params
76
81
 
77
82
 
@@ -90,6 +95,8 @@ def mris_add_template_cargs(
90
95
  """
91
96
  cargs = []
92
97
  cargs.append("mris_add_template")
98
+ if params.get("placeholder_input") is not None:
99
+ cargs.append(params.get("placeholder_input"))
93
100
  return cargs
94
101
 
95
102
 
@@ -138,6 +145,7 @@ def mris_add_template_execute(
138
145
 
139
146
 
140
147
  def mris_add_template(
148
+ placeholder_input: str | None = None,
141
149
  runner: Runner | None = None,
142
150
  ) -> MrisAddTemplateOutputs:
143
151
  """
@@ -148,6 +156,7 @@ def mris_add_template(
148
156
  URL: https://github.com/freesurfer/freesurfer
149
157
 
150
158
  Args:
159
+ placeholder_input: No inputs available as the tool has been removed.
151
160
  runner: Command runner.
152
161
  Returns:
153
162
  NamedTuple of outputs (described in `MrisAddTemplateOutputs`).
@@ -155,6 +164,7 @@ def mris_add_template(
155
164
  runner = runner or get_global_runner()
156
165
  execution = runner.start_execution(MRIS_ADD_TEMPLATE_METADATA)
157
166
  params = mris_add_template_params(
167
+ placeholder_input=placeholder_input,
158
168
  )
159
169
  return mris_add_template_execute(params, execution)
160
170
 
@@ -6,7 +6,7 @@ import pathlib
6
6
  from styxdefs import *
7
7
 
8
8
  MRIS_APPLY_REG_METADATA = Metadata(
9
- id="cba2fa7ec9ece7dd7da7631135e083c0bc5bc503.boutiques",
9
+ id="9fde49bd7ee0afa537381c5ca9d9fe244176aed6.boutiques",
10
10
  name="mris_apply_reg",
11
11
  package="freesurfer",
12
12
  container_image_tag="freesurfer/freesurfer:7.4.1",
@@ -206,7 +206,6 @@ def mris_apply_reg_cargs(
206
206
  "--streg",
207
207
  params.get("streg_pair")
208
208
  ])
209
- cargs.append("[STREG_ADDITIONAL...]")
210
209
  if params.get("src_label") is not None:
211
210
  cargs.extend([
212
211
  "--src-label",
@@ -6,7 +6,7 @@ import pathlib
6
6
  from styxdefs import *
7
7
 
8
8
  MRIS_CURVATURE_STATS_METADATA = Metadata(
9
- id="471b147c9e4a5986d26ffc5619a8d1ade9f883a3.boutiques",
9
+ id="685caf4bb7ec6024d76b04e41ee81910490c86e0.boutiques",
10
10
  name="mris_curvature_stats",
11
11
  package="freesurfer",
12
12
  container_image_tag="freesurfer/freesurfer:7.4.1",
@@ -17,6 +17,41 @@ MrisCurvatureStatsParameters = typing.TypedDict('MrisCurvatureStatsParameters',
17
17
  "__STYX_TYPE__": typing.Literal["mris_curvature_stats"],
18
18
  "subject_name": str,
19
19
  "hemisphere": str,
20
+ "curvature_files": typing.NotRequired[list[InputPathType] | None],
21
+ "number_of_averages": typing.NotRequired[float | None],
22
+ "principal_curvatures": bool,
23
+ "discrete_method": bool,
24
+ "continuous_method": bool,
25
+ "signed_principals": bool,
26
+ "vertex_area_weigh": bool,
27
+ "vertex_area_normalize": bool,
28
+ "vertex_area_weigh_frac": bool,
29
+ "vertex_area_normalize_frac": bool,
30
+ "post_scale": typing.NotRequired[float | None],
31
+ "write_curvature_files": bool,
32
+ "shape_index": bool,
33
+ "output_file_stem": typing.NotRequired[str | None],
34
+ "histogram_bins": typing.NotRequired[float | None],
35
+ "percentage_histogram_bins": typing.NotRequired[float | None],
36
+ "bin_size": typing.NotRequired[float | None],
37
+ "bin_start_curvature": typing.NotRequired[float | None],
38
+ "bin_end_curvature": typing.NotRequired[float | None],
39
+ "label_file": typing.NotRequired[InputPathType | None],
40
+ "regional_percentages": bool,
41
+ "high_pass_filter": typing.NotRequired[float | None],
42
+ "low_pass_filter": typing.NotRequired[float | None],
43
+ "high_pass_filter_gaussian": typing.NotRequired[float | None],
44
+ "low_pass_filter_gaussian": typing.NotRequired[float | None],
45
+ "filter_label": typing.NotRequired[InputPathType | None],
46
+ "min_max_info": bool,
47
+ "normalize_curvature": bool,
48
+ "summary_condition": typing.NotRequired[str | None],
49
+ "min_curvature_scale": typing.NotRequired[float | None],
50
+ "max_curvature_scale": typing.NotRequired[float | None],
51
+ "scale_factor": typing.NotRequired[float | None],
52
+ "version": bool,
53
+ "set_zero_vertex": typing.NotRequired[float | None],
54
+ "max_ulps": typing.NotRequired[float | None],
20
55
  })
21
56
 
22
57
 
@@ -48,7 +83,6 @@ def dyn_outputs(
48
83
  Build outputs function.
49
84
  """
50
85
  return {
51
- "mris_curvature_stats": mris_curvature_stats_outputs,
52
86
  }.get(t)
53
87
 
54
88
 
@@ -58,13 +92,46 @@ class MrisCurvatureStatsOutputs(typing.NamedTuple):
58
92
  """
59
93
  root: OutputPathType
60
94
  """Output root folder. This is the root folder for all outputs."""
61
- scaled_curvature_file: OutputPathType
62
- """Scaled curvature file."""
63
95
 
64
96
 
65
97
  def mris_curvature_stats_params(
66
98
  subject_name: str,
67
99
  hemisphere: str,
100
+ curvature_files: list[InputPathType] | None = None,
101
+ number_of_averages: float | None = None,
102
+ principal_curvatures: bool = False,
103
+ discrete_method: bool = False,
104
+ continuous_method: bool = False,
105
+ signed_principals: bool = False,
106
+ vertex_area_weigh: bool = False,
107
+ vertex_area_normalize: bool = False,
108
+ vertex_area_weigh_frac: bool = False,
109
+ vertex_area_normalize_frac: bool = False,
110
+ post_scale: float | None = None,
111
+ write_curvature_files: bool = False,
112
+ shape_index: bool = False,
113
+ output_file_stem: str | None = None,
114
+ histogram_bins: float | None = None,
115
+ percentage_histogram_bins: float | None = None,
116
+ bin_size: float | None = None,
117
+ bin_start_curvature: float | None = None,
118
+ bin_end_curvature: float | None = None,
119
+ label_file: InputPathType | None = None,
120
+ regional_percentages: bool = False,
121
+ high_pass_filter: float | None = None,
122
+ low_pass_filter: float | None = None,
123
+ high_pass_filter_gaussian: float | None = None,
124
+ low_pass_filter_gaussian: float | None = None,
125
+ filter_label: InputPathType | None = None,
126
+ min_max_info: bool = False,
127
+ normalize_curvature: bool = False,
128
+ summary_condition: str | None = None,
129
+ min_curvature_scale: float | None = None,
130
+ max_curvature_scale: float | None = None,
131
+ scale_factor: float | None = None,
132
+ version: bool = False,
133
+ set_zero_vertex: float | None = None,
134
+ max_ulps: float | None = None,
68
135
  ) -> MrisCurvatureStatsParameters:
69
136
  """
70
137
  Build parameters.
@@ -72,6 +139,52 @@ def mris_curvature_stats_params(
72
139
  Args:
73
140
  subject_name: Subject name defined in the SUBJECTS_DIR.
74
141
  hemisphere: Hemisphere, can be 'lh' or 'rh'.
142
+ curvature_files: Optional list of curvature files to process.
143
+ number_of_averages: Average the curvature number of times.
144
+ principal_curvatures: Calculate principal curvatures and derived maps.
145
+ discrete_method: Use discrete calculation method for principal\
146
+ curvatures.
147
+ continuous_method: Use continuous calculation method for principal\
148
+ curvatures.
149
+ signed_principals: Assign signed max and min to principal curvature K1\
150
+ and K2.
151
+ vertex_area_weigh: Multiply curvature value by the area of its vertex.
152
+ vertex_area_normalize: Divide curvature value by the area of its\
153
+ vertex.
154
+ vertex_area_weigh_frac: Weigh curvature by the fractional vertex area.
155
+ vertex_area_normalize_frac: Normalize curvature by the fractional\
156
+ vertex area.
157
+ post_scale: Scale the mean and areaNorm integrals by a factor.
158
+ write_curvature_files: Write the calculated curvature values to files\
159
+ in FreeSurfer format.
160
+ shape_index: Calculate shape index despite potential atan issues.
161
+ output_file_stem: Output file stem for results.
162
+ histogram_bins: Number of bins for curvature histogram.
163
+ percentage_histogram_bins: Number of bins for percentage-based\
164
+ curvature histogram.
165
+ bin_size: Size of each histogram bin.
166
+ bin_start_curvature: Histogram bin start value.
167
+ bin_end_curvature: Histogram bin end value.
168
+ label_file: Label file to constrain statistics to a region.
169
+ regional_percentages: Report integral percentages relative to the\
170
+ region.
171
+ high_pass_filter: High pass filter for curvature values.
172
+ low_pass_filter: Low pass filter for curvature values.
173
+ high_pass_filter_gaussian: High pass filter for Gaussian curvature\
174
+ values.
175
+ low_pass_filter_gaussian: Low pass filter for Gaussian curvature\
176
+ values.
177
+ filter_label: Store processed surface vertices in a label file.
178
+ min_max_info: Output min/max information for the processed curvature.
179
+ normalize_curvature: Normalize the curvature before computation.
180
+ summary_condition: Write out stats as a summary condition.
181
+ min_curvature_scale: Scale curvature values between min and max\
182
+ curvature.
183
+ max_curvature_scale: End value for curvature scaling.
184
+ scale_factor: Scale curvature values with a factor.
185
+ version: Print out version number.
186
+ set_zero_vertex: Sets the curvature values at that index to zero.
187
+ max_ulps: Toggle a more rigorous floating point comparison operation.
75
188
  Returns:
76
189
  Parameter dictionary
77
190
  """
@@ -79,7 +192,63 @@ def mris_curvature_stats_params(
79
192
  "__STYXTYPE__": "mris_curvature_stats",
80
193
  "subject_name": subject_name,
81
194
  "hemisphere": hemisphere,
195
+ "principal_curvatures": principal_curvatures,
196
+ "discrete_method": discrete_method,
197
+ "continuous_method": continuous_method,
198
+ "signed_principals": signed_principals,
199
+ "vertex_area_weigh": vertex_area_weigh,
200
+ "vertex_area_normalize": vertex_area_normalize,
201
+ "vertex_area_weigh_frac": vertex_area_weigh_frac,
202
+ "vertex_area_normalize_frac": vertex_area_normalize_frac,
203
+ "write_curvature_files": write_curvature_files,
204
+ "shape_index": shape_index,
205
+ "regional_percentages": regional_percentages,
206
+ "min_max_info": min_max_info,
207
+ "normalize_curvature": normalize_curvature,
208
+ "version": version,
82
209
  }
210
+ if curvature_files is not None:
211
+ params["curvature_files"] = curvature_files
212
+ if number_of_averages is not None:
213
+ params["number_of_averages"] = number_of_averages
214
+ if post_scale is not None:
215
+ params["post_scale"] = post_scale
216
+ if output_file_stem is not None:
217
+ params["output_file_stem"] = output_file_stem
218
+ if histogram_bins is not None:
219
+ params["histogram_bins"] = histogram_bins
220
+ if percentage_histogram_bins is not None:
221
+ params["percentage_histogram_bins"] = percentage_histogram_bins
222
+ if bin_size is not None:
223
+ params["bin_size"] = bin_size
224
+ if bin_start_curvature is not None:
225
+ params["bin_start_curvature"] = bin_start_curvature
226
+ if bin_end_curvature is not None:
227
+ params["bin_end_curvature"] = bin_end_curvature
228
+ if label_file is not None:
229
+ params["label_file"] = label_file
230
+ if high_pass_filter is not None:
231
+ params["high_pass_filter"] = high_pass_filter
232
+ if low_pass_filter is not None:
233
+ params["low_pass_filter"] = low_pass_filter
234
+ if high_pass_filter_gaussian is not None:
235
+ params["high_pass_filter_gaussian"] = high_pass_filter_gaussian
236
+ if low_pass_filter_gaussian is not None:
237
+ params["low_pass_filter_gaussian"] = low_pass_filter_gaussian
238
+ if filter_label is not None:
239
+ params["filter_label"] = filter_label
240
+ if summary_condition is not None:
241
+ params["summary_condition"] = summary_condition
242
+ if min_curvature_scale is not None:
243
+ params["min_curvature_scale"] = min_curvature_scale
244
+ if max_curvature_scale is not None:
245
+ params["max_curvature_scale"] = max_curvature_scale
246
+ if scale_factor is not None:
247
+ params["scale_factor"] = scale_factor
248
+ if set_zero_vertex is not None:
249
+ params["set_zero_vertex"] = set_zero_vertex
250
+ if max_ulps is not None:
251
+ params["max_ulps"] = max_ulps
83
252
  return params
84
253
 
85
254
 
@@ -98,10 +267,138 @@ def mris_curvature_stats_cargs(
98
267
  """
99
268
  cargs = []
100
269
  cargs.append("mris_curvature_stats")
101
- cargs.append("[OPTIONS]")
102
270
  cargs.append(params.get("subject_name"))
103
271
  cargs.append(params.get("hemisphere"))
104
- cargs.append("[CURVFILE...]")
272
+ if params.get("curvature_files") is not None:
273
+ cargs.extend([execution.input_file(f) for f in params.get("curvature_files")])
274
+ if params.get("number_of_averages") is not None:
275
+ cargs.extend([
276
+ "-a",
277
+ str(params.get("number_of_averages"))
278
+ ])
279
+ if params.get("principal_curvatures"):
280
+ cargs.append("-G")
281
+ if params.get("discrete_method"):
282
+ cargs.append("--discrete")
283
+ if params.get("continuous_method"):
284
+ cargs.append("--continuous")
285
+ if params.get("signed_principals"):
286
+ cargs.append("--signedPrincipals")
287
+ if params.get("vertex_area_weigh"):
288
+ cargs.append("--vertexAreaWeigh")
289
+ if params.get("vertex_area_normalize"):
290
+ cargs.append("--vertexAreaNormalize")
291
+ if params.get("vertex_area_weigh_frac"):
292
+ cargs.append("--vertexAreaWeighFrac")
293
+ if params.get("vertex_area_normalize_frac"):
294
+ cargs.append("--vertexAreaNormalizeFrac")
295
+ if params.get("post_scale") is not None:
296
+ cargs.extend([
297
+ "--postScale",
298
+ str(params.get("post_scale"))
299
+ ])
300
+ if params.get("write_curvature_files"):
301
+ cargs.append("--writeCurvatureFiles")
302
+ if params.get("shape_index"):
303
+ cargs.append("--shapeIndex")
304
+ if params.get("output_file_stem") is not None:
305
+ cargs.extend([
306
+ "-o",
307
+ params.get("output_file_stem")
308
+ ])
309
+ if params.get("histogram_bins") is not None:
310
+ cargs.extend([
311
+ "-h",
312
+ str(params.get("histogram_bins"))
313
+ ])
314
+ if params.get("percentage_histogram_bins") is not None:
315
+ cargs.extend([
316
+ "-p",
317
+ str(params.get("percentage_histogram_bins"))
318
+ ])
319
+ if params.get("bin_size") is not None:
320
+ cargs.extend([
321
+ "-b",
322
+ str(params.get("bin_size"))
323
+ ])
324
+ if params.get("bin_start_curvature") is not None:
325
+ cargs.extend([
326
+ "-i",
327
+ str(params.get("bin_start_curvature"))
328
+ ])
329
+ if params.get("bin_end_curvature") is not None:
330
+ cargs.extend([
331
+ "-j",
332
+ str(params.get("bin_end_curvature"))
333
+ ])
334
+ if params.get("label_file") is not None:
335
+ cargs.extend([
336
+ "-l",
337
+ execution.input_file(params.get("label_file"))
338
+ ])
339
+ if params.get("regional_percentages"):
340
+ cargs.append("--regionalPercentages")
341
+ if params.get("high_pass_filter") is not None:
342
+ cargs.extend([
343
+ "--highPassFilter",
344
+ str(params.get("high_pass_filter"))
345
+ ])
346
+ if params.get("low_pass_filter") is not None:
347
+ cargs.extend([
348
+ "--lowPassFilter",
349
+ str(params.get("low_pass_filter"))
350
+ ])
351
+ if params.get("high_pass_filter_gaussian") is not None:
352
+ cargs.extend([
353
+ "--highPassFilterGaussian",
354
+ str(params.get("high_pass_filter_gaussian"))
355
+ ])
356
+ if params.get("low_pass_filter_gaussian") is not None:
357
+ cargs.extend([
358
+ "--lowPassFilterGaussian",
359
+ str(params.get("low_pass_filter_gaussian"))
360
+ ])
361
+ if params.get("filter_label") is not None:
362
+ cargs.extend([
363
+ "--filterLabel",
364
+ execution.input_file(params.get("filter_label"))
365
+ ])
366
+ if params.get("min_max_info"):
367
+ cargs.append("-m")
368
+ if params.get("normalize_curvature"):
369
+ cargs.append("-n")
370
+ if params.get("summary_condition") is not None:
371
+ cargs.extend([
372
+ "-s",
373
+ params.get("summary_condition")
374
+ ])
375
+ if params.get("min_curvature_scale") is not None:
376
+ cargs.extend([
377
+ "-d",
378
+ str(params.get("min_curvature_scale"))
379
+ ])
380
+ if params.get("max_curvature_scale") is not None:
381
+ cargs.extend([
382
+ "-e",
383
+ str(params.get("max_curvature_scale"))
384
+ ])
385
+ if params.get("scale_factor") is not None:
386
+ cargs.extend([
387
+ "-c",
388
+ str(params.get("scale_factor"))
389
+ ])
390
+ if params.get("version"):
391
+ cargs.append("-version")
392
+ if params.get("set_zero_vertex") is not None:
393
+ cargs.extend([
394
+ "-z",
395
+ str(params.get("set_zero_vertex"))
396
+ ])
397
+ if params.get("max_ulps") is not None:
398
+ cargs.extend([
399
+ "-q",
400
+ str(params.get("max_ulps"))
401
+ ])
105
402
  return cargs
106
403
 
107
404
 
@@ -120,7 +417,6 @@ def mris_curvature_stats_outputs(
120
417
  """
121
418
  ret = MrisCurvatureStatsOutputs(
122
419
  root=execution.output_file("."),
123
- scaled_curvature_file=execution.output_file(params.get("subject_name") + "/surf/" + params.get("hemisphere") + ".[CURVATURE_FILES].scaled.crv"),
124
420
  )
125
421
  return ret
126
422
 
@@ -152,6 +448,41 @@ def mris_curvature_stats_execute(
152
448
  def mris_curvature_stats(
153
449
  subject_name: str,
154
450
  hemisphere: str,
451
+ curvature_files: list[InputPathType] | None = None,
452
+ number_of_averages: float | None = None,
453
+ principal_curvatures: bool = False,
454
+ discrete_method: bool = False,
455
+ continuous_method: bool = False,
456
+ signed_principals: bool = False,
457
+ vertex_area_weigh: bool = False,
458
+ vertex_area_normalize: bool = False,
459
+ vertex_area_weigh_frac: bool = False,
460
+ vertex_area_normalize_frac: bool = False,
461
+ post_scale: float | None = None,
462
+ write_curvature_files: bool = False,
463
+ shape_index: bool = False,
464
+ output_file_stem: str | None = None,
465
+ histogram_bins: float | None = None,
466
+ percentage_histogram_bins: float | None = None,
467
+ bin_size: float | None = None,
468
+ bin_start_curvature: float | None = None,
469
+ bin_end_curvature: float | None = None,
470
+ label_file: InputPathType | None = None,
471
+ regional_percentages: bool = False,
472
+ high_pass_filter: float | None = None,
473
+ low_pass_filter: float | None = None,
474
+ high_pass_filter_gaussian: float | None = None,
475
+ low_pass_filter_gaussian: float | None = None,
476
+ filter_label: InputPathType | None = None,
477
+ min_max_info: bool = False,
478
+ normalize_curvature: bool = False,
479
+ summary_condition: str | None = None,
480
+ min_curvature_scale: float | None = None,
481
+ max_curvature_scale: float | None = None,
482
+ scale_factor: float | None = None,
483
+ version: bool = False,
484
+ set_zero_vertex: float | None = None,
485
+ max_ulps: float | None = None,
155
486
  runner: Runner | None = None,
156
487
  ) -> MrisCurvatureStatsOutputs:
157
488
  """
@@ -164,6 +495,52 @@ def mris_curvature_stats(
164
495
  Args:
165
496
  subject_name: Subject name defined in the SUBJECTS_DIR.
166
497
  hemisphere: Hemisphere, can be 'lh' or 'rh'.
498
+ curvature_files: Optional list of curvature files to process.
499
+ number_of_averages: Average the curvature number of times.
500
+ principal_curvatures: Calculate principal curvatures and derived maps.
501
+ discrete_method: Use discrete calculation method for principal\
502
+ curvatures.
503
+ continuous_method: Use continuous calculation method for principal\
504
+ curvatures.
505
+ signed_principals: Assign signed max and min to principal curvature K1\
506
+ and K2.
507
+ vertex_area_weigh: Multiply curvature value by the area of its vertex.
508
+ vertex_area_normalize: Divide curvature value by the area of its\
509
+ vertex.
510
+ vertex_area_weigh_frac: Weigh curvature by the fractional vertex area.
511
+ vertex_area_normalize_frac: Normalize curvature by the fractional\
512
+ vertex area.
513
+ post_scale: Scale the mean and areaNorm integrals by a factor.
514
+ write_curvature_files: Write the calculated curvature values to files\
515
+ in FreeSurfer format.
516
+ shape_index: Calculate shape index despite potential atan issues.
517
+ output_file_stem: Output file stem for results.
518
+ histogram_bins: Number of bins for curvature histogram.
519
+ percentage_histogram_bins: Number of bins for percentage-based\
520
+ curvature histogram.
521
+ bin_size: Size of each histogram bin.
522
+ bin_start_curvature: Histogram bin start value.
523
+ bin_end_curvature: Histogram bin end value.
524
+ label_file: Label file to constrain statistics to a region.
525
+ regional_percentages: Report integral percentages relative to the\
526
+ region.
527
+ high_pass_filter: High pass filter for curvature values.
528
+ low_pass_filter: Low pass filter for curvature values.
529
+ high_pass_filter_gaussian: High pass filter for Gaussian curvature\
530
+ values.
531
+ low_pass_filter_gaussian: Low pass filter for Gaussian curvature\
532
+ values.
533
+ filter_label: Store processed surface vertices in a label file.
534
+ min_max_info: Output min/max information for the processed curvature.
535
+ normalize_curvature: Normalize the curvature before computation.
536
+ summary_condition: Write out stats as a summary condition.
537
+ min_curvature_scale: Scale curvature values between min and max\
538
+ curvature.
539
+ max_curvature_scale: End value for curvature scaling.
540
+ scale_factor: Scale curvature values with a factor.
541
+ version: Print out version number.
542
+ set_zero_vertex: Sets the curvature values at that index to zero.
543
+ max_ulps: Toggle a more rigorous floating point comparison operation.
167
544
  runner: Command runner.
168
545
  Returns:
169
546
  NamedTuple of outputs (described in `MrisCurvatureStatsOutputs`).
@@ -173,6 +550,41 @@ def mris_curvature_stats(
173
550
  params = mris_curvature_stats_params(
174
551
  subject_name=subject_name,
175
552
  hemisphere=hemisphere,
553
+ curvature_files=curvature_files,
554
+ number_of_averages=number_of_averages,
555
+ principal_curvatures=principal_curvatures,
556
+ discrete_method=discrete_method,
557
+ continuous_method=continuous_method,
558
+ signed_principals=signed_principals,
559
+ vertex_area_weigh=vertex_area_weigh,
560
+ vertex_area_normalize=vertex_area_normalize,
561
+ vertex_area_weigh_frac=vertex_area_weigh_frac,
562
+ vertex_area_normalize_frac=vertex_area_normalize_frac,
563
+ post_scale=post_scale,
564
+ write_curvature_files=write_curvature_files,
565
+ shape_index=shape_index,
566
+ output_file_stem=output_file_stem,
567
+ histogram_bins=histogram_bins,
568
+ percentage_histogram_bins=percentage_histogram_bins,
569
+ bin_size=bin_size,
570
+ bin_start_curvature=bin_start_curvature,
571
+ bin_end_curvature=bin_end_curvature,
572
+ label_file=label_file,
573
+ regional_percentages=regional_percentages,
574
+ high_pass_filter=high_pass_filter,
575
+ low_pass_filter=low_pass_filter,
576
+ high_pass_filter_gaussian=high_pass_filter_gaussian,
577
+ low_pass_filter_gaussian=low_pass_filter_gaussian,
578
+ filter_label=filter_label,
579
+ min_max_info=min_max_info,
580
+ normalize_curvature=normalize_curvature,
581
+ summary_condition=summary_condition,
582
+ min_curvature_scale=min_curvature_scale,
583
+ max_curvature_scale=max_curvature_scale,
584
+ scale_factor=scale_factor,
585
+ version=version,
586
+ set_zero_vertex=set_zero_vertex,
587
+ max_ulps=max_ulps,
176
588
  )
177
589
  return mris_curvature_stats_execute(params, execution)
178
590