def status_results(input_dir, verbose): cenc_dirs = cenc.directories(input_dir) result_files = [ os.path.join(cenc_dirs['results']['dirs']['labels'], 'gm.cerebral_cortex.nii.gz'), os.path.join(cenc_dirs['results']['dirs']['labels'], 'gm.cerebellum.nii.gz'), os.path.join(cenc_dirs['results']['dirs']['labels'], 'wm.cerebral.nii.gz'), os.path.join(cenc_dirs['results']['dirs']['labels'], 'wm.cerebellum.nii.gz'), os.path.join(cenc_dirs['results']['dirs']['labels'], 'ventricles.nii.gz'), os.path.join(cenc_dirs['results']['dirs']['labels'], 'nu.nii.gz'), os.path.join(cenc_dirs['results']['dirs']['images'], 'nu.nii.gz'), os.path.join(cenc_dirs['results']['dirs']['images'], 'nu_brain.nii.gz') ] freesurfer_status_results = util.check_files(result_files, False) if verbose: print(cenc_dirs['cenc']['id'] + ', cenc_freesurfer, results, ' + str(freesurfer_status_results)) return freesurfer_status_results
def status_results( ants_lct_info, verbose=False, debug=False ): result_files = [ value for key, value in ants_lct_info['results'].items() ] ants_lct_status = util.check_files(result_files, debug) if verbose: print( ants_lct_info['base']['input'] + ', ants_lct, ' + 'results' + ', ' + str(ants_lct_status) ) return ants_lct_status
def status_run(fsinfo, verbose): result_files = [fsinfo['output']['volume']['wmparc']] freesurfer_status_run = util.check_files(result_files, False) if verbose: print(fsinfo['base']['subject_id'] + ', ' + fsinfo['base']['subject_dir'] + ', run, ' + str(freesurfer_status_run)) return freesurfer_status_run
def status_run(input_dir, verbose): cenc_dirs = cenc.directories(input_dir) result_files = [os.path.join(cenc_dirs['freesurfer']['mri'], 'wmparc.mgz')] freesurfer_status_run = util.check_files(result_files, False) if verbose: print(cenc_dirs['cenc']['id'] + ', cenc_freesurfer, run, ' + str(freesurfer_status_run)) return freesurfer_status_run
def status_prepare(input_dir, verbose=False): cenc_dirs = cenc.directories(input_dir) input_files = cenc_dirs['swi']['inputs'] label_files = cenc_dirs['swi']['labels'] swi_status = util.check_files(input_files + label_files, False) if verbose: print(cenc_dirs['cenc']['id'] + ', cenc_swi, ' + 'prepare' + ', ' + str(swi_status)) return swi_status
def status_inputs(input_dir, stdout=False, verbose=False): cenc_dirs = cenc.directories(input_dir) input_files = cenc_dirs['mt']['inputs'] label_files = cenc_dirs['mt']['labels'] mt_status = util.check_files(input_files + label_files, verbose) if stdout: print(cenc_dirs['cenc']['id'] + ', cenc_mt, ' + 'input' + ', ' + str(mt_status)) return mt_status
def status_methods_02_stats(input_dir, verbose=False): cenc_dirs = cenc.directories(input_dir) result_files = [ os.path.join(cenc_dirs['swi']['dirs']['results'], 'magtrans.json') ] swi_status = util.check_files(result_files, False) if verbose: print(cenc_dirs['cenc']['id'] + ', cenc_swi, ' + 'methods_02_stats' + ', ' + str(swi_status)) return swi_status
def status_results(input_dir, verbose=False): cenc_dirs = cenc.directories( input_dir) result_files = [ os.path.join( cenc_dirs['wmlesions']['dirs']['results'], 'wmlesions_lpa_t2flair.nii.gz'), os.path.join( cenc_dirs['wmlesions']['dirs']['results'], 'nu.nii.gz'), os.path.join( cenc_dirs['wmlesions']['dirs']['results'], 'wmlesions_lpa_pmap.nii.gz'), os.path.join( cenc_dirs['wmlesions']['dirs']['results'], 'wmlesions_lpa_labels.nii.gz') ] wmlesions_status = util.check_files(result_files, False) if verbose: print( cenc_dirs['cenc']['id'] + ', cenc_wmlesions, results,' + str(wmlesions_status) ) return wmlesions_status
def status_methods_01_register(input_dir, verbose=False): cenc_dirs = cenc.directories(input_dir) result_files = [ os.path.join(cenc_dirs['mt']['dirs']['register'], 'mt_Affine_nu__mt_m0_Warped.nii.gz'), os.path.join(cenc_dirs['mt']['dirs']['register'], 'mt_Affine_nu__mt_m1_Warped.nii.gz'), os.path.join(cenc_dirs['mt']['dirs']['register'], 'mtr.nii.gz') ] mt_status = util.check_files(result_files, False) if verbose: print(cenc_dirs['cenc']['id'] + ', cenc_mt, ' + 'methods_01_register' + ', ' + str(mt_status)) return mt_status
def status_results(input_dir, verbose=False): cenc_dirs = cenc.directories(input_dir) result_files = [ os.path.join(cenc_dirs['swi']['dirs']['results'], 'swi_Affine_nu__swi_m0.nii.gz'), os.path.join(cenc_dirs['swi']['dirs']['results'], 'swi_Affine_nu__swi_m1.nii.gz'), os.path.join(cenc_dirs['swi']['dirs']['results'], 'swir.nii.gz'), os.path.join(cenc_dirs['swi']['dirs']['results'], 'nu.nii.gz'), os.path.join(cenc_dirs['results']['dirs']['images'], 'swir.nii.gz') ] swi_status = util.check_files(result_files, False) if verbose: print(cenc_dirs['cenc']['id'] + ', cenc_swi, ' + 'results' + ', ' + str(swi_status)) return swi_status
def status_methods_01_register(config, verbose=False): input_dir = config['dirs']['input'] cenc_dirs = cenc.directories(input_dir) result_files = [ os.path.join(cenc_dirs['swi']['dirs']['register'], 'swi_Affine_nu__swi_magnitude.nii.gz'), os.path.join(cenc_dirs['swi']['dirs']['register'], 'swi_Affine_nu__swi_phase.nii.gz'), os.path.join(cenc_dirs['swi']['dirs']['register'], 'swi_Affine_nu__swi.nii.gz') ] swi_status = util.check_files(result_files, False) if verbose: print(cenc_dirs['cenc']['id'] + ', cenc_swi, ' + 'methods_01_register' + ', ' + str(swi_status)) return swi_status
def results(input_dir, verbose): cenc_dirs = cenc.directories(input_dir) cenc_freesurfer_dir = cenc_dirs['freesurfer']['mri'] util.mkcd_dir([ cenc_dirs['results']['dirs']['root'], cenc_dirs['results']['dirs']['images'], cenc_dirs['results']['dirs']['labels'] ], True) files_to_convert = [ os.path.join(cenc_freesurfer_dir, 'nu.mgz'), os.path.join(cenc_freesurfer_dir, 'aseg.mgz'), os.path.join(cenc_freesurfer_dir, 'brainmask.mgz'), os.path.join(cenc_freesurfer_dir, 'aparc.a2009s+aseg.mgz'), os.path.join(cenc_freesurfer_dir, 'wmparc.mgz') ] # Check if files exist if util.check_files(files_to_convert, True) == False: sys.exit() # Create link to directory if not os.path.exists(cenc_dirs['freesurfer']['results']): util.force_symbolic_link(cenc_dirs['freesurfer']['mri'], cenc_dirs['freesurfer']['results']) # TODO use input node to run this instead of a loop. The trick part is to have the files named correctly. for ii in files_to_convert: mc = fs.MRIConvert(in_file=ii, out_file=os.path.join( cenc_dirs['results']['dirs']['labels'], str.replace(os.path.basename(ii), '.mgz', '.nii.gz')), out_type='niigz') mc.run() reorient = fsl.Reorient2Std(in_file=mc.inputs.out_file, out_file=mc.inputs.out_file) reorient.run() # Link nu.nii.gz to results/native/images result_files = [[ os.path.join(cenc_dirs['results']['dirs']['labels'], 'nu.nii.gz'), os.path.join(cenc_dirs['results']['dirs']['images'], 'nu.nii.gz') ]] for ii in result_files: util.force_hard_link(ii[0], ii[1]) # Create final brain mask. cenc.create_mask( os.path.join(cenc_dirs['results']['dirs']['labels'], 'brainmask.nii.gz'), os.path.join(cenc_dirs['results']['dirs']['labels'], 'aparc.a2009s+aseg.nii.gz'), os.path.join(cenc_dirs['results']['dirs']['labels'], 'mask.nii.gz')) # Create macroscopic labels labels.extract(os.path.join(cenc_dirs['results']['dirs']['labels'], 'aseg.nii.gz'), [], [10, 11, 12, 13, 17, 18, 49, 50, 51, 52, 53, 54], os.path.join(cenc_dirs['results']['dirs']['labels'], 'gm.subcortical.nii.gz'), merge=1) labels.extract(os.path.join(cenc_dirs['results']['dirs']['labels'], 'aseg.nii.gz'), [], [3, 42], os.path.join(cenc_dirs['results']['dirs']['labels'], 'gm.cerebral_cortex.nii.gz'), merge=1) labels.extract(os.path.join(cenc_dirs['results']['dirs']['labels'], 'aseg.nii.gz'), [], [8, 47], os.path.join(cenc_dirs['results']['dirs']['labels'], 'gm.cerebellum.nii.gz'), merge=1) labels.extract(os.path.join(cenc_dirs['results']['dirs']['labels'], 'aseg.nii.gz'), [], [2, 41], os.path.join(cenc_dirs['results']['dirs']['labels'], 'wm.cerebral.nii.gz'), merge=1) labels.extract(os.path.join(cenc_dirs['results']['dirs']['labels'], 'aseg.nii.gz'), [], [7, 46], os.path.join(cenc_dirs['results']['dirs']['labels'], 'wm.cerebellum.nii.gz'), merge=1) labels.extract(os.path.join(cenc_dirs['results']['dirs']['labels'], 'aseg.nii.gz'), [], [4, 43], os.path.join(cenc_dirs['results']['dirs']['labels'], 'ventricles.nii.gz'), merge=1) # Brain extraction nu.nii.gz util.iw_subprocess([ 'fslmaths', os.path.join(cenc_dirs['results']['dirs']['images'], 'nu.nii.gz'), '-mas', os.path.join(cenc_dirs['results']['dirs']['labels'], 'mask.nii.gz'), os.path.join(cenc_dirs['results']['dirs']['images'], 'nu_brain.nii.gz') ])