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 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 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 _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 _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): numberOfClasses = self.numberOfRef imgSet = self._getInputParticles() volumes = self._createSetOfVolumes() volumes.setSamplingRate(imgSet.getSamplingRate()) for ref in range(1, numberOfClasses + 1): vol = Volume() volFn = self._getFileName('iter_vol_class', iter=self._getLastIter(), ref=ref) vol.setFileName(volFn) volumes.append(vol) clsSet = self._createSetOfClasses3D(imgSet) self._fill3DClasses(clsSet, numberOfClasses) # Define the outputs and relations self._defineOutputs(outputClasses=clsSet) self._defineOutputs(outputVolumes=volumes) #TODO: save alignment self._defineSourceRelation(self._getInputParticlesPointer(), clsSet) self._defineSourceRelation(self._getInputParticlesPointer(), volumes) if not self.doContinue: self._defineSourceRelation(self.input3DReference, clsSet) self._defineSourceRelation(self.input3DReference, volumes)
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): 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): 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 createOutputStep(self): partSet = self.inputParticles.get() vol = Volume() vol.setFileName(self._getFileName("volume")) vol.copyInfo(partSet) self._defineOutputs(outputVolume=vol) self._defineSourceRelation(self.inputParticles, vol)
def createOutputStep(self): volInput = self.inputVolumes.get() if self._isSingleInput(): # Create the output with the same class as # the input, that should be Volume or a subclass # of Volume like VolumeMask volClass = volInput.getClass() vol = volClass() # Create an instance with the same class of input vol.copyInfo(volInput) vol.setLocation(1, self.outputStk) self._postprocessOutput(vol) self._defineOutputs(outputVol=vol) else: # ToDo: createSetOfVolumes not work properly when the protocol is resumed. volumes = self._createSetOfVolumes() volumes.copyInfo(volInput) self._preprocessOutput(volumes) numberOfVols = self.inputVolumes.get().getSize() for i in range(1, numberOfVols + 1): vol = Volume() vol.setLocation(i, self.outputStk) volumes.append(vol) self._postprocessOutput(volumes) self._defineOutputs(outputVol=volumes) self._defineTransformRelation(self.inputVolumes, self.outputVol)
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): 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): 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() 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): 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 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.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 createOutputStep(self): inputParticles = self.inputParticles.get() if not self._useSeveralClasses(): newTs = inputParticles.getSamplingRate() else: newTs = self.readInfoField(self._getExtraPath(),"sampling",xmippLib.MDL_SAMPLINGRATE) self.mdClasses = xmippLib.MetaData(self._getDirectionalClassesFn()) self.mdImages = xmippLib.MetaData(self._getDirectionalImagesFn()) classes2D = self._createSetOfClasses2D(inputParticles) classes2D.getImages().setSamplingRate(newTs) self.averageSet = self._createSetOfAverages() self.averageSet.copyInfo(inputParticles) self.averageSet.setAlignmentProj() self.averageSet.setSamplingRate(newTs) # Let's use a SetMdIterator because it should be less particles # in the metadata produced than in the input set iterator = md.SetMdIterator(self.mdImages, sortByLabel=md.MDL_ITEM_ID, updateItemCallback=self._updateParticle, skipDisabled=True) fnHomogeneous = self._getExtraPath("images_homogeneous.xmd") if exists(fnHomogeneous): homogeneousSet = self._createSetOfParticles() homogeneousSet.copyInfo(inputParticles) homogeneousSet.setSamplingRate(newTs) homogeneousSet.setAlignmentProj() self.iterMd = md.iterRows(fnHomogeneous, md.MDL_PARTICLE_ID) self.lastRow = next(self.iterMd) homogeneousSet.copyItems(inputParticles, updateItemCallback=self._updateHomogeneousItem) self._defineOutputs(outputHomogeneous=homogeneousSet) self._defineSourceRelation(self.inputParticles, homogeneousSet) classes2D.classifyItems(updateItemCallback=iterator.updateItem, updateClassCallback=self._updateClass) self._defineOutputs(outputClasses=classes2D) self._defineOutputs(outputAverages=self.averageSet) self._defineSourceRelation(self.inputParticles, classes2D) self._defineSourceRelation(self.inputParticles, self.averageSet) if self.splitVolume and self.directionalClasses.get()>1: volumesSet = self._createSetOfVolumes() volumesSet.setSamplingRate(newTs) for i in range(2): vol = Volume() vol.setLocation(1, self._getExtraPath("split_v%d.vol"%(i+1))) volumesSet.append(vol) self._defineOutputs(outputVolumes=volumesSet) self._defineSourceRelation(inputParticles, volumesSet)
def createOutput(self): inputParticles = self.directionalClasses.get() volumesSet = self._createSetOfVolumes() volumesSet.setSamplingRate(inputParticles.getSamplingRate()) for i in range(2): vol = Volume() vol.setLocation(1, self._getExtraPath("split_v%d.vol" % (i + 1))) volumesSet.append(vol) self._defineOutputs(outputVolumes=volumesSet) self._defineSourceRelation(inputParticles, volumesSet)
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 createOutput(self): volumesSet = self._createSetOfVolumes() volumesSet.setSamplingRate(self.inputParticles.get().getSamplingRate()) Nvols = len(self.splitPercentiles.get().split()) fnStack = self._getPath("splittedVolumes.stk") for i in range(Nvols): vol = Volume() vol.setLocation(i + 1, fnStack) volumesSet.append(vol) self._defineOutputs(outputVolumes=volumesSet) self._defineSourceRelation(self.inputParticles.get(), volumesSet)
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 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() 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): 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): iterN = self.numberOfIterations.get() partSet = self._getInputParticles() numRun = self._getRun() vol = Volume() vol.setFileName(self._getFileName("volume", run=numRun, iter=iterN)) vol.copyInfo(partSet) newPartSet = self._createSetOfParticles() newPartSet.copyInfo(partSet) self._fillDataFromIter(newPartSet, iterN) self._defineOutputs(outputVolume=vol) self._defineSourceRelation(self._getInputParticlesPointer(), vol) self._defineOutputs(outputParticles=newPartSet) self._defineTransformRelation(self._getInputParticlesPointer(), newPartSet)