Welcome to django_mri’s documentation!¶
Overview¶
django_mri is a reusable Django app providing general-purpose MRI data management utilities.
The purpose of this app is to abstract away technical details and automate commonplace coversion and extraction functionalities required by the various neuroimaging analysis toolkits. In addition, it provides preconfigured analysis interfaces and pipelines with the help of django_analyses and nipype.
Installation¶
Install from PyPi:
$ pip install django_mri
Add “django_mri” and “django_dicom” to your project’s INSTALLED_APPS setting:
<project>/settings.py¶INSTALLED_APPS = [ ..., "django_dicom", "django_mri", ]Note
django_mri uses django_dicom to manage data imported as DICOM files.
Include the app’s URLconf in your prject urls.py:
<project>/urls.py¶urlpatterns = [ ..., path("api/", include("django_mri.urls", namespace="mri")), ]Run:
$ python manage.py migrate
[Optional] Load preconfigured sequence types and analyses:
Django shell¶>>> from django_mri.analysis.utils import load_mri_analyses >>> from django_mri.models import SequenceType >>> from django_mri.models.common_sequences import sequences # Create analyses and pipelines >>> load_mri_analyses() # Create common MRI sequence definitions >>> for sequence in sequences: >>> SequenceType.objects.create(**sequence)Start the development server and visit http://127.0.0.1:8000/admin/.
Importing Data¶
Currently, django_mri supports importing raw data only as DICOM files. To import a directory of DICOM data, simply run:
>>> from django_mri.models import Scan
>>> path = "/path/to/dicom/archive/"
>>> Scan.objects.import_path(path)
Importing DICOM data: <####>image [<##:##>, <##.##>image/s]
Successfully imported DICOM data from <path>!
Created: <####>
Reference¶
Subpackages¶
Analysis¶
Module contents¶
Preconfigured analyses and pipelines to be used with django_analyses.
Example
To import the analyses and pipelines to the database, start a Django shell session and run:
from django_mri.analysis.utils import load_mri_analyses
load_mri_analyses()
See also
Subpackages¶
Interfaces¶
Interface classes for various MRI data processing tools.
Definition of the FastWrapper
class.
-
class
django_mri.analysis.interfaces.fsl.fast.
FastWrapper
(**inputs)¶ Bases:
nipype.interfaces.fsl.preprocess.FAST
A simple subclass of nipype’s
FAST
interface, tweaking therun()
method’s output slightly to make output specification easier.
Definition of the FslAnat
class.
-
class
django_mri.analysis.interfaces.fsl.fsl_anat.
FslAnat
(weak_bias: bool = False, no_reorient: bool = False, no_crop: bool = False, no_bias: bool = False, no_registration: bool = False, no_nonlinear_registration: bool = False, no_segmentation: bool = False, no_subcortical_segmentation: bool = False, no_search: bool = False, bias_field_smoothing: float = None, image_type: str = 'T1', no_cleanup: bool = False)¶ Bases:
object
Custom interface class for the fsl_anat anatomical preprocessing script.
-
FLAGS
= {'no_nonlinear_registration': 'nononlinreg', 'no_registration': 'noreg', 'no_segmentation': 'noseg', 'no_subcortical_segmentation': 'nosubcortseg'}¶ Conversion dictionary between the verbose names given to the class initialization keyword arguments and the script’s parameters.
-
FLAG_ATTRIBUTES
= ('weak_bias', 'no_reorient', 'no_crop', 'no_bias', 'no_registration', 'no_nonlinear_registration', 'no_segmentation', 'no_subcortical_segmentation', 'no_search', 'no_cleanup')¶ “Flags” indicate parameters that are specified without any arguments, i.e. they are a switch for some binary configuration.
-
FORCED_SUFFIX
= '.anat'¶ A suffix given by fsl_anat and removed by the interface.
-
OUTPUT_FILES
= {'bias_corrected_brain': 'T1_biascorr_brain.nii.gz', 'bias_corrected_brain_mask': 'T1_biascorr_brain_mask.nii.gz', 'csf_partial_volume': 'T1_fast_pve_0.nii.gz', 'fast_bias_correction': 'T1_biascorr.nii.gz', 'grey_matter_partial_volume': 'T1_fast_pve_1.nii.gz', 'linear_registration': 'T1_to_MNI_lin.nii.gz', 'nonlinear_registration': 'T1_to_MNI_nonlin.nii.gz', 'nonlinear_registration_field': 'T1_to_MNI_nonlin_field.nii.gz', 'nonlinear_registration_jacobian': 'T1_to_MNI_nonlin_jac.nii.gz', 'segmentation_summary': 'T1_fast_pveseg.nii.gz', 'subcortical_segmentation_summary': 'T1_subcort_seg.nii.gz', 'volume_scales': 'T1_vols.txt', 'white_matter_partial_volume': 'T1_fast_pve_2.nii.gz'}¶ A dictionary of the file names expected to be created by running the script.
-
fix_output_path
(destination: pathlib.Path) → None¶ Removed the forced .anat suffix appended to the destination directory.
Parameters: destination (Path) – Destination directory
-
generate_command
(scan, destination: pathlib.Path = None) → str¶ Returns the command to be executed in order to run the analysis.
Parameters: - scan (NIfTI) – The scan to run the analysis on
- destination (Path, optional) – The directory in which output files should be created, by default None
Returns: Command string
Return type:
-
generate_flags
() → str¶ Returns a string containing the various flags configured for this instance.
Returns: Execution command flag parameters Return type: str
-
generate_output_dict
(destination: pathlib.Path = None) → dict¶ Returns a dictionary of the run’s output files.
Parameters: destination (Path, optional) – Destination directory, by default None Returns: Output files by key Return type: dict
-
run
(scan, destination: pathlib.Path = None) → dict¶ Runs fsl_anat with the provided scan as input and destination as the destination directory.
Parameters: - scan (NIfTI) – Input scan
- destination (Path, optional) – Destination directory, by default None
Returns: Output files by key
Return type: Raises: RuntimeError
– Run failure
-
Definition of the
TopupWrapper
class.
Interfaces for MATLAB functions.
Definition of an interface for the CAT12 segmentation function.
Definition of an interface for the CAT12 segmentation function.
A utility module created for the definition of the
verbosify_output_dict()
method.
-
django_mri.analysis.interfaces.matlab.spm.cat12.segmentation.utils.verbosify_output_dict.
verbosify_output_dict
(output_dict: dict) → dict¶ Flattens and verbosifies the output files dictionary to facilitate integration with django_analyses.
Parameters: output_dict (dict) – Output files by key Returns: Flat and verbose output files by key Return type: dict
Default values for the various keys required in the batch template.
A module storing strings used to display messages.
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.
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
-
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.
CAT12 segmentation interface utilities.
Definition of the
CAT12_TEMPLATES
constant, used to locate batch template file paths by interface key.
-
django_mri.analysis.interfaces.matlab.spm.cat12.utils.batch_templates.
CAT12_TEMPLATES
= {'CAT12 Segmentation': PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/django-mri/checkouts/latest/django_mri/analysis/interfaces/matlab/spm/cat12/segmentation/batch_template.m')}¶ Batch template file path by interface (string) key.
Relative paths to files required by some CAT12 analysis configurations.
-
django_mri.analysis.interfaces.matlab.spm.cat12.utils.template_files.
RELATIVE_DARTEL_TEMPLATE_LOCATION
= 'toolbox/cat12/templates_1.50mm/Template_1_IXI555_MNI152.nii'¶ Relative path to dartel template.
-
django_mri.analysis.interfaces.matlab.spm.cat12.utils.template_files.
RELATIVE_TISSUE_PROBABILITY_MAP_LOCATION
= 'tpm/TPM.nii'¶ Relative path to tissue probability map.
Definition of the
TEMPLATES
constant.
-
django_mri.analysis.interfaces.matlab.spm.utils.batch_templates.
TEMPLATES
= {'CAT12 Segmentation': PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/django-mri/checkouts/latest/django_mri/analysis/interfaces/matlab/spm/cat12/segmentation/batch_template.m')}¶ Batch templates dictionary, associating interface keys with template paths.
Definition of the
NiftiValidator
class.
-
class
django_mri.analysis.interfaces.matlab.spm.utils.nifti_validator.
NiftiValidator
(allow_gz: bool = False)¶ Bases:
object
A utility class used to validate .nii inputs and uncompress them if necessary.
-
validate_and_fix
(path: pathlib.Path) → pathlib.Path¶ Validates the provided path represents a .nii file and uncompresses it if necessary.
Parameters: path (Path) – .nii file path
Returns: .nii file path
Return type: Path
Raises: ValueError
– Invalid suffix (not .nii)FileNotFoundError
– File does not exist
-
Definition of the
dwifslpreproc
interface.
-
class
django_mri.analysis.interfaces.mrtrix3.dwifslpreproc.
DwiFslPreproc
(configuration: dict)¶ Bases:
object
An interface for the MRtrix3 dwifslpreproc script.
References
-
DEFAULT_OUTPUT_NAME
= 'preprocessed_dwi.mif'¶ Default name for primary output file.
-
EDDY_OUTPUTS
= {'eddy_mask': 'eddy_mask.nii', 'out_movement_rms': 'eddy_movement_rms', 'out_outlier_map': 'eddy_outlier_map', 'out_outlier_n_sqr_stdev_map': 'eddy_outlier_n_sqr_stdev_map', 'out_outlier_n_stdev_map': 'eddy_outlier_n_stdev_map', 'out_outlier_report': 'eddy_outlier_report', 'out_parameter': 'eddy_parameters', 'out_restricted_movement_rms': 'eddy_restricted_movement_rms', 'out_shell_alignment_parameters': 'eddy_post_eddy_shell_alignment_parameters', 'out_shell_pe_translation_parameters': 'eddy_post_eddy_shell_PE_translation_parameters'}¶ eddy output files by key.
References
-
FLAGS
= ('align_seepi', 'rpe_none', 'rpe_pair', 'rpe_all', 'rpe_header', 'force', 'quiet', 'info', 'nocleanup')¶ “Flags” indicate parameters that are specified without any arguments, i.e. they are a switch for some binary configuration.
-
SUPPLEMENTARY_OUTPUTS
= ('eddyqc_text', 'eddyqc_all')¶ Non-default output configurations.
-
add_supplementary_outputs
(destination: pathlib.Path) → dict¶ Adds the eddy output files to the interface’s configuration before generating the command to run.
References
Parameters: destination (Path) – Output directory Returns: Updated configuration dictionary Return type: dict
-
generate_command
(scan, destination: pathlib.Path, config: str) → str¶ Returns the command to be executed in order to run the analysis.
Parameters: Returns: Complete execution command
Return type:
-
generate_output_dict
(destination: pathlib.Path) → dict¶ Generates a dictionary of the expected output file paths by key.
Parameters: destination (Path) – Output files destination directory Returns: Output files by key Return type: dict
-
run
(scan, destination: pathlib.Path = None) → dict¶ Runs dwifslpreproc with the provided scan as input. If destination is not specified, output files will be created within scan’s directory.
Parameters: - scan (Scan) – Input scan
- destination (Path, optional) – Output files destination directory, by default None
Returns: Output files by key
Return type: Raises: RuntimeError
– Run failure
-
Definition of the Dcm2niix
class.
-
django_mri.analysis.interfaces.dcm2niix.
BASE_DIR
= PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/django-mri/checkouts/latest/django_mri')¶ Project’s base directory.
-
class
django_mri.analysis.interfaces.dcm2niix.
Dcm2niix
(path: pathlib.Path = PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/django-mri/checkouts/latest/django_mri/utils/dcm2niix'))¶ Bases:
object
An interface for dcm2niix.
See also
-
BOOLEAN
= {False: 'n', True: 'y'}¶ Convert boolean configurations to “y” or “n”.
-
FLAGS
= {'BIDS': '-b', 'compressed': '-z', 'directory': '-o', 'name': '-f'}¶ Arguemnts dictionary. Keys are the interface’s verbose names and values are the actual CLI’s arguments.
-
convert
(path: pathlib.Path, destination: pathlib.Path, compressed: bool = True, generate_json: bool = True) → pathlib.Path¶ Coverts the series in the provided path from DICOM to NIfTI.
Parameters: - path (Path) – Input DICOM directory
- destination (Path) – Output destination directory
- compressed (bool, optional) – Whether to create compressed (.nii.gz) files or not, by default True
- generate_json (bool, optional) – Whether to generate a “BIDS sidecar” JSON file with supplementary information, by default True
Returns: Output file path
Return type: Path
Raises: RuntimeError
– dcm2niix run failureNotImplementedError
– dcm2niix executable could not be found
-
extract_output_path
(stdout: str, compressed: bool) → pathlib.Path¶ Returns the path of the output file.
Parameters: Returns: Output file path
Return type: Path
-
generate_command
(path: pathlib.Path, destination: pathlib.Path, compressed: bool = True, generate_json: bool = True) → list¶ Generate the command to execute to run dcm2niix.
Parameters: Returns: Command to run, split at spaces
Return type:
-
A module storing strings used to display messages.
Pipelines¶
Proposed pipeline definitions for MRI data using commonplace neuroimaging analysis interfaces.
Pipeline definitions are aggregated in
pipeline_definitions
and may be added to the
database using the
Pipeline.objects.from_list()
method.
Example
from django_analyses.models.pipeline import Pipeline
from django_mri.analysis.pipeline_definitions import pipeline_definitions
Pipeline.objects.from_list(pipeline_definitions)
Full DWI preprocessing pipeline.
Steps:
- Extract b0 from AP
- Merge AP_b0 and PA
- Create brain mask
- Convert to mif (merged, AP)
- Denoise initial AP
- dwifslpreproc AP merged
- Gibbs correction
- Bias correction
User inputs:
- fslroi node: in_file [AP]
- fslmerge node: in_files [PA]
- mrconvert_1 –> AP: in_bvec [bvec]
- mrconvert_1 –> AP: in_bval [bval]
Field-map correction for EPI scans using FSL.
Specifications¶
Input and output specifications dictionary to be included in
analysis_definitions
.
References
See also
Analysis.objects.from_dict()
InputSpecification.objects.from_dict()
OutputSpecification.objects.from_dict()
Input and output specification dicationaries for FreeSurfer analyses.
Input and output specification dictionaries for FreeSurfer’s recon_all script.
-
django_mri.analysis.specifications.freesurfer.recon_all.
RECON_ALL_INPUT_SPECIFICATION
= {'FLAIR_file': {'description': 'Path to FLAIR image to be used for improved pial surface estimation (can be either a DICOM, MGH or NIFTI file)', 'required': False, 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'T1_files': {'description': 'A list of T1 files to be processed, in either DICOM or NIfTI format.', 'element_type': 'FIL', 'required': False, 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'T2_file': {'description': 'Path to T2 image to be used for improved pial surface estimation (can be either a DICOM, MGH or NIFTI file)', 'required': False, 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'big_ventricles': {'description': 'To be used for subjects with enlarged ventricles.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'brainstem': {'description': 'Segment brainstem structures.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'directive': {'choices': ['all', 'autorecon1', 'autorecon2', 'autorecon2-volonly', 'autorecon2-perhemi', 'autorecon2-inflate1', 'autorecon2-cp', 'autorecon2-wm', 'autorecon3', 'autorecon3-T2pial', 'autorecon-pial', 'autorecon-hemi', 'localGI', 'qcache'], 'default': 'all', 'description': 'Directives control the execution of the various processing procedures carried out.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'expert': {'description': 'Set parameters using an expert file.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'flags': {'description': 'Additional parameters.', 'element_type': 'STR', 'required': False, 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'hemi': {'choices': ['lh', 'rh'], 'description': 'Choose to run only for a particular hemisphere.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'hippocampal_subfields_T1': {'description': 'Segment hippocampal subfields using the T1 image.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'hires': {'description': 'Conform to minimum voxel size (for voxels lesser than 1mm).', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'mprage': {'description': 'Assume scan parameters are MGH MPRAGE protocol, which produces darker grey matter.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'mri_aparc2aseg': {'description': 'Flags to pass to mri_aparc2aseg commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mri_ca_label': {'description': 'Flags to pass to mri_ca_label commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mri_ca_normalize': {'description': 'Flags to pass to mri_ca_normalize commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mri_ca_register': {'description': 'Flags to pass to mri_ca_register commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mri_edit_wm_with_aseg': {'description': 'Flags to pass to mri_edit_wm_with_aseg commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mri_em_register': {'description': 'Flags to pass to mri_em_register commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mri_fill': {'description': 'Flags to pass to mri_fill commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mri_mask': {'description': 'Flags to pass to mri_mask commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mri_normalize': {'description': 'Flags to pass to mri_normalize commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mri_pretess': {'description': 'Flags to pass to mri_pretess commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mri_remove_neck': {'description': 'Flags to pass to mri_remove_neck commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mri_segment': {'description': 'Flags to pass to mri_segment commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mri_segstats': {'description': 'Flags to pass to mri_segstats commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mri_tessellate': {'description': 'Flags to pass to mri_tessellate commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mri_watershed': {'description': 'Flags to pass to mri_watershed commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mris_anatomical_stats': {'description': 'Flags to pass to mris_anatomical_stats commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mris_ca_label': {'description': 'Flags to pass to mris_ca_label commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mris_fix_topology': {'description': 'Flags to pass to mris_fix_topology commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mris_inflate': {'description': 'Flags to pass to mris_inflate commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mris_make_surfaces': {'description': 'Flags to pass to mris_make_surfaces commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mris_register': {'description': 'Flags to pass to mris_register commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mris_smooth': {'description': 'Flags to pass to mris_smooth commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mris_sphere': {'description': 'Flags to pass to mris_sphere commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mris_surf2vol': {'description': 'Flags to pass to mris_surf2vol commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mrisp_paint': {'description': 'Flags to pass to mrisp_paint commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'openmp': {'description': 'Number of processes to run if parallel execution is enabled.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'parallel': {'description': 'Enable parallel execution.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'subject_id': {'description': 'Subject ID to be searched for in the SUBJECTS_DIR path.', 'dynamic_default': '{run_id}', 'is_configuration': False, 'required': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'subjects_dir': {'default': '/home/docs/checkouts/readthedocs.org/user_builds/django-mri/checkouts/latest/media/analysis', 'description': 'Path to subjects directory.', 'required': True, 'type': <class 'django_analyses.models.input.definitions.directory_input_definition.DirectoryInputDefinition'>}, 'talairach': {'description': 'Flags to pass to talairach commands.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'use_FLAIR': {'description': 'Whether to use the provided FLAIR image to generate an improved pial surface estimation.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'use_T2': {'description': 'Whether to use the provided T2 image to generate an improved pial surface estimation.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'xopts': {'choices': ['use', 'clean', 'overwrite'], 'description': 'Use, clean, or overwrite the existing experts file.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}}¶ recon_all input specification.
-
django_mri.analysis.specifications.freesurfer.recon_all.
RECON_ALL_OUTPUT_SPECIFICATION
= {'T1': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'aseg': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'aseg_stats': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'brain': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'brainmask': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'filled': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'norm': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'nu': {'description': "This is an intensity normalized volume generated after correcting for non-uniformity in conformed raw average (saved as 'mri/orig.mgz'). If there are any errors in later steps, it sometimes helps to check if the intensity values don't look normal in this file. If the values are too high, then scaling down the intensity a little bit and re-running recon-all usually corrects that error. In some cases, this scaling down can also be done for the orig.mgz volume.", 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'orig': {'description': 'A conformed (i.e. to 256^3, 1mm isotropic) average volume of the raw input data.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'rawavg': {'description': 'An average volume of the raw input data (if there is only one input volume, they will be identical). This volume is unconformed (i.e. to 256^3, 1mm isotropic)', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'wm': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'wmparc': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'wmparc_stats': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}}¶ recon_all output specification.
Input and output specification dictionaries for FSL’s applytopup script.
See also
Notes
For more information about applytopup, see FSL’s TOPUP/ApplyTOPUP User Guide
-
django_mri.analysis.specifications.fsl.apply_topup.
APPLY_TOPUP_INPUT_SPECIFICATION
= {'datatype': {'choices': ['float', 'char', 'int', 'short', 'double'], 'description': 'Force output data type.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'encoding_file': {'description': "Path to a file containing images' phase-encoding directions/readout times. Mutually exclusive with inputs: encoding direction.", 'required': True, 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'in_files': {'description': "List of paths to NIfTI files to apply topup's results on.", 'element_type': 'FIL', 'is_configuration': False, 'required': True, 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'in_index': {'description': 'Comma separated list of indices corresponding to –datain.', 'element_type': 'INT', 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'in_topup_fieldcoef': {'description': 'Path to topup file containing the field coefficients. Requires inputs: in_topup_movpar', 'type': <class 'django_mri.models.inputs.nifti_input_definition.NiftiInputDefinition'>}, 'in_topup_movpar': {'description': 'Path to topup movpar.txt file. Requires input: in_topup_fieldcoef', 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'interp': {'choices': ['spline', 'trilinear'], 'description': 'Image interpolation model, linear or spline.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'method': {'choices': ['jac', 'lsr'], 'description': 'Use jacobian modulation (jac) or least-squares resampling (lsr).', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'out_corrected': {'description': 'Path to 4D image file with unwarped images.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'output_type': {'choices': ['NIFTI', 'NIFTI_PAIR', 'NIFTI_GZ', 'NIFTI_PAIR_GZ'], 'default': 'NIFTI_GZ', 'description': 'Output file format.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}}¶ applytopup input specification.
-
django_mri.analysis.specifications.fsl.apply_topup.
APPLY_TOPUP_OUTPUT_SPECIFICATION
= {'out_corrected': {'description': 'Path to 4D image file with unwarped images.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}}¶ applytopup output specification.
Input and output specification dictionaries for FSL’s BET_ script.
See also
Notes
For more information about BET, see FSL’s BET documentation.
-
django_mri.analysis.specifications.fsl.bet.
BET_INPUT_SPECIFICATION
= {'center': {'description': 'Center of gravity of initial mesh surface in voxels.', 'element_type': 'INT', 'max_length': 3, 'min_length': 3, 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'frac': {'default': 0.5, 'description': 'Fractional intensity threshold.', 'max_value': 1, 'min_value': 0, 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}, 'functional': {'description': 'Apply brain extraction to 4D fMRI data.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'in_file': {'description': 'A NIfTI format file to skullstrip.', 'is_configuration': False, 'required': True, 'type': <class 'django_mri.models.inputs.nifti_input_definition.NiftiInputDefinition'>, 'value_attribute': 'path.__str__'}, 'mask': {'description': 'Whether to create a binary mask image.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'mesh': {'description': 'Whether to generate a VTK mesh brain surface.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'no_output': {'description': 'Suppress output creation altogether.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'out_file': {'default': 'brain.nii.gz', 'description': 'Desired output file path.', 'is_output_path': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'outline': {'description': 'Whether to create a surface outline image.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'output_type': {'choices': ['NIFTI', 'NIFTI_PAIR', 'NIFTI_GZ', 'NIFTI_PAIR_GZ'], 'default': 'NIFTI_GZ', 'description': 'Output file format.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'padding': {'description': 'Whether to improve BET if FOV is very small in Z (by temporarily padding end slices).', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'radius': {'description': 'Head radius.', 'min_value': 0, 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'reduce_bias': {'description': 'Bias field and neck cleanup.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'remove_eyes': {'description': 'Whether to remove eyes and optic nerves (can be useful in SIENA).', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'robust': {'description': 'Whether to coduct a robust brain center estimation, iterating BET several times.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'skull': {'description': 'Whether to create a skull image.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'surfaces': {'description': 'Whether to run bet2 and then betsurf to get additional skull and scalp surfaces (includes registrations).', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 't2_guided': {'description': 'Include a raw T2 scan.', 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'threshold': {'description': 'Whether to apply thresholding to segmented brain image and mask.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'vertical_gradient': {'default': 0, 'description': 'Verical gradient in fractional intensity threshold.', 'max_value': 1, 'min_value': -1, 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}}¶ BET input specification dictionary.
-
django_mri.analysis.specifications.fsl.bet.
BET_OUTPUT_SPECIFICATION
= {'inskull_mask_file': {'description': 'The path of the inward skull mask file, if generated.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'inskull_mesh_file': {'description': 'The path of the inward skull mesh outline file, if generated.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'mask_file': {'description': 'The path of the binary mask file, if generated.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'meshfile': {'description': 'The path of the VTK mesh file, if generated.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'out_file': {'description': 'The path of the extracted brain file, if generated.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'outline_file': {'description': 'The path of the outline file, if generated.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'outskin_mask_file': {'description': 'The path of the outward skin mask file, if generated.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'outskin_mesh_file': {'description': 'The path of the outward skin mesh outline file, if generated.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'outskull_mask_file': {'description': 'The path of the outward skull mask file, if generated.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'outskull_mesh_file': {'description': 'The path of the outward skull mesh outline file, if generated.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'skull_mask_file': {'description': 'The path of the skull mask file, if generated.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}}¶ BET output specification dictionary.
Input and output specification dictionaries for nipype’s BinaryMaths interface, wrapping FSL’s fslmaths.
-
django_mri.analysis.specifications.fsl.binary_maths.
BINARY_MATHS_INPUT_SPECIFICATION
= {'in_file': {'description': 'Path to image to operate on.', 'is_configuration': False, 'required': True, 'type': <class 'django_mri.models.inputs.nifti_input_definition.NiftiInputDefinition'>, 'value_attribute': 'path.__str__'}, 'internal_datatype': {'choices': ['float', 'char', 'int', 'short', 'double', 'input'], 'default': 'float', 'description': 'Datatype to use for calculations.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'nan2zero': {'description': 'Change NaNs to zeros before doing anything.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'operand_file': {'description': 'Path to second image to perform operation with. Mutually exclusive with inputs: operand_value.', 'type': <class 'django_mri.models.inputs.nifti_input_definition.NiftiInputDefinition'>}, 'operand_value': {'description': 'Value to perform operation with.', 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}, 'operation': {'choices': ['add', 'sub', 'mul', 'div', 'rem', 'max', 'min'], 'description': 'Operation to perform.', 'required': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'out_file': {'default': 'math_out.nii.gz', 'description': 'Path to image to write results to.', 'is_output_path': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'output_datatype': {'choices': ['float', 'char', 'int', 'short', 'double', 'input'], 'description': 'Datatype to use for output (default uses input type).', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'output_type': {'choices': ['NIFTI', 'NIFTI_PAIR', 'NIFTI_GZ', 'NIFTI_PAIR_GZ'], 'default': 'NIFTI_GZ', 'description': 'Output file format.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}}¶ BinaryMaths input specification dictionary.
-
django_mri.analysis.specifications.fsl.binary_maths.
BINARY_MATHS_OUTPUT_SPECIFICATION
= {'out_file': {'description': "Path to image containing calculation's result.", 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}}¶ BinaryMaths input specification dictionary.
Input and output specification dictionaries for FSL’s eddy script.
-
django_mri.analysis.specifications.fsl.eddy.
EDDY_INPUT_SPECIFICATION
= {'cnr_maps': {'default': False, 'description': 'Output CNR-Maps.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'dont_peas': {'default': False, 'description': 'Do NOT perform a post-eddy alignment of shells.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'dont_sep_offs_move': {'default': False, 'description': 'Do NOT perform a post-eddy alignment of shells.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'estimate_move_by_susceptibility': {'default': False, 'description': 'Estimate how susceptibility field changes with subject movement.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'fep': {'default': False, 'description': 'Fill empty planes in x- or y-directions.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'field': {'description': 'Non-topup derived fieldmap scaled in Hz.', 'type': <class 'django_mri.models.inputs.nifti_input_definition.NiftiInputDefinition'>}, 'field_mat': {'description': 'Matrix specifying the relative positions of the fieldmap, –field, and the first volume of the input file, –imain.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'flm': {'choices': ['quadratic', 'linear', 'cubic'], 'default': 'quadratic', 'description': 'First level EC model.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'fudge_factor': {'default': 10.0, 'description': 'Fudge factor for hyperparameter error variance.', 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}, 'fwhm': {'description': 'FWHM for conditioning filter when estimating the parameters.', 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}, 'in_acqp': {'description': 'File containing acquisition parameters.', 'required': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'in_bval': {'description': 'File containing the b-values for all volumes in –imain.', 'required': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'in_bvec': {'description': 'File containing the b-vectors for all volumes in –imain.', 'required': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'in_file': {'description': 'File containing all the images to estimate distortions for.', 'is_configuration': False, 'required': True, 'type': <class 'django_mri.models.inputs.nifti_input_definition.NiftiInputDefinition'>}, 'in_index': {'description': 'File containing indices for all volumes in –imain into –acqp and –topup.', 'required': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'in_mask': {'description': 'Mask to indicate brain.', 'required': True, 'type': <class 'django_mri.models.inputs.nifti_input_definition.NiftiInputDefinition'>}, 'in_topup_fieldcoef': {'description': 'opup results file containing the field coefficients.', 'type': <class 'django_mri.models.inputs.nifti_input_definition.NiftiInputDefinition'>}, 'in_topup_movpar': {'description': 'Topup results file containing the movement parameters (movpar.txt). Requires inputs: in_topup_fieldcoef', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'initrand': {'description': 'Resets rand for when selecting voxels.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'interp': {'choices': ['spline', 'trilinear'], 'default': 'spline', 'description': ' Interpolation model for estimation step.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'is_shelled': {'description': 'Override internal check to ensure that date are acquired on a set of b-value shells.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'json': {'description': 'Name of .json text file with information about slice timing. Mutually exclusive with inputs: slice_order. Requires inputs: mporder.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mbs_ksp': {'description': 'Knot-spacing for MBS field estimation. Requires inputs: estimate_move_by_susceptibility.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'mbs_lambda': {'description': 'Weighting of regularisation for MBS estimation. Requires inputs: estimate_move_by_susceptibility.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'mbs_niter': {'description': 'Number of iterations for MBS estimation. Requires inputs: estimate_move_by_susceptibility.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'method': {'choices': ['jac', 'lsr'], 'default': 'jac', 'description': 'Final resampling method (jacobian/least squares).', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'mporder': {'description': 'Order of slice-to-vol movement model.Requires inputs: use_cuda.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'multiband_factor': {'description': 'Multi-band factor.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'multiband_offset': {'description': 'Multi-band offset (-1 if bottom slice removed, 1 if top slice removed. Requires inputs: multiband_factor.', 'max_value': 1, 'min_value': -1, 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'niter': {'default': 5, 'description': 'Number of iterations.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'num_threads': {'default': 1, 'description': 'Number of openmp threads to use.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'nvoxhp': {'description': '# of voxels used to estimate the hyperparameters.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'out_base': {'default': 'eddy_corrected', 'description': 'Basename for output image.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'outlier_nstd': {'description': 'Number of std off to qualify as outlier.Requires inputs: repol.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'outlier_pos': {'description': 'Consider both positive and negative outliers if set. Requires inputs: repol.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'outlier_sqr': {'description': 'Consider outliers among sums-of-squared differences if set. Requires inputs: repol.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'outlier_type': {'choices': ['sw', 'gw', 'both'], 'description': 'Type of outliers, slicewise (sw), groupwise (gw) or both (both). Requires inputs: repol.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'output_type': {'choices': ['NIFTI', 'NIFTI_PAIR', 'NIFTI_GZ', 'NIFTI_PAIR_GZ'], 'default': 'NIFTI_GZ', 'description': 'Output file format.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'repol': {'description': 'Detect and replace outlier slices.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'residuals': {'description': 'Output Residuals.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'session': {'description': 'File containing session indices for all volumes in –imain.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'slice2vol_interp': {'choices': ['trilinear', 'spline'], 'description': ' Slice-to-vol interpolation model for estimation step. Requires inputs: mporder.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'slice2vol_lambda': {'description': 'Regularisation weight for slice-to-vol movement (reasonable range 1-10). Requires inputs: mporder.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'slice2vol_niter': {'description': 'umber of iterations for slice-to-vol. Requires inputs: mporder.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'slice_order': {'description': 'Name of text file completely specifying slice/group acquisition. Mutually exclusive with inputs: json. Requires inputs: mporder.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'slm': {'choices': ['none', 'linear', 'quadratic'], 'default': 'none', 'description': 'Second level EC model.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'use_cuda': {'description': 'Run eddy using cuda gpu.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}}¶ eddy input specification dictionary.
-
django_mri.analysis.specifications.fsl.eddy.
EDDY_OUTPUT_SPECIFICATION
= {'out_cnr_maps': {'description': 'Path/name of file with the cnr_maps.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'out_corrected': {'description': '4D image file containing all the corrected volumes.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'out_movement_over_time': {'description': 'Text file containing translations (mm) and rotations (radians) for each excitation.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'out_movement_rms': {'description': 'Summary of the ‘total movement’ in each volume.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'out_outlier_free': {'description': '4D image file not corrected for susceptibility or eddy-current distortions or subject movement but with outlier slices replaced.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'out_outlier_map': {'description': 'Matrix where rows represent volumes and columns represent slices. “0” indicates that scan-slice is not an outlier and “1” indicates that it is.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'out_outlier_n_sqr_stdev_map': {'description': 'Matrix where rows represent volumes and columns represent slices. Values indicate number of standard deivations off the square root of the mean squared difference between observation and prediction is.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'out_outlier_n_stdev_map': {'description': 'Matrix where rows represent volumes and columns represent slices. Values indicate number of standard deviations off the mean difference between observation and prediction is.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'out_outlier_report': {'description': 'Text file with a plain language report on what outlier slices eddy has found.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'out_parameter': {'description': 'Text file with parameters defining the field and movement for each scan.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'out_residuals': {'description': 'Path/name of file with the residuals.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'out_restricted_movement_rms': {'description': 'Summary of the ‘total movement’ in each volume disregarding translation in the PE direction.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'out_rotated_bvecs': {'description': 'File containing rotated b-values for all volumes.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'out_shell_alignment_parameters': {'description': ' Text file containing rigid body movement parameters between the different shells as estimated by a post-hoc mutual information based registration.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'out_shell_pe_translation_parameters': {'description': 'Text file containing translation along the PE-direction between the different shells as estimated by a post-hoc mutual information based registration.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}}¶ eddy input specification dictionary.
Input and output specification dictionaries for FSL’s FAST script.
-
django_mri.analysis.specifications.fsl.fast.
FAST_INPUT_SPECIFICATION
= {'args': {'description': 'Additional parameters to the command.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'bias_iters': {'description': 'Number of main-loop iterations during bias-field removal.', 'max_value': 10, 'min_value': 1, 'required': False, 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'bias_lowpass': {'description': 'Bias field smoothing extent (FWHM) in millimeters.', 'max_value': 40, 'min_value': 4, 'required': False, 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'hyper': {'description': 'Segmentation spatial smoothness.', 'max_value': 1, 'min_value': 0, 'required': False, 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}, 'img_type': {'description': 'Integer specifying type of image: (1=T1, 2=T2, 3=PD).', 'max_value': 3, 'min_value': 1, 'required': False, 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'in_files': {'description': 'Path to NIfTI format image file to be segmented.', 'required': True, 'type': <class 'django_mri.models.inputs.nifti_input_definition.NiftiInputDefinition'>, 'value_attribute': 'path.__str__'}, 'init_seg_smooth': {'description': 'Initial segmentation spatial smoothness (during bias field estimation).', 'max_value': 0.1, 'min_value': 0.0001, 'required': False, 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}, 'init_transform': {'description': '<standard2input.mat> initialise using priors.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'iters_afterbias': {'description': 'Number of main-loop iterations after bias-field removal.', 'max_value': 20, 'min_value': 1, 'required': False, 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'manual_seg': {'description': 'Filename containing intensities.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'mixel_smooth': {'description': 'Spatial smoothness for mixeltype.', 'max_value': 1, 'min_value': 0, 'required': False, 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}, 'no_bias': {'description': 'Do not remove bias field.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'no_pve': {'description': 'Turn off PVE (partial volume estimation).', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'number_classes': {'default': 3, 'description': 'Number of tissue-type classes.', 'max_value': 10, 'min_value': 1, 'required': False, 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'out_basename': {'default': 'segmented', 'description': 'Base name of output files.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'output_biascorrected': {'description': 'Output restored image (bias-corrected image).', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'output_biasfield': {'description': 'Output estimated bias-field.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'output_type': {'choices': ['NIFTI', 'NIFTI_PAIR', 'NIFTI_GZ', 'NIFTI_PAIR_GZ'], 'default': 'NIFTI_GZ', 'description': 'Output file format.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'probability_maps': {'description': 'Outputs individual probability maps.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'segment_iters': {'description': 'Number of segmentation-initialisation iterations.', 'max_value': 50, 'min_value': 1, 'required': False, 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'segments': {'description': 'Outputs a separate binary image for each tissue type.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'use_priors': {'description': 'Use priors throughout.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}}¶ FAST input specification dictionary.
-
django_mri.analysis.specifications.fsl.fast.
FAST_OUTPUT_SPECIFICATION
= {'mixeltype': {'description': 'Path/name of mixeltype volume file _mixeltype.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'partial_volume_0': {'description': '', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'partial_volume_1': {'description': '', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'partial_volume_2': {'description': '', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'tissue_class_map': {'description': 'An image of all tissue classes represented as 1, 2, and 3.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}}¶ FAST output specification dictionary.
Input and output specification dictionaries for FSL’s FLIRT script.
-
django_mri.analysis.specifications.fsl.flirt.
FLIRT_INPUT_SPECIFICATION
= {'angle_rep': {'choices': ['quaternion', 'euler'], 'description': 'Rotation angles representation.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'apply_isoxfm': {'description': 'Whether to apply an affine transformation with isotropic resampling.', 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}, 'apply_xfm': {'description': 'Whether to apply an existing affine transformation.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'bbr_slope': {'description': 'Value of BBR slope.', 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}, 'bbrtype': {'choices': ['signed', 'global_abs', 'local_abs'], 'description': 'Type of BBR cost function.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'bgvalue': {'description': 'Use a specified background value for points outside FOV.', 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}, 'bins': {'description': 'Number of histogram bins.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'coarse_search': {'description': 'Coarse search delta angle.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'cost': {'choices': ['mutualinfo', 'corratio', 'normcorr', 'normmi', 'leastsq', 'labeldiff', 'bbr'], 'default': 'corratio', 'description': 'Type of cost function to apply.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'datatype': {'choices': ['char', 'short', 'int', 'float', 'double'], 'description': 'Output data type.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'display_init': {'description': 'Whether to display the initial matrix.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'dof': {'default': 12, 'description': 'Tranform degrees of freedom.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'echospacing': {'description': 'Value of EPI echo spacing in seconds.', 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}, 'fieldmap': {'description': 'Fieldmap image in radians per second. Must be already registered to the reference image.', 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'fieldmapmask': {'description': 'Mask for fieldmap image.', 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'fine_search': {'description': 'Fine search delta angle.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'force_scaling': {'description': 'Force rescaling even for low resolution images.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'in_file': {'description': 'A NIfTI format file to register to the reference.', 'is_configuration': False, 'required': True, 'type': <class 'django_mri.models.inputs.nifti_input_definition.NiftiInputDefinition'>, 'value_attribute': 'path.__str__'}, 'in_matrix_file': {'description': 'An 4x4 affine transformation matrix to apply.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'in_weight': {'description': 'Input file for weighting.', 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'interp': {'choices': ['trilinear', 'nearestneighbour', 'sinc', 'spline'], 'description': 'Final interpolation method used in reslicing.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'min_sampling': {'description': 'Minimum voxel dimensions for resampling.', 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}, 'no_clamp': {'description': 'Whether to not use intensity clamping.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'no_resample': {'description': 'Whether to not change input sampling.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'no_resample_blur': {'description': 'Whether to not use blurring on downsampling.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'no_search': {'description': 'Set all angular search ranges to [0, 0].', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'out_file': {'default': 'registered.nii.gz', 'description': 'The resulting registered image.', 'is_output_path': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'out_log': {'default': 'log.txt', 'description': 'Path to save a log of the run if required.', 'is_output_path': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'out_matrix_file': {'default': 'affine_matrix.txt', 'description': 'The calculated affine transformation that registers the input to the reference which is saved as a 4x4 affine matrix.', 'is_output_path': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'padding_size': {'description': 'Interpolates outside image when using apply_xfm.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'pedir': {'description': 'Phase encode direction of EPI - 1/2/3=x/y/z & -1/-2/-3=-x/-y/-z.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'ref_weight': {'description': 'Refernce file for weighting.', 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'reference': {'description': 'A NIfTI format file to register the input file with.', 'required': True, 'type': <class 'django_mri.models.inputs.nifti_input_definition.NiftiInputDefinition'>, 'value_attribute': 'path.__str__'}, 'rigid2D': {'description': 'Whether to use 2D rigid body mode (ignores DOF).', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'save_log': {'default': False, 'description': 'Whether to save a run log.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'schedule': {'description': 'Replace default schedule.', 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'searchr_x': {'description': 'Search angles along X-axis in degrees.', 'element_type': 'INT', 'max_length': 2, 'min_length': 2, 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'searchr_y': {'description': 'Search angles along Y-axis in degrees.', 'element_type': 'INT', 'max_length': 2, 'min_length': 2, 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'searchr_z': {'description': 'Search angles along Z-axis in degrees.', 'element_type': 'INT', 'max_length': 2, 'min_length': 2, 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'sinc_width': {'description': 'Full width in voxels.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'sinc_window': {'choices': ['rectangular', 'hanning', 'blackman'], 'description': 'Final interpolation method used in reslicing.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'uses_qform': {'description': 'Whether to initialize using sform or qform.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'verbose': {'description': 'Verbosity level (0 is the least verbose).', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'wm_seg': {'description': 'White matter segmentation volume needed by BBR cost function.', 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'wmcoords': {'description': 'White matter boundary coordinates for BBR cost function.', 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'wmnorms': {'description': 'White matter boundary normals for BBR cost function.', 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}}¶ FLIRT input specification dictionary.
-
django_mri.analysis.specifications.fsl.flirt.
FLIRT_OUTPUT_SPECIFICATION
= {'out_file': {'description': 'Path to registered file (if generated).', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'out_log': {'description': 'Path to the run log (if generated).', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>, 'validate_existence': False}, 'out_matrix_file': {'description': 'Path to the calculated affine transform (if generated).', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>, 'validate_existence': False}}¶ FLIRT output specification dictionary.
Input and output specification dictionaries for FSL’s FNIRT script.
-
django_mri.analysis.specifications.fsl.fnirt.
FNIRT_INPUT_SPECIFICATION
= {'affine_file': {'description': 'File containing an existing affine transformation matrix.', 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'apply_inmask': {'description': 'A list of iterations to use the input mask on (1 to use, 0 to skip).', 'element_type': 'INT', 'required': False, 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'apply_intensity_mapping': {'description': 'List of subsampling levels to apply intensity mapping for (0 to skip, 1 to apply).', 'element_type': 'INT', 'required': False, 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'apply_refmask': {'description': 'A list of iterations to use the reference mask on (1 to use, 0 to skip).', 'element_type': 'INT', 'required': False, 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'bias_regularization_lambda': {'default': 10000, 'description': 'Weight of regularisation for bias-field.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}, 'biasfield_resolution': {'as_tuple': True, 'default': [50, 50, 50], 'description': 'Approximate resolution (in mm) of warp basis in the X, Y, and Z axes.', 'element_type': 'INT', 'max_length': 3, 'min_length': 3, 'required': False, 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'config_file': {'description': 'Path for a config file specifying command line arguments.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'derive_from_ref': {'default': False, 'description': 'If true, reference image is used to calculate derivatives.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'field_file': {'default': 'field.nii.gz', 'description': 'Path for the output file with field.', 'is_output_path': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'fieldcoeff_file': {'default': 'field_coefficients.nii.gz', 'description': 'Name for field coefficients file to output.', 'is_output_path': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'hessian_precision': {'choices': ['double', 'float'], 'default': 'double', 'description': 'Precision for representing Hessian.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'in_file': {'description': 'A NIfTI format file to register to the reference.', 'is_configuration': False, 'required': True, 'type': <class 'django_mri.models.inputs.nifti_input_definition.NiftiInputDefinition'>, 'value_attribute': 'path.__str__'}, 'in_fwhm': {'default': [6, 4, 2, 2], 'description': 'FWHM (in mm) of gaussian smoothing kernel for the input volume.', 'element_type': 'INT', 'required': False, 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'in_intensitymap_file': {'description': 'File containing initial initial intensity mapping usually generated by a previous FNIRT run.', 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'inmask_file': {'description': 'Path for a file with a mask in the input image space.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'inmask_val': {'default': 0, 'description': 'Value to mask out in input image.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}, 'intensity_mapping_model': {'choices': ['none', 'global_linear', 'global_non_linear', 'local_linear', 'global_non_linear_with_bias', 'local_non_linear'], 'description': 'Model for intensity-mapping.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'intensity_mapping_order': {'default': 5, 'description': 'Order of poynomial for mapping intensities.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'inwarp_file': {'description': 'File containing initial non-linear warps.', 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'jacobian_file': {'default': 'jacobian.nii.gz', 'description': 'Path to the output file for writing out the Jacobian of the field (for diagnostic or VBM purposes).', 'is_output_path': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'jacobian_range': {'as_tuple': True, 'default': [0.01, 100.0], 'description': 'Allowed range of Jacobian determinants.', 'element_type': 'FLT', 'required': False, 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'log_file': {'default': 'log.txt', 'description': 'Path for a log file.', 'is_output_path': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'max_nonlin_iter': {'default': [5, 5, 5, 5], 'description': 'List containing the maximal numbers of non-linear iterations.', 'element_type': 'INT', 'required': False, 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'modulatedref_file': {'default': 'modulatedref.nii.gz', 'description': 'Path to the output file for writing out intensity modulated --ref (for diagnostic purposes).', 'is_output_path': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'output_type': {'choices': ['NIFTI', 'NIFTI_PAIR', 'NIFTI_GZ', 'NIFTI_PAIR_GZ'], 'description': 'Output file format.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'ref_file': {'description': 'A NIfTI format file to register the input file with.', 'required': True, 'type': <class 'django_mri.models.inputs.nifti_input_definition.NiftiInputDefinition'>, 'value_attribute': 'path.__str__'}, 'ref_fwhm': {'default': [4, 2, 0, 0], 'description': 'FWHM (in mm) of gaussian smoothing kernel for the reference volume.', 'element_type': 'INT', 'required': False, 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'refmask_file': {'description': 'Path for a file with a mask in the reference space.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'refmask_val': {'default': 0, 'description': 'Value to mask out in reference image.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}, 'regularization_lambda': {'description': 'Weight of regularisation.', 'element_type': 'FLT', 'required': False, 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'regularization_model': {'choices': ['membrane_energy', 'bending_energy'], 'default': 'bending_energy', 'description': 'Model for regularisation of warp-field.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'skip_implicit_in_masking': {'description': 'Skip implicit masking based on value in input image.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'skip_implicit_ref_masking': {'description': 'Skip implicit masking based on value in reference image.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'skip_inmask': {'description': 'Skip specified inmask_file if set.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'skip_intensity_mapping': {'default': False, 'description': 'Whether to skip estimate intensity-mapping.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'skip_lambda_ssq': {'default': False, 'description': 'If true, lambda is not weighted by current ssq.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'skip_refmask': {'description': 'Skip specified refmask_file if set.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'spline_order': {'default': 3, 'description': 'Order of spline (2 = quadratic, 3 = cubic).', 'required': False, 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'subsampling_scheme': {'default': [4, 2, 1, 1], 'description': 'Sub-sampling scheme.', 'element_type': 'INT', 'required': False, 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'warp_resolution': {'as_tuple': True, 'default': [10, 10, 10], 'description': 'Approximate resolution (in mm) of warp basis in the X, Y, and Z axes.', 'element_type': 'INT', 'max_length': 3, 'min_length': 3, 'required': False, 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'warped_file': {'default': 'warped.nii.gz', 'description': 'Path for the output image.', 'is_output_path': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}}¶ FNIRT input specification dictionary.
-
django_mri.analysis.specifications.fsl.fnirt.
FNIRT_OUTPUT_SPECIFICATION
= {'field_file': {'description': 'Warp field.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'fieldcoeff_file': {'description': 'Field coefficients.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'jacobian_file': {'description': 'Jacobian of the field.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'log_file': {'description': 'Run log.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'modulatedref_file': {'description': 'Intensity modulated reference.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'warped_file': {'description': 'Warped image.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}}¶ FNIRT output specification dictionary.
Input and output specification dictionaries for FSL’s fsl_anat script.
-
django_mri.analysis.specifications.fsl.fsl_anat.
FSL_ANAT_INPUT_SPECIFICATION
= {'bias_field_smoothing': {'description': 'Specify the value for bias field smoothing (the -l option in FAST).', 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}, 'destination': {'description': 'Run output destination.', 'is_configuration': False, 'is_output_directory': True, 'required': False, 'run_method_input': True, 'type': <class 'django_analyses.models.input.definitions.directory_input_definition.DirectoryInputDefinition'>}, 'image': {'description': 'Input image for preprocessing.', 'is_configuration': False, 'required': True, 'run_method_input': True, 'type': <class 'django_mri.models.inputs.nifti_input_definition.NiftiInputDefinition'>}, 'image_type': {'choices': ['T1', 'T2', 'PD'], 'default': 'T1', 'description': 'Specify the type of image (T1, T2, or PD, default is T1).', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'no_bias': {'description': 'Turn off FAST bias field correction.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'no_cleanup': {'description': 'Do not remove intermediate files.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'no_crop': {'description': 'Turn off automated cropping (`robustfov`).', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'no_nonlinear_registration': {'description': 'Turn off non-linear registration to standard using FNIRT.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'no_registration': {'description': 'Turn off registration to standard using FLIRT and FNIRT.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'no_reorient': {'description': 'Turn off `fslreorient2std` execution.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'no_search': {'description': 'Specify that linear registration uses the -nosearch option (FLIRT).', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'no_segmentation': {'description': 'Turn off tissue-type segmentation using FAST.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'no_subcortical_segmentation': {'description': 'Turn off subcortical segmentation using FIRST.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'weak_bias': {'description': 'Used for images with little and/or smooth bias fields.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}}¶ fsl_anat input specification dictionary.
-
django_mri.analysis.specifications.fsl.fsl_anat.
FSL_ANAT_OUTPUT_SPECIFICATION
= {'bias_corrected_brain': {'description': 'Bias-corrected brain extraction result.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'bias_corrected_brain_mask': {'description': 'Mask of bias-corrected brain extraction result.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'csf_partial_volume': {'description': 'CSF partial volume segmenetation.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'fast_bias_correction': {'description': 'Bias-corrected version used for FAST segmentation.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'grey_matter_partial_volume': {'description': 'Grey matter partial volume segmenetation.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'linear_registration': {'description': 'Linear registration output.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'nonlinear_registration': {'description': 'Non-linear registration output.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'nonlinear_registration_field': {'description': 'Non-linear warp field.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'nonlinear_registration_jacobian': {'description': 'Jacobian of the non-linear warp field.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'segmentation_summary': {'description': 'A summary image showing the tissue with the greatest partial volume fraction per voxel.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'subcortical_segmentation_summary': {'description': 'A summary image of subcortical segmentation results.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'volume_scales': {'description': 'A file containing a scaling factor and brain volumes, based on skull-contrained registration, suitable for head-size normalisation (as the scaling is based on the skull size, not the brain size).', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'white_matter_partial_volume': {'description': 'White matter partial volume segmenetation.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}}¶ fsl_anat output specification dictionary.
Input and output specification dictionaries for FSL’s fslmerge script.
-
django_mri.analysis.specifications.fsl.fslmerge.
FSLMERGE_INPUT_SPECIFICATION
= {'dimension': {'choices': ['t', 'x', 'y', 'z', 'a'], 'description': "Dimension along which to merge, optionally set tr inputs when dimension is 't'.", 'required': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'in_files': {'db_value_preprocessing': 'path.__str__', 'description': 'A list of (at least 2) NIfTI format files to merge.', 'element_type': 'FIL', 'is_configuration': False, 'required': True, 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'merged_file': {'default': 'merged.nii.gz', 'description': 'Desired output file path.', 'is_output_path': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'output_type': {'choices': ['NIFTI', 'NIFTI_PAIR', 'NIFTI_GZ', 'NIFTI_PAIR_GZ'], 'default': 'NIFTI_GZ', 'description': 'Output file format.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'tr': {'default': 1.0, 'description': 'Specified TR in seconds.', 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}}¶ fslmerge input specification dictionary.
-
django_mri.analysis.specifications.fsl.fslmerge.
FSLMERGE_OUTPUT_SPECIFICATION
= {'merged_file': {'description': 'Path of merged file', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}}¶ fslmerge output specification dictionary.
Input and output specification dictionaries for FSL’s fslroi script.
-
django_mri.analysis.specifications.fsl.fslroi.
FSLROI_INPUT_SPECIFICATION
= {'crop_list': {'description': 'list of two tuples specifying crop options.', 'element_type': 'TUP', 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'ignore_exception': {'description': 'Print an error message instead of throwing an exception in case the interface fails to run', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'in_file': {'description': 'A NIfTI to extract an ROI from.', 'is_configuration': False, 'required': True, 'type': <class 'django_mri.models.inputs.nifti_input_definition.NiftiInputDefinition'>, 'value_attribute': 'path.__str__'}, 'output_type': {'choices': ['NIFTI', 'NIFTI_PAIR', 'NIFTI_GZ', 'NIFTI_PAIR_GZ'], 'default': 'NIFTI_GZ', 'description': 'Output file format.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'roi_file': {'default': 'roi.nii.gz', 'description': 'Path to output file.', 'is_output_path': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 't_min': {'description': '', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 't_size': {'description': '', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'x_min': {'description': '', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'x_size': {'description': '', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'y_min': {'description': '', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'y_size': {'description': '', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'z_min': {'description': '', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'z_size': {'description': '', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}}¶ fslroi input specification dictionary.
-
django_mri.analysis.specifications.fsl.fslroi.
FSLROI_OUTPUT_SPECIFICATION
= {'roi_file': {'description': 'Path to output file.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}}¶ fslroi output specification dictionary.
Input and output specification dictionaries for nipype’s MeanImage interface, wrapping FSL’s fslmaths.
-
django_mri.analysis.specifications.fsl.mean_image.
MEAN_IMAGE_INPUT_SPECIFICATION
= {'dimension': {'choices': ['T', 'X', 'Y', 'Z'], 'description': "Dimension along which to merge, optionally set TR inputs when dimension is 'T'", 'required': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'in_file': {'description': 'Path to image to operate on.', 'is_configuration': False, 'required': True, 'type': <class 'django_mri.models.inputs.nifti_input_definition.NiftiInputDefinition'>, 'value_attribute': 'path.__str__'}, 'internal_datatype': {'choices': ['float', 'char', 'int', 'short', 'double', 'input'], 'default': 'float', 'description': 'Datatype to use for calculations.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'nan2zero': {'description': 'Change NaNs to zeros before doing anything.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'out_file': {'default': 'mean.nii.gz', 'description': 'Path to image to write results to.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'output_datatype': {'choices': ['float', 'char', 'int', 'short', 'double', 'input'], 'description': 'Datatype to use for output (default uses input type).', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'output_type': {'choices': ['NIFTI', 'NIFTI_PAIR', 'NIFTI_GZ', 'NIFTI_PAIR_GZ'], 'default': 'NIFTI_GZ', 'description': 'Output file format.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}}¶ MeanImage input specification dictionary.
-
django_mri.analysis.specifications.fsl.mean_image.
MEAN_IMAGE_OUTPUT_SPECIFICATION
= {'out_file': {'description': "Path to image containing calculation's result.", 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}}¶ MeanImage output specification dictionary.
Input and output specification dictionaries for nipype’s Reorient2Std interface, wrapping FSL’s fslreorient2std.
-
django_mri.analysis.specifications.fsl.reorient2std.
REORIENT2STD_INPUT_SPECIFICATION
= {'args': {'description': 'Additional parameters to the command.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'in_file': {'description': 'Path to NIfTI format image file to reorient.', 'is_configuration': False, 'required': True, 'type': <class 'django_mri.models.inputs.nifti_input_definition.NiftiInputDefinition'>, 'value_attribute': 'path.__str__'}, 'out_file': {'default': 'reoriented.nii.gz', 'description': 'Desired output file path.', 'is_output_path': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'output_type': {'choices': ['NIFTI', 'NIFTI_PAIR', 'NIFTI_GZ', 'NIFTI_PAIR_GZ'], 'default': 'NIFTI_GZ', 'description': 'Output file format.', 'is_configuration': False, 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}}¶ Reorient2Std input specification dictionary.
-
django_mri.analysis.specifications.fsl.reorient2std.
REORIENT2STD_OUTPUT_SPECIFICATION
= {'out_file': {'description': 'Reorient output file.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}}¶ Reorient2Std output specification dictionary.
Input and output specification dictionaries for nipype’s RobustFOV interface, wrapping FSL’s robustfov.
-
django_mri.analysis.specifications.fsl.robustfov.
ROBUSTFOV_INPUT_SPECIFICATION
= {'args': {'description': 'Additional parameters to the command.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'brainsize': {'default': 170, 'description': 'Size of brain (in millimiteres) in the z-dimension.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'in_file': {'description': 'Path to NIfTI format image file to crop.', 'is_configuration': False, 'required': True, 'type': <class 'django_mri.models.inputs.nifti_input_definition.NiftiInputDefinition'>, 'value_attribute': 'path.__str__'}, 'out_roi': {'default': 'roi.nii.gz', 'description': 'ROI volume output file path.', 'is_output_path': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'out_transform': {'default': 'transform.mat', 'description': 'Tranformation matrix output file path.', 'is_output_path': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'output_type': {'choices': ['NIFTI', 'NIFTI_PAIR', 'NIFTI_GZ', 'NIFTI_PAIR_GZ'], 'default': 'NIFTI_GZ', 'description': 'Output file format.', 'is_configuration': False, 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}}¶ RobustFOV input specification dictionary.
-
django_mri.analysis.specifications.fsl.robustfov.
ROBUSTFOV_OUTPUT_SPECIFICATION
= {'out_roi': {'description': 'ROI volume.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'out_transform': {'description': 'Transformation matrix in_file to out_roi output name.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}}¶ RobustFOV output specification dictionary.
Input and output specification dictionaries for FSL’s SUSAN script.
-
django_mri.analysis.specifications.fsl.susan.
SUSAN_INPUT_SPECIFICATION
= {'args': {'description': 'Additional parameters to pass to the command.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'brightness_threshold': {'description': 'Should be greater than noise level and less than contrast of edges to be preserved.', 'required': True, 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}, 'dimension': {'default': 3, 'max_value': 3, 'min_value': 2, 'required': False, 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'fwhm': {'description': 'FWHM of smoothing, in millimeters.', 'required': True, 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}, 'in_file': {'description': 'Filename of input time-series.', 'required': True, 'type': <class 'django_mri.models.inputs.nifti_input_definition.NiftiInputDefinition'>, 'value_attribute': 'path.__str__'}, 'out_file': {'default': 'smooth.nii.gz', 'description': 'Desired output file path.', 'is_output_path': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'output_type': {'choices': ['NIFTI', 'NIFTI_PAIR', 'NIFTI_GZ', 'NIFTI_PAIR_GZ'], 'default': 'NIFTI_GZ', 'description': 'Output file format.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'use_median': {'default': True, 'description': 'Whether to use a local median filter in the cases where single-point noise is detected.', 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}}¶ SUSAN input specification dictionary.
-
django_mri.analysis.specifications.fsl.susan.
SUSAN_OUTPUT_SPECIFICATION
= {'smoothed_file': {'description': 'Smoothed output file.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}}¶ SUSAN output specification dictionary.
Input and output specification dictionaries for MRtrix’s dwibiascorrect script.
Notes
For more information, see MRtrix3’s dwibiascorrect reference.
-
django_mri.analysis.specifications.mrtrix3.bias_correct.
BIAS_CORRECT_INPUT_SPECIFICATION
= {'bias': {'default': 'bias.mif', 'description': 'The output noise map.', 'is_output_path': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'bval_scale': {'choices': ['yes', 'no'], 'default': 'yes', 'description': 'Specifies whether the b - values should be scaled by the square of the corresponding DW gradient norm, as often required for multishell or DSI DW acquisition schemes.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'grad_file': {'description': 'DWI gradient scheme (MRTrix format). Mutually exclusive with inputs: grad_fsl.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'grad_fsl': {'description': 'DWI gradient scheme (FSL format). Mutually exclusive with inputs: grad_file.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'in_bval': {'description': 'Bvals file in FSL format.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'in_bvec': {'description': 'Bvecs file in FSL format.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'in_file': {'description': 'Input DWI image.', 'is_configuration': False, 'required': True, 'type': <class 'django_mri.models.inputs.scan_input_definition.ScanInputDefinition'>, 'value_attribute': 'mif.__str__'}, 'in_mask': {'description': 'Mask image.', 'type': <class 'django_mri.models.inputs.scan_input_definition.ScanInputDefinition'>, 'value_attribute': 'mif.__str__'}, 'nthreads': {'description': 'Number of threads. if zero, the number of available cpus will be used.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'out_file': {'default': 'bias_corrected.nii.gz', 'description': 'The output denoised DWI image.', 'is_output_path': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'use_ants': {'description': 'Use ANTS N4 to estimate the inhomogeneity field. Mutually exclusive with inputs: use_fsl.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'use_fsl': {'description': 'Use FSL FAST to estimate the inhomogeneity field. Mutually exclusive with inputs: use_ants.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}}¶ DWIBiasCorrect input specification dictionary.
-
django_mri.analysis.specifications.mrtrix3.bias_correct.
BIAS_CORRECT_OUTPUT_SPECIFICATION
= {'bias': {'description': 'The output bias field.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'out_file': {'description': 'The output denoised DWI image.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}}¶ DWIBiasCorrect output specification dictionary.
Input and output specification dictionaries for MRtrix’s mrdegibbs script.
Notes
For more information, see MRtrix3’s mrdegibbs reference.
-
django_mri.analysis.specifications.mrtrix3.degibbs.
DEGIBBS_INPUT_SPECIFICATION
= {'axes': {'default': [0, 1], 'description': 'Indicate the plane in which the data was acquired (axial = 0,1; coronal = 0,2; sagittal = 1,2).', 'element_type': 'INT', 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'bval_scale': {'choices': ['yes', 'no'], 'default': 'yes', 'description': 'Specifies whether the b - values should be scaled by the square of the corresponding DW gradient norm, as often required for multishell or DSI DW acquisition schemes.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'grad_file': {'description': 'Dw gradient scheme (MRTrix format). Mutually exclusive with inputs: grad_fsl.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'grad_fsl': {'description': 'dw gradient scheme (FSL format). Mutually exclusive with inputs: grad_file.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'in_bval': {'description': 'Bvals file in FSL format.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'in_bvec': {'description': 'Bvecs file in FSL format.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'in_file': {'is_configuration': False, 'required': True, 'type': <class 'django_mri.models.inputs.scan_input_definition.ScanInputDefinition'>, 'value_attribute': 'mif.__str__'}, 'maxW': {'default': 3, 'description': 'Right border of window used for total variation (TV) computation.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'minW': {'default': 1, 'description': 'Left border of window used for total variation (TV) computation.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'nshifts': {'default': 20, 'description': 'Discretization of subpixel spacing.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'nthreads': {'description': 'Number of threads. if zero, the number of available cpus will be used.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'out_file': {'default': 'denoised.mif', 'description': 'The output denoised DWI image.', 'is_output_path': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}}¶ MRDeGibbs input specification.
-
django_mri.analysis.specifications.mrtrix3.degibbs.
DEGIBBS_OUTPUT_SPECIFICATION
= {'out_file': {'description': 'The output denoised DWI image.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}}¶ MRDeGibbs output specification.
Input and output specification dictionaries for MRtrix’s dwidenoise script.
Notes
For more information, see MRtrix3’s dwidenoise reference.
Input and output specification dictionaries for MRtrix’s dwifslpreproc script.
See also
Notes
For more information, see MRtrix3’s dwifslpreproc reference.
-
django_mri.analysis.specifications.mrtrix3.dwifslpreproc.
DWIFSLPREPROC_INPUT_SPECIFICATION
= {'align_seepi': {'description': 'Achieve alignment between the SE-EPI images used for inhomogeneity field estimation, and the DWIs (more information in Description section)', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'destination': {'description': 'Run output destination.', 'is_configuration': False, 'is_output_directory': True, 'required': False, 'run_method_input': True, 'type': <class 'django_analyses.models.input.definitions.directory_input_definition.DirectoryInputDefinition'>}, 'eddy_mask': {'description': 'Provide a processing mask to use for eddy, instead of having dwifslpreproc generate one internally using dwi2mask', 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'eddy_options': {'description': 'Manually provide additional command-line options to the eddy command (provide a string within quotation marks that contains at least one space, even if only passing a single command-line option to eddy)', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'eddy_slspec': {'description': 'Provide a file containing slice groupings for eddy’s slice-to-volume registration', 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'eddyqc_all': {'description': 'Copy ALL outputs generated by eddy (including images), and the output of eddy_qc (if installed), into an output directory', 'is_output_path': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'eddyqc_text': {'description': 'Copy the various text-based statistical outputs generated by eddy, and the output of eddy_qc (if installed), into an output directory', 'is_output_path': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'export_grad_fsl': {'description': 'Export the final gradient table in FSL bvecs/bvals format', 'element_type': 'STR', 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'export_grad_mrtrix': {'description': 'Export the final gradient table in MRtrix format', 'is_output_path': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'grad': {'description': 'Provide the diffusion gradient table in MRtrix format', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'grad_fsl': {'description': 'Provide the diffusion gradient table in MRtrix format', 'element_type': 'STR', 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'json_import': {'description': 'Import image header information from an associated JSON file (may be necessary to determine phase encoding information)', 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'nocleanup': {'description': 'do not delete intermediate files during script execution, and do not delete scratch directory at script completion.', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'nthreads': {'description': 'Number of threads. if zero, the number of available cpus will be used.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'pe_dir': {'choices': ['rl', 'lr', 'ap', 'pa', 'is', 'si', '-0', '0', '-1', '1', '-2', '2', 'i', 'i-', 'j', 'j-', 'k', 'k-'], 'description': 'Manually specify the phase encoding direction of the input series', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'readout_time': {'description': 'Manually specify the total readout time of the input series (in seconds)', 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}, 'rpe_all': {'description': 'Specify that ALL DWIs have been acquired with opposing phase-encoding', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'rpe_header': {'description': 'Specify that the phase-encoding information can be found in the image header(s), and that this is the information that the script should use', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'rpe_none': {'description': 'Specify that no reversed phase-encoding image data is being provided; eddy will perform eddy current and motion correction only', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'rpe_pair': {'description': 'Specify that a set of images (typically b=0 volumes) will be provided for use in inhomogeneity field estimation only (using the -se_epi option)', 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'scan': {'description': 'Input DWI image.', 'is_configuration': False, 'required': True, 'run_method_input': True, 'type': <class 'django_mri.models.inputs.scan_input_definition.ScanInputDefinition'>, 'value_attribute': 'mif.__str__'}, 'scratch': {'description': 'manually specify the path in which to generate the scratch directory.', 'is_output_path': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'se_epi': {'description': 'Provide an additional image series consisting of spin-echo EPI images, which is to be used exclusively by topup for estimating the inhomogeneity field (i.e. it will not form part of the output image series)', 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'topup_options': {'description': 'Manually provide additional command-line options to the topup command (provide a string within quotation marks that contains at least one space, even if only passing a single command-line option to topup)', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}}¶ DwiFslPreproc input specification dictionary.
-
django_mri.analysis.specifications.mrtrix3.dwifslpreproc.
DWIFSLPREPROC_OUTPUT_SPECIFICATION
= {'eddy_mask': {'description': 'Brain mask used durring eddy currents correction.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}, 'out_movement_rms': {'description': 'Summary of the ‘total movement’ in each volume', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'out_outlier_map': {'description': 'Matrix where rows represent volumes and columns represent slices. “0” indicates that scan-slice is not an outlier and “1” indicates that it is.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'out_outlier_n_sqr_stdev_map': {'description': 'Matrix where rows represent volumes and columns represent slices. Values indicate number of standard deivations off the square root of the mean squared difference between observation and prediction is.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'out_outlier_n_stdev_map': {'description': 'Matrix where rows represent volumes and columns represent slices. Values indicate number of standard deviations off the mean difference between observation and prediction is.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'out_outlier_report': {'description': 'Text file with a plain language report on what outlier slices eddy has found.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'out_parameter': {'description': 'Text file with parameters defining the field and movement for each scan.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'out_restricted_movement_rms': {'description': 'Summary of the ‘total movement’ in each volume disregarding translation in the PE direction.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'out_shell_alignment_parameters': {'description': 'Text file containing rigid body movement parameters between the different shells as estimated by a post-hoc mutual information based registration.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'out_shell_pe_translation_parameters': {'description': 'Text file containing translation along the PE-direction between the different shells as estimated by a post-hoc mutual information based registration.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'preprocessed_dwi': {'description': 'The output preprocessed DWI.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}}¶ DwiFslPreproc output specification dictionary.
Input and output specification dictionaries for MRtrix’s mrconvert script.
Notes
For more information, see MRtrix3’s mrconvert reference.
-
django_mri.analysis.specifications.mrtrix3.mrconvert.
MRCONVERT_INPUT_SPECIFICATION
= {'axes': {'description': 'specify the axes that will be used', 'element_type': 'INT', 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'bval_scale': {'choices': ['yes', 'no'], 'default': 'yes', 'description': 'Specifies whether the b - values should be scaled by the square of the corresponding DW gradient norm, as often required for multishell or DSI DW acquisition schemes.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'coord': {'description': 'extract data at the specified coordinates', 'element_type': 'FLT', 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'grad_file': {'description': 'Dw gradient scheme (MRTrix format). Mutually exclusive with inputs: grad_fsl.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'grad_fsl': {'description': '(bvec, bval) DW gradient scheme (FSL format). Mutually exclusive with inputs: grad_file.', 'element_type': 'STR', 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'in_bval': {'description': 'Bvals file in FSL format.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'in_bvec': {'description': 'Bvecs file in FSL format.', 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'in_file': {'description': 'Input DWI image.', 'is_configuration': False, 'required': True, 'type': <class 'django_mri.models.inputs.nifti_input_definition.NiftiInputDefinition'>}, 'nthreads': {'description': 'Number of threads. if zero, the number of available cpus will be used.', 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'out_file': {'default': 'denoised.nii.gz', 'description': 'The output denoised DWI image.', 'is_output_path': True, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'scaling': {'description': 'specify the data scaling parameter', 'element_type': 'FLT', 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}, 'vox': {'description': 'Change the voxel dimensions.', 'element_type': 'FLT', 'type': <class 'django_analyses.models.input.definitions.list_input_definition.ListInputDefinition'>}}¶ MRConvert input specification dictionary.
-
django_mri.analysis.specifications.mrtrix3.mrconvert.
MRCONVERT_OUTPUT_SPECIFICATION
= {'out_file': {'description': 'The output converted image.', 'type': <class 'django_mri.models.outputs.nifti_output_definition.NiftiOutputDefinition'>}}¶ MRConvert output specification dictionary.
Input and output specifications for SPM functions.
Input and output specifications for CAT12 functions.
Input and output specification dictionaries for CAT12 segmentation interface.
See also
-
django_mri.analysis.specifications.spm.cat12.segmentation.
CAT12_SEGMENTATION_INPUT_SPECIFICATION
= {'accuracy': {'choices': ['average', 'high', 'ultra high'], 'default': 'average', 'description': '', 'is_configuration': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'affine_preprocessing': {'choices': ['none', 'light', 'full', 'rough'], 'default': 'rough', 'description': '', 'is_configuration': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'affine_regularisation': {'choices': ['mni', 'eastern', 'none'], 'default': 'mni', 'description': '', 'is_configuration': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'bias_strength': {'choices': ['light', 'medium', 'strong'], 'default': 'medium', 'description': '', 'is_configuration': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'cobra': {'default': False, 'description': '', 'is_configuration': False, 'is_output_switch': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'dartel_grey_matter': {'default': False, 'description': '', 'is_configuration': False, 'is_output_switch': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'dartel_white_matter': {'default': False, 'description': '', 'is_configuration': False, 'is_output_switch': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'deformation_fields': {'choices': ['none', 'forward', 'inverse', 'both'], 'default': 'none', 'description': '', 'is_configuration': False, 'is_output_switch': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'destination': {'description': 'Where to output the results.', 'is_configuration': False, 'is_output_directory': True, 'run_method_input': True, 'type': <class 'django_analyses.models.input.definitions.directory_input_definition.DirectoryInputDefinition'>}, 'hammers': {'default': False, 'description': '', 'is_configuration': False, 'is_output_switch': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'internal_resampling': {'default': 1.5, 'description': '', 'is_configuration': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}, 'jacobian_determinant': {'default': False, 'description': '', 'is_configuration': False, 'is_output_switch': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'local_adaptive_segmentation_strength': {'choices': ['none', 'light', 'medium', 'strong'], 'default': 'medium', 'description': '', 'is_configuration': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'lpba40': {'default': False, 'description': '', 'is_configuration': False, 'is_output_switch': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'modulated_grey_matter': {'default': True, 'description': '', 'is_configuration': False, 'is_output_switch': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'modulated_white_matter': {'default': True, 'description': '', 'is_configuration': False, 'is_output_switch': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'n_processes': {'default': 4, 'description': 'Whether to implement multi-threading and with how many processes.', 'is_configuration': False, 'required': False, 'type': <class 'django_analyses.models.input.definitions.integer_input_definition.IntegerInputDefinition'>}, 'native_grey_matter': {'default': False, 'description': '', 'is_configuration': False, 'is_output_switch': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'native_pve': {'default': True, 'description': '', 'is_configuration': False, 'is_output_switch': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'native_white_matter': {'default': False, 'description': '', 'is_configuration': False, 'is_output_switch': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'neuromorphometrics': {'default': True, 'description': '', 'is_configuration': False, 'is_output_switch': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'normalized_image_voxel_size': {'default': 1.5, 'description': '', 'is_configuration': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.float_input_definition.FloatInputDefinition'>}, 'path': {'description': 'Anatomical high resolution raw data to be segmented.', 'is_configuration': False, 'required': True, 'run_method_input': True, 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'skull_stripping': {'choices': ['none', 'spm', 'gcut', 'aprg'], 'default': 'aprg', 'description': '', 'is_configuration': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.string_input_definition.StringInputDefinition'>}, 'surface_estimation': {'default': False, 'description': '', 'is_configuration': False, 'is_output_switch': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}, 'tpm_path': {'description': 'Tissue probability map to be used.', 'is_configuration': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.file_input_definition.FileInputDefinition'>}, 'warped_image': {'default': True, 'description': '', 'is_configuration': False, 'is_output_switch': True, 'required': False, 'type': <class 'django_analyses.models.input.definitions.boolean_input_definition.BooleanInputDefinition'>}}¶ CAT12 segmentation interface input specification dictionary.
-
django_mri.analysis.specifications.spm.cat12.segmentation.
CAT12_SEGMENTATION_OUTPUT_SPECIFICATION
= {'batch_file': {'description': 'The MATLAB .m file used to run the CAT12 segmentation.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'dartel_grey_matter': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'dartel_white_matter': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'forward_deformation_field': {'description': 'The deformation field from the image to the template.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'inverse_deformation_field': {'description': 'The deformation field from the template to the image.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'jacobian_determinant': {'description': 'A value representing local volume changes.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'labels_mat': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'labels_xml': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'left_hemisphere_central_surface': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'left_hemisphere_cortical_thickness': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'left_hemisphere_spherical_registered_surface': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'left_hemisphere_spherical_surface': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'modulated_grey_matter': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'modulated_white_matter': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'native_grey_matter': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'native_pve': {'description': 'Labeled version of the segmentation in native space.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'native_white_matter': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'report_jpg': {'description': 'JPG log of the run.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'report_mat': {'description': "MATLAB format .mat file containing the run's log.", 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'report_pdf': {'description': 'PDF log of the run.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'report_txt': {'description': 'Text format log file.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'report_xml': {'description': 'XML log of the run.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'right_hemisphere_central_surface': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'right_hemisphere_cortical_thickness': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'right_hemisphere_spherical_registered_surface': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'right_hemisphere_spherical_surface': {'description': '', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}, 'warped_image': {'description': 'The image in normalised space without any modulation.', 'type': <class 'django_analyses.models.output.definitions.file_output_definition.FileOutputDefinition'>}}¶ CAT12 segmentation interface output specification dictionary.
Utilities¶
Definition of the
get_lastest_analysis_version()
function.
-
django_mri.analysis.utils.get_latest_analysis_version.
get_lastest_analysis_version
(analysis: Union[str, int, django_analyses.models.analysis.Analysis]) → django_analyses.models.analysis_version.AnalysisVersion¶ Returns the “lastest” (first by descending title order) analysis version of the provided analysis.
Analysis may be specified providing either its primary key, title, or an actual
Analysis
instance.Parameters: analysis (Union[str, int, Analysis]) – The desired analysis Returns: First analysis version Return type: AnalysisVersion Raises: ValueError
– No analysis version found
Submodules¶
django_mri.analysis.analysis_definitions module¶
django_mri.analysis.mri_interfaces module¶
Each analysis version imported to the database using django_analyses needs to
have a matching interface registered for it in the project’s settings. This
interface is expected to be some class exposing a method (by default
run()
) which returns a dictionary of outputs matching its associated
OutputSpecification
.
References
-
django_mri.analysis.mri_interfaces.
interfaces
= {'BET': {None: <class 'nipype.interfaces.fsl.preprocess.BET'>}, 'CAT12 Segmentation': {'12.6': <class 'django_mri.analysis.interfaces.matlab.spm.cat12.segmentation.segmentation.Segmentation'>}, 'FAST': {<property object>: <class 'django_mri.analysis.interfaces.fsl.fast.FastWrapper'>}, 'FLIRT': {None: <class 'nipype.interfaces.fsl.preprocess.FLIRT'>}, 'FNIRT': {None: <class 'nipype.interfaces.fsl.preprocess.FNIRT'>}, 'FSL Anatomical Processing Script': {'BETA': <class 'django_mri.analysis.interfaces.fsl.fsl_anat.FslAnat'>}, 'ReconAll': {None: <class 'nipype.interfaces.freesurfer.preprocess.ReconAll'>}, 'SUSAN': {None: <class 'nipype.interfaces.fsl.preprocess.SUSAN'>}, 'apply_topup': {None: <class 'nipype.interfaces.fsl.epi.ApplyTOPUP'>}, 'bias_correct': {None: <class 'nipype.interfaces.mrtrix3.preprocess.DWIBiasCorrect'>}, 'binary_maths': {None: <class 'nipype.interfaces.fsl.maths.BinaryMaths'>}, 'degibbs': {None: <class 'nipype.interfaces.mrtrix3.preprocess.MRDeGibbs'>}, 'denoise': {None: <class 'nipype.interfaces.mrtrix3.preprocess.DWIDenoise'>}, 'dwipreproc': {'BETA': <class 'django_mri.analysis.interfaces.mrtrix3.dwifslpreproc.DwiFslPreproc'>}, 'eddy': {None: <class 'nipype.interfaces.fsl.epi.Eddy'>}, 'fslmerge': {None: <class 'nipype.interfaces.fsl.utils.Merge'>}, 'fslreorient2std': {None: <class 'nipype.interfaces.fsl.utils.Reorient2Std'>}, 'fslroi': {None: <class 'nipype.interfaces.fsl.utils.ExtractROI'>}, 'mean_image': {None: <class 'nipype.interfaces.fsl.maths.MeanImage'>}, 'robustfov': {None: <class 'nipype.interfaces.fsl.utils.RobustFOV'>}, 'topup': {<property object>: <class 'django_mri.analysis.interfaces.fsl.topup.TopupWrapper'>}}¶ A dictionary that should be imported in the project’s settings and included within the ANALYSIS_INTERFACES setting.
django_mri.analysis.messages module¶
A module storing strings used to display messages.
django_mri.analysis.pipeline_definitions module¶
Filters¶
Module contents¶
Filters for app’s models.
Notes
For more information, see:
- Django REST Framework filtering documentation.
- django-filter’s documentation for Integration with DRF.
Submodules¶
django_mri.filters.scan_filter module¶
Definition of the ScanFilter
class.
-
class
django_mri.filters.scan_filter.
NumberInFilter
(*args, **kwargs)¶ Bases:
django_filters.filters.BaseInFilter
,django_filters.filters.NumberFilter
-
class
django_mri.filters.scan_filter.
ScanFilter
(data=None, queryset=None, *, request=None, prefix=None)¶ Bases:
django_filters.rest_framework.filterset.FilterSet
Provides useful filtering options for the
Series
class.-
base_filters
= {'created': <django_filters.filters.DateTimeFromToRangeFilter object>, 'description': <django_filters.filters.LookupChoiceFilter object>, 'dicom__id': <django_filters.filters.NumberFilter object>, 'dicom_id_in': <django_mri.filters.scan_filter.NumberInFilter object>, 'echo_time': <django_filters.filters.NumberFilter object>, 'id': <django_filters.filters.NumberFilter object>, 'institution_name': <django_filters.filters.AllValuesFilter object>, 'inversion_time': <django_filters.filters.NumberFilter object>, 'is_updated_from_dicom': <django_filters.rest_framework.filters.BooleanFilter object>, 'number': <django_filters.filters.NumberFilter object>, 'repetition_time': <django_filters.filters.NumberFilter object>, 'scan_time': <django_filters.filters.DateTimeFromToRangeFilter object>, 'sequence_type': <django_mri.filters.scan_filter.NumberInFilter object>, 'subject': <django_filters.filters.ModelChoiceFilter object>}¶
-
declared_filters
= {'created': <django_filters.filters.DateTimeFromToRangeFilter object>, 'description': <django_filters.filters.LookupChoiceFilter object>, 'dicom_id_in': <django_mri.filters.scan_filter.NumberInFilter object>, 'institution_name': <django_filters.filters.AllValuesFilter object>, 'number': <django_filters.filters.NumberFilter object>, 'scan_time': <django_filters.filters.DateTimeFromToRangeFilter object>, 'sequence_type': <django_mri.filters.scan_filter.NumberInFilter object>}¶
-
-
django_mri.filters.scan_filter.
filter_by_sequence_type
(queryset, field_name, value)¶
django_mri.filters.sequence_type_filter module¶
Models¶
Subpackages¶
Choices¶
Choice ENUMs for easier maintenance of CharField’s choice parameters.
A ChoiceEnum to represent ScanningSequence values.
A ChoiceEnum to represent SequenceVariant values.
-
class
django_mri.models.choices.sequence_variant.
SequenceVariant
¶ Bases:
dicom_parser.utils.choice_enum.ChoiceEnum
An enumeration.
-
MP
= 'MAG Prepared'¶
-
MTC
= 'Magnetization Transfer Contrast'¶
-
NONE
= 'None'¶
-
OSP
= 'Oversampling Phase'¶
-
SK
= 'Segmented k-Space'¶
-
SP
= 'Spoiled'¶
-
SS
= 'Steady State'¶
-
TRSS
= 'Time Reversed Steady State'¶
-
Inputs¶
Custom Input
and
InputDefinition
subclasses.
These models expand upon django_analyses’
input
module to facilitate integration with the
various analysis interfaces.
-
class
django_mri.models.inputs.nifti_input.
NiftiInput
(id, run, input_ptr, value, definition)¶ Bases:
django_analyses.models.input.input.Input
-
definition
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
value
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
-
class
django_mri.models.inputs.nifti_input_definition.
NiftiInputDefinition
(id, key, required, description, is_configuration, value_attribute, db_value_preprocessing, run_method_input, inputdefinition_ptr)¶ Bases:
django_analyses.models.input.definitions.input_definition.InputDefinition
-
input_class
¶
-
input_set
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
-
class
django_mri.models.inputs.scan_input.
ScanInput
(id, run, input_ptr, value, definition)¶ Bases:
django_analyses.models.input.input.Input
-
definition
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
value
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
-
class
django_mri.models.inputs.scan_input_definition.
ScanInputDefinition
(id, key, required, description, is_configuration, value_attribute, db_value_preprocessing, run_method_input, inputdefinition_ptr)¶ Bases:
django_analyses.models.input.definitions.input_definition.InputDefinition
-
input_class
¶
-
input_set
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
Outputs¶
Custom Output
and
OutputDefinition
subclasses.
These models expand upon django_analyses’
output
module to facilitate integration with the
various analysis interfaces.
-
class
django_mri.models.outputs.nifti_output.
NiftiOutput
(id, run, output_ptr, value, definition)¶ Bases:
django_analyses.models.output.output.Output
-
definition
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
value
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
-
class
django_mri.models.outputs.nifti_output_definition.
NiftiOutputDefinition
(id, key, description, outputdefinition_ptr)¶ Bases:
django_analyses.models.output.definitions.output_definition.OutputDefinition
-
output_class
¶
-
output_set
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
pre_output_instance_create
(kwargs: dict) → None¶
-
Submodules¶
django_mri.models.common_sequences module¶
A list of common MRI sequences and their respective DICOM header attributes.
django_mri.models.fields module¶
Definition of a custom ArrayField
subclass.
Copied from https://blogs.gnome.org/danni/2016/03/08/multiple-choice-using-djangos-postgres-arrayfield/.
-
class
django_mri.models.fields.
ChoiceArrayField
(base_field, size=None, **kwargs)¶ Bases:
django.contrib.postgres.fields.array.ArrayField
A field that allows us to store an array of choices.
Uses Django’s PostgreSQL ArrayField and a MultipleChoiceField for its formfield.
-
formfield
(**kwargs)¶ Return a django.forms.Field instance for this field.
-
django_mri.models.help_text module¶
A module storing strings used to populate the fields’ help_text attributes.
django_mri.models.messages module¶
A module storing strings used to display messages.
django_mri.models.nifti module¶
Definition of the NIfTI
model.
-
class
django_mri.models.nifti.
NIfTI
(*args, **kwargs)¶ Bases:
django_extensions.db.models.TimeStampedModel
A model representing a NIfTI file in the database.
-
b_value
¶ Returns the B-value of DWI scans as calculated by dcm2niix.
See also
Returns: B-value Return type: List[int]
-
b_vector
¶ Returns the B-vector of DWI scans as calculated by dcm2niix.
See also
Returns: B-vector Return type: List[List[float]]
-
compress
(keep_source: bool = False) → pathlib.Path¶ Compress the associated .nii using gzip, if it isn’t already compressed.
Parameters: keep_source (bool, optional) – Whether to keep a copy of the uncompressed file, by default False Returns: Path of the compressed (.nii.gz) file Return type: Path
-
compressed
¶ Compresses the associated .nii file using gzip if it isn’t and returns its path.
Returns: Compressed .nii.gz file associated with this instance Return type: Path
-
get_b_value
() → List[int]¶ Returns the degree of diffusion weighting applied (b-value) for each diffusion direction. This method relies on dcm2niix’s default configuration in which when diffusion-weighted images (DWI) are converted, another file with the same name and a “bval” extension is created alongside.
Hint
For more information, see dcm2niix’s Diffusion Tensor Imaging section of the user guide.
See also
Returns: b-value for each diffusion direction. Return type: List[int]
-
get_b_vector
() → List[List[float]]¶ Returns the b-vectors representing the diffusion weighting gradient scheme. This method relies on dcm2niix’s default configuration in which when diffusion-weighted images (DWI) are converted, another file with the same name and a “bvec” extension is created alongside.
Hint
For more information, see dcm2niix’s Diffusion Tensor Imaging section of the user guide.
See also
Returns: b-value for each diffusion direction Return type: List[List[float]]
-
get_data
() → numpy.ndarray¶ Uses NiBabel to return the underlying pixel data as a NumPy array.
Returns: Pixel data. Return type: np.ndarray
-
get_effective_spacing
() → float¶ Reads the effective echo spacing value extracted by dcm2niix upon conversion.
Returns: Effective echo spacing Return type: float
-
get_phase_encoding_direction
() → float¶ Reads the phase encoding direction value extracted by dcm2niix upon conversion.
Returns: Phase encoding direction Return type: float
-
get_total_readout_time
() → float¶ Reads the total readout time extracted by dcm2niix upon conversion.
Hint
Total readout time is defined as the time from the center of the first echo to the center of the last (in seconds).
Returns: Total readout time Return type: float
-
is_compressed
¶ Whether the associated .nii file is compressed with gzip or not.
Returns: Associated .nii file gzip compression state Return type: bool
-
is_raw
¶ Whether the created instance is the product of a direct conversion from some raw format to NIfTI or of a manipulation of the data.
-
json_data
¶ Reads BIDS sidecar information and caches within a local variable to prevent multiple reads.
See also
Returns: “BIDS sidecar” JSON data Return type: dict
-
objects
= <django.db.models.manager.Manager object>¶
-
path
¶ Path of the .nii file within the application’s media directory.
-
read_json
() → dict¶ Returns the JSON data generated alognside .nii files generated using dcm2niix’s “BIDS sidecar” option.
Notes
- For more information about dcm2niix and the BIDS sidecar, see dcm2niix’s general usage manual.
- For more information about the extracted properties and their usage see Acquiring and Using Field-maps
Returns: BIDS sidecar information stored in a JSON file, or {} if the file doesn’t exist Return type: dict
-
run_input_set
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
run_output_set
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
scan
¶ Accessor to the related object on the reverse side of a one-to-one relation.
In the example:
class Restaurant(Model): place = OneToOneField(Place, related_name='restaurant')
Place.restaurant
is aReverseOneToOneDescriptor
instance.
-
uncompress
(keep_source: bool = False) → pathlib.Path¶ Uncompress the associated .nii using gzip, if it isn’t already uncompressed.
Parameters: keep_source (bool, optional) – Whether to keep a copy of the compressed file, by default False Returns: Path of the uncompressed (.nii) file Return type: Path
-
uncompressed
¶ Uncompresses the associated .nii file using gzip if it isn’t and returns its path.
Returns: Uncompressed .nii file associated with this instance Return type: Path
-
django_mri.models.scan module¶
Definition of the Scan
model.
-
class
django_mri.models.scan.
Scan
(*args, **kwargs)¶ Bases:
django_extensions.db.models.TimeStampedModel
A model used to represent an MRI scan independently from the file-format in which it is saved. This model handles any conversions between formats in case they are required, and allows for easy querying of MRI scans based on universal attributes.
-
added_by
¶ Keeps a record of the user that added this scan.
-
comments
¶ Any other comments about this scan.
-
compile_to_bids
(bids_path: pathlib.Path)¶
-
convert_to_mif
() → pathlib.Path¶ Creates a .mif version of this scan using mrconvert.
Returns: Created file path Return type: Path
-
description
¶ Short description of the scan’s acquisition parameters.
-
dicom
¶ If this instance’s origin is a DICOM file, or it was saved as one, this field stores the association with the appropriate :class`django_dicom.models.series.Series` instance.
-
dicom_to_nifti
(destination: pathlib.Path = None, compressed: bool = True, generate_json: bool = True) → django_mri.models.nifti.NIfTI¶ Convert this scan from DICOM to NIfTI using _dcm2niix.
Parameters: destination (Path, optional) – The desired path for conversion output (the default is None, which will create the file in some default location) Raises: AttributeError
– If no DICOM series is related to this scanReturns: A django_mri.NIfTI
instance referencing the conversion outputReturn type: NIfTI
-
echo_time
¶ The time between the application of the radio-frequency excitation pulse and the peak of the signal induced in the coil (in milliseconds).
-
get_bids_destination
() → pathlib.Path¶ Returns the BIDS-compatible destination of this scan’s associated
NIfTI
file.Returns: BIDS-compatible NIfTI file destination Return type: pathlib.Path
-
get_default_mif_path
() → pathlib.Path¶ Returns the default .mif path for this scan.
Returns: Default .mif path Return type: Path
-
get_default_nifti_destination
() → pathlib.Path¶ Returns the default path for a NIfTI version of this scan.
Returns: Default path for NIfTI file Return type: str
-
get_default_nifti_dir
() → pathlib.Path¶ Returns the default location for the creation of a NIfTI version of the scan. Currently only conversion from DICOM is supported.
Returns: Default location for conversion output Return type: str
-
get_default_nifti_name
() → str¶ Returns the default file name for a NIfTI version of this scan.
Returns: Default file name Return type: str
-
infer_sequence_type
() → django_mri.models.sequence_type.SequenceType¶ Tries to infer the sequence type using associated data.
Returns: The inferred sequence type Return type: SequenceType
-
infer_sequence_type_from_dicom
() → django_mri.models.sequence_type.SequenceType¶ Returns the appropriate
django_mri.SequenceType
instance according to the scan’s “ScanningSequence” and “SequenceVariant” header values.Returns: The inferred sequence type Return type: SequenceType
-
institution_name
¶ The institution in which this scan was acquired.
-
inversion_time
¶ The time between the 180-degree inversion pulse and the following spin-echo (SE) sequence (in milliseconds).
-
is_updated_from_dicom
¶ Keeps track of whether we’ve updated the instance’s fields from DICOM header data or not.
-
mif
¶ Returns the .mif version of this scan, creating it if it doesn’t exist.
Returns: .mif file path Return type: Path See also
-
nifti
¶ Returns the associated
NIfTI
instance if one exists, or tries to create one if it doesn’t.Returns: Associated NIfTI instance Return type: NIfTI
-
number
¶ The relative number of this scan in the session in which it was acquired.
-
objects
= <django_mri.models.managers.scan.ScanManager object>¶
-
repetition_time
¶ The time between two successive RF pulses (in milliseconds).
-
run_input_set
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
save
(*args, **kwargs) → None¶ Overrides the model’s
save()
method to provide custom validation.Hint
For more information, see Django’s documentation on overriding model methods.
-
sequence_type
¶ Returns the sequence type instance fitting this scan if one exists.
Returns: Inferred sequence type Return type: SequenceType
-
spatial_resolution
¶ The spatial resolution of the image in millimeters.
-
study_groups
¶ Individual scans may be associated with multiple Group instances. This is meant to provide flexibility in managing access to data between researchers working on different studies. The Group model is expected to be specified as STUDY_GROUP_MODEL in the project’s settings.
-
subject
¶ Associates this scan with some subject. Subjects are expected to be represented by a model specified as SUBJECT_MODEL in the project’s settings.
-
suggest_subject
(subject) → None¶
-
time
¶ Acquisition datetime.
-
update_fields_from_dicom
() → None¶ Sets instance fields from related DICOM series.
Raises: AttributeError
– If not DICOM series is related to this scan
-
warn_subject_mismatch
(subject)¶ Warns the user regarding a mismatch in subject identity.
Parameters: subject (django.db.models.Model) – Suggested subject identity
-
django_mri.models.sequence_type module¶
-
class
django_mri.models.sequence_type.
SequenceType
(*args, **kwargs)¶ Bases:
django_extensions.db.models.TitleDescriptionModel
,django_extensions.db.models.TimeStampedModel
- The purpose of this model is to provide a title and description for
- commonly used sequences, as well as to facilitate queries.
Each particular sequence is defined as a unique combination of DICOM’s “ScanningSequence” and “SequenceVariant” attributes. This model is a wrapper for the known combinations.
-
objects
= <django_mri.models.managers.sequence_type.SequenceTypeManager object>¶
-
sequence_definition_set
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
sequence_definitions
¶
Serializers¶
Module contents¶
Serializers for the app’s models.
References
- Django Rest Framework’s serializers documentation.
Subpackages¶
Input¶
Serializers for the NiftiInput
,
NiftiInputDefinition
,
ScanInput
, and
ScanInputDefinition
models.
Definition of the
NiftiInputSerializer
class.
-
class
django_mri.serializers.input.nifti_input.
NiftiInputSerializer
(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)¶ Bases:
rest_framework.serializers.ModelSerializer
Serializer for the
NiftiInput
model.-
value
= None¶ Hyperlink to the actual
django_mri.models.nifti.NIfTI
instance that was used.
-
Definition of the
NiftiInputDefinitionSerializer
class.
-
class
django_mri.serializers.input.nifti_input_definition.
NiftiInputDefinitionSerializer
(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)¶ Bases:
rest_framework.serializers.ModelSerializer
Serializer for the
NiftiInputDefinition
model.
Definition of the
ScanInputSerializer
class.
-
class
django_mri.serializers.input.scan_input.
ScanInputSerializer
(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)¶ Bases:
rest_framework.serializers.ModelSerializer
Serializer for the
ScanInput
model.-
value
= None¶ Hyperlink to the actual
django_mri.models.scan.Scan
instance that was used.
-
Definition of the
ScanInputDefinitionSerializer
class.
-
class
django_mri.serializers.input.scan_input_definition.
ScanInputDefinitionSerializer
(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)¶ Bases:
rest_framework.serializers.ModelSerializer
Serializer for the
ScanInputDefinition
model.
Output¶
Serializer for the NiftiOutput
and
NiftiOutputDefinition
models.
Definition of the
NiftiOutputSerializer
class.
-
class
django_mri.serializers.output.nifti_output.
NiftiOutputSerializer
(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)¶ Bases:
rest_framework.serializers.ModelSerializer
Serializer for the
NiftiOutput
model.
Definition of the
NiftiOutputDefinitionSerializer
class.
-
class
django_mri.serializers.output.nifti_output_definition.
NiftiOutputDefinitionSerializer
(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)¶ Bases:
rest_framework.serializers.ModelSerializer
Serializer for the
NiftiOutputDefinition
model.
Submodules¶
django_mri.serializers.nifti module¶
Definition of the NiftiSerializer
class.
django_mri.serializers.scan module¶
Definition of the ScanSerializer
class.
-
class
django_mri.serializers.scan.
ScanSerializer
(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)¶ Bases:
rest_framework.serializers.HyperlinkedModelSerializer
Serializer class for the
User
model.References
Utilities¶
Module contents¶
General app utilities.
Submodules¶
django_mri.utils.bids module¶
Definition of the Bids
class.
-
class
django_mri.utils.bids.
Bids
(scan)¶ Bases:
object
A class to compose BIDS-appropriate paths for usage by dcm2niix In short, standard template for BIDS-appropriate path is: sub-<label>/<data_type>/sub-<label>_<modality_label>
References
-
DATASET_DESCRIPTION_FILE_NAME
= 'dataset_description.json'¶
-
PARTICIPANTS_FILE_NAME
= 'participants.tsv'¶
-
calculate_age
(born: datetime.date) → float¶ Returns age by date of birth.
Parameters: born (datetime.date) – Subject’s birth date Returns: Subject’s age Return type: float
-
clean_unwanted_files
(bids_path: pathlib.Path)¶ Clean irrelevant .bvec and .bval files; Some versions of dcm2niix produce .bvec and .bval for fieldmap images as well as dwi images. Since BIDS specifications do now allow such files under “fmap” data-type, this method deletes them from the relevant directory.
Parameters: bids_path (Path) – Path to the BIDS-compatible directory
-
compose_bids_path
()¶ Uses parameters extracted by {self.get_data} to compose a BIDS- compatible file path
Returns: Full path to a BIDS-compatible file, according to scan’s parameters. Return type: pathlib.Path
-
fix_functional_json
(bids_path: pathlib.Path)¶ Add required “TaskName” field to functional scan, as stated in BIDS stucture.
Parameters: bids_path (Path) – Path to the BIDS-compatible directory References
-
generate_bidsignore
(parent: pathlib.Path)¶ Some acquisitions do not conform to BIDS specification (mainly localizers), so we generate a .bidsignore file, pointing to them.
Parameters: parent (Path) – BIDS-compatible directory, underwhich there are “sub-x” directories References
-
generate_readme
(parent: pathlib.Path)¶ It is recommended by BIDS specifications to have a README file at the base of our project, so we create a blank one for further usage.
Parameters: parent (Path) – BIDS-compatible directory, underwhich there are “sub-x” directories
-
get_data
()¶ Extracts relevant parameters for BIDS-compatible naming.
Returns: - parent (Path) – Parent BIDS directory, under which there will be “sub-x” directories
- data_type (str) – sub-directory under “sub-x”. either “anat”,”func”,”fmap” or “dwi”
- modality_label (str) – modality label as described in BIDS specifications. either “dwi”, “epi”,”T1w”,”FLAIR”,”bold” or “localizer”
- task (Union[str, None]) – task name for functional scans. “rest” or None
- pe_dir (Union[str, None]) – PhaseEncodingDirection for DWI-related images or fieldmap-related images. Either “AP”,”PA” or None
-
get_subject_data
()¶ Extract relevant Scan-related subject’s parameters, as stated by BIDS structure.
Returns: subject’s relevant parameters, sorted by “participant_id”, “handedness”,”age” and “sex” fields Return type: subject_dict[dict]
-
set_description_json
(parent: pathlib.Path)¶ Generates required “dataset_description.json” file, as stated by BIDS structure.
Parameters: parent (Path) – BIDS-compatible directory, underwhich there are “sub-x” directories References
-
set_participant_tsv_and_json
(parent: pathlib.Path, subject_dict: dict)¶ Generates recommended “participants.tsv” by either copying the template from TEMPLATES_DiR or editing an existing one under {parent} directory.
Parameters: - parent (Path) – BIDS-compatible directory, underwhich there are “sub-x” directories
- subject_dict (dict) – Subject’s parameters dictionary, containing “participant_id”, “handedness”,”age”,”sex” fields
References
-
django_mri.utils.compression module¶
Definition of the compress()
and
uncompress()
utility functions.
-
django_mri.utils.compression.
compress
(source: pathlib.Path, destination: pathlib.Path = None, keep_source: bool = True) → pathlib.Path¶ Compresses the provided source file.
Parameters: - source (Path) – File to compress
- destination (Path, optional) – Compressed output file path, by default None
- keep_source (bool, optional) – Whether to keep the source file or not, by default True
Returns: Output file path
Return type: Path
-
django_mri.utils.compression.
uncompress
(source: pathlib.Path, destination: pathlib.Path = None, keep_source: bool = True) → pathlib.Path¶ Uncompresses the provided (compressed) source file.
Parameters: - source (Path) – File to uncompress
- destination (Path, optional) – Uncompressed output file path, by default None
- keep_source (bool, optional) – Whether to keep the source file or not, by default True
Returns: Output file path
Return type: Path
django_mri.utils.messages module¶
A module storing strings used to display messages.
django_mri.utils.scan_type module¶
Definition of the django_mri.utils.scan_type.ScanType
Enum.
django_mri.utils.utils module¶
General app utilites.
-
django_mri.utils.utils.
DEFAULT_DICOM_DIR_NAME
= 'DICOM'¶ The name of the subdirectory under the MRI data root in which DICOM files will be saved.
-
django_mri.utils.utils.
DEFAULT_MRI_DIR_NAME
= 'MRI'¶ The name of the subdirectory under MEDIA_ROOT in which MRI data will be saved.
-
django_mri.utils.utils.
DEFAULT_STUDY_GROUP_MODEL
= 'research.Group'¶ Default identifier for a study group model scans should be related to.
-
django_mri.utils.utils.
DEFAULT_SUBJECT_MODEL
= 'research.Subject'¶ Default identifier for a subject model scans should be related to.
-
django_mri.utils.utils.
get_dicom_root
() → pathlib.Path¶ Returns the path of the directory in which DICOM data should be saved.
-
django_mri.utils.utils.
get_group_model
()¶ Returns the study group model MRI scans should be related to.
Returns: Study group model Return type: django.db.models.Model
-
django_mri.utils.utils.
get_mri_root
() → pathlib.Path¶ Returns the path of the directory in which MRI data should be saved.
-
django_mri.utils.utils.
get_subject_model
()¶ Returns the subject model MRI scans should be related to.
Returns: Subject model Return type: django.db.models.Model
Views¶
Module contents¶
Submodules¶
django_mri.views.defaults module¶
-
class
django_mri.views.defaults.
DefaultsMixin
¶ Bases:
object
Default settings for view authentication, permissions and filtering.
-
authentication_classes
= (<class 'rest_framework.authentication.BasicAuthentication'>, <class 'rest_framework.authentication.TokenAuthentication'>)¶
-
filter_backends
= (<class 'django_filters.rest_framework.backends.DjangoFilterBackend'>, <class 'rest_framework.filters.SearchFilter'>, <class 'rest_framework.filters.OrderingFilter'>)¶
-
permission_classes
= (<class 'rest_framework.permissions.IsAuthenticated'>,)¶
-
django_mri.views.nifti module¶
-
class
django_mri.views.nifti.
NiftiViewSet
(**kwargs)¶ Bases:
django_mri.views.defaults.DefaultsMixin
,rest_framework.viewsets.ModelViewSet
-
pagination_class
¶ alias of
django_mri.views.pagination.StandardResultsSetPagination
-
queryset
¶
-
serializer_class
¶
-
django_mri.views.pagination module¶
-
class
django_mri.views.pagination.
StandardResultsSetPagination
¶ Bases:
rest_framework.pagination.PageNumberPagination
Default pagination parameters. This didn’t work as part of the DefaultsMixin and therefore has to be defined separately in the ‘pagination_class’ configuration.
-
page_size
= 25¶
-
page_size_query_param
= 'page_size'¶
-
django_mri.views.scan module¶
-
class
django_mri.views.scan.
ScanViewSet
(**kwargs)¶ Bases:
django_mri.views.defaults.DefaultsMixin
,rest_framework.viewsets.ModelViewSet
API endpoint that allows scans to be viewed or edited.
-
filter_class
¶
-
from_dicom
(request: rest_framework.request.Request, series_id: int = None) → rest_framework.response.Response¶ Returns scan information from a
Series
instance without serializing.Parameters: Returns: Serialized data or messagerequirements
Return type: Response
-
get_queryset
() → django.db.models.query.QuerySet¶ Filter the returned scans according to the studies the requesting user is a collaborator in, unless the user is staff, in which case return all scans.
Returns: Scan instances. Return type: QuerySet
-
ordering_fields
= ('id', 'description', 'number', 'created', 'echo_time', 'inversion_time', 'repetition_time', 'sequence_type', 'spatial_resolution', 'institution_name')¶
-
pagination_class
¶ alias of
django_mri.views.pagination.StandardResultsSetPagination
-
plot
(request: rest_framework.request.Request, pk: int = None) → rest_framework.response.Response¶
-
preview_script
(request: rest_framework.request.Request, pk: int = None) → rest_framework.response.Response¶
-
queryset
¶
-
search_fields
= ('id', 'description', 'number', 'created', 'scan_time', 'echo_time', 'inversion_time', 'repetition_time', 'sequence_type', 'spatial_resolution', 'institution_name', 'is_updated_from_dicom')¶
-
serializer_class
¶
-
django_mri.views.sequence_type module¶
-
class
django_mri.views.sequence_type.
SequenceTypeViewSet
(**kwargs)¶ Bases:
django_mri.views.defaults.DefaultsMixin
,rest_framework.viewsets.ModelViewSet
-
pagination_class
¶ alias of
django_mri.views.pagination.StandardResultsSetPagination
-
queryset
¶
-
serializer_class
¶ alias of
django_mri.serializers.sequence_type.SequenceTypeSerializer
-
Submodules¶
django_mri.admin module¶
Registers various admin
models to generate the app’s
admin site interface.
References
-
class
django_mri.admin.
ScanAdmin
(model, admin_site)¶ Bases:
django.contrib.admin.options.ModelAdmin
Adds the
Scan
to the admin interface.-
list_display
= ('id', 'subject', 'time', 'number', 'description')¶ Fields displayed on the change list page of the admin.
-
media
¶
-
ordering
= ('subject', 'time', 'number')¶ List ordering in the Django admin views.
-
django_mri.apps module¶
Definition of the DjangoMriConfig
class.
References
django_mri.signals module¶
Signal receivers.
References
-
django_mri.signals.
scan_post_save_receiver
(sender: django.db.models.base.Model, instance: django_mri.models.scan.Scan, created: bool, **kwargs) → None¶ Creates a new subject automatically if a subject was not assigned and a DICOM series is accessible by extracting the
Patient
information.Parameters: