def render_image(subject_fname): args = read_args(su.get_python_argv()) if args.output_path == '': mmvt_dir = op.join(su.get_links_dir(), 'mmvt') args.output_path = op.join(mmvt_dir, args.subject, 'figures') su.make_dir(args.output_path) mmvt = su.init_mmvt_addon() mmvt.set_render_quality(args.quality) mmvt.set_render_output_path(args.output_path) mmvt.set_render_smooth_figure(args.smooth_figure) if not args.hide_lh is None: mmvt.show_hide_hemi(args.hide_lh, 'lh') if not args.hide_rh is None: mmvt.show_hide_hemi(args.hide_rh, 'rh') if not args.hide_subs is None: mmvt.show_hide_sub_corticals(args.hide_subs) if not args.show_elecs is None: mmvt.show_electrodes(args.show_elecs) if not args.show_only_lead is None: print('Showing only the current lead: {}'.format(args.show_only_lead)) mmvt.set_show_only_lead(args.show_only_lead) if args.curr_elec not in ['', 'None']: print('Setting current electrode to {}'.format(args.curr_elec)) mmvt.set_current_electrode(args.curr_elec) if op.isfile(op.join(args.output_path, 'camera.pkl')): mmvt.load_camera() else: cont = input('No camera file was detected in the output folder, continue?') if not su.is_true(cont): return # su.save_blend_file(subject_fname) mmvt.render_image(args.image_name, args.output_path, args.quality, args.smooth_figure, render_background=False) su.exit_blender()
def render_electrodes_probs(subject_fname): args = read_args(su.get_python_argv()) figures_dir = su.get_figures_dir(args) if args.rel_output_path: args.output_path = op.join(figures_dir, args.output_path) su.make_dir(args.output_path) # Set the labeling file labeling_fname = '{}_{}_electrodes_cigar_r_*_l_*{}*.pkl'.format( args.subject, args.real_atlas, '_bipolar' if args.bipolar else '') labels_fol = op.join(su.get_mmvt_dir(), args.subject, 'electrodes') labeling_files = glob.glob(op.join(labels_fol, labeling_fname)) if len(labeling_files) == 0: print('No labeling files in {}!'.format(labels_fol)) return if len(labeling_files) > 1: print( 'More than one labeling files in {}, please choose one using the --labeling flag' .format(labels_fol)) return else: labeling_file = labeling_files[0] mmvt = su.init_mmvt_addon() mmvt.show_hide_hemi(args.hide_lh, 'lh') mmvt.show_hide_hemi(args.hide_rh, 'rh') mmvt.show_hide_sub_corticals(args.hide_subs) mmvt.set_render_quality(args.quality) mmvt.set_render_output_path(args.output_path) mmvt.set_render_smooth_figure(args.smooth_figure) if op.isfile(op.join(args.output_path, 'camera.pkl')): mmvt.load_camera() else: # Try to find the camera in the figures folder if op.isfile(op.join(figures_dir, 'camera.pkl')): mmvt.set_render_output_path(figures_dir) mmvt.load_camera() mmvt.set_render_output_path(args.output_path) else: cont = input( 'No camera file was detected in the output folder, continue?') if not su.is_true(cont): return mmvt.set_electrodes_labeling_file(labeling_file) mmvt.show_electrodes() mmvt.color_the_relevant_lables(True) leads = mmvt.get_leads() for lead in leads: electrodes = mmvt.get_lead_electrodes(lead) for electrode in electrodes: print(electrode) mmvt.clear_cortex() mmvt.set_current_electrode(electrode, lead) mmvt.render_image(electrode) su.save_blend_file(subject_fname) su.exit_blender()
def render_electrodes_probs(subject_fname): args = read_args(su.get_python_argv()) figures_dir = su.get_figures_dir(args) if args.rel_output_path: args.output_path = op.join(figures_dir, args.output_path) su.make_dir(args.output_path) # Set the labeling file labeling_fname = '{}_{}_electrodes_cigar_r_*_l_*{}*.pkl'.format(args.subject, args.real_atlas, '_bipolar' if args.bipolar else '') labels_fol = op.join(su.get_mmvt_dir(), args.subject, 'electrodes') labeling_files = glob.glob(op.join(labels_fol, labeling_fname)) if len(labeling_files) == 0: print('No labeling files in {}!'.format(labels_fol)) return if len(labeling_files) > 1: print('More than one labeling files in {}, please choose one using the --labeling flag'.format(labels_fol)) return else: labeling_file = labeling_files[0] mmvt = su.init_mmvt_addon() mmvt.show_hide_hemi(args.hide_lh, 'lh') mmvt.show_hide_hemi(args.hide_rh, 'rh') mmvt.show_hide_sub_corticals(args.hide_subs) mmvt.set_render_quality(args.quality) mmvt.set_render_output_path(args.output_path) mmvt.set_render_smooth_figure(args.smooth_figure) if op.isfile(op.join(args.output_path, 'camera.pkl')): mmvt.load_camera() else: # Try to find the camera in the figures folder if op.isfile(op.join(figures_dir, 'camera.pkl')): mmvt.set_render_output_path(figures_dir) mmvt.load_camera() mmvt.set_render_output_path(args.output_path) else: cont = input('No camera file was detected in the output folder, continue?') if not su.is_true(cont): return mmvt.set_electrodes_labeling_file(labeling_file) mmvt.show_electrodes() mmvt.color_the_relevant_lables(True) leads = mmvt.get_leads() for lead in leads: electrodes = mmvt.get_lead_electrodes(lead) for electrode in electrodes: print(electrode) mmvt.clear_cortex() mmvt.set_current_electrode(electrode, lead) mmvt.render_image(electrode) su.save_blend_file(subject_fname) su.exit_blender()
def create_new_subject_file(args): # Create a file for the new subject if len(args.subjects) == 0: args.subjects = [args.subject] for subject in args.subjects: args.subject = subject new_fname = su.get_subject_fname(args) empty_subject_fname = op.join(su.get_mmvt_dir(), "empty_subject.blend") if not op.isfile(empty_subject_fname): shutil.copy(op.join(su.get_resources_dir(), "empty_subject.blend"), empty_subject_fname) if op.isfile(new_fname): overwrite = input("The file {} already exist, do you want to overwrite? ".format(new_fname)) if su.is_true(overwrite): os.remove(new_fname) shutil.copy(op.join(su.get_mmvt_dir(), "empty_subject.blend"), new_fname) else: shutil.copy(op.join(su.get_mmvt_dir(), "empty_subject.blend"), new_fname)
def create_new_subject_file(args): # Create a file for the new subject if len(args.subjects) == 0: args.subjects = [args.subject] for subject in args.subjects: args.subject = subject new_fname = su.get_subject_fname(args) empty_subject_fname = op.join(su.get_mmvt_dir(), 'empty_subject.blend') if not op.isfile(empty_subject_fname): shutil.copy(op.join(su.get_resources_dir(), 'empty_subject.blend'), empty_subject_fname) if op.isfile(new_fname): overwrite = input('The file {} already exist, do you want to overwrite? '.format(new_fname)) if su.is_true(overwrite): os.remove(new_fname) shutil.copy(op.join(su.get_mmvt_dir(), 'empty_subject.blend'), new_fname) else: shutil.copy(op.join(su.get_mmvt_dir(), 'empty_subject.blend'), new_fname)
def render_image(subject_fname): args = read_args(su.get_python_argv()) if args.output_path == '': mmvt_dir = op.join(su.get_links_dir(), 'mmvt') args.output_path = op.join(mmvt_dir, args.subject, 'figures') su.make_dir(args.output_path) mmvt = su.init_mmvt_addon() mmvt.set_render_quality(args.quality) mmvt.set_render_output_path(args.output_path) mmvt.set_render_smooth_figure(args.smooth_figure) if not args.hide_lh is None: mmvt.show_hide_hemi(args.hide_lh, 'lh') if not args.hide_rh is None: mmvt.show_hide_hemi(args.hide_rh, 'rh') if not args.hide_subs is None: mmvt.show_hide_sub_corticals(args.hide_subs) if not args.show_elecs is None: mmvt.show_electrodes(args.show_elecs) if not args.show_only_lead is None: print('Showing only the current lead: {}'.format(args.show_only_lead)) mmvt.set_show_only_lead(args.show_only_lead) if args.curr_elec not in ['', 'None']: print('Setting current electrode to {}'.format(args.curr_elec)) mmvt.set_current_electrode(args.curr_elec) if not args.show_connections is None: mmvt.show_hide_connections(args.show_connections) if op.isfile(op.join(args.output_path, 'camera.pkl')): mmvt.load_camera() else: cont = input( 'No camera file was detected in the output folder, continue?') if not su.is_true(cont): return # su.save_blend_file(subject_fname) mmvt.render_image(args.image_name, args.output_path, args.quality, args.smooth_figure, render_background=False) su.exit_blender()
def render_movie(subject_fname): args = read_args(su.get_python_argv()) if args.rel_output_path: mmvt_dir = op.join(su.get_links_dir(), 'mmvt') args.output_path = op.join(mmvt_dir, args.subject, 'movies', args.output_path) su.make_dir(args.output_path) mmvt = su.init_mmvt_addon() mmvt.show_hide_hemi(args.hide_lh, 'lh') mmvt.show_hide_hemi(args.hide_rh, 'rh') mmvt.show_hide_sub_corticals(args.hide_subs) mmvt.set_render_quality(args.quality) mmvt.set_render_output_path(args.output_path) mmvt.set_render_smooth_figure(args.smooth_figure) if op.isfile(op.join(args.output_path, 'camera.pkl')): mmvt.load_camera() else: cont = input('No camera file was detected in the output folder, continue?') if not su.is_true(cont): return if not op.isfile(op.join(args.output_path, 'data.pkl')): mmvt.capture_graph(args.play_type, args.output_path, args.selection_type) su.save_blend_file(subject_fname) mmvt.render_movie(args.play_type, args.play_from, args.play_to, args.play_dt) su.exit_blender()
su.call_script(__file__, args, run_in_background=run_in_background) def read_args(argv=None): parser = su.add_default_args() # Add more args here return su.parse_args(parser, argv) def init_mmvt_addon(subject_fname): # args = read_args(su.get_python_argv()) # if args.debug: # su.debug() su.init_mmvt_addon() print('Finish init MMVT!') if __name__ == '__main__': import sys if len(sys.argv) > 2 and sys.argv[2] in ['--python', '--background']: subject_fname = sys.argv[1] init_mmvt_addon(subject_fname) elif len(sys.argv) >= 2: subject = sys.argv[1] atlas = sys.argv[2] run_in_background = su.is_true( sys.argv[3]) if len(sys.argv) >= 4 else False run(subject, atlas, run_in_background) else: print('Not enough parameters were sent!')