Пример #1
0
    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)
Пример #2
0
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')
Пример #3
0
    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)
Пример #4
0
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()