def gen_eddy_outputname(self): fn = self.txt_output_eddy.get() if fn == '' or '_rigid.nii.gz' in fn: fn = filename_wo_ext(self.txt_dwi.get()) + '_eddy_unwarped.nii.gz' else: fn = filename_wo_ext(self.txt_dwi.get()) + '_rigid.nii.gz' self.reset_entry(self.txt_output_eddy, fn)
def get_dwi_filenames(self): ''' :return: [('from', 'to'), ('from', 'to')] ''' filename_from = self.text_from.get() filename_to = self.text_to.get() if self.is_dw.get(): rtn = [ [filename_from, filename_to] ] filename_b_from = filename_wo_ext(filename_from) filename_b_to = filename_wo_ext(filename_to) rtn.append( [filename_b_from+'.bval', filename_b_to+'.bval'] ) rtn.append( [filename_b_from+'.bvec', filename_b_to+'.bvec'] ) return rtn return []
def run_topup(self): dependency = [ self.txt_b0, self.txt_b0mask, ] if not self.check_dependency(dependency): return working = self.txt_working.get() fn_b0 = os.path.join(working, self.txt_b0.get()) fn_b0mask = os.path.join(working, self.txt_b0mask.get()) fn_b0masked = filename_wo_ext(fn_b0) + '_masked.nii.gz' fn_out = os.path.join(working, self.prefix() + 'topup') run_command('fslmaths %s -mas %s %s' % (fn_b0, fn_b0mask, fn_b0masked)) topup_command = [self.txt_topup_app.get()] if self.txt_topup_config.get() != '': topup_command.append('--config=%s' % self.txt_topup_config.get()) topup_command.append('--datain=%s' % (os.path.join(working, self.prefix() + 'acqparams.txt'))) topup_command.append('--imain=%s' % fn_b0masked) topup_command.append('--out=%s' % fn_out) topup_command.append('--iout=%s_warped' % fn_out) topup_command.append('--fout=%s_field' % fn_out) topup_command.append('--logout=%s_log' % fn_out) topup_command.append('1> %s_topup_log.out' % self.txt_subject.get()) cmd = ' '.join(topup_command) append_text(self.log, cmd, 'run_topup') run_command(cmd) print 'Done: TOPUP' tkMessageBox.showinfo(self.title, 'Done: TOPUP')
def set_filenames(filename): filename_woext = filename_wo_ext(filename) filename_wodir = os.path.basename(filename_woext) filename_fltd = '%s_mask_base_filtered' % filename_wodir filename_mask = '%s_mask' % filename_wodir return filename, filename_fltd, filename_mask
def __init__(self, parent, filename=None, filename_roi=None, filename_csv=None, dirname=None, obj_return_value=None): Frame.__init__(self, parent) self.parent = parent self.obj_return_value = obj_return_value # check filenames if filename is None or not os.path.isfile(filename): if dirname is not None: filename = tkFileDialog.askopenfilename(initialdir=dirname) else: filename = tkFileDialog.askopenfilename() if not os.path.isfile(filename): parent.destroy() return if filename_roi is None or not os.path.isfile(filename_roi): if dirname is not None: filename_roi = tkFileDialog.askopenfilename(initialdir=dirname) else: filename_roi = tkFileDialog.askopenfilename() if not os.path.isfile(filename_roi): parent.destroy() return if dirname is None: self.dirname = os.path.dirname(filename) else: self.dirname = dirname if filename_csv is None: filename_csv = os.path.join( self.dirname, filename_wo_ext(os.path.basename(filename)) + '.csv') self.filename = filename self.filename_roi = filename_roi self.filename_csv = filename_csv self.dat = nib.load(filename).get_data() self.shape = self.dat.shape print self.shape dz = self.shape[2] df = self.shape[-1] self.badenc = np.zeros((dz, df), dtype=np.int16) self.prev = np.zeros((dz, df), dtype=np.int16) self.z = 0 self.initUI() self.run()
def update_parameter(self): if self.parameter_values.has_key('subject'): self.reset_entry(self.txt_subject, self.parameter_values['subject']) if self.parameter_values.has_key('dwi'): self.reset_entry(self.txt_dwi, self.parameter_values['dwi']) self.reset_entry( self.txt_bval, filename_wo_ext(self.parameter_values['dwi']) + '.bval') self.reset_entry( self.txt_bvec, filename_wo_ext(self.parameter_values['dwi']) + '.bvec') if self.parameter_values.has_key('b0'): self.reset_entry(self.txt_b0, self.parameter_values['b0']) if self.parameter_values.has_key('working'): self.reset_entry(self.txt_working, self.parameter_values['working'], force=True)
def __init__(self, parent, filename=None, filename_csv=None, dirname=None, obj_return_value=None): Frame.__init__(self, parent) self.parent = parent self.obj_return_value = obj_return_value # check filenames if filename is None or not os.path.isfile(filename): if dirname is not None: filename = tkFileDialog.askopenfilename(initialdir=dirname) else: filename = tkFileDialog.askopenfilename() if not os.path.isfile(filename): parent.destroy() return if dirname is None: self.dirname = os.path.dirname(filename) else: self.dirname = dirname if filename_csv is None: filename_csv = os.path.join(self.dirname, filename_wo_ext(os.path.basename(filename)) + '.csv') self.filename = filename self.filename_csv = filename_csv n_slices = 0 n_frames = 0 with open(filename) as f: line = f.readline() while True: line = f.readline() if not line: break slice, frame = [int(tmp) for tmp in line.strip().split(',')[:2]] if n_slices < slice: n_slices = slice if n_frames < frame: n_frames = frame n_slices += 1 n_frames += 1 self.shape = (n_slices, n_frames) #self.distance_x = np.zeros( self.shape, dtype=float ) #self.distance_y = np.zeros( self.shape, dtype=float ) #self.distance = np.zeros( self.shape, dtype=float ) self.values = np.zeros( (n_slices, n_frames, 3), dtype=float ) self.badenc = np.zeros( self.shape, dtype=np.int16 ) self.prev = np.zeros( self.shape, dtype=np.int16 ) self.z = 0 self.initUI() self.run()
def set_appa(self): filename_from = self.text_from.get() basename_from = os.path.basename(filename_from) basename_b_from = filename_wo_ext(basename_from) if 'pa' in basename_b_from.lower(): self.direction.set('PA') elif 'ap' in basename_b_from.lower(): self.direction.set('AP') else: pass
def run_md_mask(self): if not os.path.isfile( os.path.join(self.txt_working.get(), self.txt_dwi_dti.get())): sys.stderr.write('File not exist: %s\n' % self.txt_dwi_dti.get()) return working = self.txt_working.get() if os.path.isfile(os.path.join(working, self.txt_dti_value.get())): fn_md = filename_wo_ext(self.txt_dti_value.get()) + '_MD.nii.gz' else: fn_md = filename_wo_ext(self.txt_dwi_dti.get()) + '_dti_MD.nii.gz' fn_mask = create_md_mask(os.path.join(working, fn_md), fn_out=None, thr_min=0.1, thr_max=1.1) print 'Done: Making MD mask' self.reset_entry(self.txt_md_mask, os.path.basename(fn_mask))
def get_b0_filename(self): ''' :return: [('from', 'to')] ''' filename_from = self.text_from.get() filename_to = self.text_to.get() ext = extname(filename_to) if self.is_b0.get(): if self.is_dw.get(): filename_to = '%s_B0%s' % (filename_wo_ext(filename_to), ext) return [ [filename_from, filename_to] ] return []
def add_one(self, text=''): a_dwi = self.A_DWI(self, self.frame, text=text, row=self.len, column=0) fn_bval = filename_wo_ext(text) + '.bval' if os.path.isfile(fn_bval): a_dwi.is_b0.set(False) a_dwi.is_dw.set(True) else: a_dwi.is_b0.set(True) a_dwi.is_dw.set(False) a_dwi.set_appa() a_dwi.set_filename_to() self.len += 1 self.lst_dwi.append(a_dwi)
def run_dti_outlier(self): import outlier_4dfp_gui root = Tk() working = self.txt_working.get() filename = os.path.join( working, filename_wo_ext(self.txt_dwi_dti.get()) + '_res.nii.gz') filename_roi = os.path.join(working, self.txt_md_mask.get()) filename_csv = os.path.join(working, self.txt_dti_outlier.get()) if filename_csv == '': filename_csv = filename_wo_ext(filename) + '.csv' print filename, filename_roi, filename_csv app = outlier_4dfp_gui.Outlier4dfp( root, filename=filename, filename_roi=filename_roi, filename_csv=filename_csv, dirname=working, obj_return_value=self.txt_dti_outlier) root.mainloop()
def gen_dti_value_outputname(self): fn = filename_wo_ext(self.txt_dti_value.get()) + '.csv' self.reset_entry(self.txt_output_dti_value, fn)
def gen_dti_name(self): self.reset_entry(self.txt_dti, filename_wo_ext(self.txt_dwi_dti.get()) + '_dti')
def gen_reg_outputname(self): fn = filename_wo_ext(self.txt_dwi_eddy.get()) + '_xenc.nii.gz' self.reset_entry(self.txt_output_reg, fn)