def run_command(self, args): from networkx import Graph from clinica.utils.ux import print_crash_files_and_exit, print_end_pipeline from .statistics_volume_correction_pipeline import StatisticsVolumeCorrection parameters = { "t_map": args.t_map, "height_threshold": args.height_threshold, "FWEp": args.FWEp, "FDRp": args.FDRp, "FWEc": args.FWEp, "FDRc": args.FDRp, "n_cuts": args.n_cuts, } pipeline = StatisticsVolumeCorrection( caps_directory=self.absolute_path(args.caps_directory), base_dir=self.absolute_path(args.working_directory), parameters=parameters, name=self.name, ) if args.n_procs: exec_pipeline = pipeline.run(plugin="MultiProc", plugin_args={"n_procs": args.n_procs}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): """Run the pipeline with defined args.""" from networkx import Graph from clinica.utils.ux import print_crash_files_and_exit, print_end_pipeline from .dwi_preprocessing_using_phasediff_fieldmap_pipeline import ( DwiPreprocessingUsingPhaseDiffFieldmap, ) parameters = { 'low_bval': args.low_bval } pipeline = DwiPreprocessingUsingPhaseDiffFieldmap( bids_directory=self.absolute_path(args.bids_directory), caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path(args.subjects_sessions_tsv), base_dir=self.absolute_path(args.working_directory), parameters=parameters, name=self.name ) if args.n_procs: exec_pipeline = pipeline.run(plugin='MultiProc', plugin_args={'n_procs': args.n_procs}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): """Run the pipeline with defined args.""" from networkx import Graph from clinica.utils.ux import print_crash_files_and_exit, print_end_pipeline from .t1_freesurfer_pipeline import T1FreeSurfer parameters = { "recon_all_args": args.recon_all_args, } pipeline = T1FreeSurfer( bids_directory=self.absolute_path(args.bids_directory), caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path(args.subjects_sessions_tsv), base_dir=self.absolute_path(args.working_directory), parameters=parameters, name=self.name, overwrite_caps=args.overwrite_outputs, ) if args.n_procs: exec_pipeline = pipeline.run(plugin="MultiProc", plugin_args={"n_procs": args.n_procs}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): """Run the pipeline with defined args.""" from networkx import Graph from clinica.utils.ux import print_crash_files_and_exit, print_end_pipeline from .dwi_dti_pipeline import DwiDti pipeline = DwiDti( caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path(args.subjects_sessions_tsv), base_dir=self.absolute_path(args.working_directory), name=self.name, ) if args.n_procs: exec_pipeline = pipeline.run( plugin="MultiProc", plugin_args={"n_procs": args.n_procs} ) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline( self.name, pipeline.base_dir, pipeline.base_dir_was_specified ) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): """Run the pipeline with defined args.""" from networkx import Graph from .t1_volume_register_dartel_pipeline import T1VolumeRegisterDartel from clinica.utils.ux import print_end_pipeline, print_crash_files_and_exit parameters = { 'group_label': args.group_label, 'tissues': args.tissues, } pipeline = T1VolumeRegisterDartel( bids_directory=self.absolute_path(args.bids_directory), caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path(args.subjects_sessions_tsv), base_dir=self.absolute_path(args.working_directory), parameters=parameters, name=self.name) if args.n_procs: exec_pipeline = pipeline.run(plugin='MultiProc', plugin_args={'n_procs': args.n_procs}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): """Run the pipeline with defined args.""" from networkx import Graph from .t1_linear_pipeline import T1Linear from clinica.utils.ux import print_end_pipeline, print_crash_files_and_exit parameters = {'crop_image': args.crop_image} # Most of the time, you will want to instantiate your pipeline with a # BIDS and CAPS directory as inputs: pipeline = T1Linear( bids_directory=self.absolute_path(args.bids_directory), caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path(args.subjects_sessions_tsv), base_dir=self.absolute_path(args.working_directory), parameters=parameters, name=self.name) if args.n_procs: exec_pipeline = pipeline.run(plugin='MultiProc', plugin_args={'n_procs': args.n_procs}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): """Run the pipeline with defined args.""" from networkx import Graph from clinica.pipelines.pet_volume.pet_volume_pipeline import PETVolume from clinica.utils.ux import print_end_pipeline, print_crash_files_and_exit parameters = { 'group_label': args.group_label, 'acq_label': args.acq_label, 'suvr_reference_region': args.suvr_reference_region, 'pvc_psf_tsv': self.absolute_path(args.pvc_psf_tsv), 'mask_tissues': args.mask_tissues, 'mask_threshold': args.mask_threshold, 'pvc_mask_tissues': args.pvc_mask_tissues, 'smooth': args.smooth, } pipeline = PETVolume( bids_directory=self.absolute_path(args.bids_directory), caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path(args.subjects_sessions_tsv), base_dir=self.absolute_path(args.working_directory), parameters=parameters, name=self.name) if args.n_procs: exec_pipeline = pipeline.run(plugin='MultiProc', plugin_args={'n_procs': args.n_procs}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): from networkx import Graph from .statistics_volume_pipeline import StatisticsVolume from clinica.utils.ux import print_end_pipeline, print_crash_files_and_exit parameters = { 'contrast': args.contrast, 'feature_type': args.feature_type, 'group_id': args.group_id, 'custom_files': args.custom_files, 'cluster_threshold': args.cluster_threshold, 'group_id_caps': args.group_id_caps, 'full_width_at_half_maximum': args.full_width_at_half_maximum } pipeline = StatisticsVolume( caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path( args.subject_visits_with_covariates_tsv), base_dir=self.absolute_path(args.working_directory), parameters=parameters, name=self.name) if args.n_procs: exec_pipeline = pipeline.run(plugin='MultiProc', plugin_args={'n_procs': args.n_procs}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): """Run the pipeline with defined args.""" from networkx import Graph from .spatial_svm_pipeline import SpatialSVM from clinica.utils.ux import print_end_pipeline, print_crash_files_and_exit parameters = { 'group_id': args.group_id, 'fwhm': args.fwhm, 'image_type': args.image_type, 'pet_tracer': args.pet_tracer, 'no_pvc': args.no_pvc } pipeline = SpatialSVM( caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path(args.subjects_sessions_tsv), base_dir=self.absolute_path(args.working_directory), parameters=parameters, name=self.name) if args.n_procs: exec_pipeline = pipeline.run(plugin='MultiProc', plugin_args={'n_procs': args.n_procs}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): """Run the pipeline with defined args.""" from networkx import Graph from .pet_surface_pipeline import PetSurface from clinica.utils.ux import print_end_pipeline, print_crash_files_and_exit parameters = {'pet_tracer': args.pet_tracer, 'longitudinal': False} pipeline = PetSurface( bids_directory=self.absolute_path(args.bids_directory), caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path(args.subjects_sessions_tsv), base_dir=self.absolute_path(args.working_directory), parameters=parameters, name=self.name) if args.n_procs: exec_pipeline = pipeline.run(plugin='MultiProc', plugin_args={'n_procs': args.n_procs}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): """Run the pipeline with defined args.""" from networkx import Graph from .dwi_connectome_pipeline import DwiConnectome from clinica.utils.ux import print_end_pipeline, print_crash_files_and_exit parameters = {'n_tracks': args.n_tracks} pipeline = DwiConnectome( caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path(args.subjects_sessions_tsv), base_dir=self.absolute_path(args.working_directory), parameters=parameters, name=self.name) if args.n_procs: exec_pipeline = pipeline.run(plugin='MultiProc', plugin_args={'n_procs': args.n_procs}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): """Run the pipeline with defined args.""" from networkx import Graph from clinica.utils.ux import print_crash_files_and_exit, print_end_pipeline from .t1_volume_parcellation_pipeline import T1VolumeParcellation parameters = { "group_label": args.group_label, } pipeline = T1VolumeParcellation( caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path(args.subjects_sessions_tsv), base_dir=self.absolute_path(args.working_directory), parameters=parameters, name=self.name, ) if args.n_procs: exec_pipeline = pipeline.run(plugin="MultiProc", plugin_args={"n_procs": args.n_procs}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): """Run the pipeline with defined args.""" from networkx import Graph from .t1_volume_tissue_segmentation_pipeline import T1VolumeTissueSegmentation from clinica.utils.ux import print_end_pipeline, print_crash_files_and_exit parameters = { 'tissue_classes': args.tissue_classes, 'dartel_tissues': args.dartel_tissues, 'tissue_probability_maps': args.tissue_probability_maps, 'save_warped_unmodulated': not args.dont_save_warped_unmodulated, 'save_warped_modulated': args.save_warped_modulated, } pipeline = T1VolumeTissueSegmentation( bids_directory=self.absolute_path(args.bids_directory), caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path(args.subjects_sessions_tsv), base_dir=self.absolute_path(args.working_directory), parameters=parameters, name=self.name ) if args.n_procs: exec_pipeline = pipeline.run(plugin='MultiProc', plugin_args={'n_procs': args.n_procs}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): """Run the pipeline with defined args.""" from networkx import Graph from clinica.utils.ux import print_crash_files_and_exit, print_end_pipeline from .pet_surface_pipeline import PetSurface parameters = { "acq_label": args.acq_label, "suvr_reference_region": args.suvr_reference_region, "pvc_psf_tsv": self.absolute_path(args.pvc_psf_tsv), "longitudinal": False, } pipeline = PetSurface( bids_directory=self.absolute_path(args.bids_directory), caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path(args.subjects_sessions_tsv), base_dir=self.absolute_path(args.working_directory), parameters=parameters, name=self.name, ) if args.n_procs: exec_pipeline = pipeline.run(plugin="MultiProc", plugin_args={"n_procs": args.n_procs}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): """Run the pipeline with defined args.""" from networkx import Graph from fmri_preprocessing_pipeline import fMRIPreprocessing from clinica.utils.ux import print_end_pipeline, print_crash_files_and_exit parameters = { 'full_width_at_half_maximum': args.full_width_at_half_maximum, 't1_native_space': args.t1_native_space, 'freesurfer_brain_mask': args.freesurfer_brain_mask, 'unwarping': args.unwarping, } pipeline = fMRIPreprocessing( bids_directory=self.absolute_path(args.bids_directory), caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path(args.subjects_sessions_tsv), base_dir=self.absolute_path(args.working_directory), parameters=parameters, name=self.name ) if args.n_procs: exec_pipeline = pipeline.run(plugin='MultiProc', plugin_args={'n_procs': args.n_procs}) # elif args.slurm: # exec_pipeline = pipeline.run(plugin='SLURMGraph', # plugin_args={'dont_resubmit_completed_jobs': True, # 'sbatch_args': args.sbatch_args}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): """Run the pipeline with defined args.""" from networkx import Graph from .t1_volume_parcellation_pipeline import T1VolumeParcellation from clinica.utils.check_dependency import verify_cat12_atlases from clinica.utils.ux import print_end_pipeline, print_crash_files_and_exit # If the user wants to use any of the atlases of cat12 and has not installed it, we just remove it from the list # of the computed atlases args.atlases = verify_cat12_atlases(args.atlases) parameters = { 'group_id': args.group_id, 'atlases': args.atlases, } pipeline = T1VolumeParcellation( caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path(args.subjects_sessions_tsv), base_dir=self.absolute_path(args.working_directory), parameters=parameters, name=self.name) if args.n_procs: exec_pipeline = pipeline.run(plugin='MultiProc', plugin_args={'n_procs': args.n_procs}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): """Run the pipeline with defined args.""" from colorama import Fore from networkx import Graph from clinica.utils.exceptions import ClinicaException from clinica.utils.ux import print_crash_files_and_exit, print_end_pipeline from .spatial_svm_pipeline import SpatialSVM if args.orig_input_data == "pet-volume": if args.acq_label is None: raise ClinicaException( f"{Fore.RED}You selected pet-volume pipeline without setting --acq_label flag. " f"Clinica will now exit.{Fore.RESET}") if args.suvr_reference_region is None: raise ClinicaException( f"{Fore.RED}You selected pet-volume pipeline without setting --suvr_reference_region flag. " f"Clinica will now exit.{Fore.RESET}") parameters = { # Clinica compulsory arguments "group_label": args.group_label, "orig_input_data": args.orig_input_data, # Optional arguments for inputs from pet-volume pipeline "acq_label": args.acq_label, "use_pvc_data": args.use_pvc_data, "suvr_reference_region": args.suvr_reference_region, # Advanced arguments "fwhm": args.full_width_half_maximum, } pipeline = SpatialSVM( caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path(args.subjects_sessions_tsv), base_dir=self.absolute_path(args.working_directory), parameters=parameters, name=self.name, ) if args.n_procs: exec_pipeline = pipeline.run(plugin="MultiProc", plugin_args={"n_procs": args.n_procs}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): """Run the pipeline with defined args.""" from networkx import Graph from clinica.pipelines.pet_volume.pet_volume_pipeline import PETVolume from clinica.utils.check_dependency import verify_cat12_atlases from clinica.utils.ux import print_end_pipeline, print_crash_files_and_exit parameters = { 'group_id': args.group_id, 'psf_tsv': self.absolute_path(args.psf_tsv), 'pet_tracer': args.pet_tracer, 'mask_tissues': args.mask_tissues, 'mask_threshold': args.mask_threshold, 'pvc_mask_tissues': args.pvc_mask_tissues, 'smooth': args.smooth, 'atlases': args.atlases, } # If the user wants to use any of the atlases of CAT12 and has not installed it, we just remove it from the list # of the computed atlases parameters['atlases'] = verify_cat12_atlases(args.atlases) pipeline = PETVolume( bids_directory=self.absolute_path(args.bids_directory), caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path(args.subjects_sessions_tsv), base_dir=self.absolute_path(args.working_directory), parameters=parameters, name=self.name) if args.n_procs: exec_pipeline = pipeline.run(plugin='MultiProc', plugin_args={'n_procs': args.n_procs}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): """Run the pipeline with defined args.""" from networkx import Graph from clinica.utils.ux import print_crash_files_and_exit, print_end_pipeline from .deeplearning_prepare_data_pipeline import DeepLearningPrepareData parameters = { # Add your own pipeline parameters here to use them inside your # pipeline. See the file `deeplearning_prepare_data_pipeline.py` to # see an example of use. "modality": args.modality, "extract_method": args.extract_method, "patch_size": args.patch_size, "stride_size": args.stride_size, "slice_direction": args.slice_direction, "slice_mode": args.slice_mode, "use_uncropped_image": args.use_uncropped_image, "custom_suffix": args.custom_suffix, } pipeline = DeepLearningPrepareData( caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path(args.subjects_sessions_tsv), base_dir=self.absolute_path(args.working_directory), parameters=parameters, name=self.name, ) if args.n_procs: exec_pipeline = pipeline.run(plugin="MultiProc", plugin_args={"n_procs": args.n_procs}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): """Run the pipeline with defined args.""" import os from colorama import Fore from networkx import Graph from clinica.utils.stream import cprint from clinica.utils.ux import print_crash_files_and_exit, print_end_pipeline from .pet_linear_pipeline import PETLinear parameters = { "acq_label": args.acq_label, "suvr_reference_region": args.suvr_reference_region, "uncropped_image": args.uncropped_image, "save_PETinT1w": args.save_pet_in_t1w_space, } pipeline = PETLinear( bids_directory=self.absolute_path(args.bids_directory), caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path(args.subjects_sessions_tsv), base_dir=self.absolute_path(args.working_directory), parameters=parameters, name=self.name, ) if args.n_procs: exec_pipeline = pipeline.run(plugin="MultiProc", plugin_args={"n_procs": args.n_procs}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): """Run the pipeline with defined args.""" from networkx import Graph from .t1_freesurfer_template_pipeline import T1FreeSurferTemplate from clinica.utils.ux import print_end_pipeline, print_crash_files_and_exit pipeline = T1FreeSurferTemplate( caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path(args.subjects_sessions_tsv), base_dir=self.absolute_path(args.working_directory), name='t1-freesurfer-template', overwrite_caps=args.overwrite_outputs) if args.n_procs: exec_pipeline = pipeline.run(plugin='MultiProc', plugin_args={'n_procs': args.n_procs}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): """Run the pipeline with defined args.""" from networkx import Graph from colorama import Fore from .statistics_surface_pipeline import StatisticsSurface from .statistics_surface_utils import (get_t1_freesurfer_custom_file, get_pet_surface_custom_file) from clinica.utils.ux import print_end_pipeline, print_crash_files_and_exit from clinica.utils.exceptions import ClinicaException # PET-Surface pipeline if args.orig_input_data == 'pet-surface': if args.acq_label is None: raise ClinicaException( f"{Fore.RED}You selected pet-surface pipeline without setting --acq_label flag. " f"Clinica will now exit.{Fore.RESET}") if args.suvr_reference_region is None: raise ClinicaException( f"{Fore.RED}You selected pet-surface pipeline without setting --suvr_reference_region flag. " f"Clinica will now exit.{Fore.RESET}") # FreeSurfer cortical thickness if args.orig_input_data == 't1-freesurfer': args.custom_file = get_t1_freesurfer_custom_file() args.measure_label = 'ct' # PET cortical projection elif args.orig_input_data == 'pet-surface': args.custom_file = get_pet_surface_custom_file( args.acq_label, args.suvr_reference_region) args.measure_label = args.acq_label else: if (args.custom_file is None) or (args.measure_label is None): raise ClinicaException( 'You must set --measure_label and --custom_file flags.') parameters = { # Clinica compulsory arguments 'group_label': args.group_label, 'orig_input_data': args.orig_input_data, 'glm_type': args.glm_type, 'contrast': args.contrast, # Optional arguments 'covariates': args.covariates, 'full_width_at_half_maximum': args.full_width_at_half_maximum, # Optional arguments for inputs from pet-surface pipeline 'acq_label': args.acq_label, 'suvr_reference_region': args.suvr_reference_region, # Optional arguments for custom pipeline 'custom_file': args.custom_file, 'measure_label': args.measure_label, # Advanced arguments (i.e. tricky parameters) 'cluster_threshold': args.cluster_threshold, } pipeline = StatisticsSurface( caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path( args.subject_visits_with_covariates_tsv), base_dir=self.absolute_path(args.working_directory), parameters=parameters, name=self.name) if args.n_procs: exec_pipeline = pipeline.run(plugin='MultiProc', plugin_args={'n_procs': args.n_procs}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): from networkx import Graph from colorama import Fore from .statistics_volume_pipeline import StatisticsVolume from clinica.utils.ux import print_end_pipeline, print_crash_files_and_exit from clinica.utils.exceptions import ClinicaException # PET-Volume pipeline if args.orig_input_data == 'pet-volume': if args.acq_label is None: raise ClinicaException( f"{Fore.RED}You selected pet-volume pipeline without setting --acq_label flag. " f"Clinica will now exit.{Fore.RESET}") if args.suvr_reference_region is None: raise ClinicaException( f"{Fore.RED}You selected pet-volume pipeline without setting --suvr_reference_region flag. " f"Clinica will now exit.{Fore.RESET}") # Custom pipeline if args.orig_input_data == 'custom-pipeline': if (args.custom_file is None) or (args.measure_label is None): raise ClinicaException( 'You must set --measure_label and --custom_file flags.') parameters = { # Clinica compulsory arguments 'group_label': args.group_label, 'orig_input_data': args.orig_input_data, 'contrast': args.contrast, # Optional arguments 'group_label_dartel': args.group_label_dartel, 'full_width_at_half_maximum': args.full_width_at_half_maximum, # Optional arguments for inputs from pet-volume pipeline 'acq_label': args.acq_label, 'use_pvc_data': args.use_pvc_data, 'suvr_reference_region': args.suvr_reference_region, # Optional arguments for custom pipeline 'measure_label': args.measure_label, 'custom_file': args.custom_file, # Advanced arguments 'cluster_threshold': args.cluster_threshold, } pipeline = StatisticsVolume( caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path( args.subject_visits_with_covariates_tsv), base_dir=self.absolute_path(args.working_directory), parameters=parameters, name=self.name) if args.n_procs: exec_pipeline = pipeline.run(plugin='MultiProc', plugin_args={'n_procs': args.n_procs}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)
def run_command(self, args): """Run the pipeline with defined args.""" import os from networkx import Graph from .statistics_surface_pipeline import StatisticsSurface from .statistics_surface_utils import (check_inputs, get_t1_freesurfer_custom_file, get_fdg_pet_surface_custom_file) from clinica.utils.stream import cprint from clinica.utils.ux import print_end_pipeline, print_crash_files_and_exit from clinica.utils.exceptions import ClinicaException if args.feature_type is not None: if args.custom_file is not None: raise ClinicaException('--feature_type and --custom_file are mutually exclusive: you must choose ' 'between one or the other. See documentation for more information.') if args.feature_label is not None: raise ClinicaException('--feature_label should not be used with --feature_type.') # FreeSurfer cortical thickness if args.feature_type == 'cortical_thickness': args.custom_file = get_t1_freesurfer_custom_file() args.feature_label = 'ct' # PET cortical projection elif args.feature_type == 'pet_fdg_projection': args.custom_file = get_fdg_pet_surface_custom_file() args.feature_label = 'fdg' else: raise ClinicaException('Feature type ' + args.feature_type + ' not recognized. Use --custom_file ' 'to specify your own files (without --feature_type).') elif args.feature_type is None: if args.custom_file is None: cprint('No feature type selected: using cortical thickness as default value') args.custom_file = get_t1_freesurfer_custom_file() args.feature_label = 'ct' else: cprint('Using custom features.') if args.feature_label is None: raise ClinicaException('You must specify a --feature_label when using the --custom_files flag.') # Check if the group label has been existed, if yes, give an error to the users # Note(AR): if the user wants to compare Cortical Thickness measure with PET measure # using the group_id, Clinica won't allow it. # TODO: Modify this behaviour if os.path.exists(os.path.join(os.path.abspath(self.absolute_path(args.caps_directory)), 'groups', 'group-' + args.group_id)): error_message = 'group_id: ' + args.group_id + ' already exists, please choose another one or delete ' \ 'the existing folder and also the working directory and rerun the pipeline' raise ClinicaException(error_message) parameters = { 'group_label': args.group_id, 'design_matrix': args.design_matrix, 'contrast': args.contrast, 'str_format': args.string_format, 'glm_type': args.glm_type, 'custom_file': args.custom_file, 'feature_label': args.feature_label, 'full_width_at_half_maximum': args.full_width_at_half_maximum, 'threshold_uncorrected_pvalue': args.threshold_uncorrected_pvalue, 'threshold_corrected_pvalue': args.threshold_corrected_pvalue, 'cluster_threshold': args.cluster_threshold, } pipeline = StatisticsSurface( caps_directory=self.absolute_path(args.caps_directory), tsv_file=self.absolute_path(args.subject_visits_with_covariates_tsv), base_dir=self.absolute_path(args.working_directory), parameters=parameters, name=self.name ) check_inputs(pipeline.caps_directory, pipeline.parameters['custom_file'], pipeline.parameters['full_width_at_half_maximum'], pipeline.tsv_file) cprint("Parameters used for this pipeline:") cprint(pipeline.parameters) if args.n_procs: exec_pipeline = pipeline.run(plugin='MultiProc', plugin_args={'n_procs': args.n_procs}) else: exec_pipeline = pipeline.run() if isinstance(exec_pipeline, Graph): print_end_pipeline(self.name, pipeline.base_dir, pipeline.base_dir_was_specified) else: print_crash_files_and_exit(args.logname, pipeline.base_dir)