def createOutputStep(self): if self.range == self.LOW_RESOL: sampling_new = 1.0 else: sampling_new = 0.5 volume = Volume() volume.setFileName(self._getFileName(OUTPUT_RESOLUTION_FILE)) volume.setSamplingRate(sampling_new) self._defineOutputs(resolution_Volume=volume) self._defineTransformRelation(self.inputVolume, volume) #Setting the min max and median for the summary imageFile = self._getFileName(OUTPUT_RESOLUTION_FILE) min_, max_, median_ = self.getMinMax(imageFile) self.min_res_init.set(round(min_ * 100) / 100) self.max_res_init.set(round(max_ * 100) / 100) self.median_res_init.set(round(median_ * 100) / 100) self._store(self.min_res_init) self._store(self.max_res_init) self._store(self.median_res_init) #create Resolution Map to visialize in Chimera #vol_chimera=Volume() vol_chimera = self.createChimeraOutput( self._getFileName(OUTPUT_RESOLUTION_FILE), self.median_res_init) # self.createChimeraOutput(self._getFileName(OUTPUT_RESOLUTION_FILE), # self.median_res_init, # self._getFileName(OUTPUT_RESOLUTION_FILE_CHIMERA)) vol_chimera.write(self._getFileName(OUTPUT_RESOLUTION_FILE_CHIMERA))
def createOutputStep(self): volume=Volume() volume.setFileName(self._getExtraPath('sharpenedMap_last.mrc')) volume.setSamplingRate(self.inputVolume.get().getSamplingRate()) self._defineOutputs(sharpened_map=volume) self._defineSourceRelation(self.inputVolume, volume)
def runCreateOutputStep(self): ''' Create standard output results_images, result_classes''' #creating results files imgSet = self.inputParticles.get() lastIter = self.numberOfIterations.get() if self.numberOfReferences != 1: inDocfile = self._getFileName('docfileInputAnglesIters', iter=lastIter) ClassFnTemplate = '%(rootDir)s/reconstruction_Ref3D_%(ref)03d.vol' allExpImagesinDocfile = xmipp.FileName() all_exp_images="all_exp_images" allExpImagesinDocfile.compose(all_exp_images, inDocfile) dataClasses = self._getFileName('sqliteClasses') createClassesFromImages(imgSet, str(allExpImagesinDocfile), dataClasses, SetOfClasses3D, xmipp.MDL_REF3D, ClassFnTemplate, lastIter) classes = self._createSetOfClasses3D(imgSet) clsSet = SetOfClasses3D(dataClasses) classes.appendFromClasses(clsSet) volumes = self._createSetOfVolumes() volumes.setSamplingRate(imgSet.getSamplingRate()) for refN in self.allRefs(): volFn = self._getFileName('reconstructedFileNamesIters', iter=lastIter, ref=refN) vol = Volume() vol.setFileName(volFn) volumes.append(vol) self._defineOutputs(outputVolumes=volumes) self._defineOutputs(outputClasses=classes) self._defineSourceRelation(self.inputParticles, volumes) self._defineSourceRelation(self.inputParticles, classes) self._defineSourceRelation(self.input3DReferences, volumes) self._defineSourceRelation(self.input3DReferences, classes) else: volFn = self._getFileName('reconstructedFileNamesIters', iter=lastIter, ref=1) halfMap1 = self._getFileName('reconstructedFileNamesItersSplit1', iter=lastIter, ref=1) halfMap2 = self._getFileName('reconstructedFileNamesItersSplit2', iter=lastIter, ref=1) vol = Volume() vol.setFileName(volFn) vol.setSamplingRate(imgSet.getSamplingRate()) vol.setHalfMaps([halfMap1, halfMap2]) self._defineOutputs(outputVolume=vol) self._defineSourceRelation(self.inputParticles, vol) self._defineSourceRelation(self.input3DReferences, vol) #create set of images imgSetOut = self._createSetOfParticles("_iter_%03d" %lastIter) self._fillParticlesFromIter(imgSetOut, lastIter) self._defineOutputs(outputParticles=imgSetOut) self._defineSourceRelation(self.inputParticles, imgSetOut) self._defineSourceRelation(self.input3DReferences, imgSetOut)
def createOutput(self): fnDir = self._getExtraPath() Ts=self.readInfoField(fnDir,"sampling",xmippLib.MDL_SAMPLINGRATE) # Final average TsOrig=self.inputParticles.get().getSamplingRate() XdimOrig=self.inputParticles.get().getDimensions()[0] fnAvg = self._getExtraPath("volumeAvg.vol") self.runJob("xmipp_image_resize","-i %s --dim %d"%(fnAvg,XdimOrig),numberOfMpi=1) volume=Volume() volume.setFileName(fnAvg) volume.setSamplingRate(TsOrig) self._defineOutputs(outputVolume=volume) self._defineSourceRelation(self.inputParticles.get(),volume) self._defineSourceRelation(self.inputVolumes.get(),volume) # Swarm of volumes volSet = self._createSetOfVolumes() volSet.setSamplingRate(Ts) for i in range(self.inputVolumes.get().getSize()): fnVol = self._getExtraPath("volume%03d_best.vol"%i) vol=Volume() vol.setFileName(fnVol) vol.setSamplingRate(Ts) volSet.append(vol) self._defineOutputs(outputVolumes=volSet) self._defineSourceRelation(self.inputParticles.get(),volSet) self._defineSourceRelation(self.inputVolumes.get(),volSet)
def createOutputStep(self): if not self.realignMovieFrames: imgSet = self._getInputParticles() vol = Volume() vol.setFileName(self._getExtraPath('relion_class001.mrc')) vol.setSamplingRate(imgSet.getSamplingRate()) half1 = self._getFileName("final_half1_volume", ref3d=1) half2 = self._getFileName("final_half2_volume", ref3d=1) vol.setHalfMaps([half1, half2]) outImgSet = self._createSetOfParticles() outImgSet.copyInfo(imgSet) self._fillDataFromIter(outImgSet, self._lastIter()) self._defineOutputs(outputVolume=vol) self._defineSourceRelation(self.inputParticles, vol) self._defineOutputs(outputParticles=outImgSet) self._defineTransformRelation(self.inputParticles, outImgSet) fsc = FSC(objLabel=self.getRunName()) blockName = 'model_class_%d@' % 1 fn = blockName + self._getExtraPath("relion_model.star") mData = md.MetaData(fn) fsc.loadFromMd(mData, md.RLN_RESOLUTION, md.RLN_MLMODEL_FSC_HALVES_REF) self._defineOutputs(outputFSC=fsc) self._defineSourceRelation(vol, fsc) else: pass
def createOutputStep(self): if not self.realignMovieFrames: imgSet = self._getInputParticles() vol = Volume() vol.setFileName(self._getExtraPath('relion_class001.mrc')) vol.setSamplingRate(imgSet.getSamplingRate()) half1 = self._getFileName("final_half1_volume", ref3d=1) half2 = self._getFileName("final_half2_volume", ref3d=1) vol.setHalfMaps([half1, half2]) outImgSet = self._createSetOfParticles() outImgSet.copyInfo(imgSet) self._fillDataFromIter(outImgSet, self._lastIter()) self._defineOutputs(outputVolume=vol) self._defineSourceRelation(self.inputParticles, vol) self._defineOutputs(outputParticles=outImgSet) self._defineTransformRelation(self.inputParticles, outImgSet) fsc = FSC(objLabel=self.getRunName()) blockName = 'model_class_%d@' % 1 fn = blockName + self._getExtraPath("relion_model.star") mData = md.MetaData(fn) fsc.loadFromMd(mData, md.RLN_RESOLUTION, md.RLN_MLMODEL_FSC_HALVES_REF) self._defineOutputs(outputFSC=fsc) self._defineSourceRelation(vol, fsc) else: movieSet = self.inputMovieParticles.get() if self.movieIncludeRotSearch: vol = Volume() vol.setFileName(self._getExtraPath('relion_class001.mrc')) vol.setSamplingRate(movieSet.getSamplingRate()) half1 = self._getFileName("final_half1_volume", ref3d=1) half2 = self._getFileName("final_half2_volume", ref3d=1) vol.setHalfMaps([half1, half2]) self._defineOutputs(outputVolume=vol) self._defineSourceRelation(self.inputParticles, vol) self._defineSourceRelation(self.inputMovieParticles, vol) fnOut = self._getFileName('dataFinal') outMovieSet = self._createSetOfMovieParticles() outMovieSet.copyInfo(movieSet) outMovieSet.setAlignmentProj() # not using copyItems since input movie particle # set is missing a lot of metadata (CTF, micName etc.) # that was created in convertInputStep readSetOfParticles(fnOut, outMovieSet, alignType=ALIGN_PROJ, extraLabels=MOVIE_EXTRA_LABELS, postprocessImageRow=self._updateParticle) self._defineOutputs(outputParticles=outMovieSet) self._defineTransformRelation(self.inputParticles, outMovieSet) self._defineTransformRelation(self.inputMovieParticles, outMovieSet)
def importVolumesStep(self, pattern, samplingRate): """ Copy images matching the filename pattern Register other parameters. """ self.info("Using pattern: '%s'" % pattern) # Create a Volume template object vol = Volume() vol.setSamplingRate(self.samplingRate.get()) copyOrLink = self.getCopyOrLink() imgh = ImageHandler() volSet = self._createSetOfVolumes() volSet.setSamplingRate(self.samplingRate.get()) for fileName, fileId in self.iterFiles(): dst = self._getExtraPath(basename(fileName)) copyOrLink(fileName, dst) x, y, z, n = imgh.getDimensions(dst) # First case considers when reading mrc without volume flag # Second one considers single volumes (not in stack) if (z == 1 and n != 1) or (z !=1 and n == 1): vol.setObjId(fileId) vol.setLocation(dst) volSet.append(vol) else: for index in range(1, n+1): vol.cleanObjId() vol.setLocation(index, dst) volSet.append(vol) if volSet.getSize() > 1: self._defineOutputs(outputVolumes=volSet) else: self._defineOutputs(outputVolume=vol)
def runCreateOutputStep(self): ''' Create standard output results_images, result_classes''' #creating results files imgSet = self.inputParticles.get() lastIter = self.numberOfIterations.get() if self.numberOfReferences != 1: inDocfile = self._getFileName('docfileInputAnglesIters', iter=lastIter) ClassFnTemplate = '%(rootDir)s/reconstruction_Ref3D_%(ref)03d.vol' allExpImagesinDocfile = xmipp.FileName() all_exp_images="all_exp_images" allExpImagesinDocfile.compose(all_exp_images, inDocfile) dataClasses = self._getFileName('sqliteClasses') createClassesFromImages(imgSet, str(allExpImagesinDocfile), dataClasses, SetOfClasses3D, xmipp.MDL_REF3D, ClassFnTemplate, lastIter) classes = self._createSetOfClasses3D(imgSet) clsSet = SetOfClasses3D(dataClasses) classes.appendFromClasses(clsSet) volumes = self._createSetOfVolumes() volumes.setSamplingRate(imgSet.getSamplingRate()) for refN in self.allRefs(): volFn = self._getFileName('reconstructedFileNamesIters', iter=lastIter, ref=refN) vol = Volume() vol.setFileName(volFn) volumes.append(vol) self._defineOutputs(outputVolumes=volumes) self._defineOutputs(outputClasses=classes) self._defineSourceRelation(self.inputParticles, volumes) self._defineSourceRelation(self.inputParticles, classes) self._defineSourceRelation(self.input3DReferences, volumes) self._defineSourceRelation(self.input3DReferences, classes) else: volFn = self._getFileName('reconstructedFileNamesIters', iter=lastIter, ref=1) halfMap1 = self._getFileName('reconstructedFileNamesItersSplit1', iter=lastIter, ref=1) halfMap2 = self._getFileName('reconstructedFileNamesItersSplit2', iter=lastIter, ref=1) vol = Volume() vol.setFileName(volFn) vol.setSamplingRate(imgSet.getSamplingRate()) vol.setHalfMaps([halfMap1, halfMap2]) self._defineOutputs(outputVolume=vol) self._defineSourceRelation(self.inputParticles, vol) self._defineSourceRelation(self.input3DReferences, vol) #create set of images imgSetOut = self._createSetOfParticles("_iter_%03d" %lastIter) self._fillParticlesFromIter(imgSetOut, lastIter) self._defineOutputs(outputParticles=imgSetOut) self._defineSourceRelation(self.inputParticles, imgSetOut) self._defineSourceRelation(self.input3DReferences, imgSetOut)
def createOutputStep(self): volume = Volume() volume.setFileName(self._getExtraPath('sharpenedMap_last.mrc')) volume.setSamplingRate(self.inputVolume.get().getSamplingRate()) self._defineOutputs(sharpened_map=volume) self._defineSourceRelation(self.inputVolume, volume)
def createOutputStep(self): volume = Volume() volume.setFileName(self._getFileName("finalMap")) vol = self.protRefine.get().outputVolume pxSize = vol.getSamplingRate() volume.setSamplingRate(pxSize) self._defineOutputs(outputVolume=volume) self._defineSourceRelation(vol, volume)
def createOutputStep(self): imgSet = self.inputParticles.get() volume = Volume() volume.setFileName(self._getFileName('output_volume')) volume.setSamplingRate(imgSet.getSamplingRate()) self._defineOutputs(outputVolume=volume) self._defineSourceRelation(self.inputParticles, volume)
def createOutputStep(self): """ Create the output volume """ outputVolume = Volume() outputVolume.setSamplingRate(self.getSampling()) outputVolume.setFileName(self.getOutputFn()) self._defineOutputs(outputVolume=outputVolume) self._defineTransformRelation(self.inputVolume, outputVolume)
def createOutputStep(self): """ Create the output volume """ outputVolume = Volume() outputVolume.setSamplingRate(self.getSampling()) outputVolume.setFileName(self.getOutputFn()) self._defineOutputs(outputVolume=outputVolume) self._defineTransformRelation(self.inputVolume, outputVolume)
def createOutputStep(self): volume = Volume() volume.setFileName(self._getFileName("finalMap")) vol = self.protRefine.get().outputVolume pxSize = vol.getSamplingRate() volume.setSamplingRate(pxSize) self._defineOutputs(outputVolume=volume) self._defineSourceRelation(vol, volume)
def createOutputStep(self): if not self.realignMovieFrames: imgSet = self._getInputParticles() vol = Volume() vol.setFileName(self._getExtraPath('relion_class001.mrc')) vol.setSamplingRate(imgSet.getSamplingRate()) half1 = self._getFileName("final_half1_volume", ref3d=1) half2 = self._getFileName("final_half2_volume", ref3d=1) vol.setHalfMaps([half1, half2]) outImgSet = self._createSetOfParticles() outImgSet.copyInfo(imgSet) self._fillDataFromIter(outImgSet, self._lastIter()) self._defineOutputs(outputVolume=vol) self._defineSourceRelation(self.inputParticles, vol) self._defineOutputs(outputParticles=outImgSet) self._defineTransformRelation(self.inputParticles, outImgSet) fsc = FSC(objLabel=self.getRunName()) blockName = 'model_class_%d@' % 1 fn = blockName + self._getExtraPath("relion_model.star") mData = md.MetaData(fn) fsc.loadFromMd(mData, md.RLN_RESOLUTION, md.RLN_MLMODEL_FSC_HALVES_REF) self._defineOutputs(outputFSC=fsc) self._defineSourceRelation(vol, fsc) else: movieSet = self.inputMovieParticles.get() if self.movieIncludeRotSearch: vol = Volume() vol.setFileName(self._getExtraPath('relion_class001.mrc')) vol.setSamplingRate(movieSet.getSamplingRate()) half1 = self._getFileName("final_half1_volume", ref3d=1) half2 = self._getFileName("final_half2_volume", ref3d=1) vol.setHalfMaps([half1, half2]) self._defineOutputs(outputVolume=vol) self._defineSourceRelation(self.inputParticles, vol) self._defineSourceRelation(self.inputMovieParticles, vol) fnOut = self._getFileName('dataFinal') outMovieSet = self._createSetOfMovieParticles() outMovieSet.copyInfo(movieSet) outMovieSet.setAlignmentProj() # not using copyItems since input movie particle # set is missing a lot of metadata (CTF, micName etc.) # that was created in convertInputStep readSetOfParticles(fnOut, outMovieSet, alignType=ALIGN_PROJ, extraLabels=MOVIE_EXTRA_LABELS, postprocessImageRow=self._updateParticle) self._defineOutputs(outputParticles=outMovieSet) self._defineTransformRelation(self.inputParticles, outMovieSet) self._defineTransformRelation(self.inputMovieParticles, outMovieSet)
def createOutputStep(self): imgSet = self.inputParticles.get() vol = Volume() #FIXME: return the last completed iteration vol.setFileName(self._getExtraPath('Refinement/final/bpr%02d.stk' % (self.numberOfIterations.get() + 1))) vol.setSamplingRate(imgSet.getSamplingRate()) self._defineOutputs(outputVolume=vol) self._defineSourceRelation(self.inputParticles, vol)
def createOutputStep(self): imgSet = self.inputParticles.get() vol = Volume() # FIXME: return two half-volumes as well vol.setFileName(self._getPath('volume.stk')) vol.setSamplingRate(imgSet.getSamplingRate()) self._defineOutputs(outputVolume=vol) self._defineSourceRelation(self.inputParticles, vol)
def runCreateOutputStep(self): import pyworkflow.em.metadata as md ''' Create standard output results_images, result_classes''' #creating results files imgSet = self.inputParticles.get() lastIter = self.numberOfIterations.get() if self.numberOfReferences != 1: inDocfile = self._getFileName('docfileInputAnglesIters', iter=lastIter) ClassFnTemplate = '%(rootDir)s/reconstruction_Ref3D_%(ref)03d.vol' allExpImagesinDocfile = xmipp.FileName() all_exp_images="all_exp_images" allExpImagesinDocfile.compose(all_exp_images, inDocfile) dataClasses = self._getFileName('sqliteClasses') createClassesFromImages(imgSet, str(allExpImagesinDocfile), dataClasses, SetOfClasses3D, xmipp.MDL_REF3D, ClassFnTemplate, lastIter) classes = self._createSetOfClasses3D(imgSet) clsSet = SetOfClasses3D(dataClasses) classes.appendFromClasses(clsSet) volumes = self._createSetOfVolumes() volumes.setSamplingRate(imgSet.getSamplingRate()) for refN in self.allRefs(): volFn = self._getFileName('reconstructedFileNamesIters', iter=lastIter, ref=refN) vol = Volume() vol.setFileName(volFn) volumes.append(vol) self._defineOutputs(outputVolumes=volumes) self._defineOutputs(outputClasses=classes) self._defineSourceRelation(self.inputParticles, volumes) self._defineSourceRelation(self.inputParticles, classes) else: volFn = self._getFileName('reconstructedFileNamesIters', iter=lastIter, ref=1) vol = Volume() vol.setFileName(volFn) vol.setSamplingRate(imgSet.getSamplingRate()) self._defineOutputs(outputVolume=vol) self._defineSourceRelation(self.inputParticles, vol) #create set of images imgSetOut = self._createSetOfParticles() imgFn = "all_exp_images@" + self._getFileName('docfileInputAnglesIters', iter=lastIter, ref=1) imgSetOut.copyInfo(imgSet) imgSetOut.setAlignmentProj() imgSetOut.copyItems(imgSet, updateItemCallback=self._createItemMatrix, itemDataIterator=md.iterRows(imgFn)) self._defineOutputs(outputParticles=imgSetOut) self._defineSourceRelation(self.inputParticles, imgSetOut)
def _appendOutputVolume(self, volumeOut): vol = Volume() vol.setFileName(volumeOut) vol.setSamplingRate(self.sampling) self.volumesSet.append(vol) if self.doFilter.get(): volumeFilterOut = volumeOut.replace('.vol', '_filtered.vol') volf = Volume() volf.setFileName(volumeFilterOut) volf.setSamplingRate(self.sampling) self.volumesFilterSet.append(volf)
def createOutputStep(self): inputVol = self.inputStructure.get() pdb = PdbFile(self._getPath('pseudoatoms.pdb'), pseudoatoms=True) self.createChimeraScript(inputVol, pdb) self._defineOutputs(outputPdb=pdb) self._defineSourceRelation(self.inputStructure, pdb) volume=Volume() volume.setFileName(self._getExtraPath("pseudoatoms_approximation.vol")) volume.setSamplingRate(inputVol.getSamplingRate()) self._defineOutputs(outputVolume=volume) self._defineSourceRelation(self.inputStructure.get(),volume)
def _appendOutputVolume(self, volumeOut): vol = Volume() vol.setFileName(volumeOut) vol.setSamplingRate(self.sampling) self.volumesSet.append(vol) if self.doFilter.get(): volumeFilterOut = volumeOut.replace('.vol', '_filtered.vol') volf = Volume() volf.setFileName(volumeFilterOut) volf.setSamplingRate(self.sampling) self.volumesFilterSet.append(volf)
def createOutputStep(self): volume = Volume() volume.setFileName(self._getExtraPath('postprocess.mrc')) volume.setSamplingRate(self.samplingRate) vol = self.protRelionRefine.get().outputVolume mask = VolumeMask() mask.setFileName(self._getExtraPath('postprocess_automask.mrc')) mask.setSamplingRate(self.samplingRate) self._defineOutputs(outputVolume=volume) self._defineOutputs(outputMask=mask) self._defineSourceRelation(vol, volume) self._defineSourceRelation(vol, mask)
def createOutputStep(self): volume = Volume() volume.setFileName(self._getExtraPath('postprocess.mrc')) volume.setSamplingRate(self.samplingRate) vol = self.protRelionRefine.get().outputVolume mask = VolumeMask() mask.setFileName(self._getExtraPath('postprocess_automask.mrc')) mask.setSamplingRate(self.samplingRate) self._defineOutputs(outputVolume=volume) self._defineOutputs(outputMask=mask) self._defineSourceRelation(vol, volume) self._defineSourceRelation(vol, mask)
def createOutputStep(self): volume = Volume() volume.setFileName(self._getFileName(FN_RESOLMAP)) volume.setSamplingRate(self.inputVolume.get().getSamplingRate()) self._defineOutputs(resolution_Volume=volume) self._defineSourceRelation(self.inputVolume, volume) imageFile = self._getFileName(FN_RESOLMAP) min_, max_ = self.getMinMax(imageFile) self.min_res_init.set(round(min_ * 100) / 100) self.max_res_init.set(round(max_ * 100) / 100) self._store(self.min_res_init) self._store(self.max_res_init)
def convertInputStep(self): outputParticles = self._createSetOfParticles() outputParticles.copyInfo(self.inputParticles.get()) outputParticles.copyItems(self.inputParticles.get()) self._defineOutputs(outputParticlesInit=outputParticles) self._store(outputParticles) #outputParticles.close() outputVolumes = Volume() outputVolumes.setFileName(self.inputVolume.get().getFileName()) outputVolumes.setSamplingRate(self.inputVolume.get().getSamplingRate()) self._defineOutputs(outputVolumesInit=outputVolumes) self._store(outputVolumes)
def _appendOutputVolume(self, volumeOut): vol = Volume() vol.setFileName(volumeOut) vol.setSamplingRate(self.inputParticlesTiltPair.get().getUntilted().getSamplingRate()) self.volumesSet.append(vol) if self.doFilter.get(): volumeFilterOut = volumeOut.replace('.vol','_filtered.vol') volf = Volume() volf.setFileName(volumeFilterOut) volf.setSamplingRate(self.inputParticlesTiltPair.get().getUntilted().getSamplingRate()) self.volumesFilterSet.append(volf)
def createOutputStep(self): volume = Volume() volume.setFileName(self._getFileName(OUTPUT_RESOLUTION_FILE)) if (self.halfVolumes): volume.setSamplingRate(self.inputVolume.get().getSamplingRate()) self._defineOutputs(resolution_Volume=volume) self._defineSourceRelation(self.inputVolume, volume) else: volume.setSamplingRate(self.inputVolumes.get().getSamplingRate()) self._defineOutputs(resolution_Volume=volume) self._defineSourceRelation(self.inputVolumes, volume) #Setting the min max for the summary imageFile = self._getFileName(OUTPUT_RESOLUTION_FILE_CHIMERA) min_, max_ = self.getMinMax(imageFile) self.min_res_init.set(round(min_ * 100) / 100) self.max_res_init.set(round(max_ * 100) / 100) self._store(self.min_res_init) self._store(self.max_res_init) if self.filterInput.get(): print 'Saving filtered map' volume.setFileName(self._getFileName(FN_FILTERED_MAP)) if (self.halfVolumes): volume.setSamplingRate( self.inputVolume.get().getSamplingRate()) self._defineOutputs(outputVolume_Filtered=volume) self._defineSourceRelation(self.inputVolume, volume) else: volume.setSamplingRate( self.inputVolumes.get().getSamplingRate()) self._defineOutputs(outputVolume_Filtered=volume) self._defineSourceRelation(self.inputVolumes, volume)
def createOutputStep(self): volume=Volume() volume.setFileName(self._getFileName(OUTPUT_RESOLUTION_FILE)) if (self.halfVolumes): volume.setSamplingRate(self.inputVolume.get().getSamplingRate()) self._defineOutputs(resolution_Volume=volume) self._defineSourceRelation(self.inputVolume, volume) else: volume.setSamplingRate(self.inputVolumes.get().getSamplingRate()) self._defineOutputs(resolution_Volume=volume) self._defineSourceRelation(self.inputVolumes, volume) #Setting the min max for the summary imageFile = self._getFileName(OUTPUT_RESOLUTION_FILE_CHIMERA) min_, max_ = self.getMinMax(imageFile) self.min_res_init.set(round(min_*100)/100) self.max_res_init.set(round(max_*100)/100) self._store(self.min_res_init) self._store(self.max_res_init) if self.filterInput.get(): print 'Saving filtered map' volume.setFileName(self._getFileName(FN_FILTERED_MAP)) if (self.halfVolumes): volume.setSamplingRate(self.inputVolume.get().getSamplingRate()) self._defineOutputs(outputVolume_Filtered=volume) self._defineSourceRelation(self.inputVolume, volume) else: volume.setSamplingRate(self.inputVolumes.get().getSamplingRate()) self._defineOutputs(outputVolume_Filtered=volume) self._defineSourceRelation(self.inputVolumes, volume)
def createOutputStep(self): imgSet = self._getInputParticles() vol = Volume() fnVol = self._getExtraPath('relion_it%03d_class001.mrc') % self._lastIter() vol.setFileName(fnVol) vol.setSamplingRate(imgSet.getSamplingRate()) outImgSet = self._createSetOfParticles() outImgSet.copyInfo(imgSet) self._fillDataFromIter(outImgSet, self._lastIter()) self._defineOutputs(outputVolume=vol) self._defineSourceRelation(self.inputParticles, vol) self._defineOutputs(outputParticles=outImgSet) self._defineTransformRelation(self.inputParticles, outImgSet)
def _appendOutputVolume(self, volumeOut): vol = Volume() vol.setFileName(volumeOut) vol.setSamplingRate( self.inputParticlesTiltPair.get().getUntilted().getSamplingRate()) self.volumesSet.append(vol) if self.doFilter.get(): volumeFilterOut = volumeOut.replace('.vol', '_filtered.vol') volf = Volume() volf.setFileName(volumeFilterOut) volf.setSamplingRate(self.inputParticlesTiltPair.get().getUntilted( ).getSamplingRate()) self.volumesFilterSet.append(volf)
def createOutputStep(self): volume = Volume() volume.setFileName(self._getFileName(OUTPUT_RESOLUTION_FILE)) volume.setSamplingRate(self.inputVolume.get().getSamplingRate()) self._defineOutputs(resolution_Volume=volume) self._defineSourceRelation(self.inputVolume, volume) #Setting the min max for the summary imageFile = self._getFileName(OUTPUT_RESOLUTION_FILE) min_, max_ = self.getMinMax(imageFile) self.min_res_init.set(round(min_ * 100) / 100) self.max_res_init.set(round(max_ * 100) / 100) self._store(self.min_res_init) self._store(self.max_res_init)
def createOutputStep(self): imgSet = self._getInputParticles() vol = Volume() vol.setFileName(self._getFileName('volume_shiny')) vol.setSamplingRate(imgSet.getSamplingRate()) shinyPartSet = self._createSetOfParticles() shinyPartSet.copyInfo(imgSet) shinyPartSet.setAlignmentProj() readSetOfParticles(self._getFileName('shiny'), shinyPartSet, alignType=ALIGN_PROJ) self._defineOutputs(outputParticles=shinyPartSet) self._defineOutputs(outputVolume=vol) self._defineSourceRelation(imgSet, shinyPartSet) self._defineSourceRelation(imgSet, vol)
def createOutputStep(self): imgSet = self._getInputParticles() vol = Volume() fnVol = self._getExtraPath( 'relion_it%03d_class001.mrc') % self._lastIter() vol.setFileName(fnVol) vol.setSamplingRate(imgSet.getSamplingRate()) outImgSet = self._createSetOfParticles() outImgSet.copyInfo(imgSet) self._fillDataFromIter(outImgSet, self._lastIter()) self._defineOutputs(outputVolume=vol) self._defineSourceRelation(self.inputParticles, vol) self._defineOutputs(outputParticles=outImgSet) self._defineTransformRelation(self.inputParticles, outImgSet)
def createOutputStep(self): volume = Volume() volume.setFileName(self._getFileName(OUTPUT_RESOLUTION_FILE)) if (self.halfVolumes): volume.setSamplingRate(self.inputVolume.get().getSamplingRate()) volume.setOrigin(self.inputVolume.get().getOrigin(True)) self._defineOutputs(resolution_Volume=volume) self._defineSourceRelation(self.inputVolume, volume) inputVolumeFileName = self.inputVolume.get().getFileName() else: volume.setSamplingRate(self.inputVolumes.get().getSamplingRate()) volume.setOrigin(self.inputVolumes.get().getOrigin(True)) self._defineOutputs(resolution_Volume=volume) self._defineSourceRelation(self.inputVolumes, volume) inputVolumeFileName = self.inputVolumes.get().getFileName() #Setting the min max for the summary imageFile = self._getFileName(OUTPUT_RESOLUTION_FILE_CHIMERA) min_, max_ = self.getMinMax(imageFile) self.min_res_init.set(round(min_ * 100) / 100) self.max_res_init.set(round(max_ * 100) / 100) self._store(self.min_res_init) self._store(self.max_res_init) if self.filterInput.get(): print 'Saving filtered map' volume.setFileName(self._getFileName(FN_FILTERED_MAP)) if (self.halfVolumes): volume.setSamplingRate( self.inputVolume.get().getSamplingRate()) self._defineOutputs(outputVolume_Filtered=volume) self._defineSourceRelation(self.inputVolume, volume) else: volume.setSamplingRate( self.inputVolumes.get().getSamplingRate()) self._defineOutputs(outputVolume_Filtered=volume) self._defineSourceRelation(self.inputVolumes, volume) # fill ccp4 header so we can transfer the origin to the # viewer (otherwise since imageFile is not a Scipion object # no sampling/origin information can be transfered Ccp4Header(imageFile).copyCCP4Header(inputVolumeFileName, volume.getShiftsFromOrigin(), volume.getSamplingRate(), originField=Ccp4Header.START) # also update the output volume header. This is not needed # since sampling and origin is in the database but # it may be usefull if other programs -outside scipion- # require these data. Ccp4Header(volume.getFileName()).copyCCP4Header( inputVolumeFileName, volume.getShiftsFromOrigin(), volume.getSamplingRate(), originField=Ccp4Header.START)
def createOutputStep(self): imgSet = self._getInputParticles() vol = Volume() vol.setFileName(self._getFileName('volume_shiny')) vol.setSamplingRate(imgSet.getSamplingRate()) shinyPartSet = self._createSetOfParticles() shinyPartSet.copyInfo(imgSet) shinyPartSet.setAlignmentProj() readSetOfParticles(self._getFileName('shiny'), shinyPartSet, alignType=ALIGN_PROJ) self._defineOutputs(outputParticles=shinyPartSet) self._defineOutputs(outputVolume=vol) self._defineSourceRelation(imgSet, shinyPartSet) self._defineSourceRelation(imgSet, vol)
def createOutputStep(self): from pyworkflow.em import ALIGN_PROJ from pyworkflow.em.packages.relion.convert import readSetOfParticles imgSet = self.refineRun.get()._getInputParticles() vol = Volume() vol.setFileName(self._getFileName('volume_shiny', iter=self.refineRun._lastIter())) vol.setSamplingRate(imgSet.getSamplingRate()) shinyPartSet = self._createSetOfParticles() shinyPartSet.copyInfo(imgSet) readSetOfParticles(self._getFileName('shiny'), shinyPartSet, alignType=ALIGN_PROJ) self._defineOutputs(outputParticles=shinyPartSet) self._defineSourceRelation(imgSet, shinyPartSet) self._defineOutputs(outputVolume=vol) self._defineSourceRelation(imgSet, vol)
def createOutputStep(self): volume = Volume() volume.setFileName(self._getExtraPath('sharpenedMap_last.mrc')) volume.setSamplingRate(self.inputVolume.get().getSamplingRate()) volume.setOrigin(self.inputVolume.get().getOrigin(True)) volumesSet = self._createSetOfVolumes() volumesSet.setSamplingRate(self.inputVolume.get().getSamplingRate()) for i in range(self.iteration): vol = Volume() vol.setLocation( i, self._getExtraPath('sharpenedMap_%d.mrc' % (i + 1))) vol.setObjComment("Sharpened Map, \n Epoch %d" % (i + 1)) volumesSet.append(vol) self._defineOutputs(outputVolumes=volumesSet) self._defineSourceRelation(self.inputVolume, volumesSet)
def _getVolumes(self): """ Return the list of volumes generated. The number of volumes in the list will be equal to the number of classes requested by the user in the protocol. """ # Provide 1 as default value for making it backward compatible k = self.getAttributeValue('numberOfClasses', 1) pixelSize = self._getInputParticles().getSamplingRate() lastIter = self._lastIter() volumes = [] for i in range(1, k + 1): vol = Volume( self._getExtraPath('relion_it%03d_class%03d.mrc') % (lastIter, i)) vol.setSamplingRate(pixelSize) volumes.append(vol) return volumes
def createOutputStep(self): if not self.realignMovieFrames: imgSet = self._getInputParticles() vol = Volume() vol.setFileName(self._getExtraPath("relion_class001.mrc")) vol.setSamplingRate(imgSet.getSamplingRate()) outImgSet = self._createSetOfParticles() outImgSet.copyInfo(imgSet) self._fillDataFromIter(outImgSet, self._lastIter()) self._defineOutputs(outputVolume=vol) self._defineSourceRelation(self.inputParticles, vol) self._defineOutputs(outputParticles=outImgSet) self._defineTransformRelation(self.inputParticles, outImgSet) else: pass
def createOutputStep(self): id = self.idx.get() # inputSetOfVolumes=self.inputSetOfVolumes.get() inputSetOfClasses3D = self.inputSetOfClasses3D.get() newVolume = Volume() #newVolume.setFileName(inputSetOfVolumes[id].getFileName()) #newVolume.setSamplingRate(inputSetOfVolumes[id].getSamplingRate()) newVolume.setFileName( inputSetOfClasses3D[id].getRepresentative().getFileName()) newVolume.setSamplingRate(inputSetOfClasses3D[id].getSamplingRate()) newParticles = self._createSetOfParticles() newParticles.setSamplingRate(inputSetOfClasses3D[id].getSamplingRate()) if inputSetOfClasses3D[id].hasAlignmentProj(): newParticles.setAlignmentProj() newParticles.copyItems(inputSetOfClasses3D[id]) self._defineOutputs(**{'outputAuxVolumes': newVolume}) self._store(newVolume) self._defineOutputs(**{'outputAuxParticles': newParticles}) self._store(newParticles)
def createOutputStep(self): volSet = self.inputVolumes.get() if self._isSingleInput(): vol = Volume() vol.copyInfo(volSet) if self.doResize: vol.setSamplingRate(self.samplingRate) vol.setFileName(self.outputStk) self._defineOutputs(outputVol=vol) else: volumes = self._createSetOfVolumes() volumes.copyInfo(volSet) if self.doResize: volumes.setSamplingRate(self.samplingRate) for i, vol in enumerate(volSet): j = i + 1 vol.setSamplingRate(self.samplingRate) vol.setLocation(j, self.outputStk) volumes.append(vol) self._defineOutputs(outputVol=volumes) self._defineTransformRelation(volSet, self.outputVol)
def createOutputStep(self): inputVol = self.inputStructure.get() samplingRate = inputVol.getSamplingRate() volume = Volume() volume.setFileName(self._getExtraPath("pseudoatoms_approximation.vol")) volume.setSamplingRate(samplingRate) x, y, z = volume.getDim() xv, yv, zv = inputVol.getOrigin(force=True).getShifts() t = Transform() t.setShifts((x / 2. * samplingRate) - xv, (y / 2. * samplingRate) - yv, (z / 2. * samplingRate) - zv) volume.setOrigin(inputVol.getOrigin()) self._defineOutputs(outputVolume=volume) self._defineSourceRelation(self.inputStructure.get(), volume) pdb = AtomStruct(self._getPath('pseudoatoms.pdb'), pseudoatoms=True) pdb.setVolume(volume) pdb.setOrigin(t) self.createChimeraScript(inputVol, pdb) self._defineOutputs(outputPdb=pdb) self._defineSourceRelation(self.inputStructure, pdb)
def createOutputStep(self): from pyworkflow.em import ALIGN_PROJ from pyworkflow.em.packages.relion.convert import readSetOfParticles refineRun = self.refineRun.get() imgSet = refineRun._getInputParticles() vol = Volume() vol.setFileName( self._getFileName('volume_shiny', iter=refineRun._lastIter())) vol.setSamplingRate(imgSet.getSamplingRate()) shinyPartSet = self._createSetOfParticles() shinyPartSet.copyInfo(imgSet) readSetOfParticles(self._getFileName('shiny'), shinyPartSet, alignType=ALIGN_PROJ) self._defineOutputs(outputParticles=shinyPartSet) self._defineOutputs(outputVolume=vol) self._defineSourceRelation(refineRun.inputParticles, shinyPartSet) self._defineSourceRelation(refineRun.inputMovieParticles, shinyPartSet) self._defineSourceRelation(refineRun.inputParticles, vol) self._defineSourceRelation(refineRun.inputMovieParticles, vol)
def createOutputStep(self): if not self.realignMovieFrames: imgSet = self._getInputParticles() vol = Volume() vol.setFileName(self._getExtraPath('relion_class001.mrc')) vol.setSamplingRate(imgSet.getSamplingRate()) outImgSet = self._createSetOfParticles() outImgsFn = self._getFileName('data', iter=self._lastIter()) outImgSet.copyInfo(imgSet) outImgSet.setAlignmentProj() outImgSet.copyItems(imgSet, updateItemCallback=self._createItemMatrix, itemDataIterator=md.iterRows(outImgsFn)) self._defineOutputs(outputVolume=vol) self._defineSourceRelation(imgSet, vol) self._defineOutputs(outputParticles=outImgSet) self._defineTransformRelation(imgSet, outImgSet) else: pass
def createOutputStep(self): classListProtocols = [] classListIds = [] classListSizes = [] fnOutFile = self.inputMetaProt.get()._getExtraPath('auxOutputFile.txt') outFile = open(fnOutFile, 'r') nameRead = outFile.readline() while nameRead != '': nameRead = nameRead[:-1] for i, item in enumerate(self.inputSignifProts): if nameRead == self.inputSignifProts[i].get()._objLabel: classListProtocols.append(self.inputSignifProts[i].get()) idRead = outFile.readline() classListIds.append(int(idRead)) sizeRead = outFile.readline() classListSizes.append(int(sizeRead)) break nameRead = outFile.readline() # print(classListProtocols) # print(classListIds) # print(classListSizes) inputVolume = self.inputMetaProt.get().inputVolume myVolList = [] # outputVolumes = self._createSetOfVolumes('Def') # outputVolumes.setDim(inputVolume.get().getDim()) # outputVolumes.setSamplingRate(inputVolume.get().getSamplingRate()) origDim = inputVolume.get().getDim()[0] for i, prot in enumerate(classListProtocols): # print("createOutputStep ", i) classItem = prot.outputClasses[classListIds[i]] volFn = str(classItem._representative._filename) volFnOut = self._getExtraPath('outVol%d.vol' % (i + 1)) volDim = classItem._representative.getDim()[0] if volDim != origDim: self.runJob("xmipp_image_resize", "-i %s -o %s --fourier %d" % (volFn, volFnOut, origDim), numberOfMpi=self.numberOfMpi.get() * self.numberOfThreads.get()) else: copy(volFn, volFnOut) vol = Volume() vol.setLocation(volFnOut) vol.setSamplingRate(inputVolume.get().getSamplingRate()) myVolList.append(vol) # outputVolumes.append(vol) # self._defineOutputs(** {'outputVolumesDef': outputVolumes}) # self._store(outputVolumes) inputParticles = self.inputMetaProt.get().inputParticles outputDefClasses = self._createSetOfClasses3D(inputParticles.get(), 'Def') for i, prot in enumerate(classListProtocols): classItem = prot.outputClasses[classListIds[i]] signifInputParts = inputParticles.get() partIds = classItem.getIdSet() newClass = Class3D() newClass.copyInfo(signifInputParts) newClass.setAcquisition(signifInputParts.getAcquisition()) newClass.setRepresentative(myVolList[i]) outputDefClasses.append(newClass) enabledClass = outputDefClasses[newClass.getObjId()] enabledClass.enableAppend() for itemId in partIds: enabledClass.append(signifInputParts[itemId]) outputDefClasses.update(enabledClass) self._defineOutputs(**{'outputClasses3DDef': outputDefClasses}) self._store(outputDefClasses)
def createOutputStep(self, outputVol): vol = Volume() vol.setFileName(outputVol) vol.setSamplingRate(self.outputParticles.getSamplingRate()) self._defineOutputs(outputVol=vol)
def createOutputStep(self, outputVol): vol = Volume() vol.setFileName(outputVol) vol.setSamplingRate(self.outputParticles.getSamplingRate()) self._defineOutputs(outputVol=vol)