コード例 #1
0
    def convertInputStep(self, resetDeps):
        """ Create the input file in STAR format as expected by Relion.
        If the input particles comes from Relion, just link the file.
        Params:
            particlesId, volumesId: use this parameters just to force redo of
            convert if either the input particles and/or input volumes are
            changed.
        """
        self._imgFnList = []
        imgSet = self._getInputParticles()
        imgStar = self._getFileName('input_star')

        subset = em.SetOfParticles(filename=":memory:")

        newIndex = 1
        for img in imgSet.iterItems(orderBy='RANDOM()', direction='ASC'):
            self._scaleImages(newIndex, img)
            newIndex += 1
            subset.append(img)
            subsetSize = self.subsetSize.get()
            minSize = min(subsetSize, imgSet.getSize())
            if subsetSize > 0 and subset.getSize() == minSize:
                break
        writeSetOfParticles(subset,
                            imgStar,
                            self._getExtraPath(),
                            alignType=em.ALIGN_NONE,
                            postprocessImageRow=self._postprocessParticleRow)
        self._convertInput(subset)
        self._convertRef()
コード例 #2
0
    def _getIterData(self, it):
        data_sqlite = self._getFileName('data_scipion', iter=it)
        if not exists(data_sqlite):
            iterImgSet = em.SetOfParticles(filename=data_sqlite)
            iterImgSet.copyInfo(self._getInputParticles())
            self._fillDataFromIter(iterImgSet, it)
            iterImgSet.write()
            iterImgSet.close()

        return data_sqlite
コード例 #3
0
ファイル: convert.py プロジェクト: EyeSeeTea/scipion-web
def writeSqliteIterData(imgStar, imgSqlite, **kwargs):
    """ Given a Relion images star file (from some iteration)
    create the corresponding SetOfParticles (sqlite file)
    for this iteration. This file can be visualized sorted
    by the LogLikelihood.
    """
    cleanPath(imgSqlite)
    imgSet = em.SetOfParticles(filename=imgSqlite)
    readSetOfParticles(imgStar, imgSet, **kwargs)
    imgSet.write()
コード例 #4
0
    def _getIterData(self, it, **kwargs):
        """ Sort the it??.data.star file by the maximum likelihood. """
        data_sqlite = self._getFileName('data_scipion', iter=it)

        if not exists(data_sqlite):
            iterImgSet = em.SetOfParticles(filename=data_sqlite)
            iterImgSet.copyInfo(self._getInputParticles())
            self._fillDataFromIter(iterImgSet, it)
            iterImgSet.write()
            iterImgSet.close()

        return data_sqlite
コード例 #5
0
    def _getIterParticles(self, it, clean=False):
        import pyworkflow.em as em
        """ Return a classes .sqlite file for this iteration.
        If the file doesn't exists, it will be created by 
        converting from this iteration data.star file.
        """

        dataParticles = self._getFileName('particlesScipion', iter=it)

        if clean:
            cleanPath(dataParticles)

        if not exists(dataParticles):
            partSet = em.SetOfParticles(filename=dataParticles)
            self._fillParticlesFromIter(partSet, it)
            partSet.write()
            partSet.close()
        else:
            partSet = em.SetOfParticles(filename=dataParticles)
            imgSet = self.inputParticles.get()
            partSet.copyInfo(imgSet)
            partSet.setAlignmentProj()

        return partSet