def _path_to_running_marker_file(self, subject_info):

		file_name = self.PIPELINE_NAME
		file_name += '.' + subject_info.subject_id
		file_name += '_' + subject_info.classifier
		file_name += '.' + 'RUNNING'

		archive = ccf_archive.CcfArchive()
		self.running_status_dir = archive.running_status_dir_full_path(subject_info)
		path = self.running_status_dir + os.sep + file_name
		#print("path: " + path)
		return path
		
                        '--check-all',
                        dest='check_all',
                        action='store_true',
                        required=False,
                        default=False)
    parser.add_argument('-m',
                        '--marked',
                        dest='marked',
                        action='store_true',
                        required=False,
                        default=False)
    # parse the command line arguments
    args = parser.parse_args()

    # check the specified subject for structural preprocessing completion
    archive = ccf_archive.CcfArchive()
    subject_info = ccf_subject.SubjectInfo(args.project, args.subject,
                                           args.classifier)
    completion_checker = OneSubjectCompletionXnatChecker()

    if args.output:
        processing_output = open(args.output, 'w')
    else:
        processing_output = sys.stdout

    if args.marked:
        if completion_checker.is_processing_marked_complete(
                archive=archive, subject_info=subject_info):
            print("Exiting with 0 code - Marked Completion Check Successful")
            exit(0)
        else:
Beispiel #3
0
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('-a',
                        '--scan',
                        dest='scan',
                        required=False,
                        type=str,
                        default=None)
    parser.add_argument('-c',
                        '--copy',
                        dest='copy',
                        action='store_true',
                        required=False,
                        default=False)
    parser.add_argument('-l',
                        '--log',
                        dest='log',
                        action='store_true',
                        required=False,
                        default=False)
    parser.add_argument('-r',
                        '--remove-non-subdirs',
                        dest='remove_non_subdirs',
                        action='store_true',
                        required=False,
                        default=False)

    phase_choices = [
        "STRUCT_PREPROC_PREREQS", "struct_preproc_prereqs",
        "STRUCT_PREPROC_HAND_EDIT_PREREQS", "struct_preproc_hand_edit_prereqs",
        "DIFF_PREPROC_PREREQS", "diff_preproc_prereqs", "FUNC_PREPROC_PREREQS",
        "func_preproc_prereqs", "MULTIRUNICAFIX_PREREQS",
        "multirunicafix_prereqs", "MSMALL_PREREQS", "msmall_prereqs",
        "DEDRIFTANDRESAMPLE_PREREQS", "dedriftandresample_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)

    parser.add_argument('-cl',
                        '--classifier',
                        dest='session_classifier',
                        required=False,
                        type=str,
                        default='3T')

    # parse the command line arguments
    args = parser.parse_args()

    # convert phase argument to uppercase
    args.phase = args.phase.upper()

    # show arguments
    module_logger.info("Arguments:")
    module_logger.info("            Project: " + args.project)
    module_logger.info("            Subject: " + args.subject)
    module_logger.info(" Session Classifier: " + args.session_classifier)
    module_logger.info("         Output Dir: " + args.output_study_dir)
    module_logger.info("              Phase: " + args.phase)
    if args.copy:
        module_logger.info("               Copy: " + str(args.copy))
    if args.log:
        module_logger.info("                Log: " + str(args.log))
    if args.remove_non_subdirs:
        module_logger.info(" Remove Non-Subdirs: " +
                           str(args.remove_non_subdirs))

    subject_info = ccf_subject.SubjectInfo(args.project, args.subject,
                                           args.session_classifier, args.scan)
    archive = ccf_archive.CcfArchive()

    data_retriever = DataRetriever(archive)
    data_retriever.copy = args.copy
    data_retriever.show_log = args.log

    # retrieve data based on phase requested
    if args.phase == "STRUCT_PREPROC_PREREQS":
        data_retriever.get_struct_preproc_prereqs(subject_info,
                                                  args.output_study_dir)

    elif args.phase == "STRUCT_PREPROC_HAND_EDIT_PREREQS":
        data_retriever.get_struct_preproc_hand_edit_prereqs(
            subject_info, args.output_study_dir)

    elif args.phase == "DIFF_PREPROC_PREREQS":
        data_retriever.get_diffusion_preproc_prereqs(subject_info,
                                                     args.output_study_dir)

    elif args.phase == "FUNC_PREPROC_PREREQS":
        data_retriever.get_functional_preproc_prereqs(subject_info,
                                                      args.output_study_dir)

    elif args.phase == "MULTIRUNICAFIX_PREREQS":
        data_retriever.get_multirunicafix_prereqs(subject_info,
                                                  args.output_study_dir)

    elif args.phase == "MSMALL_PREREQS":
        data_retriever.get_msmall_prereqs(subject_info, args.output_study_dir)

    elif args.phase == "DEDRIFTANDRESAMPLE_PREREQS":
        data_retriever.get_dedriftandresample_prereqs(subject_info,
                                                      args.output_study_dir)
        # Get the group average drift data
        # As of February 2017, the group average drift data has been moved from HCP_Staging to
        # HCP_1200
        data_retriever.get_msm_group_average_drift_data(
            "HCP_1200", args.output_study_dir)

    elif args.phase == "REAPPLYFIX_PREREQS":
        data_retriever.get_reapplyfix_prereqs(subject_info,
                                              args.output_study_dir)

    if args.remove_non_subdirs:
        # remove any non-subdirectory data at the output study directory level
        data_retriever.remove_non_subdirs(args.output_study_dir)
Beispiel #4
0
 def __init__(self):
     super().__init__(ccf_archive.CcfArchive())
        print("reg_name: " + args.reg_name)

    # get list of subjects to check
    subject_file_name = 'subjectfiles' + os.sep + file_utils.get_subjects_file_name(
        __file__)
    module_logger.info("Retrieving subject list from: " + subject_file_name)
    subject_list = ccf_subject.read_subject_info_list(subject_file_name,
                                                      separator=":")

    # open output file
    output_file = open('ReApplyFix.status', 'w')

    _write_header()

    # create archive
    archive = ccf_archive.CcfArchive('3T')

    # create one subject completion checker
    completion_checker = one_subject_completion_checker.OneSubjectCompletionChecker(
    )

    if args.reg_name != "":
        module_logger.info("setting completion checker reg_name to " +
                           args.reg_name)
        completion_checker.reg_name = args.reg_name

    for subject in subject_list:
        subject_id = subject.subject_id
        project = subject.project
        scan = subject.extra
        module_logger.debug("       id: " + subject_id)