def createOutputStep(self):
        lastIter = self.getLastIteration(1)
        Ts = self.inputSet.get().getSamplingRate()

        # To recover the original size of the volume if it was changed
        fnVol = self.getIterVolume(lastIter)
        Xdim = self.inputSet.get().getDimensions()[0]
        if self.useMaxRes and self.newXdim != Xdim:
            self.runJob('xmipp_image_resize',
                        "-i %s --fourier %d" % (fnVol, Xdim),
                        numberOfMpi=1)
        fnMrc = fnVol.replace(".vol", ".mrc")
        self.runJob("xmipp_image_convert",
                    "-i %s -o %s -t vol" % (fnVol, fnMrc),
                    numberOfMpi=1)
        cleanPath(fnVol)
        self.runJob("xmipp_image_header",
                    "-i %s --sampling_rate %f" % (fnMrc, Ts),
                    numberOfMpi=1)

        vol = Volume()
        vol.setObjComment('significant volume 1')
        vol.setLocation(fnMrc)
        vol.setSamplingRate(Ts)
        self._defineOutputs(outputVolume=vol)
        self._defineSourceRelation(self.inputSet, vol)
Example #2
0
    def createOutputStep(self):

        volumesSet = self._createSetOfVolumes()
        volumesSet.setSamplingRate(self.inputVolume.get().getSamplingRate())
        for i in range(self.iteration):
            vol = Volume()
            vol.setOrigin(self.inputVolume.get().getOrigin(True))
            if (self.iteration > (i + 1)):
                vol.setLocation(
                    i, self._getExtraPath('sharpenedMap_%d.mrc' % (i + 1)))
                vol.setObjComment("Sharpened Map, \n Epoch %d" % (i + 1))
            else:
                vol.setLocation(i, self._getExtraPath('sharpenedMap_last.mrc'))
                vol.setObjComment("Sharpened Map, \n Epoch last")
            volumesSet.append(vol)

        self._defineOutputs(outputVolumes=volumesSet)
        self._defineSourceRelation(self.inputVolume, volumesSet)
    def createOutputStep(self):
        Ts = self.inputReference.get().getSamplingRate()

        vols = []
        idx = 1
        for vol in self._iterInputVolumes():
            outVol = Volume()
            fnOutVol = self._getExtraPath("vol%02d.mrc" % idx)
            outVol.setLocation(fnOutVol)
            outVol.setObjComment(vol.getObjComment())
            #set transformation matrix
            fhInputTranMat = self._getExtraPath(
                'transformation-matrix_vol%06d.txt' % idx)
            transMatFromFile = np.loadtxt(fhInputTranMat)
            transformationMat = np.reshape(transMatFromFile, (4, 4))
            transform = Transform()
            transform.setMatrix(transformationMat)
            outVol.setTransform(transform)
            vols.append(outVol)

            # Set the sampling rate in the mrc header
            self.runJob("xmipp_image_header",
                        "-i %s --sampling_rate %f" % (fnOutVol, Ts))

            idx += 1

        if len(vols) > 1:
            volSet = self._createSetOfVolumes()
            volSet.setSamplingRate(Ts)
            for vol in vols:
                volSet.append(vol)
            outputArgs = {'outputVolumes': volSet}
        else:
            vols[0].setSamplingRate(Ts)
            outputArgs = {'outputVolume': vols[0]}

        self._defineOutputs(**outputArgs)
        if len(vols) > 1:
            for pointer in self.inputVolumes:
                self._defineSourceRelation(pointer,
                                           outputArgs['outputVolumes'])
        else:
            for pointer in self.inputVolumes:
                self._defineSourceRelation(pointer, outputArgs['outputVolume'])