def test_convert_the_banana(open_converted=False): pfo_study_in = os.path.join(root_dir, "test_data", "bru_banana") pfo_study_out = os.path.join(root_dir, "test_data", "nifti_banana") # delete study if already exists: target_folder = os.path.join(pfo_study_out, "banana") if os.path.exists(target_folder): os.system("rm -r {}".format(os.path.join(target_folder))) # instantiate the converter: bru = Bruker2Nifti(pfo_study_in, pfo_study_out, study_name="banana") bru.verbose = 2 bru.correct_slope = True bru.get_acqp = False bru.get_method = False bru.get_reco = False bru.convert() if open_converted: if platform.system() == "Windows": os.startfile(pfo_study_out.encode("string-escape")) elif platform.system() == "Darwin": subprocess.Popen(["open", pfo_study_out]) else: subprocess.Popen(["xdg-open", pfo_study_out]) for ex in ["1", "2", "3"]: experiment_folder = os.path.join(pfo_study_out, "banana", "banana_{}".format(ex)) assert os.path.exists(experiment_folder) assert os.path.exists( os.path.join(experiment_folder, "banana_{}.nii.gz".format(ex)))
#!/bin/python import os from glob import glob from bruker2nifti.converter import Bruker2Nifti data_in = '/home/julia/projects/lc/20180808_162705_JH_lc_anatomy_02_1_2' data_out = '/home/julia/projects/lc/20180808_162705_JH_lc_anatomy_02_1_2_nifti' if not os.path.isdir(data_out): os.mkdir(data_out) bru = Bruker2Nifti(data_in, data_out, study_name="") print(bru.scans_list) print(bru.list_new_name_each_scan) bru.convert()
def main(): """ Parser from terminal with: $ python2 bruker2nifti -h $ python2 bruker2nifti -i input_file_path -o output_file_path """ parser = argparse.ArgumentParser() # pfo_study_bruker_input parser.add_argument('-i', '--input_study_folder', dest='pfo_input', type=str, required=True, help='Bruker study folder.') # pfo_study_nifti_output parser.add_argument('-o', '--output_study_folder', dest='pfo_output', type=str, required=True, help='Output folder where the study will be saved.') # study_name = None, parser.add_argument('-study_name', dest='study_name', default=None) # scans_list = None parser.add_argument('-scans_list', dest='scans_list', default=None) # list_new_name_each_scan = None, parser.add_argument('-list_new_name_each_scan', dest='list_new_name_each_scan', default=None) # nifti_version = 1, parser.add_argument('-nifti_version', dest='nifti_version', type=int, default=1) # qform = 2, parser.add_argument('-qform_code', dest='qform_code', type=int, default=1) # sform= 1, parser.add_argument('-sform_code', dest='sform_code', type=int, default=2) # do_not_save_npy = False, parser.add_argument('-do_not_save_npy', dest='do_not_save_npy', action='store_true') # do_not_save_human_readable = False, parser.add_argument('-do_not_save_human_readable', dest='do_not_save_human_readable', action='store_true') # correct_visu_slope = False, parser.add_argument('-correct_visu_slope', dest='correct_visu_slope', action='store_true') # correct_reco_slope = False, parser.add_argument('-correct_reco_slope', dest='correct_reco_slope', action='store_true') # user_matrix = None, parser.add_argument('-apply_matrix', dest='user_matrix', type=str, default=None) # verbose = 1 parser.add_argument('-verbose', '-v', dest='verbose', type=int, default=1) # Parse the input arguments args = parser.parse_args() # instantiate a converter: bruconv = Bruker2Nifti(args.pfo_input, args.pfo_output, study_name=args.study_name) if args.scans_list is not None: bruconv.scans_list = args.scans_list if args.list_new_name_each_scan is not None: bruconv.list_new_name_each_scan = args.list_new_name_each_scan bruconv.nifti_version = args.nifti_version bruconv.qform_code = args.qform_code bruconv.sform_code = args.sform_code bruconv.save_npy = not args.do_not_save_npy bruconv.save_human_readable = not args.do_not_save_human_readable bruconv.correct_visu_slope = args.correct_visu_slope bruconv.correct_reco_slope = args.correct_reco_slope bruconv.user_matrix = args.user_matrix bruconv.verbose = args.verbose if parser.add_argument > 0: print('\nConverter input parameters: ') print('-------------------------------------------------------- ') print('Study name : {}'.format(bruconv.study_name)) print('List of scans : {}'.format(bruconv.scans_list)) print('List of scans names : {}'.format( bruconv.list_new_name_each_scan)) print('Output NifTi version : {}'.format(bruconv.nifti_version)) print('Output NifTi q-form : {}'.format(bruconv.qform_code)) print('Output NifTi s-form : {}'.format(bruconv.sform_code)) print('Save npy : {}'.format(bruconv.save_npy)) print('Save human readable : {}'.format( bruconv.save_human_readable)) print('Correct the visu slope : {}'.format(bruconv.correct_visu_slope)) print('Correct the reco slope : {}'.format(bruconv.correct_reco_slope)) print('Apply matrix : {}'.format(bruconv.user_matrix)) print('-------------------------------------------------------- ') bruconv.convert()
#!/bin/python import os from glob import glob from bruker2nifti.converter import Bruker2Nifti data_in = '/home/julia/projects/real_data/mouse_visual/CL181102fmrssouris9/raw/' data_out = '/home/julia/projects/real_data/mouse_visual/CL181102fmrssouris9/raw/26/converted/' if not os.path.isdir(data_out): os.mkdir(data_out) bru = Bruker2Nifti(data_in, data_out) bru.get_acqp = True bru.get_method = True bru.get_reco = True bru.verbose = 0 bru.convert()
def main_scan(): """ Parser from terminal with $ python2 bruker2nifti_scan -h $ python2 bruker2nifti_scan -i input_file_path -o output_file_path """ parser = argparse.ArgumentParser() # pfo_input_scan parser.add_argument('-i', '--input_scan_folder', dest='pfo_input', type=str, required=True, help='Bruker scan folder.') # pfo_output parser.add_argument('-o', '--output_scan_folder', dest='pfo_output', type=str, required=True, help='Output folder where the study will be saved.') # fin_output = None parser.add_argument('--fin_output', dest='fin_output', type=str, default=None) # nifti_version = 1, parser.add_argument('-nifti_version', dest='nifti_version', type=int, default=1, help='Filename of the nifti output.') # qform = 2, parser.add_argument('-qform_code', dest='qform_code', type=int, default=2) # sform = 1, parser.add_argument('-sform_code', dest='sform_code', type=int, default=1) # do_not_save_npy = False, parser.add_argument('-do_not_save_npy', dest='do_not_save_npy', action='store_true') # do_not_save_human_readable = False, parser.add_argument('-do_not_save_human_readable', dest='do_not_save_human_readable', action='store_true') # correct_visu_slope = False, parser.add_argument('-correct_visu_slope', dest='correct_visu_slope', action='store_true') # correct_reco_slope = False, parser.add_argument('-correct_reco_slope', dest='correct_reco_slope', action='store_true') # user_matrix = None, parser.add_argument('-apply_matrix', dest='user_matrix', type=str, default=None) # verbose = 1 parser.add_argument('-verbose', '-v', dest='verbose', type=int, default=1) args = parser.parse_args() # instantiate a converter: bruconv = Bruker2Nifti(os.path.dirname(args.pfo_input), args.pfo_output) # get the attributes bruconv.nifti_version = args.nifti_version bruconv.qform_code = args.qform_code bruconv.sform_code = args.sform_code bruconv.save_npy = not args.do_not_save_npy bruconv.save_human_readable = not args.do_not_save_human_readable bruconv.correct_visu_slope = args.correct_visu_slope bruconv.correct_reco_slope = args.correct_reco_slope bruconv.user_matrix = args.user_matrix bruconv.verbose = args.verbose if parser.add_argument > 0: print('\nConverter parameters: ') print('-------------------------------------------------------- ') print('Study Folder : {}'.format( os.path.dirname(args.pfo_input))) print('Scan to convert : {}'.format( os.path.basename(args.pfo_input))) print('List of scans : {}'.format(bruconv.scans_list)) print('Output NifTi version : {}'.format(bruconv.nifti_version)) print('Output NifTi q-form : {}'.format(bruconv.qform_code)) print('Output NifTi s-form : {}'.format(bruconv.sform_code)) print('Save npy : {}'.format(bruconv.save_npy)) print('Save human readable : {}'.format( bruconv.save_human_readable)) print('Correct the visu_slope : {}'.format(bruconv.correct_visu_slope)) print('Correct the reco_slope : {}'.format(bruconv.correct_reco_slope)) print('Apply matrix : {}'.format(bruconv.user_matrix)) print('-------------------------------------------------------- ') # convert the single: bruconv.convert_scan(args.pfo_input, args.pfo_output, nifti_file_name=args.fin_output, create_output_folder_if_not_exists=True)
def main_scan(): """ Parser from terminal with $ python2 bruker2nifti_scan -h $ python2 bruker2nifti_scan -i input_file_path -o output_file_path """ parser = argparse.ArgumentParser() # pfo_input_scan parser.add_argument( "-i", "--input_scan_folder", dest="pfo_input", type=str, required=True, help="Bruker scan folder.", ) # pfo_output parser.add_argument( "-o", "--output_scan_folder", dest="pfo_output", type=str, required=True, help="Output folder where the study will be saved.", ) # fin_output = None parser.add_argument("--fin_output", dest="fin_output", type=str, default=None) # nifti_version = 1, parser.add_argument("-nifti_version", dest="nifti_version", type=int, default=1) # qform = 1, parser.add_argument("-qform_code", dest="qform_code", type=int, default=1) # sform = 2, parser.add_argument("-sform_code", dest="sform_code", type=int, default=2) # do_not_save_human_readable = False, parser.add_argument( "-do_not_save_human_readable", dest="do_not_save_human_readable", action="store_true", ) # correct_slope = False, parser.add_argument("-correct_slope", dest="correct_slope", action="store_true") # correct_offset = False, parser.add_argument("-correct_offset", dest="correct_offset", action="store_true") # sample_upside_down = False, parser.add_argument( "-sample_upside_down", dest="sample_upside_down", action="store_true" ) # frame_body_as_frame_head = False, parser.add_argument( "-frame_body_as_frame_head", dest="frame_body_as_frame_head", action="store_true", ) # verbose = 1 parser.add_argument("-verbose", "-v", dest="verbose", type=int, default=1) args = parser.parse_args() # instantiate a converter: bruconv = Bruker2Nifti(os.path.dirname(args.pfo_input), args.pfo_output) # get the attributes bruconv.nifti_version = args.nifti_version bruconv.qform_code = args.qform_code bruconv.sform_code = args.sform_code bruconv.save_human_readable = not args.do_not_save_human_readable bruconv.correct_slope = args.correct_slope bruconv.correct_offset = args.correct_offset bruconv.verbose = args.verbose # Sample position bruconv.sample_upside_down = args.sample_upside_down bruconv.frame_body_as_frame_head = args.frame_body_as_frame_head if parser.add_argument > 0: print("\nConverter parameters: ") print("-------------------------------------------------------- ") print("Study Folder : {}".format(os.path.dirname(args.pfo_input))) print("Scan to convert : {}".format(os.path.basename(args.pfo_input))) print("List of scans : {}".format(bruconv.scans_list)) print("Output NifTi version : {}".format(bruconv.nifti_version)) print("Output NifTi q-form : {}".format(bruconv.qform_code)) print("Output NifTi s-form : {}".format(bruconv.sform_code)) print("Save human readable : {}".format(bruconv.save_human_readable)) print("Correct the slope : {}".format(bruconv.correct_slope)) print("Correct the offset : {}".format(bruconv.correct_offset)) print("-------------------------------------------------------- ") print("Sample upside down : {}".format(bruconv.sample_upside_down)) print( "Frame body as frame head : {}".format(bruconv.frame_body_as_frame_head) ) print("-------------------------------------------------------- ") # convert the single: bruconv.convert_scan( args.pfo_input, args.pfo_output, nifti_file_name=args.fin_output, create_output_folder_if_not_exists=True, ) # Print a warning message for paths with whitespace as it may interfere # with subsequent steps in an image analysis pipeline if utils.path_contains_whitespace( bruconv.pfo_study_nifti_output, bruconv.study_name ): print("INFO: Output path/filename contains whitespace")
def main(): """ Parser from terminal with: $ python2 bruker2nifti -h $ python2 bruker2nifti -i input_file_path -o output_file_path """ parser = argparse.ArgumentParser() # custom helper parser.add_argument('-what', dest='what', action='store_true', required=False, help='Get more information about the software') # pfo_study_bruker_input parser.add_argument('-i', '--input_study_folder', dest='pfo_input', type=str, required=False, help='Bruker study folder.') # pfo_study_nifti_output parser.add_argument('-o', '--output_study_folder', dest='pfo_output', type=str, required=False, help='Output folder where the study will be saved.') # study_name = None, parser.add_argument('-study_name', dest='study_name', default=None) # scans_list = None parser.add_argument('-scans_list', dest='scans_list', default=None) # list_new_name_each_scan = None, parser.add_argument('-list_new_name_each_scan', dest='list_new_name_each_scan', default=None) # nifti_version = 1, parser.add_argument('-nifti_version', dest='nifti_version', type=int, default=1) # qform = 2, parser.add_argument('-qform_code', dest='qform_code', type=int, default=1) # sform= 1, parser.add_argument('-sform_code', dest='sform_code', type=int, default=2) # do_not_save_human_readable = False, parser.add_argument('-do_not_save_human_readable', dest='do_not_save_human_readable', action='store_true') # correct_slope = True, parser.add_argument('-correct_slope', dest='correct_slope', action='store_true') # correct_offset = True, parser.add_argument('-correct_offset', dest='correct_offset', action='store_true') # correct_offset = True, parser.add_argument('-sample_upside_down', dest='sample_upside_down', action='store_false') # correct_offset = True, parser.add_argument('-frame_body_as_frame_head', dest='frame_body_as_frame_head', action='store_false') # verbose = 1 parser.add_argument('-verbose', '-v', dest='verbose', type=int, default=1) # ------ Parsing user's input ------ # args = parser.parse_args() # Check input: if args.what: msg = 'Code repository : {} \n' \ 'Documentation : {}'.format('https://github.com/SebastianoF/bruker2nifti', 'https://github.com/SebastianoF/bruker2nifti/wiki') sys.exit(msg) if not args.pfo_input or not args.pfo_output: sys.exit('Input bruker study [-i] and output folder [-o] required') # Instantiate a converter: bruconv = Bruker2Nifti(args.pfo_input, args.pfo_output, study_name=args.study_name) if args.scans_list is not None: bruconv.scans_list = args.scans_list if args.list_new_name_each_scan is not None: bruconv.list_new_name_each_scan = args.list_new_name_each_scan # Basics bruconv.nifti_version = args.nifti_version bruconv.qform_code = args.qform_code bruconv.sform_code = args.sform_code bruconv.save_human_readable = not args.do_not_save_human_readable bruconv.correct_slope = args.correct_slope bruconv.correct_offset = args.correct_offset bruconv.verbose = args.verbose # Sample position bruconv.sample_upside_down = args.sample_upside_down bruconv.frame_body_as_frame_head = args.frame_body_as_frame_head print('\nConverter input parameters: ') print('-------------------------------------------------------- ') print('Study name : {}'.format(bruconv.study_name)) print('List of scans : {}'.format(bruconv.scans_list)) print('List of scans names : {}'.format(bruconv.list_new_name_each_scan)) print('Output NifTi version : {}'.format(bruconv.nifti_version)) print('Output NifTi q-form : {}'.format(bruconv.qform_code)) print('Output NifTi s-form : {}'.format(bruconv.sform_code)) print('Save human readable : {}'.format(bruconv.save_human_readable)) print('Correct the slope : {}'.format(bruconv.correct_slope)) print('Correct the offset : {}'.format(bruconv.correct_offset)) print('-------------------------------------------------------- ') print('Sample upside down : {}'.format(bruconv.sample_upside_down)) print('Frame body as frame head : {}'.format( bruconv.frame_body_as_frame_head)) print('-------------------------------------------------------- ') bruconv.convert()
def main(): """ Parser from terminal with: $ python2 bruker2nifti_study -i input_file_path -o output_file_path """ parser = argparse.ArgumentParser() # pfo_study_bruker_input parser.add_argument('-i', '--input_study_folder', dest='pfo_input', type=str, required=True, help='Bruker study folder.') # pfo_study_nifti_output parser.add_argument('-o', '--output_study_folder', dest='pfo_output', type=str, required=True, help='Output folder where the study will be saved.') # study_name = None, parser.add_argument('-study_name', dest='study_name', default=None) # scans_list = None parser.add_argument('-scans_list', dest='scans_list', default=None) # list_new_name_each_scan = None, parser.add_argument('-list_new_name_each_scan', dest='list_new_name_each_scan', default=None) # nifti_version = 1, parser.add_argument('-nifti_version', dest='nifti_version', type=int, default=1) # qform = 2, parser.add_argument('-qform_code', dest='qform_code', type=int, default=2) # sform= 1, parser.add_argument('-sform_code', dest='sform_code', type=int, default=1) # save_human_readable = True, parser.add_argument('-save_human_readable', dest='save_human_readable', action='store_true') # correct_slope = False, parser.add_argument('-correct_slope', dest='correct_slope', action='store_false') # verbose = 1 parser.add_argument('-verbose', '-v', dest='verbose', action='store_true') # Parse the input arguments args = parser.parse_args() # instantiate a converter: bruconv = Bruker2Nifti(args.pfo_input, args.pfo_output, study_name=args.study_name) if args.scans_list is not None: bruconv.scans_list = args.scans_list if args.list_new_name_each_scan is not None: bruconv.list_new_name_each_scan = args.list_new_name_each_scan bruconv.nifti_version = args.nifti_version bruconv.qform_code = args.qform_code bruconv.sform_code = args.sform_code bruconv.save_human_readable = args.save_human_readable bruconv.correct_slope = args.correct_slope bruconv.verbose = args.verbose bruconv.convert()
def main_scan(): """ Parser from terminal with $ python2 bruker2nifti_scan -h $ python2 bruker2nifti_scan -i input_file_path -o output_file_path """ parser = argparse.ArgumentParser() # pfo_input_scan parser.add_argument('-i', '--input_scan_folder', dest='pfo_input', type=str, required=True, help='Bruker scan folder.') # pfo_output parser.add_argument('-o', '--output_scan_folder', dest='pfo_output', type=str, required=True, help='Output folder where the study will be saved.') # fin_output = None parser.add_argument('--fin_output', dest='fin_output', type=str, default=None) # nifti_version = 1, parser.add_argument('-nifti_version', dest='nifti_version', type=int, default=1, help='Filename of the nifti output.') # qform = 2, parser.add_argument('-qform_code', dest='qform_code', type=int, default=2) # sform = 1, parser.add_argument('-sform_code', dest='sform_code', type=int, default=1) # do_not_save_human_readable = False, parser.add_argument('-do_not_save_human_readable', dest='do_not_save_human_readable', action='store_true') # correct_slope = False, parser.add_argument('-correct_slope', dest='correct_slope', action='store_true') # verbose = 1 parser.add_argument('-verbose', '-v', dest='verbose', type=int, default=1) args = parser.parse_args() # instantiate a converter: bruconv = Bruker2Nifti(os.path.dirname(args.pfo_input), args.pfo_output) # get the attributes bruconv.nifti_version = args.nifti_version bruconv.qform_code = args.qform_code bruconv.sform_code = args.sform_code bruconv.save_human_readable = not args.do_not_save_human_readable bruconv.correct_slope = args.correct_slope bruconv.verbose = args.verbose if parser.add_argument > 0: print('\nConverter parameters: ') print('-------------------------------------------------------- ') print('Study Folder : {}'.format( os.path.dirname(args.pfo_input))) print('Scan to convert : {}'.format( os.path.basename(args.pfo_input))) print('List of scans : {}'.format(bruconv.scans_list)) print('Output NifTi version : {}'.format(bruconv.nifti_version)) print('Output NifTi q-form : {}'.format(bruconv.qform_code)) print('Output NifTi s-form : {}'.format(bruconv.sform_code)) print('Save human readable : {}'.format(bruconv.save_human_readable)) print('Correct the slope : {}'.format(bruconv.correct_slope)) print('-------------------------------------------------------- ') # convert the single: bruconv.convert_scan(args.pfo_input, args.pfo_output, nifti_file_name=args.fin_output, create_output_folder_if_not_exists=True) # Print a warning message for paths with whitespace as it may interfere # with subsequent steps in an image analysis pipeline if utils.path_contains_whitespace(bruconv.pfo_study_nifti_output, bruconv.study_name): print("INFO: Output path/filename contains whitespace")
def main(): """ Parser from terminal with: $ python2 bruker2nifti -h $ python2 bruker2nifti -i input_file_path -o output_file_path """ parser = argparse.ArgumentParser() # The action to be taken # 'convert': Convert images to nifti format (default) # 'list': List scans without converting parser.add_argument('command', type=str, nargs='?', default='convert', choices=['convert', 'list'], help='Action to take: ' + 'convert - convert to nifti, ' + 'list - list studies and exit') # custom helper parser.add_argument('-what', dest='what', action='store_true', required=False, help='Get more information about the software') # pfo_study_bruker_input parser.add_argument('-i', '--input_study_folder', dest='pfo_input', type=str, required=False, help='Bruker study folder.') # pfo_study_nifti_output parser.add_argument('-o', '--output_study_folder', dest='pfo_output', type=str, required=False, help='Output folder where the study will be saved.') # study_name = None, parser.add_argument('-study_name', dest='study_name', default=None) # scans_list = None # Accepts a list of single digit numbers without any separators. Unable to # specify multi-digit scan numbers this way. The --scans argument specified # below supersedes this but --scans_list is left in for backwards # compatibility. If --scans is also supplied, this paramater is ignored. parser.add_argument('-scans_list', dest='scans_list', default=None) # A comma or space/tab separated list of scans to operate on parser.add_argument('--scans', dest='scans', default=None) # list_new_name_each_scan = None, parser.add_argument('-list_new_name_each_scan', dest='list_new_name_each_scan', default=None) # nifti_version = 1, parser.add_argument('-nifti_version', dest='nifti_version', type=int, default=1) # qform = 2, parser.add_argument('-qform_code', dest='qform_code', type=int, default=1) # sform= 1, parser.add_argument('-sform_code', dest='sform_code', type=int, default=2) # do_not_save_human_readable = False, parser.add_argument('-do_not_save_human_readable', dest='do_not_save_human_readable', action='store_true') # correct_slope = True, parser.add_argument('-correct_slope', dest='correct_slope', action='store_true') # correct_offset = True, parser.add_argument('-correct_offset', dest='correct_offset', action='store_true') # correct_offset = True, parser.add_argument('-sample_upside_down', dest='sample_upside_down', action='store_false') # correct_offset = True, parser.add_argument('-frame_body_as_frame_head', dest='frame_body_as_frame_head', action='store_false') # verbose = 1 parser.add_argument('-verbose', '-v', dest='verbose', type=int, default=1) # ------ Parsing user's input ------ # args = parser.parse_args() if args.scans: scan_list = re.split(r"[^\d]+", args.scans) elif args.scans_list: scan_list = list(args.scans_list) else: scan_list = None # Check input: if args.command == 'list': list_scans(args.pfo_input) sys.exit(0) if args.what: msg = 'Code repository : {} \n' \ 'Documentation : {}'.format('https://github.com/SebastianoF/bruker2nifti', 'https://github.com/SebastianoF/bruker2nifti/wiki') sys.exit(msg) if not args.pfo_input or not args.pfo_output: sys.exit('Input bruker study [-i] and output folder [-o] required') # Instantiate a converter: bruconv = Bruker2Nifti(args.pfo_input, args.pfo_output, study_name=args.study_name) if scan_list is not None: bruconv.scans_list = scan_list if args.list_new_name_each_scan is not None: bruconv.list_new_name_each_scan = args.list_new_name_each_scan elif scan_list is not None: # This list of output scan names is populated during object instantiation # which causes problems when updating the list of scans to convert after # object instantiation (the only way to do it). The following work-around # replaces the list of output file names if a list is not explicitly provided. # TODO: Restructure the Bruker2Nifti class so that this is not necessary. bruconv.list_new_name_each_scan = [ bruconv.study_name + '_' + ls for ls in scan_list ] # Basics bruconv.nifti_version = args.nifti_version bruconv.qform_code = args.qform_code bruconv.sform_code = args.sform_code bruconv.save_human_readable = not args.do_not_save_human_readable bruconv.correct_slope = args.correct_slope bruconv.correct_offset = args.correct_offset bruconv.verbose = args.verbose # Sample position bruconv.sample_upside_down = args.sample_upside_down bruconv.frame_body_as_frame_head = args.frame_body_as_frame_head print('\nConverter input parameters: ') print('-------------------------------------------------------- ') print('Study name : {}'.format(bruconv.study_name)) print('List of scans : {}'.format(bruconv.scans_list)) print('List of scans names : {}'.format(bruconv.list_new_name_each_scan)) print('Output NifTi version : {}'.format(bruconv.nifti_version)) print('Output NifTi q-form : {}'.format(bruconv.qform_code)) print('Output NifTi s-form : {}'.format(bruconv.sform_code)) print('Save human readable : {}'.format(bruconv.save_human_readable)) print('Correct the slope : {}'.format(bruconv.correct_slope)) print('Correct the offset : {}'.format(bruconv.correct_offset)) print('-------------------------------------------------------- ') print('Sample upside down : {}'.format(bruconv.sample_upside_down)) print('Frame body as frame head : {}'.format( bruconv.frame_body_as_frame_head)) print('-------------------------------------------------------- ') bruconv.convert() # Print a warning message for paths with whitespace as it may interfere # with subsequent steps in an image analysis pipeline if utils.path_contains_whitespace(bruconv.pfo_study_nifti_output, bruconv.study_name): print("INFO: Output path/filename contains whitespace")
def main(): """ Parser from terminal with $ python2 bruker2nifti_study -i input_file_path -o output_file_path """ parser = argparse.ArgumentParser() # pfo_input_scan parser.add_argument('-i', '--input_scan_folder', dest='pfo_input', type=str, required=True, help='Bruker scan folder.') # pfo_output parser.add_argument('-o', '--output_scan_folder', dest='pfo_output', type=str, required=True, help='Output folder where the study will be saved.') # fin_output = None parser.add_argument('--fin_output', dest='fin_output', type=str, default=None) # nifti_version = 1, parser.add_argument('-nifti_version', dest='nifti_version', type=int, default=1, help='Filename of the nifti output.') # qform = 2, parser.add_argument('-qform_code', dest='qform_code', type=int, default=2) # sform = 1, parser.add_argument('-sform_code', dest='sform_code', type=int, default=1) # save_human_readable = True, parser.add_argument('-save_human_readable', dest='save_human_readable', action='store_true') # normalise_b_vectors_if_dwi = True, parser.add_argument('-normalise_b_vectors_if_dwi', dest='normalise_b_vectors_if_dwi', action='store_true') # correct_slope = False, parser.add_argument('-correct_slope', dest='correct_slope', action='store_false') # verbose = 1 parser.add_argument('-verbose', dest='verbose', action='store_true') # -info_only parser.add_argument('-info_only', dest='info_only', action='store_false') # -nifti_only parser.add_argument('-nifti_only', dest='nifti_only', action='store_false') args = parser.parse_args() # instantiate a converter: bruconv = Bruker2Nifti(os.path.dirname(args.pfo_input), args.pfo_output) # get the attributes bruconv.nifti_version = args.nifti_version bruconv.qform_code = args.qform_code bruconv.sform_code = args.sform_code bruconv.save_human_readable = args.save_human_readable bruconv.correct_slope = args.correct_slope bruconv.verbose = args.verbose # convert the single: bruconv.convert_scan(args.pfo_input, args.pfo_output, nifti_file_name=args.fin_output, create_output_folder_if_not_exists=True)
import os from bruker2nifti.converter import Bruker2Nifti data_folder = '/Users/alex/jacques/Testing_Scans_zone/FA_catch/N57433_m00' pfo_study_in = os.path.join(data_folder, 'raw', 'McGill_Orientation', 'a20130329_APM_DEV_Orient.j71') pfo_study_in = data_folder destination_folder = '/Users/alex/jacques/Testing_Scans_zone/FA_catch/' pfo_study_out = destination_folder bru = Bruker2Nifti(pfo_study_in, pfo_study_out, study_name='my_study') bru.verbose = 2 bru.correct_slope = False bru.get_acqp = False bru.get_method = False bru.get_reco = False bru.nifti_version = 1 bru.qform_code = 1 bru.sform_code = 2 bru.save_human_readable = True bru.save_b0_if_dwi = True print(bru.scans_list) print(bru.list_new_name_each_scan) bru.convert()