Exemple #1
0
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
Exemple #2
0
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
Exemple #3
0
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
Exemple #4
0
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
Exemple #5
0
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') )
Exemple #7
0
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')
                       )
Exemple #8
0
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
Exemple #9
0
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
Exemple #10
0
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
Exemple #11
0
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
Exemple #12
0
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)