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)
Exemplo n.º 2
0
    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):
        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)