Skip to content

Commit 429e479

Browse files
ghisvailtclose
authored andcommitted
FIX: Use equal-separated option value pairs in topup
1 parent 0269041 commit 429e479

File tree

1 file changed

+29
-17
lines changed

1 file changed

+29
-17
lines changed

src/pydra/tasks/fsl/eddy/topup.py

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
1010
>>> task = Topup(input_image="input.nii", encoding_file="encoding.txt")
1111
>>> task.cmdline # doctest: +ELLIPSIS
12-
'topup --imain input.nii --datain encoding.txt --out input_topup \
13-
--fout ...input_fieldmap.nii --iout ...input_unwarped.nii ...'
12+
'topup --imain=input.nii --datain=encoding.txt --out=input_topup \
13+
--fout=...input_fieldmap.nii --iout=...input_unwarped.nii ...'
1414
1515
Using a multiple resolution approach:
1616
@@ -21,7 +21,7 @@
2121
... smoothing_per_level=(8.0, 4.0, 0.0),
2222
... )
2323
>>> task.cmdline # doctest: +ELLIPSIS
24-
'topup --imain input.nii --datain encoding.txt ... --subsamp 4,2,1 --fwhm 8.0,4.0,0.0 ...'
24+
'topup --imain=input.nii --datain=encoding.txt ... --subsamp=4,2,1 --fwhm=8.0,4.0,0.0 ...'
2525
"""
2626

2727
__all__ = ["Topup"]
@@ -36,24 +36,26 @@
3636

3737

3838
def to_field_per_level(field, param) -> str:
39-
return f"--{param} {','.join([str(elem) for elem in field])}"
39+
return f"--{param}={','.join([str(elem) for elem in field])}"
4040

4141

4242
def to_output_basename(field, input_image) -> str:
43-
return f"--out {field or PurePath(input_image).name.split('.', 1)[0] + '_topup'}"
43+
return f"--out={field or PurePath(input_image).name.split('.', 1)[0] + '_topup'}"
4444

4545

4646
@define(slots=False, kw_only=True)
4747
class TopupSpec(ShellSpec):
4848
"""Specifications for topup."""
4949

50-
input_image: PathLike = field(metadata={"help_string": "input image", "mandatory": True, "argstr": "--imain"})
50+
input_image: PathLike = field(
51+
metadata={"help_string": "input image", "mandatory": True, "argstr": "--imain={input_image}"}
52+
)
5153

5254
encoding_file: PathLike = field(
5355
metadata={
5456
"help_string": "text file containing phase encoding directions and timings",
5557
"mandatory": True,
56-
"argstr": "--datain",
58+
"argstr": "--datain={encoding_file}",
5759
}
5860
)
5961

@@ -67,15 +69,15 @@ class TopupSpec(ShellSpec):
6769
output_fieldmap_image: str = field(
6870
metadata={
6971
"help_string": "output fieldmap image",
70-
"argstr": "--fout",
72+
"argstr": "--fout={output_fieldmap_image}",
7173
"output_file_template": "{input_image}_fieldmap",
7274
}
7375
)
7476

7577
output_unwarped_image: str = field(
7678
metadata={
7779
"help_string": "output unwarped image",
78-
"argstr": "--iout",
80+
"argstr": "--iout={output_unwarped_image}",
7981
"output_file_template": "{input_image}_unwarped",
8082
}
8183
)
@@ -145,15 +147,15 @@ class TopupSpec(ShellSpec):
145147
default=True,
146148
metadata={
147149
"help_string": "weight regularisation by sum-of-squares",
148-
"formatter": lambda field: f"--ssqlambda {int(field)}",
150+
"formatter": lambda field: f"--ssqlambda={field:d}",
149151
},
150152
)
151153

152154
regularisation_model: str = field(
153155
default="bending_energy",
154156
metadata={
155157
"help_string": "regularisation model",
156-
"argstr": "--regmod",
158+
"argstr": "--regmod={regularisation_model}",
157159
"allowed_values": {"bending_energy", "membrane_energy"},
158160
},
159161
)
@@ -162,38 +164,48 @@ class TopupSpec(ShellSpec):
162164
default=3,
163165
metadata={
164166
"help_string": "use quadratic (2) or cubic (3) splines",
165-
"argstr": "--splineorder",
167+
"argstr": "--splineorder={spline_order}",
166168
"allowed_values": {2, 3},
167169
},
168170
)
169171

170172
precision: str = field(
171173
default="double",
172-
metadata={"help_string": "numerical precision", "argstr": "--numprec", "allowed_values": {"float", "double"}},
174+
metadata={
175+
"help_string": "numerical precision",
176+
"argstr": "--numprec={precision}",
177+
"allowed_values": {"float", "double"},
178+
},
173179
)
174180

175181
interpolation: str = field(
176182
default="spline",
177-
metadata={"help_string": "interpolation model", "argstr": "--interp", "allowed_values": {"linear", "spline"}},
183+
metadata={
184+
"help_string": "interpolation model",
185+
"argstr": "--interp={interpolation}",
186+
"allowed_values": {"linear", "spline"},
187+
},
178188
)
179189

180190
scale: bool = field(
181191
default=False,
182192
metadata={
183193
"help_string": "scale images to a common mean",
184-
"formatter": lambda field: f"--scale {int(field)}",
194+
"formatter": lambda field: f"--scale={field:d}",
185195
},
186196
)
187197

188198
regrid: bool = field(
189199
default=True,
190200
metadata={
191201
"help_string": "perform calculations on a different grid",
192-
"formatter": lambda field: f"--regrid {int(field)}",
202+
"formatter": lambda field: f"--regrid={field:d}",
193203
},
194204
)
195205

196-
num_threads: int = field(default=1, metadata={"help_string": "number of threads to use", "argstr": "--nthr"})
206+
num_threads: int = field(
207+
default=1, metadata={"help_string": "number of threads to use", "argstr": "--nthr={num_threads}"}
208+
)
197209

198210
verbose: bool = field(metadata={"help_string": "enable verbose logging", "argstr": "--verbose"})
199211

0 commit comments

Comments
 (0)