def aparc_stats_table_pipeline(self, measure, hemisphere, **name_maps): pipeline = self.new_pipeline( name='aparc_stats_{}_{}'.format(hemisphere, measure), name_maps=name_maps, desc=("Extract statistics from freesurfer outputs")) copy_to_dir = pipeline.add('copy_to_subjects_dir', CopyToDir(), inputs={ 'in_files': ('fs_recon_all', directory_format), 'file_names': (self.SUBJECT_ID, int) }, joinsource=self.SUBJECT_ID, joinfield=['in_files', 'file_names']) if self.branch('aparc_atlas', 'desikan-killiany'): parc = 'aparc' elif self.branch('aparc_atlas', 'destrieux'): parc = 'aparc.a2009s' elif self.branch('aparc_atlas', 'DKT'): parc = 'aparc.DKTatlas40' else: self.unhandled_branch('aparc_atlas') pipeline.add('aparc_stats', AparcStats(measure=measure, hemisphere=hemisphere, parc=parc), inputs={ 'subjects_dir': (copy_to_dir, 'out_dir'), 'subjects': (copy_to_dir, 'file_names') }, outputs={ 'aparc_stats_{}_{}_table'.format(hemisphere, measure): ('tablefile', text_format) }, requirements=[freesurfer_req.v('5.3')]) return pipeline
def gen_5tt_pipeline(self, **name_maps): pipeline = self.new_pipeline( name='gen5tt', name_maps=name_maps, desc=("Generate 5-tissue-type image used for Anatomically-" "Constrained Tractography (ACT)")) aseg_path = pipeline.add( 'aseg_path', AppendPath(sub_paths=['mri', 'aseg.mgz']), inputs={'base_path': ('fs_recon_all', directory_format)}) pipeline.add( 'gen5tt', mrtrix3.Generate5tt(algorithm='freesurfer', out_file='5tt.mif'), inputs={'in_file': (aseg_path, 'out_path')}, outputs={'five_tissue_type': ('out_file', mrtrix_image_format)}, requirements=[mrtrix_req.v('3.0rc3'), freesurfer_req.v('6.0')]) return pipeline
def freesurfer_pipeline(self, **name_maps): """ Segments grey matter, white matter and CSF from T1 images using SPM "NewSegment" function. NB: Default values come from the W2MHS toolbox """ pipeline = self.new_pipeline(name='segmentation', name_maps=name_maps, desc="Segment white/grey matter and csf", citations=copy(freesurfer_cites)) # FS ReconAll node recon_all = pipeline.add( 'recon_all', interface=ReconAll(directive='all', openmp=self.processor.num_processes), inputs={'T1_files': ('mag_preproc', nifti_gz_format)}, requirements=[freesurfer_req.v('5.3')], wall_time=2000) if self.provided('t2_coreg'): pipeline.connect_input('t2_coreg', recon_all, 'T2_file', nifti_gz_format) recon_all.inputs.use_T2 = True # Wrapper around os.path.join pipeline.add('join', JoinPath(), inputs={ 'dirname': (recon_all, 'subjects_dir'), 'filename': (recon_all, 'subject_id') }, outputs={'fs_recon_all': ('path', directory_format)}) return pipeline