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_methods_02_stats( input_dir, verbose=False ): cenc_dirs = cenc.directories( input_dir ) result_files = [ os.path.join( cenc_dirs['mt']['dirs']['02-stats'], 'magtrans.json') ] mt_status = util.check_files(result_files, False) if verbose: print( cenc_dirs['cenc']['id'] + ', cenc_mt, ' + 'methods_02_stats' + ', ' + str(mt_status) ) return mt_status
def status_prepare( input_dir, 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, False) if verbose: print( cenc_dirs['cenc']['id'] + ', cenc_mt, ' + 'prepare' + ', ' + str(mt_status) ) return mt_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_inputs(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, ' + 'input' + ', ' + str(swi_status)) return swi_status
def results(cenc_participant_id, cenc_participant_dir, cenc_freesurfer_dir,cenc_results_dir, verbose): util.mkcd_dir( [ cenc_results_dir ], True) files_to_convert = [ os.path.join( cenc_freesurfer_dir, cenc_participant_id, 'mri', 'nu.mgz'), os.path.join( cenc_freesurfer_dir, cenc_participant_id, 'mri', 'aseg.mgz'), os.path.join( cenc_freesurfer_dir, cenc_participant_id, 'mri', 'brainmask.mgz'), os.path.join( cenc_freesurfer_dir, cenc_participant_id, 'mri', 'aparc.a2009s+aseg.mgz'), os.path.join( cenc_freesurfer_dir, cenc_participant_id, 'mri', 'wmparc.mgz') ] # Check if files exist print files_to_convert if util.check_files(files_to_convert, True) == False: sys.exit() # Create link to directory freesurfer_results_dir = os.path.abspath(os.path.join( cenc_participant_dir, 'freesurfer','results')) if not os.path.exists(freesurfer_results_dir): util.force_symbolic_link( os.path.join( cenc_freesurfer_dir, cenc_participant_id ), freesurfer_results_dir) # 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_results_dir, 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() # Create final brain mask. cenc.create_mask( os.path.join( cenc_results_dir, 'brainmask.nii.gz'), os.path.join( cenc_results_dir, 'aparc.a2009s+aseg.nii.gz'), os.path.join( cenc_results_dir, 'mask.nii.gz') ) # Extract labels for Further processing cenc_results_labels_dir = os.path.join(cenc_results_dir, 'labels') util.mkcd_dir( cenc_results_labels_dir, 'labels') )
def results(cenc_participant_id, cenc_participant_dir, cenc_freesurfer_dir,cenc_results_dir, verbose): util.mkcd_dir( [ cenc_results_dir ], True) files_to_convert = [ os.path.join( cenc_freesurfer_dir, cenc_participant_id, 'mri', 'nu.mgz'), os.path.join( cenc_freesurfer_dir, cenc_participant_id, 'mri', 'aseg.mgz'), os.path.join( cenc_freesurfer_dir, cenc_participant_id, 'mri', 'brainmask.mgz'), os.path.join( cenc_freesurfer_dir, cenc_participant_id, 'mri', 'aparc.a2009s+aseg.mgz'), os.path.join( cenc_freesurfer_dir, cenc_participant_id, 'mri', 'wmparc.mgz') ] # Check if files exist print files_to_convert if util.check_files(files_to_convert, True) == False: sys.exit() # Create link to directory freesurfer_results_dir = os.path.abspath(os.path.join( cenc_participant_dir, 'freesurfer','results')) if not os.path.exists(freesurfer_results_dir): util.force_symbolic_link( os.path.join( cenc_freesurfer_dir, cenc_participant_id ), freesurfer_results_dir) # TODO use input node to run this instead of a loop mc = Node( fs.MRIConvert( out_type = 'niigz' ), name="mri_convert" ) mc.iterables = ( "in_file", files_to_convert ) reorient = Node( fsl.Reorient2Std(), name="reorient" ) workflow_convert = Workflow(name='cenc_freesurfer_nipype_workflow') workflow_convert.base_dir = cenc_results_dir workflow_convert.connect( [ (mc, reorient, [('out_file', 'in_file')] )] ) workflow_convert.run() # Create final brain mask. This takes forever. Speeding it up would be helpful. cenc.create_mask( os.path.join( cenc_results_dir, 'brainmask.nii.gz'), os.path.join( cenc_results_dir, 'aparc.a2009s+aseg.nii.gz'), os.path.join( cenc_results_dir, 'mask.nii.gz') )
def status_results( input_dir, verbose=False ): cenc_dirs = cenc.directories( input_dir ) result_files = [ os.path.join( cenc_dirs['mt']['dirs']['results'], 'mt_Affine_nu__mt_m0.nii.gz'), os.path.join( cenc_dirs['mt']['dirs']['results'], 'mt_Affine_nu__mt_m1.nii.gz'), os.path.join( cenc_dirs['mt']['dirs']['results'], 'mtr.nii.gz'), os.path.join( cenc_dirs['mt']['dirs']['results'], 'nu.nii.gz'), os.path.join( cenc_dirs['results']['dirs']['images'], 'mtr.nii.gz') ] mt_status = util.check_files(result_files, False) if verbose: print( cenc_dirs['cenc']['id'] + ', cenc_mt, ' + 'results' + ', ' + 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['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_results( input_dir, verbose ): cenc_dirs = cenc.directories( input_dir ) result_files = [ os.path.join( cenc_dirs['results']['dirs']['labels'], 'gm.left_subcortical.nii.gz' ), os.path.join( cenc_dirs['results']['dirs']['labels'], 'gm.right_subcortical.nii.gz'), os.path.join( cenc_dirs['results']['dirs']['labels'], 'gm.cerebral_cortex.nii.gz' ), os.path.join( cenc_dirs['results']['dirs']['labels'], 'gm.cerebellum_cortex.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'], '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_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 util.iw_subprocess( ['cenc_aseg_labels.sh'], True, True, False)