def calcResolution(self, partlist, stackfile, apix): ### group particles by refnum reflistsdict = {} for partdict in partlist: refnum = partdict['template'] partnum = partdict['num'] if not refnum in reflistsdict: reflistsdict[refnum] = [] reflistsdict[refnum].append(partnum) ### get resolution self.resdict = {} boxsizetuple = apFile.getBoxSize(stackfile) boxsize = boxsizetuple[0] for refnum in reflistsdict.keys(): partlist = reflistsdict[refnum] esttime = 3e-6 * len(partlist) * boxsize**2 apDisplay.printMsg("Ref num %d; %d parts; est time %s" %(refnum, len(partlist), apDisplay.timeString(esttime))) frcdata = apFourier.spectralSNRStack(stackfile, apix, partlist, msg=False) frcfile = "frcplot-%03d.dat"%(refnum) apFourier.writeFrcPlot(frcfile, frcdata, apix, boxsize) res = apFourier.getResolution(frcdata, apix, boxsize) self.resdict[refnum] = res return
def calcResolution(self, level): self.resdict = {} D=self.getClassificationAtLevel(level) for classref in D: stack=[] for partnum in D[classref]: stack.append(apImagicFile.readSingleParticleFromStack("alignedStack.hed",int(partnum)+1,msg=False)) apImagicFile.writeImagic(stack,"tmp.hed") frcdata = apFourier.spectralSNRStack("tmp.hed", self.apix) self.resdict[classref] = apFourier.getResolution(frcdata, self.apix, self.boxsize) apFile.removeStack("tmp.hed")
def calcResolution(self, level): self.resdict = {} D=self.getClassificationAtLevel(level) for classref in D: stack=[] for partnum in D[classref]: ### NOTE: RESOLUTION WILL NOT BE CALCULATED IF ALIGNED STACK IS NOT CREATED stack.append(apImagicFile.readSingleParticleFromStack(self.params['timestamp']+".hed",int(partnum),msg=False)) apImagicFile.writeImagic(stack,"tmp.hed") frcdata = apFourier.spectralSNRStack("tmp.hed", self.apix) self.resdict[classref] = apFourier.getResolution(frcdata, self.apix, self.boxsize) apFile.removeStack("tmp.hed")
def calcResolution(self, alignedStack): self.resdict = {} for classref, partlist in self.classD.iteritems(): if len(partlist) == 0: continue stack=[] for partnum in partlist: ### NOTE: RESOLUTION WILL NOT BE CALCULATED IF ALIGNED STACK IS NOT CREATED stack.append(apImagicFile.readSingleParticleFromStack(alignedStack,int(partnum),msg=False)) apImagicFile.writeImagic(stack,"tmp.hed") frcdata = apFourier.spectralSNRStack("tmp.hed", self.apix) self.resdict[classref] = apFourier.getResolution(frcdata, self.apix, self.boxsize) apFile.removeStack("tmp.hed")
def calcResolution(self, alignedStack): self.resdict = {} for classref, partlist in self.classD.iteritems(): if len(partlist) == 0: continue stack = [] for partnum in partlist: ### NOTE: RESOLUTION WILL NOT BE CALCULATED IF ALIGNED STACK IS NOT CREATED stack.append( apImagicFile.readSingleParticleFromStack(alignedStack, int(partnum), msg=False)) apImagicFile.writeImagic(stack, "tmp.hed") frcdata = apFourier.spectralSNRStack("tmp.hed", self.apix) self.resdict[classref] = apFourier.getResolution( frcdata, self.apix, self.boxsize) apFile.removeStack("tmp.hed")