def get_structural_preproc_data(self, subject_info, output_study_dir): # structural preprocessed data for HCP 7T subjects # is in the (3T) structural reference archive and project reference_3T_subject = hcp3t_subject.Hcp3TSubjectInfo( subject_info.structural_reference_project, subject_info.subject_id, subject_info.extra) self._reference_data_retriever.get_structural_preproc_data( reference_3T_subject, output_study_dir)
def main(): archive = hcp3t_archive.Hcp3T_Archive() project_names = ['HCP_500', 'HCP_900'] for project_name in project_names: subject_ids = archive.available_subject_ids(project_name) for subject_id in subject_ids: subject_info = hcp3t_subject.Hcp3TSubjectInfo( project_name, subject_id) available_diffusion_scan_names = archive.available_diffusion_scan_names( subject_info) dir95_scan_LR_scan_name = subject_info.subject_id + '_3T_DWI_dir95_LR.nii.gz' dir95_scan_RL_scan_name = subject_info.subject_id + '_3T_DWI_dir95_RL.nii.gz' dir96_scan_LR_scan_name = subject_info.subject_id + '_3T_DWI_dir96_LR.nii.gz' dir96_scan_RL_scan_name = subject_info.subject_id + '_3T_DWI_dir96_RL.nii.gz' dir97_scan_LR_scan_name = subject_info.subject_id + '_3T_DWI_dir97_LR.nii.gz' dir97_scan_RL_scan_name = subject_info.subject_id + '_3T_DWI_dir97_RL.nii.gz' if ((dir96_scan_LR_scan_name in available_diffusion_scan_names) and (dir96_scan_RL_scan_name in available_diffusion_scan_names) and (dir97_scan_LR_scan_name in available_diffusion_scan_names) and (dir97_scan_RL_scan_name in available_diffusion_scan_names)): if ((dir95_scan_LR_scan_name in available_diffusion_scan_names) and (dir95_scan_RL_scan_name not in available_diffusion_scan_names)): _inform( "Subject: " + str(subject_info) + " has all dir96 and dir97 scans and only dir95_LR.") elif ((dir95_scan_LR_scan_name not in available_diffusion_scan_names) and (dir95_scan_RL_scan_name in available_diffusion_scan_names)): _inform( "Subject: " + str(subject_info) + " has all dir96 and dir97 scans and only dir95_RL.")
def main(): # create a parser object for getting the command line options parser = my_argparse.MyArgumentParser(description="Program to check Diffusion Preprocessing Output size") # mandatory arguments parser.add_argument('-p', '--project', dest='project', required=True, type=str) # optional arguments parser.add_argument('-s', '--subject', dest='subject', required=False, default='all', type=str) # parse the command line arguments args = parser.parse_args() # show parsed arguments log.debug("Project: " + args.project) log.debug("Subject: " + args.subject) # create archive archive = hcp3t_archive.Hcp3T_Archive() # Create a list of subjects to process subject_list = _build_subject_list(archive, args.project, args.subject) all_succeeded = True # Create a DiffusionOutputSizeChecker size_checker = DiffusionOutputSizeChecker() print("Subject\tExpected Volumes\tCheck Success") for subject in subject_list: subject_info = hcp3t_subject.Hcp3TSubjectInfo(args.project, subject) try: # check the diffusion preprocessing size for the specified subject (success, expected_size, msg) = size_checker.check_diffusion_preproc_size(archive, subject_info) print(subject_info.subject_id + "\t" + str(expected_size) + "\t" + str(success) + "\t" + msg) all_succeeded = all_succeeded and success except NoDiffusionPreprocResource as e: print(subject_info.subject_id + "\t" + "N/A" + "\t" + "N/A" + "\t" + "No Diff Preproc Resource") all_succeeded = False except FileNotFoundError as e: print(subject_info.subject_id + "\t" + "N/A" + "\t" + "N/A" + "\t" + "A necessary output file was not found") all_succeeded = False return all_succeeded
def _simple_interactive_demo(): archive = hcp3t_archive.Hcp3T_Archive() completion_checker = OneSubjectCompletionChecker() # 100307 subject_id_list = [ 100307, 100408, 101006, 101107, 101309, 101410, 101915, 102008, 102311, 102816, 103111, 103414, 103515, 103818, 104012, 104820, 105014, 105115, 105216, 105923, 106016, 106319, 106521, 107321, 107422, 108121, 108323, 108525, 108828, 109123, 109325, 110411, 111312, 901442, 904044, 907656, 910241, 912447, 917255, 922854, 930449, 932554, 937160, 951457, 957974, 958976, 959574, 965367, 965771, 978578, 979984, 983773, 984472, 987983, 991267, 992774, 994273 ] for subject_id in subject_id_list: hcp3t_subject_info = hcp3t_subject.Hcp3TSubjectInfo( 'HCP_500', str(subject_id)) log.info("Checking subject: " + hcp3t_subject_info.subject_id) resource_exists = completion_checker.does_processed_resource_exist( archive, hcp3t_subject_info) log.info("resource_exists: " + str(resource_exists)) processing_complete = completion_checker.is_processing_complete( archive, hcp3t_subject_info, False) log.info("processing_complete: " + str(processing_complete)) try: (success, expected_size, msg) = output_size_checker.check_diffusion_preproc_size( archive, hcp3t_subject_info) log.info("expected_size: " + str(expected_size) + "\tsuccess: " + str(success) + "\t" + msg) except output_size_checker.NoDiffusionPreprocResource as e: log.info("expected_size: " + "N/A" + "tsuccess: " + "N/A" + "\t" + "No Diff Preproc Resource") except FileNotFoundError as e: log.info("expected_size: " + "N/A" + "tsuccess: " + "N/A" + "\t" + "A necessary output file was not found")
def main(): archive = hcp3t_archive.Hcp3T_Archive() project_names = ['HCP_500', 'HCP_900'] for project_name in project_names: subject_ids = archive.available_subject_ids(project_name) for subject_id in subject_ids: subject_info = hcp3t_subject.Hcp3TSubjectInfo(project_name, subject_id) available_diffusion_scan_fullpaths = archive.available_diffusion_scan_fullpaths(subject_info) for diffusion_scan in available_diffusion_scan_fullpaths: #_inform("") volume_count = get_volume_count(diffusion_scan) #_inform("diffusion_scan: " + diffusion_scan + " volume_count: " + str(volume_count)) expected_volume_count = get_expected_volume_count(diffusion_scan) #_inform("diffusion_scan: " + diffusion_scan + " expected_volume_count: " + str(expected_volume_count)) if volume_count != expected_volume_count: _inform("diffusion_scan: " + os.path.basename(diffusion_scan) + " has expected volume count: " + str(expected_volume_count) + " and actual volume count: " + str(volume_count))
def _simple_interactive_demo(): archive = Hcp3T_Archive() _inform("archive.FUNCTIONAL_SCAN_MARKER: " + archive.FUNCTIONAL_SCAN_MARKER) _inform("archive.RESTING_STATE_SCAN_MARKER: " + archive.RESTING_STATE_SCAN_MARKER) _inform("archive.TASK_SCAN_MARKER: " + archive.TASK_SCAN_MARKER) _inform("archive.UNPROC_SUFFIX: " + archive.UNPROC_SUFFIX) _inform("archive.PREPROC_SUFFIX: " + archive.PREPROC_SUFFIX) _inform("archive.FIX_PROCESSED_SUFFIX: " + archive.FIX_PROCESSED_SUFFIX) _inform("archive.NAME_DELIMITER: " + archive.NAME_DELIMITER) _inform("archive.TESLA_SPEC: " + archive.TESLA_SPEC) _inform("archive.build_home: " + archive.build_home) subject_info = hcp3t_subject.Hcp3TSubjectInfo('HCP_500', '100307') _inform("created subject_info: " + str(subject_info)) _inform("archive.session_name(subject_info): " + archive.session_name(subject_info)) _inform("archive.session_dir_fullpath(subject_info): " + archive.session_dir_fullpath(subject_info)) _inform("archive.subject_resources_dir_fullpath(subject_info): " + archive.subject_resources_dir_fullpath(subject_info)) _inform("") _inform("Available functional unproc dirs: ") for directory in archive.available_functional_unproc_dir_fullpaths(subject_info): _inform(directory) _inform("") _inform("Available functional unproc scan names: ") for name in archive.available_functional_unproc_names(subject_info): _inform(name) _inform("") _inform("Available diffusion unproc dirs: ") for directory in archive.available_diffusion_unproc_dir_fullpaths(subject_info): _inform(directory) _inform("") _inform("Available diffusion unproc scan names: ") for name in archive.available_diffusion_unproc_names(subject_info): _inform(name) _inform("") _inform("Available functional preproc dirs: ") for directory in archive.available_functional_preproc_dir_fullpaths(subject_info): _inform(directory) _inform("") _inform("Available functional preproc scan names: ") for name in archive.available_functional_preproc_names(subject_info): _inform(name) _inform("") _inform("Are the following functional scans preprocessed") for name in archive.available_functional_unproc_names(subject_info): _inform("scan name: " + name + " " + "\tfunctionally preprocessed: " + str(archive.functionally_preprocessed(subject_info, name))) _inform("") _inform("Available FIX processed dirs: ") for directory in archive.available_FIX_processed_dir_fullpaths(subject_info): _inform(directory) _inform("") _inform("Available FIX processed scan names: ") for name in archive.available_FIX_processed_names(subject_info): _inform(name) # _inform("") # _inform("Are the following functional scans FIX processed") # for name in archive.available_functional_unproc_names(subject_info): # _inform('scan name: ' + name + ' ' + '\tFIX processed: ' + # str(archive.FIX_processed(subject_info, name))) _inform("") _inform("Available resting state preproc dirs: ") for directory in archive.available_resting_state_preproc_dirs(subject_info): _inform(directory) _inform("") _inform("Available resting state preproc names: ") for name in archive.available_resting_state_preproc_names(subject_info): _inform(name) _inform("") _inform("Available task preproc dirs: ") for directory in archive.available_task_preproc_dirs(subject_info): _inform(directory) _inform("") _inform("Available task preproc names: ") for name in archive.available_task_preproc_names(subject_info): _inform(name) _inform("") _inform("Available functional unprocessed scan names: ") for name in archive.available_functional_unproc_names(subject_info): _inform(name + '\t' + '\tprefix: ' + archive.functional_scan_prefix(name) + '\tbase_name: ' + archive.functional_scan_base_name(name) + '\tpe_dir: ' + archive.functional_scan_pe_dir(name)) _inform("") _inform("Available session dirs for project: " + subject_info.project) for session in archive.available_session_dirs(subject_info.project): _inform(session) _inform("") _inform("Available session names for project: " + subject_info.project) for name in archive.available_session_names(subject_info.project): _inform(name) _inform("") _inform("Available subject ids for project: " + subject_info.project) for subject_id in archive.available_subject_ids(subject_info.project): _inform(subject_id) _inform("") _inform("Number of available subject ids for project: " + subject_info.project + " " + str(archive.subject_count(subject_info.project))) _inform("") _inform("Available diffusion scans: ") for scan in archive.available_diffusion_scan_fullpaths(subject_info): _inform(scan) _inform("") _inform("Available diffusion scan names: ") for scan_name in archive.available_diffusion_scan_names(subject_info): _inform(scan_name)
def main(): # create a parser object for getting the command line arguments parser = my_argparse.MyArgumentParser() # mandatory arguments parser.add_argument('-p', '--project', dest='project', required=True, type=str) parser.add_argument('-s', '--subject', dest='subject', required=True, type=str) parser.add_argument('-d', '--study-dir', dest='output_study_dir', required=True, type=str) # optional arguments parser.add_argument('-c', '--copy', dest='copy', action='store_true', required=False, default=False) phase_choices = [ "FULL", "full", "DIFFUSION_PREPROC_VETTING", "diffusion_preproc_vetting", "STRUCT_PREPROC", "struct_preproc", "DIFFUSION_PREPROC", "diffusion_preproc", "DIFFUSION_BEDPOSTX", "diffusion_bedpostx", "APPLY_HAND_RECLASSIFICATION_PREREQS", "apply_hand_reclassification_prereqs", "REAPPLYFIX_PREREQS", "reapplyfix_prereqs" ] default_phase_choice = phase_choices[0] parser.add_argument('-ph', '--phase', dest='phase', required=False, choices=phase_choices, default=default_phase_choice) # parse the command line arguments args = parser.parse_args() # show arguments module_logger.info("Arguments:") module_logger.info(" Project: " + args.project) module_logger.info(" Subject: " + args.subject) module_logger.info(" Output Study Dir: " + args.output_study_dir) module_logger.info(" Copy: " + str(args.copy)) module_logger.info(" Phase: " + args.phase) subject_info = hcp3t_subject.Hcp3TSubjectInfo(args.project, args.subject) archive = hcp3t_archive.Hcp3T_Archive() # create and configure CinabStyleDataRetriever data_retriever = CinabStyleDataRetriever(archive) data_retriever.copy = args.copy data_retriever.show_log = True # retrieve data based on phase requested if (args.phase.upper() == "FULL"): module_logger.debug("phase = FULL") data_retriever.get_full_data(subject_info, args.output_study_dir) elif (args.phase.upper() == "DIFFUSION_PREPROC_VETTING"): data_retriever.get_diffusion_preproc_vetting_data( subject_info, args.output_study_dir) elif (args.phase.upper() == "STRUCT_PREPROC"): data_retriever.get_data_through_STRUCT_PREPROC(subject_info, args.output_study_dir) elif (args.phase.upper() == "DIFFUSION_PREPROC"): data_retriever.get_data_through_DIFFUSION_PREPROC( subject_info, args.output_study_dir) elif (args.phase.upper() == "DIFFUSION_BEDPOSTX"): data_retriever.get_diffusion_bedpostx_data(subject_info, args.output_study_dir) elif (args.phase.upper() == "APPLY_HAND_RECLASSIFICATION_PREREQS"): data_retriever.get_apply_hand_reclassification_prereqs( subject_info, args.output_study_dir) elif (args.phase.upper() == "REAPPLYFIX_PREREQS"): data_retriever.get_reapplyfix_prereqs(subject_info, args.output_study_dir) data_retriever.remove_symlinks(args.output_study_dir)