CAT12 Segmentation Interface¶
Module contents¶
Definition of an interface for the CAT12 segmentation function.
Subpackages¶
Submodules¶
django_mri.analysis.interfaces.matlab.spm.cat12.segmentation.defaults module¶
Default values for the various keys required in the batch template.
django_mri.analysis.interfaces.matlab.spm.cat12.segmentation.messages module¶
A module storing strings used to display messages.
django_mri.analysis.interfaces.matlab.spm.cat12.segmentation.outputs module¶
Dictionaries containing CAT12 segmentation output file names by key.
-
django_mri.analysis.interfaces.matlab.spm.cat12.segmentation.outputs.
AUXILIARY_OUTPUT
= {'batch_file': 'segmentation.m', 'reports': ['report/cat_{file_name}.mat', 'report/cat_{file_name}.xml', 'report/catlog_{file_name}.txt', 'report/catreport_{file_name}.pdf', 'report/catreportj_{file_name}.jpg']}¶ Artifacts created during execution.
-
django_mri.analysis.interfaces.matlab.spm.cat12.segmentation.outputs.
SEGMENTATION_OUTPUT
= {'cobra': ['label/catROI_{file_name}.mat', 'label/catROI_{file_name}.xml'], 'dartel_grey_matter': {'affine': 'mri/rp1{file_name}_affine.nii', 'rigid': 'mri/rp1{file_name}_rigid.nii'}, 'dartel_white_matter': {'affine': 'mri/rp2{file_name}_affine.nii', 'rigid': 'mri/rp2{file_name}_rigid.nii'}, 'deformation_fields': {'both': ['mri/y_{file_name}.nii', 'mri/iy_{file_name}.nii'], 'forward': 'mri/y_{file_name}.nii', 'inverse': 'mri/iy_{file_name}.nii', 'none': None}, 'hammers': ['label/catROI_{file_name}.mat', 'label/catROI_{file_name}.xml'], 'jacobian_determinant': 'mri/wj_{file_name}.nii', 'lpba40': ['label/catROI_{file_name}.mat', 'label/catROI_{file_name}.xml'], 'modulated_grey_matter': 'mri/mwp1{file_name}.nii', 'modulated_white_matter': 'mri/mwp2{file_name}.nii', 'native_grey_matter': 'mri/p1{file_name}.nii', 'native_pve': 'mri/p0{file_name}.nii', 'native_white_matter': 'mri/p2{file_name}.nii', 'neuromorphometrics': ['label/catROI_{file_name}.mat', 'label/catROI_{file_name}.xml'], 'surface_estimation': ['surf/lh.central.{file_name}.gii', 'surf/lh.sphere.{file_name}.gii', 'surf/lh.sphere.reg.{file_name}.gii', 'surf/lh.thickness.{file_name}', 'surf/rh.central.{file_name}.gii', 'surf/rh.sphere.{file_name}.gii', 'surf/rh.sphere.reg.{file_name}.gii', 'surf/rh.thickness.{file_name}'], 'warped_image': 'mri/wm{file_name}.nii'}¶ Output file names by key.
django_mri.analysis.interfaces.matlab.spm.cat12.segmentation.segmentation module¶
Definition of the
Segmentation
class.
-
class
django_mri.analysis.interfaces.matlab.spm.cat12.segmentation.segmentation.
Segmentation
(**kwargs)¶ Bases:
django_mri.analysis.interfaces.matlab.spm.spm_procedure.SPMProcedure
An interface for the CAT12 segmentation function.
-
AUXILIARY_OUTPUT
= {'batch_file': 'segmentation.m', 'reports': ['report/cat_{file_name}.mat', 'report/cat_{file_name}.xml', 'report/catlog_{file_name}.txt', 'report/catreport_{file_name}.pdf', 'report/catreportj_{file_name}.jpg']}¶
-
BATCH_TEMPLATE_ID
= 'CAT12 Segmentation'¶
-
DEFAULTS
= {'accuracy': 'average', 'affine_preprocessing': 'rough', 'affine_regularisation': 'mni', 'bias_strength': 'medium', 'cobra': False, 'dartel_grey_matter': False, 'dartel_white_matter': False, 'deformation_fields': 'none', 'hammers': False, 'internal_resampling': 1, 'jacobian_determinant': False, 'local_adaptive_segmentation_strength': 'medium', 'lpba40': False, 'modulated_grey_matter': True, 'modulated_white_matter': True, 'n_processes': 4, 'native_grey_matter': False, 'native_pve': True, 'native_white_matter': False, 'neuromorphometrics': True, 'normalized_image_voxel_size': 1.5, 'skull_stripping': 'aprg', 'surface_estimation': False, 'warped_image': True}¶
-
DEFAULT_BATCH_FILE_NAME
= 'segmentation.m'¶
-
OUTPUT_DEFINITIONS
= {'cobra': ['label/catROI_{file_name}.mat', 'label/catROI_{file_name}.xml'], 'dartel_grey_matter': {'affine': 'mri/rp1{file_name}_affine.nii', 'rigid': 'mri/rp1{file_name}_rigid.nii'}, 'dartel_white_matter': {'affine': 'mri/rp2{file_name}_affine.nii', 'rigid': 'mri/rp2{file_name}_rigid.nii'}, 'deformation_fields': {'both': ['mri/y_{file_name}.nii', 'mri/iy_{file_name}.nii'], 'forward': 'mri/y_{file_name}.nii', 'inverse': 'mri/iy_{file_name}.nii', 'none': None}, 'hammers': ['label/catROI_{file_name}.mat', 'label/catROI_{file_name}.xml'], 'jacobian_determinant': 'mri/wj_{file_name}.nii', 'lpba40': ['label/catROI_{file_name}.mat', 'label/catROI_{file_name}.xml'], 'modulated_grey_matter': 'mri/mwp1{file_name}.nii', 'modulated_white_matter': 'mri/mwp2{file_name}.nii', 'native_grey_matter': 'mri/p1{file_name}.nii', 'native_pve': 'mri/p0{file_name}.nii', 'native_white_matter': 'mri/p2{file_name}.nii', 'neuromorphometrics': ['label/catROI_{file_name}.mat', 'label/catROI_{file_name}.xml'], 'surface_estimation': ['surf/lh.central.{file_name}.gii', 'surf/lh.sphere.{file_name}.gii', 'surf/lh.sphere.reg.{file_name}.gii', 'surf/lh.thickness.{file_name}', 'surf/rh.central.{file_name}.gii', 'surf/rh.sphere.{file_name}.gii', 'surf/rh.sphere.reg.{file_name}.gii', 'surf/rh.thickness.{file_name}'], 'warped_image': 'mri/wm{file_name}.nii'}¶
-
REDUNDANT_LOG_PATTERN
= 'catlog_main_*_log*.txt'¶
-
TRANSFORMATIONS
= {'accuracy': {'average': 0.5, 'high': 0.75, 'ultra high': 1}, 'affine_preprocessing': {'full': 2, 'light': 1, 'none': 0, 'rough': 1070}, 'bias_strength': {'light': 0.25, 'medium': 0.5, 'strong': 0.75}, 'dartel_grey_matter': {'affine': 2, 'no': 0, 'rigid': 1}, 'dartel_white_matter': {'affine': 2, 'no': 0, 'rigid': 1}, 'deformation_fields': {'both': '[1 1]', 'forward': '[1 0]', 'inverse': '[0 1]', 'none': '[0 0]'}, 'local_adaptive_segmentation_strength': {'light': 0.25, 'medium': 0.5, 'none': 0, 'strong': 0.75}, 'skull_stripping': {'aprg': 2, 'gcut': 0.5, 'none': -1, 'spm': 0}}¶
-
organize_output
(path: pathlib.Path, created_uncompressed_version: bool, destination: pathlib.Path, remove_redundant_logs: bool, verbose_output_dict: bool = False) → dict¶ Organized output files after execution.
Parameters: - path (Path) – Input file path
- created_uncompressed_version (bool) – Whether an uncompressed version of the input value was created or not
- destination (Path) – Output files destination directory
- remove_redundant_logs (bool) – Whether to remove logs created during execution or not
- verbose_output_dict (bool, optional) – Whether to flatten the output dictionary to facilitate integration with django_analyses, by default False
Returns: Output files by keys
Return type:
-
remove_redundant_logs
(run_dir: pathlib.Path)¶ Removed unnecessary logs created during execution.
Parameters: run_dir (Path) – Output files destination
-
run
(path: pathlib.Path, destination: pathlib.Path = None, remove_redundant_logs: bool = True, verbose_output_dict: bool = False) → dict¶ Run CAT12 segmentation on the provided .nii input file.
Parameters: - path (Path) – Input file
- destination (Path, optional) – Output file destination directory, by default None
- remove_redundant_logs (bool, optional) – Whether to remove some logs created during execution, by default True
- verbose_output_dict (bool, optional) – Whether to verbosify and flatten the output files dictionary, by default False
Returns: Output files by key
Return type:
-
transform_options
() → dict¶ Apply any transformation defined in the
transformations
module to theoptions
dictionary.Returns: Tranformed options dictionary Return type: dict
-
django_mri.analysis.interfaces.matlab.spm.cat12.segmentation.transformations module¶
Definition of the SEGMENTATION_TRANSFORMATIONS
dictionary.
-
django_mri.analysis.interfaces.matlab.spm.cat12.segmentation.transformations.
SEGMENTATION_TRANSFORMATIONS
= {'accuracy': {'average': 0.5, 'high': 0.75, 'ultra high': 1}, 'affine_preprocessing': {'full': 2, 'light': 1, 'none': 0, 'rough': 1070}, 'bias_strength': {'light': 0.25, 'medium': 0.5, 'strong': 0.75}, 'dartel_grey_matter': {'affine': 2, 'no': 0, 'rigid': 1}, 'dartel_white_matter': {'affine': 2, 'no': 0, 'rigid': 1}, 'deformation_fields': {'both': '[1 1]', 'forward': '[1 0]', 'inverse': '[0 1]', 'none': '[0 0]'}, 'local_adaptive_segmentation_strength': {'light': 0.25, 'medium': 0.5, 'none': 0, 'strong': 0.75}, 'skull_stripping': {'aprg': 2, 'gcut': 0.5, 'none': -1, 'spm': 0}}¶ Transformation to apply to option values before editing the batch template.