def _checkNewMics(self, micSet): """ Check for already computed CTF and update the output set. """ micDict = {} newMic = False for mic in micSet: micDict[mic.getFileName()] = True if micDict: if micSet.getSize(): micSet.enableAppend() micSet.loadAllProperties() else: micSet.setStreamState(micSet.STREAM_OPEN) acquisition = Acquisition() acquisition.setMagnification(self._magnification) acquisition.setVoltage(self._voltage) acquisition.setSphericalAberration(self._sphericalAberration) acquisition.setAmplitudeContrast(self._amplitudeContrast) micSet.setAcquisition(acquisition) micSet.setSamplingRate(self.samplingRate.get()) mic = Micrograph() counter = 0 for k, v in self.xmippMic.iteritems(): counter += 1 if (k not in micDict): mic.setFileName(k) mic.setMicName(basename(k)) mic.setObjId(counter) micSet.append(mic) newMic = True return micSet, newMic #why a dictionary, a boolean may be enought
def _preprocessImageRow(self, img, imgRow): from convert import setupCTF, copyOrLinkFileName if self._imgPath is not None: copyOrLinkFileName(imgRow, self._imgPath, self.protocol._getExtraPath()) setupCTF(imgRow, self.protocol.samplingRate.get()) if self._micIdOrName: micId = imgRow.getValue('rlnMicrographId', None) micName = imgRow.getValue('rlnMicrographName', None) # Check which is the key to identify micrographs (id or name) if micId is not None: micKey = micId else: micKey = micName mic = self.micDict.get(micKey, None) # First time I found this micrograph (either by id or name) if mic is None: mic = Micrograph() mic.setObjId(micId) if micName is None: micName = self.protocol._getExtraPath( 'fake_micrograph%6d' % micId) mic.setFileName(micName) mic.setMicName(os.path.basename(micName)) self.micSet.append(mic) # Update dict with new Micrograph self.micDict[micKey] = mic # Update the row to set a MDL_MICROGRAPH_ID imgRow.setValue('rlnMicrographId', long(mic.getObjId()))
def _preprocessImageRow(self, img, imgRow): from convert import setupCTF, copyOrLinkFileName if self._imgPath is not None: copyOrLinkFileName(imgRow, self._imgPath, self.protocol._getExtraPath()) setupCTF(imgRow, self.protocol.samplingRate.get()) if self._micIdOrName: micId = imgRow.getValue('rlnMicrographId', None) micName = imgRow.getValue('rlnMicrographName', None) # Check which is the key to identify micrographs (id or name) if micId is not None: micKey = micId else: micKey = micName mic = self.micDict.get(micKey, None) # First time I found this micrograph (either by id or name) if mic is None: mic = Micrograph() mic.setObjId(micId) if micName is None: micName = self.protocol._getExtraPath('fake_micrograph%6d' % micId) mic.setFileName(micName) mic.setMicName(os.path.basename(micName)) self.micSet.append(mic) # Update dict with new Micrograph self.micDict[micKey] = mic # Update the row to set a MDL_MICROGRAPH_ID imgRow.setValue('rlnMicrographId', long(mic.getObjId()))