Пример #1
0
def getCudaLib(environ=None, useMC2=False):

    if environ is None:
        environ = Environ(os.environ)
    if useMC2:
        return environ.getFirst((MOTIONCOR2_CUDA_LIB, CUDA_LIB))
    else:
        return environ.getFirst((MOTIONCORR_CUDA_LIB, CUDA_LIB))
Пример #2
0
    def testInitialVolumeSelector(self):
        def _runVolumeSelector(doGpu=False, label=''):

            print label
            volSelectorProt = self.newProtocol(ProtInitialVolumeSelector,
                                               targetResol=28.32,
                                               numberOfIterations=15,
                                               numberOfMpi=3, numberOfThreads=1)

            volSelectorProt.setObjLabel(label)
            volSelectorProt.inputParticles.set(self.protImport.outputParticles)
            volSelectorProt.inputVolumes.set(self.protImportVol.outputVolumes)

            volSelectorProt.doGpu.set(doGpu)

            self.launchProtocol(volSelectorProt)
            return volSelectorProt

        def _checkAsserts(relionProt):
            self.assertIsNotNone(relionProt.outputVolumes, "There was a "
                                                           "problem with "
                                                           "Initial Volume "
                                                           "Selector")

        environ = Environ(os.environ)
        cudaPath = environ.getFirst(('RELION_CUDA_LIB', 'CUDA_LIB'))

        if cudaPath is not None and os.path.exists(cudaPath):
            volSelGpu = _runVolumeSelector(True, "Run Volume Selector GPU")
            _checkAsserts(volSelGpu)
        else:
            volSelNoGPU = _runVolumeSelector(False, "Volume Selector No GPU")
            _checkAsserts(volSelNoGPU)
Пример #3
0
def getEnviron():
    """ Load the environment variables needed for Spider.
    If SPIDER_DIR is defined, the bin, man and proc folders will be 
    defined from it. If not, each of them should be defined separately. 
    """
    global SPIDER
    env = Environ(os.environ)
    SPIDER_PATH = env.getFirst((SPIDER_HOME, SPIDER_DIR), mandatory=True)  #
    # Scipion
    # definition

    # env.setInstalled(os.path.exists(SPIDER_DIR))

    if SPIDER_PATH is None:
        errors = ''
        for var in [SPBIN_DIR, SPMAN_DIR, SPPROC_DIR]:
            if not var in env:
                errors += "\n   Missing SPIDER variable: '%s'" % var
        if len(errors):
            print "ERRORS: " + errors
    else: 
        env.update({SPBIN_DIR: join(SPIDER_PATH, 'bin') + '/', # Spider needs this extra slash at the end
                    SPMAN_DIR: join(SPIDER_PATH, 'man') + '/',
                    SPPROC_DIR: join(SPIDER_PATH, 'proc') + '/'
                    })
    
    # Get the executable or 'spider' by default
    SPIDER = join(env[SPBIN_DIR], env.get('SPIDER', 'spider_linux_mp_intel64'))
    # expand ~ and vars
    SPIDER = abspath(os.path.expanduser(os.path.expandvars(SPIDER)))
        
    env.set('PATH', env[SPBIN_DIR], env.END)
    
    return env
Пример #4
0
    def testInitialVolumeSelector(self):
        def _runVolumeSelector(doGpu=False, label=''):

            print label
            volSelectorProt = self.newProtocol(ProtInitialVolumeSelector,
                                               targetResol=28.32,
                                               numberOfIterations=15,
                                               numberOfMpi=3,
                                               numberOfThreads=1)

            volSelectorProt.setObjLabel(label)
            volSelectorProt.inputParticles.set(self.protImport.outputParticles)
            volSelectorProt.inputVolumes.set(self.protImportVol.outputVolumes)

            volSelectorProt.doGpu.set(doGpu)

            self.launchProtocol(volSelectorProt)
            return volSelectorProt

        def _checkAsserts(relionProt):
            self.assertIsNotNone(
                relionProt.outputVolumes, "There was a "
                "problem with "
                "Initial Volume "
                "Selector")

        environ = Environ(os.environ)
        cudaPath = environ.getFirst(('RELION_CUDA_LIB', 'CUDA_LIB'))

        if cudaPath is not None and os.path.exists(cudaPath):
            volSelGpu = _runVolumeSelector(True, "Run Volume Selector GPU")
            _checkAsserts(volSelGpu)
        else:
            volSelNoGPU = _runVolumeSelector(False, "Volume Selector No GPU")
            _checkAsserts(volSelNoGPU)
Пример #5
0
def getEnviron():
    """ Setup the environment variables needed to launch Relion. """
    
    environ = Environ(os.environ)

    relionHome = os.environ[RELION_HOME]
    
    binPath = join(relionHome, 'bin')
    libPath = join(relionHome, 'lib') + ":" + join(relionHome, 'lib64')
    
    if not binPath in environ['PATH']:
        environ.update({'PATH': binPath,
                        'LD_LIBRARY_PATH': libPath,
                        'SCIPION_MPI_FLAGS': os.environ.get('RELION_MPI_FLAGS', ''),
                        }, position=Environ.BEGIN)
    
    # Take Scipion CUDA library path
    cudaLib = environ.getFirst(('RELION_CUDA_LIB', 'CUDA_LIB'))
    environ.addLibrary(cudaLib)

    return environ
Пример #6
0
def getEnviron():
    """ Load the environment variables needed for Spider.
    If SPIDER_DIR is defined, the bin, man and proc folders will be 
    defined from it. If not, each of them should be defined separately. 
    """
    global SPIDER
    env = Environ(os.environ)
    SPIDER_PATH = env.getFirst((SPIDER_HOME, SPIDER_DIR), mandatory=True)  #
    # Scipion
    # definition

    # env.setInstalled(os.path.exists(SPIDER_DIR))

    if SPIDER_PATH is None:
        errors = ''
        for var in [SPBIN_DIR, SPMAN_DIR, SPPROC_DIR]:
            if not var in env:
                errors += "\n   Missing SPIDER variable: '%s'" % var
        if len(errors):
            print "ERRORS: " + errors
    else:
        env.update({
            SPBIN_DIR: join(SPIDER_PATH, 'bin') +
            '/',  # Spider needs this extra slash at the end
            SPMAN_DIR: join(SPIDER_PATH, 'man') + '/',
            SPPROC_DIR: join(SPIDER_PATH, 'proc') + '/'
        })

    # Get the executable or 'spider' by default
    SPIDER = join(env[SPBIN_DIR], env.get('SPIDER', 'spider_linux_mp_intel64'))
    # expand ~ and vars
    SPIDER = abspath(os.path.expanduser(os.path.expandvars(SPIDER)))

    env.set('PATH', env[SPBIN_DIR], env.END)

    return env
Пример #7
0
def getImagicHomeDir():
    env = Environ(os.environ)
    imagicdir = env.getFirst((IMAGIC_HOME, IMAGIC_DIR), mandatory=True)  #
    # Scipion
    # definition
    return env, imagicdir
Пример #8
0
def getImagicHomeDir():
    env = Environ(os.environ)
    imagicdir = env.getFirst((IMAGIC_HOME, IMAGIC_DIR), mandatory=True)  #
    # Scipion
    # definition
    return env, imagicdir