pre
tit.pre ¶
Preprocessing APIs for TI-Toolbox.
This package provides standalone, reusable functions for every stage of the TI-Toolbox preprocessing pipeline: DICOM conversion, SimNIBS head-mesh generation (CHARM), FastSurfer deep segmentation, tissue analysis, and diffusion-weighted imaging (DWI) preprocessing via QSIPrep/QSIRecon.
Structural work runs in the TI-Toolbox image itself (SimNIBS + FastSurfer); only the DWI stages spawn sibling containers (QSIPrep/QSIRecon). The functions here orchestrate those and manage BIDS-compliant file layouts.
Public API¶
run_pipeline
Full preprocessing pipeline orchestrator (sequential or parallel).
run_dicom_to_nifti
Convert DICOM series to BIDS-compliant NIfTI files.
run_fastsurfer
Run FastSurfer --seg_only deep segmentation.
fastsurfer_available
Probe for a runnable FastSurfer install.
run_charm
Generate a SimNIBS head mesh via the charm command.
run_tissue_analysis
Compute tissue volumes and thickness from segmented NIfTI data.
run_qsiprep
Preprocess DWI data using QSIPrep (Docker-out-of-Docker).
run_qsirecon
Reconstruct DWI data using QSIRecon (Docker-out-of-Docker).
extract_dti_tensor
Extract a DTI tensor for SimNIBS anisotropic conductivity.
discover_subjects
Discover subject IDs present in a BIDS project tree.
check_m2m_exists
Check whether a SimNIBS m2m directory already exists.
See Also¶
tit.pre.qsi : QSI subpackage for DWI preprocessing and reconstruction. tit.sim : Simulation engine that consumes preprocessing outputs.
PreprocessingInputProblem
dataclass
¶
Missing or invalid input for one selected preprocessing step.
PreprocessingOutput
dataclass
¶
PreprocessingOutput(subject_id: str, step: str, label: str, path: Path, cleanup_paths: tuple[Path, ...] = ())
Existing output for one preprocessing step.
run_pipeline ¶
run_pipeline(subject_ids: Iterable[str], *, convert_dicom: bool = False, run_fastsurfer: bool = False, charm_threads: int | None = None, charm_options: dict | None = None, fastsurfer_threads: int | None = None, run_freesurfer: bool = False, freesurfer_recon_all: bool = True, freesurfer_subregions: list[str] | None = None, freesurfer_threads: int | None = None, create_m2m: bool = False, run_tissue_analysis: bool = False, run_qsiprep: bool = False, run_qsirecon: bool = False, qsiprep_config: dict | None = None, qsi_recon_config: dict | None = None, extract_dti: bool = False, skip_existing_outputs: bool = False, replace_existing_outputs: bool = False, stop_event: object | None = None, logger_callback: Callable | None = None, runner: CommandRunner | None = None) -> int
Run the preprocessing pipeline for one or more subjects.
Orchestrates DICOM conversion, SimNIBS CHARM, FastSurfer deep segmentation, tissue analysis, QSIPrep/QSIRecon DWI preprocessing and DTI tensor extraction. Steps are enabled via boolean flags; disabled steps are skipped.
All step flags default to False; pass keyword arguments only.
Parameters¶
subject_ids : iterable of str
Subject identifiers without the sub- prefix (e.g.
["ernie", "101"]). Subjects run sequentially.
convert_dicom : bool, optional
Run DICOM-to-NIfTI conversion (sourcedata/sub-<id>/ to
sub-<id>/anat/).
run_fastsurfer : bool, optional
Run FastSurfer --seg_only deep segmentation.
charm_threads : int or None, optional
Thread count for SimNIBS charm; None uses its default.
charm_options : dict or None, optional
charm overrides: {"denoise": bool,
"segmentation_final_resolution": 0.5-2.0,
"skin_facet_size": 0.5-10.0} (keys optional; unknown keys
raise ValueError). None keeps the installed defaults.
fastsurfer_threads : int or None, optional
Thread count for FastSurfer inference.
run_freesurfer : bool, optional
Run FreeSurfer (requires a FreeSurfer install, which the standard
image does not ship).
freesurfer_recon_all : bool, optional
With run_freesurfer, run recon-all (default True); set
False to run only freesurfer_subregions on an existing
reconstruction.
freesurfer_subregions : list of str or None, optional
FreeSurfer subregion segmentations to add: any of
"thalamus", "hippo-amygdala".
freesurfer_threads : int or None, optional
Thread count for FreeSurfer.
create_m2m : bool, optional
Run SimNIBS charm to build m2m_<id> (also runs
subject_atlas for .annot files).
run_tissue_analysis : bool, optional
Run tissue-volume and thickness analysis.
run_qsiprep : bool, optional
Run QSIPrep DWI preprocessing via Docker.
run_qsirecon : bool, optional
Run QSIRecon reconstruction via Docker.
qsiprep_config : dict or None, optional
Extra configuration passed to run_qsiprep.
qsi_recon_config : dict or None, optional
Extra configuration passed to run_qsirecon.
extract_dti : bool, optional
Extract DTI tensor for SimNIBS anisotropic conductivity.
skip_existing_outputs : bool, optional
Skip selected preprocessing steps when their output already exists.
replace_existing_outputs : bool, optional
Remove selected existing outputs before rerunning their steps.
stop_event : object or None, optional
Threading event used to cancel running steps.
logger_callback : callable or None, optional
Callback used by the GUI to capture log lines.
runner : CommandRunner or None, optional
Subprocess runner used to stream command output.
Returns¶
int
0 on success, 1 on failure.
Raises¶
PreprocessError If no subjects are provided, both skip_existing_outputs and replace_existing_outputs are set, a required input is missing for a selected step (checked for every subject before anything runs), or a preprocessing step fails. PreprocessCancelled If stop_event is set during execution.
Examples¶
from tit.pre import run_pipeline run_pipeline(["ernie"], convert_dicom=True, create_m2m=True) # doctest: +SKIP 0 run_pipeline(["ernie", "101"], create_m2m=True, ... charm_options={"denoise": True}, ... skip_existing_outputs=True) # doctest: +SKIP 0
See Also¶
run_dicom_to_nifti : DICOM-to-NIfTI conversion step. run_fastsurfer : FastSurfer deep-segmentation step. run_charm : SimNIBS CHARM head-mesh step. run_tissue_analysis : Tissue analysis step. run_qsiprep : QSIPrep DWI preprocessing step. run_qsirecon : QSIRecon reconstruction step. extract_dti_tensor : DTI tensor extraction step.
Source code in tit/pre/structural.py
422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 | |
run_dicom_to_nifti ¶
run_dicom_to_nifti(project_dir: str, subject_id: str, *, logger, runner: CommandRunner | None = None) -> None
Ingest a subject's source images into BIDS-named NIfTI files.
Looks for a T1w, T2w, ct, and dwi folder under
sourcedata/sub-{subject_id}/ (folder names are matched
case-insensitively) and ingests each one that exists. Anatomical images
and CT go to the subject's anat/ folder, diffusion images to dwi/
(with their .bval/.bvec sidecars).
Each modality folder is searched recursively. Supported archives
(.zip, .tar, .tar.gz, .tgz) are safely extracted to
extracted_archives/ first. DICOM files (.dcm/.dicom) are then
converted with dcm2niix; if the folder holds no DICOMs but does hold a
NIfTI, that file is copied into place instead (compressing a bare .nii
on the way). Dotfiles are ignored throughout.
CT is written as anat/sub-{id}_ct.nii.gz. This is a local convention,
not BIDS -- see :data:MODALITIES.
Parameters¶
project_dir : str
BIDS project root directory.
subject_id : str
Subject identifier without the sub- prefix.
logger : logging.Logger
Logger for progress messages.
runner : CommandRunner or None, optional
Subprocess runner for streaming output.
Raises¶
PreprocessError If an output NIfTI already exists for a modality.
See Also¶
run_pipeline : Full preprocessing pipeline. MODALITIES : Supported modalities and their BIDS datatype directories.
Source code in tit/pre/dicom2nifti.py
fastsurfer_available ¶
fastsurfer_available() -> bool
Return True when a runnable FastSurfer checkout is present.
Capability-probe shape (same contract as the server's other capability probes): filesystem-only, no subprocess, safe to call on any platform.
Source code in tit/pre/fastsurfer.py
run_fastsurfer ¶
run_fastsurfer(project_dir: str, subject_id: str, *, logger, runner: CommandRunner | None = None, threads: int | None = None) -> None
Run FastSurfer --seg_only for one subject.
Writes derivatives/fastsurfer/sub-<id>/mri/aparc.DKTatlas+aseg.deep.mgz
plus a .nii.gz copy and a *_labels.txt sidecar, then returns.
Idempotent: an existing segmentation is left alone (only the derived
NIfTI/labels are backfilled if missing).
The input is the raw BIDS T1w, the same image recon-all was
given. Two reasons, both load-bearing: it keeps this stage independent
of charm so the two can run in parallel after DICOM import (the DAG
in :mod:tit.jobs.plans relies on that), and it is the image the
spike's Dice numbers were measured on -- m2m_<id>/T1.nii.gz is
charm's own bias-corrected, re-conformed volume, a different input with
unmeasured effect on the network's output.
Parameters¶
project_dir : str
BIDS project root.
subject_id : str
Subject identifier without the sub- prefix.
logger : logging.Logger
Logger used for progress and streamed command output.
runner : CommandRunner or None, optional
Subprocess runner used to stream output and honour cancellation.
threads : int or None, optional
Thread count for the inference. Defaults to
$TIT_FASTSURFER_THREADS, else the user-wide preference (automatic: the global CPU limit).
Raises¶
PreprocessError
If FastSurfer is not installed, no T1w is found, run_fastsurfer.sh
exits non-zero, or the expected segmentation is missing afterwards.
See Also¶
fastsurfer_available : Probe before offering this step in a UI. tit.pre.charm.run_charm : The other post-import stage (G2a).
Source code in tit/pre/fastsurfer.py
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 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 | |
run_charm ¶
run_charm(project_dir: str, subject_id: str, *, logger, runner: CommandRunner | None = None, threads: int | None = None, options: dict | None = None) -> None
Run SimNIBS charm to generate a head mesh for a subject.
Creates an m2m directory at the standard BIDS derivatives location containing the volumetric head model required for TI simulations.
Parameters¶
project_dir : str
BIDS project root.
subject_id : str
Subject identifier without the sub- prefix.
logger : logging.Logger
Logger used for progress and command output.
runner : CommandRunner or None, optional
Subprocess runner used to stream output.
Raises¶
PreprocessError
If no T1 image is found, the m2m directory already exists, or
charm exits with a non-zero code.
See Also¶
run_subject_atlas : Create atlas .annot files after CHARM.
run_fastsurfer : FastSurfer deep segmentation.
Source code in tit/pre/charm.py
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 | |
run_tissue_analysis ¶
run_tissue_analysis(project_dir: str, subject_id: str, *, tissues: Iterable[str] = DEFAULT_TISSUES, logger: Logger) -> dict
Run tissue analysis for a subject.
Creates a TissueAnalyzer for each requested tissue type, computes
volume and thickness statistics, and writes reports and visualizations.
Parameters¶
project_dir : str
BIDS project root.
subject_id : str
Subject identifier without the sub- prefix.
tissues : iterable of str, optional
Tissue types to analyze. Defaults to ('bone', 'csf', 'skin').
logger : logging.Logger
Logger for progress output.
Returns¶
dict Mapping of tissue name to per-tissue analysis results (volume, thickness, voxel counts, report path).
Raises¶
PreprocessError If the segmentation labeling file does not exist.
See Also¶
TissueAnalyzer : Low-level analysis for a single tissue type. run_pipeline : Full preprocessing pipeline.
Source code in tit/pre/tissue_analyzer.py
run_qsiprep ¶
run_qsiprep(project_dir: str, subject_id: str, *, logger: Logger, output_resolution: float | None = None, cpus: int | None = None, memory_gb: int | None = None, omp_threads: int = QSI_DEFAULT_OMP_THREADS, image_tag: str = QSI_QSIPREP_IMAGE_TAG, skip_bids_validation: bool = True, denoise_method: str = 'dwidenoise', unringing_method: str = 'auto', mni_normalization: bool = False, runner: CommandRunner | None = None) -> None
Run QSIPrep preprocessing for a subject's DWI data.
This function spawns a QSIPrep Docker container as a sibling to the current SimNIBS container using Docker-out-of-Docker (DooD). QSIPrep needs an x86-64 Docker host (its SynthSeg step needs AVX); an arm64 host is refused before anything runs.
Susceptibility distortion correction is always on: TOPUP with the subject's
reverse phase-encoding fieldmap (IntendedFor written into its sidecar when
missing) or reverse-PE DWI series, else fieldmap-less SyN
(--use-syn-sdc warn). DWI fieldmaps that exist but cannot be used stop the
run instead of silently falling back.
Parameters¶
project_dir : str
Path to the BIDS project root directory.
subject_id : str
Subject identifier (without 'sub-' prefix).
logger : logging.Logger
Logger for status messages.
output_resolution : float or None, optional
Isotropic output voxel size in mm. None (default) uses the native DWI
voxel size (smallest axis, rounded to 0.1 mm).
cpus : int, optional
Number of CPUs to allocate. Default: 8.
memory_gb : int, optional
Memory limit in GB. Default: 32.
omp_threads : int, optional
Threads per process. Default: constants.QSI_DEFAULT_OMP_THREADS
(min(cpu_count - 1, 8), matching QSIPrep's own default).
image_tag : str, optional
QSIPrep Docker image tag. Default from constants.QSI_QSIPREP_IMAGE_TAG.
skip_bids_validation : bool, optional
Skip BIDS validation. Default: True.
denoise_method : str, optional
Denoising method. Default: 'dwidenoise'.
unringing_method : str, optional
'mrdegibbs', 'rpg', 'none' or 'auto' (default): rpg when the DWI sidecar
has PartialFourier < 1, else mrdegibbs.
mni_normalization : bool, optional
Run the anatomical normalization to MNI (needed only for QSIRecon atlases
and template-space specs). Default: False; forced on by SyN SDC.
runner : CommandRunner | None, optional
Command runner for subprocess execution.
Raises¶
PreprocessError If QSIPrep fails or prerequisites are not met.
Source code in tit/pre/qsi/qsiprep.py
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 | |
run_qsirecon ¶
run_qsirecon(project_dir: str, subject_id: str, *, logger: Logger, recon_specs: list[str] | None = None, atlases: list[str] | None = None, use_gpu: bool = False, cpus: int | None = None, memory_gb: int | None = None, omp_threads: int = QSI_DEFAULT_OMP_THREADS, image_tag: str = QSI_QSIRECON_IMAGE_TAG, skip_odf_reports: bool = True, runner: CommandRunner | None = None) -> None
Run QSIRecon reconstruction for a subject's preprocessed DWI data.
This function spawns QSIRecon Docker containers as siblings to the current SimNIBS container using Docker-out-of-Docker (DooD).
QSIRecon is optional: it adds tractography, scalar maps and connectivity on top of QSIPrep output. The SimNIBS DTI tensor does not need it. Multiple reconstruction specs can be run sequentially.
Parameters¶
project_dir : str
Path to the BIDS project root directory.
subject_id : str
Subject identifier (without 'sub-' prefix).
logger : logging.Logger
Logger for status messages.
recon_specs : list[str] | None, optional
List of reconstruction specifications to run. Default: ['dsi_studio_gqi']
(GQI scalar maps, no tractography). Other specs (mrtrix_, dipy_,
amico_noddi, pyafq_*, etc.) remain available.
atlases : list[str] | None, optional
List of atlases for connectivity analysis. Default: None (no
connectivity). Needs a QSIPrep run with MNI normalization enabled.
use_gpu : bool, optional
Enable GPU acceleration. Default: False.
cpus : int | None, optional
Number of CPUs to allocate. None = inherit from current container.
memory_gb : int | None, optional
Memory limit in GB. None = inherit from current container.
omp_threads : int, optional
Threads per process. Default: constants.QSI_DEFAULT_OMP_THREADS
(min(cpu_count - 1, 8), matching QSIPrep's own default).
image_tag : str, optional
QSIRecon Docker image tag. Default from constants.QSI_QSIRECON_IMAGE_TAG.
skip_odf_reports : bool, optional
Skip ODF report generation. Default: True.
runner : CommandRunner | None, optional
Command runner for subprocess execution.
Raises¶
PreprocessError If QSIRecon fails or prerequisites are not met.
Source code in tit/pre/qsi/qsirecon.py
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 | |
extract_dti_tensor ¶
Fit, register and write DTI_coregT1_tensor.nii.gz for subject_id.
Reads QSIPrep output and the charm m2m folder; writes the tensor and
DTI_coregT1_qc.json into the m2m folder, then a DTI QC report.
Raises¶
tit.pre.utils.PreprocessError Missing inputs, an existing tensor, an m2m T1 that is not the T1w QSIPrep used, or a failed QC gate (the QC JSON and the report are still written; the tensor is not).
Source code in tit/pre/qsi/dti_extractor.py
428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 | |
discover_subjects ¶
Return sorted, deduplicated subject IDs found in a BIDS project tree.
Returns an empty list when project_dir is None (project not
configured).
Discovery order:
sourcedata/sub-*/T1w/orT2w/-- any subdir, NIfTI, DICOM, or supported DICOM archive (.zip,.tar,.tar.gz,.tgz).sourcedata/sub-*/*.tgz(compressed bundles at top level).sub-*/anat/*T1w*.nii[.gz]or*T2w*.nii[.gz]at project root.
Parameters¶
project_dir : str BIDS project root directory.
Returns¶
list[str]
Sorted list of subject identifiers (without the sub- prefix).
See Also¶
check_m2m_exists : Check whether a subject's m2m directory exists.
Source code in tit/pre/utils.py
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 | |
check_m2m_exists ¶
Return True if the SimNIBS m2m directory already exists.
Checks for
<project_dir>/derivatives/SimNIBS/sub-<subject_id>/m2m_<subject_id>.
Parameters¶
project_dir : str
BIDS project root directory.
subject_id : str
Subject identifier without the sub- prefix.
Returns¶
bool
True if the m2m directory exists on disk.
See Also¶
discover_subjects : Find all subject IDs in a BIDS project. run_charm : Generate the m2m head mesh.
Source code in tit/pre/utils.py
find_existing_preprocessing_outputs ¶
find_existing_preprocessing_outputs(project_dir: str, subject_ids: Iterable[str], *, steps: Sequence[str] | None = None, convert_dicom: bool = False, create_m2m: bool = False, run_fastsurfer: bool = False, run_freesurfer: bool = False, freesurfer_recon_all: bool = True, freesurfer_subregions: Sequence[str] = (), run_qsiprep: bool = False, run_qsirecon: bool = False, extract_dti: bool = False) -> list[PreprocessingOutput]
Return outputs that already exist for selected subjects and steps.
Source code in tit/pre/preflight.py
find_missing_preprocessing_inputs ¶
find_missing_preprocessing_inputs(project_dir: str, subject_ids: Iterable[str], *, steps: Sequence[str] | None = None, convert_dicom: bool = False, create_m2m: bool = False, run_fastsurfer: bool = False, run_freesurfer: bool = False, freesurfer_recon_all: bool = True, freesurfer_subregions: Sequence[str] = (), run_qsiprep: bool = False, run_qsirecon: bool = False, extract_dti: bool = False, skip_existing_outputs: bool = False) -> list[PreprocessingInputProblem]
Return missing inputs that can be detected before running subprocesses.
Source code in tit/pre/preflight.py
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 | |
selected_preprocessing_steps ¶
selected_preprocessing_steps(*, convert_dicom: bool = False, create_m2m: bool = False, run_fastsurfer: bool = False, run_freesurfer: bool = False, freesurfer_recon_all: bool = True, freesurfer_subregions: Sequence[str] = (), run_qsiprep: bool = False, run_qsirecon: bool = False, extract_dti: bool = False) -> list[str]
Return output-producing steps enabled by the current run options.