def getVmdEnviron(): """ Return the proper environ to launch VMD. VMD_HOME variable is read from the ~/.config/scipion.conf file. """ environ = Environ(os.environ) environ.set("PATH", os.path.join(os.environ["VMD_HOME"], "bin"), position=Environ.BEGIN) return environ
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)
def getEnviron(cls): """ Load the environment variables needed for Imagic. IMAGIC_ROOT is set to IMAGIC_HOME MPI-related vars are set if IMAGIC_HOME/openmpi path exists IMAGIC_BATCH is needed for batch files to work. """ env = Environ(os.environ) env.update({ 'IMAGIC_ROOT': cls.getHome(), 'IMAGIC_BATCH': "1", }) env.set('LD_LIBRARY_PATH', cls.getHome('lib'), env.BEGIN) mpidir = cls.getHome('openmpi') if os.path.exists(mpidir): env.update({ 'MPIHOME': mpidir, 'MPIBIN': mpidir + '/bin', 'OPAL_PREFIX': mpidir }) env.set('PATH', mpidir + '/bin', env.BEGIN) else: print("Warning: IMAGIC_ROOT directory (", cls.getHome(), ") does not contain openmpi folder.\n", "No MPI support will be enabled.") return env
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") volSelNoGPU = _runVolumeSelector(False, "Volume Selector No GPU") _checkAsserts(volSelNoGPU) 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)
def getEnviron(cls): """ Setup the environment variables needed to launch Ethan. """ environ = Environ(os.environ) environ.update({'PATH': Plugin.getHome()}, position=Environ.BEGIN) return environ
def getChimeraEnviron(): """ Return the proper environ to launch chimera. CHIMERA_HOME variable is read from the ~/.config/scipion.conf file. """ environ = Environ(os.environ) environ.set('PATH', os.path.join(os.environ['CHIMERA_HOME'], 'bin'), position=Environ.BEGIN) return environ
def getVmdEnviron(): """ Return the proper environ to launch VMD. VMD_HOME variable is read from the ~/.config/scipion.conf file. """ environ = Environ(os.environ) environ.set('PATH', os.path.join(os.environ['VMD_HOME'], 'bin'), position=Environ.BEGIN) return environ
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))
def getEnviron(xmippFirst=True): """ Create the needed environment for Xmipp programs. """ environ = Environ(os.environ) pos = Environ.BEGIN if xmippFirst else Environ.END environ.update( {"PATH": join(os.environ["XMIPP_HOME"], "bin"), "LD_LIBRARY_PATH": join(os.environ["XMIPP_HOME"], "lib")}, position=pos, ) return environ
def getEnviron(xmippFirst=True): """ Create the needed environment for Bsoft programs. """ environ = Environ(os.environ) pos = Environ.BEGIN if xmippFirst else Environ.END environ.update({ 'PATH': os.path.join(os.environ['BSOFT_HOME'], 'bin'), #'LD_LIBRARY_PATH': join(os.environ['BSOFT_HOME'], 'lib') }, position=pos) return environ
def getEnviron(xmippFirst=True): """ Create the needed environment for Xmipp programs. """ environ = Environ(os.environ) pos = Environ.BEGIN if xmippFirst else Environ.END environ.update({ 'PATH': join(os.environ['XMIPP_HOME'], 'bin'), 'LD_LIBRARY_PATH': join(os.environ['XMIPP_HOME'], 'lib') }, position=pos) return environ
def getEnviron(): """ Setup the environment variables needed to launch Relion. """ environ = Environ(os.environ) environ.update({ 'PATH': join(os.environ['RELION_HOME'], 'bin'), 'LD_LIBRARY_PATH': join(os.environ['RELION_HOME'], 'lib') + ":" + join(os.environ['RELION_HOME'], 'lib64'), 'SCIPION_MPI_FLAGS': os.environ.get('RELION_MPI_FLAGS', ''), }, position=Environ.BEGIN) return environ
def getEnviron(cls): """ Setup the environment variables needed to launch localrec. """ environ = Environ(os.environ) environ.update( { 'PATH': getXmippPath('bin'), 'LD_LIBRARY_PATH': getXmippPath('lib') }, position=Environ.BEGIN) return environ
def getEnviron(cls): environ = Environ(os.environ) environ.update( { 'PATH': cls.getHome('bin'), 'LD_LIBRARY_PATH': cls.getHome('lib') }, position=Environ.BEGIN) return environ
def getEnviron(cls): """ Setup the environment variables needed to launch 3DFSC. """ environ = Environ(os.environ) if 'PYTHONPATH' in environ: # this is required for python virtual env to work del environ['PYTHONPATH'] environ.update({'PATH': cls.getHome('ThreeDFSC')}, position=Environ.BEGIN) return environ
def getEnviron(cls): """ Setup the environment variables needed to launch Appion. """ environ = Environ(os.environ) environ.update({ 'PATH': Plugin.getHome(), 'LD_LIBRARY_PATH': str.join(cls.getHome(), 'appionlib') + ":" + cls.getHome(), }, position=Environ.BEGIN) return environ
def getEnviron(): """ Return the envirion settings to run dosefgpu programs. """ """ Setup the environment variables needed to launch Relion. """ MOTIONCORR_HOME = os.environ.get('MOTIONCORR_HOME', join(os.environ['EM_ROOT'], 'motioncorr')) environ = Environ(os.environ) environ.update({ 'PATH': join(MOTIONCORR_HOME, 'bin'), 'LD_LIBRARY_PATH': join(os.environ.get('MOTIONCORR_CUDA_LIB', '')) }, position=Environ.BEGIN) return environ
def getEnviron(): """ Setup the environment variables needed to launch Appion. """ environ = Environ(os.environ) if 'DOGPICKER_HOME' in environ: environ.update({ 'PATH': os.environ['DOGPICKER_HOME'], 'LD_LIBRARY_PATH': join(os.environ['DOGPICKER_HOME'], 'appionlib') + ":" + os.environ['DOGPICKER_HOME'], }, position=Environ.BEGIN) else: #TODO: Find a generic way to warn of this situation print "DOGPICKER_HOME variable not set on environment." return environ
def getEnviron(): """ Create the needed environment for Xmipp programs. """ environ = Environ(os.environ) SIMPLEBIN = os.path.join(os.environ['SIMPLE_HOME'], 'bin') environ.update({ 'SIMPLEBIN': SIMPLEBIN, 'SIMPLEPATH': os.environ['SIMPLE_HOME'], 'SIMPLESYS': os.environ['SIMPLE_HOME'], 'PATH': SIMPLEBIN + os.pathsep + os.path.join(os.environ['SIMPLE_HOME'], 'apps') }, position=Environ.BEGIN) return environ
def getEnviron(): """ Return the envirion settings to run dosefgpu programs. """ """ Setup the environment variables needed to launch Relion. """ MOTIONCORR_HOME = os.environ.get('MOTIONCORR_HOME', join(os.environ['EM_ROOT'], 'motioncorr')) environ = Environ(os.environ) environ.update( { 'PATH': join(MOTIONCORR_HOME, 'bin'), 'LD_LIBRARY_PATH': join(os.environ.get('MOTIONCORR_CUDA_LIB', '')) }, position=Environ.BEGIN) return environ
def getEnviron(): """ Setup the environment variables needed to launch Eman. """ environ = Environ(os.environ) EMAN2DIR = os.environ['EMAN2DIR'] pathList = [os.path.join(EMAN2DIR, d) for d in ['lib', 'bin', 'extlib/site-packages']] environ.update({ 'PATH': join(EMAN2DIR, 'bin'), 'LD_LIBRARY_PATH': os.pathsep.join(pathList), 'PYTHONPATH': os.pathsep.join(pathList), 'EMAN_PYTHON': os.path.join(EMAN2DIR, 'Python/bin/python') }, position=Environ.REPLACE) return environ
def getEnviron(cls, bsoftVersion=None): """ Setup the environment variables needed to launch bsoft. :param bsoftVersion (optional) pass a version to be used, otherwise will choose default value for BSOFT_HOME""" environ = Environ(os.environ) home = cls.getHomeFromVersion(bsoftVersion) environ.update({ 'PATH': os.path.join(home, 'bin'), 'BSOFT': home }, position=Environ.BEGIN) return environ
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_DIR = env.getFirst(('SPIDER_HOME', 'SPIDER_DIR'), mandatory=True) # # Scipion # definition if SPIDER_DIR 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_DIR, 'bin') + '/', # Spider needs this extra slash at the end 'SPMAN_DIR': join(SPIDER_DIR, 'man') + '/', 'SPPROC_DIR': join(SPIDER_DIR, '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
def getEnviron(): """ Setup the environment variables needed to launch Relion. """ environ = Environ(os.environ) environ.update( { 'PATH': join(os.environ['RELION_HOME'], 'bin'), 'LD_LIBRARY_PATH': join(os.environ['RELION_HOME'], 'lib') + ":" + join(os.environ['RELION_HOME'], 'lib64'), 'SCIPION_MPI_FLAGS': os.environ.get('RELION_MPI_FLAGS', ''), }, position=Environ.BEGIN) return environ
def getRelionEnviron(): """ Setup the environment variables needed to launch Relion. """ environ = Environ(os.environ) relionHome = os.environ[LOCALREC_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) return environ
def getEnviron(cls): """ Setup the environment variables needed to launch localrec. """ environ = Environ(os.environ) print("getEnvirion(): %s" % os.environ.get(cls.getHome())) if ('%s' % cls.getHome()) in environ: environ.update( { 'PATH': cls.getHome(), 'LD_LIBRARY_PATH': os.environ[cls.getHome()], }, position=Environ.BEGIN) else: # TODO: Find a generic way to warn of this situation print("%s variable not set on environment." % cls.getHome()) return environ
def getEnviron(cls): """ Setup the environment variables needed to launch pyseg. """ environ = Environ(os.environ) pySegDir = cls.getHome() # Add required disperse path to PATH and pyto path to PYTHONPATH environ.update({ 'PATH': join(pySegDir, '%s_build' % DISPERSE, 'bin'), 'PYTHONPATH': join(pySegDir, 'pyseg_system-%s' % DEFAULT_VERSION.replace('v', ''), 'code') }) return environ
def getEnviron(cls): """ Setup the environment variables needed to launch aitom. """ environ = Environ(os.environ) if 'PYTHONPATH' in environ: # this is required for python virtual env to work del environ['PYTHONPATH'] return environ
def getMembSegEnviron(cls): """ Setup the environment variables needed to launch pyseg. """ environ = Environ(os.environ) runtimePath = cls.getMCRPath() # Add required disperse path to PATH and pyto path to PYTHONPATH environ.update({ 'LD_LIBRARY_PATH': os.pathsep.join([ join(runtimePath, 'runtime', 'glnxa64'), join(runtimePath, 'bin', 'glnxa64'), join(runtimePath, 'sys', 'os', 'glnxa64'), join(runtimePath, 'sys', 'opengl', 'lib', 'glnxa64') ]) }) return environ
def getRelionEnviron(): """ Setup the environment variables needed to launch Relion. """ environ = Environ(os.environ) relionHome = os.environ[LOCALREC_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) return environ
def getEnviron(): """ Setup the environment variables needed to launch Appion. """ environ = Environ(os.environ) if 'DOGPICKER_HOME' in environ: environ.update( { 'PATH': os.environ['DOGPICKER_HOME'], 'LD_LIBRARY_PATH': join(os.environ['DOGPICKER_HOME'], 'appionlib') + ":" + os.environ['DOGPICKER_HOME'], }, position=Environ.BEGIN) else: #TODO: Find a generic way to warn of this situation print "DOGPICKER_HOME variable not set on environment." return environ
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
def getEnviron(): """ Setup the environment variables needed to launch Eman. """ environ = Environ(os.environ) EMAN2DIR = os.environ['EMAN2DIR'] pathList = [os.path.join(EMAN2DIR, d) for d in ['lib', 'bin', 'extlib/site-packages']] # This environment variable is used to setup OpenGL (Mesa) # library in remote desktops if 'REMOTE_MESA_LIB' in os.environ: pathList.append(os.environ['REMOTE_MESA_LIB']) environ.update({ 'PATH': join(EMAN2DIR, 'bin'), 'PYTHONPATH': os.pathsep.join(pathList), 'EMAN_PYTHON': os.path.join(EMAN2DIR, 'Python/bin/python') }, position=Environ.REPLACE) return environ
def getEnviron(): """ Setup the environment variables needed to launch Eman. """ environ = Environ(os.environ) EMAN2DIR = os.environ['EMAN2DIR'] pathList = [os.path.join(EMAN2DIR, d) for d in ['lib', 'bin', 'extlib/site-packages']] # This environment variable is used to setup OpenGL (Mesa) # library in remote desktops if 'REMOTE_MESA_LIB' in os.environ: pathList.append(os.environ['REMOTE_MESA_LIB']) environ.update({ 'PATH': join(EMAN2DIR, 'bin'), 'LD_LIBRARY_PATH': os.pathsep.join(pathList), 'PYTHONPATH': os.pathsep.join(pathList), 'EMAN_PYTHON': os.path.join(EMAN2DIR, 'Python/bin/python') }, position=Environ.REPLACE) return environ
def getEnviron(cls): """ Setup the environment variables needed to launch pkdp """ environ = Environ(os.environ) # environ.update({ # 'PATH': Plugin.getHome(), # 'LD_LIBRARY_PATH': str.join(cls.getHome(), 'pkdplib') # + ":" + cls.getHome(), # }, position=Environ.BEGIN) return environ
def setEmanEnviron(): """ Setup the environment variables needed to launch Eman and use its modules. """ env = Environ(os.environ) pathList = [ os.path.join(EMAN2DIR, d) for d in ['lib', 'bin', 'extlib/site-packages'] ] env.update( { 'PATH': os.path.join(EMAN2DIR, 'bin'), 'LD_LIBRARY_PATH': os.pathsep.join(pathList), 'PYTHONPATH': os.pathsep.join(pathList), 'EMAN_PYTHON': os.path.join(EMAN2DIR, 'Python/bin/python') }, position=Environ.BEGIN) os.environ.update(env)
def getEnviron(cls): """ Setup the environment variables needed to launch Relion. """ environ = Environ(os.environ) binPath = os.pathsep.join([cls.getHome('bin'), Config.MPI_BINDIR]) libPath = os.pathsep.join([cls.getHome('lib'), cls.getHome('lib64'), pwem.Config.MPI_LIBDIR]) if binPath not in environ['PATH']: environ.update({'PATH': binPath, 'LD_LIBRARY_PATH': libPath }, position=Environ.BEGIN) # Get Relion CUDA library path if defined cudaLib = cls.getVar(RELIONTOMO_CUDA_LIB, pwem.Config.CUDA_LIB) environ.addLibrary(cudaLib) if 'RELION_MPI_LIB' in os.environ: environ.addLibrary(os.environ['RELION_MPI_LIB']) if 'RELION_MPI_BIN' in os.environ: environ.set('PATH', os.environ['RELION_MPI_BIN'], position=Environ.BEGIN) return environ
def getEnviron(cls, gpuId='0'): """ Setup the environment variables needed to launch cryocare. """ environ = Environ(os.environ) if 'PYTHONPATH' in environ: # this is required for python virtual env to work del environ['PYTHONPATH'] environ.update({'CUDA_VISIBLE_DEVICES': gpuId}) cudaLib = environ.get(CRYOCARE_CUDA_LIB, pwem.Config.CUDA_LIB) environ.addLibrary(cudaLib) return environ
def getEnviron(useMC2=False): """ Return the environ settings to run motioncorr programs. """ environ = Environ(os.environ) if exists(MOTIONCORR_PATH) and not useMC2: environ.update({'PATH': join(os.environ['MOTIONCORR_HOME'], 'bin')}, position=Environ.BEGIN) if exists(MOTIONCOR2_PATH): environ.update({'PATH': join(os.environ['MOTIONCOR2_HOME'], 'bin')}, position=Environ.BEGIN) cudaLib = getCudaLib(environ, useMC2) environ.addLibrary(cudaLib) return environ
def test_Environ(self): """ Test the Environ class with its utilities. """ from pyworkflow.utils import Environ env = Environ({'PATH': '/usr/bin:/usr/local/bin', 'LD_LIBRARY_PATH': '/usr/lib:/usr/lib64' }) env1 = Environ(env) env1.set('PATH', '/usr/local/xmipp') self.assertEqual(env1['PATH'],'/usr/local/xmipp') self.assertEqual(env1['LD_LIBRARY_PATH'], env['LD_LIBRARY_PATH']) env2 = Environ(env) env2.set('PATH', '/usr/local/xmipp', position=Environ.BEGIN) self.assertEqual(env2['PATH'],'/usr/local/xmipp' + os.pathsep + env['PATH']) self.assertEqual(env2['LD_LIBRARY_PATH'], env['LD_LIBRARY_PATH']) env3 = Environ(env) env3.update({'PATH': '/usr/local/xmipp', 'LD_LIBRARY_PATH': '/usr/local/xmipp/lib'}, position=Environ.END) self.assertEqual(env3['PATH'],env['PATH'] + os.pathsep + '/usr/local/xmipp') self.assertEqual(env3['LD_LIBRARY_PATH'],env['LD_LIBRARY_PATH'] + os.pathsep + '/usr/local/xmipp/lib')
def getChimeraEnviron(): """ Return the proper environ to launch chimera. CHIMERA_HOME variable is read from the ~/.config/scipion.conf file. """ environ = Environ(os.environ) environ.set('PATH', os.path.join(os.environ['CHIMERA_HOME'], 'bin'), position=Environ.BEGIN) if "REMOTE_MESA_LIB" in os.environ: environ.set('LD_LIBRARY_PATH', os.environ['REMOTE_MESA_LIB'], position=Environ.BEGIN) return environ
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
def getImagicHomeDir(): env = Environ(os.environ) imagicdir = env.getFirst((IMAGIC_HOME, IMAGIC_DIR), mandatory=True) # # Scipion # definition return env, imagicdir