def startdensity(self, widget): from meg import density from mri import img_nibabel as img from numpy import array, append, size, ones #import nifti gofscale = float(self.builder.get_object('entry1').get_text()) sigma = int(self.builder.get_object('entry2').get_text()) print self.builder.get_object("filechooserbutton2").get_filename() self.mrfilename = self.builder.get_object("filechooserbutton2").get_filename() #mr = nifti.NiftiImage(self.mrfilename) mr = img.loadimage(self.mrfilename) print 'loaded MRI',mr if self.itemselected == 'manual': points = array(eval(self.paired_item.get_text())) gof = ones(size(points,0)) if self.itemselected == 'selected': points = self.data_selected if self.itemselected == 'fileopen': from pdf2py import lA2array, readwrite from meg import dipole datafile = self.builder.get_object("fileopenitem").get_filename() print 'datafile=',datafile try: lA = lA2array.calc(datafile) except AttributeError: #probably not an MEG 4D file, try parsereport lA = dipole.parsereport(datafile) lA.dips[:,1:4] = lA.dips[:,1:4]/100 #xyz in meters (this is the units in the 4D,lA file) points = lA.dips[:,1:4]*1000 # units in mm gof_ind = lA.labels.index('GoF') gof = lA.dips[:,gof_ind] from meg import dipole2densitynifti self.dipoledensityimage = dipole2densitynifti.handler(points,mr,gofscale,gof,sigma) self.fcd = self.builder.get_object("filechooserdialog1") self.fcd.show() self.fcd.set_current_name('*dd.nii.gz') filter = gtk.FileFilter() filter.set_name("Nifti files") filter.add_pattern("*nii.gz") filter.add_pattern("*nii") self.fcd.add_filter(filter) #uridefault = self.fcd.set_uri(self.fcd.get_current_folder_uri()) self.fcd.set_uri('file://'+self.mrfilename) uridefault = self.fcd.get_current_folder_uri() print 'uri', uridefault self.fcd.set_uri(uridefault)
def lA2spreadsheet(lAfilename,textoutputfilename): lA = lA2array.calc(lAfilename) f = open('/tmp/'+textoutputfilename+'.csv', 'w') for i in lA.labels: f.write(i+',') f.write('\n') for i in arange(shape(lA.dips)[0]): lA.dips[i].tofile(f,sep=',',format='%s') f.write('\n') f.close() print('finished writing /tmp/'+textoutputfilename+'.csv')
def startdensity(self, widget): from meg import density import nifti gofscale = float(self.builder.get_object('entry1').get_text()) sigma = int(self.builder.get_object('entry2').get_text()) print self.builder.get_object("filechooserbutton2").get_filename() self.mrfilename = self.builder.get_object("filechooserbutton2").get_filename() mr = nifti.NiftiImage(self.mrfilename) try: points = self.data_selected except AttributeError: from pdf2py import lA2array, readwrite from numpy import array, append, size from meg import dipole datafile = self.builder.get_object("filechooserbutton1").get_filename() print 'datafile=',datafile #if datafile[-2:] == 'lA': try: lA = lA2array.calc(datafile) except AttributeError: #probably not an MEG 4D file, try parsereport lA = dipole.parsereport(datafile) #lA.points = array([]) lA.dips[:,1:4] = lA.dips[:,1:4]/100 #xyz in meters (this is the units in the 4D,lA file) points = lA.dips[:,1:4]*1000 # units in mm gof_ind = lA.labels.index('GoF') gof = lA.dips[:,gof_ind] from meg import dipole2densitynifti self.dipoledensityimage = dipole2densitynifti.handler(points,mr,gofscale,gof,sigma) self.fcd = self.builder.get_object("filechooserdialog1") self.fcd.show() self.fcd.set_current_name('*dd.nii.gz') filter = gtk.FileFilter() filter.set_name("Nifti files") filter.add_pattern("*nii.gz") filter.add_pattern("*nii") self.fcd.add_filter(filter) #uridefault = self.fcd.set_uri(self.fcd.get_current_folder_uri()) self.fcd.set_uri('file://'+self.mrfilename) uridefault = self.fcd.get_current_folder_uri() print 'uri', uridefault self.fcd.set_uri(uridefault)
session = p.data.session run = p.data.run datafilename = p.data.filename f = open(fileoutput, 'w') f.write('Patient:\t'+pid+'\n') f.write('Scan:\t'+scan+'\n') f.write('Session:\t'+session+'\n') f.write('Run:\t'+run+'\n') f.write('Localization File:\t'+datafilename+'\n') f.write('Grid Size:\t'+dfa_info) f.write('Latency\tX\tY\tZ\tQx\tQy\tQz\tRadius\t||\tQ\t||\tRms\tCorr\tGof\tIter\n') f.write('(msec)\t(cm)\t(nAm)\t(cm)\t(nAm)\tfT\n') f.write('EPOCH 1\n') d = lA2array.calc(fn) d.dips[:,0] = d.dips[:,0]*1000 #latency d.dips[:,1:4] = d.dips[:,1:4]*100 d.dips[:,4:7] = d.dips[:,4:7]*1e+9 d.dips[:,7] = d.dips[:,7]*100 d.dips[:,8] = d.dips[:,8]*1e+9 d.dips[:,9] = d.dips[:,9]*1e+15 dips = d.dips[:,0:13] #fwrite(f, dips.shape[], device_data.Xfm, 'd', 1); for i in range(0,size(dips,0)): for j in range(0, size(dips,1)): f.write(str(round(dips[i,j],3))+'\t') f.write('\n') f.close()