Esempio n. 1
0
 def runPhenixProgram(cls, program, args=None, extraEnvDict=None, cwd=None):
     """ Internal shortcut function to launch a Phenix program. """
     env = cls.getEnviron()
     if extraEnvDict is not None:
         env.update(extraEnvDict)
     program = PHENIX_PYTHON + program
     pwutils.runJob(None, program, args, env=env, cwd=cwd)
Esempio n. 2
0
def runProgram(program, params):
    """ Runs a em program setting its environment matching a prefix"""
    env = None

    # Allow passing absolute paths
    programName = basename(program)

    from pwem import Domain
    # Avoid detecting xmipp installation script to be run as xmipp, since
    # it will run devel installation with production xmippEnv.json environment:
    # Example: want to compile devel with java 8, but production was compiled with java 11.
    # So java 11 makes it into the PATH taking priority
    if programName.startswith('xmipp_'):
        print("Xmipp command detected")
        xmipp3 = Domain.getPlugin('xmipp3').Plugin
        env = xmipp3.getEnviron()
    if programName.startswith('relion'):
        print("relion command detected")
        relion = Domain.getPlugin("relion").Plugin
        env = relion.getEnviron()
    elif (programName.startswith('e2') or programName.startswith('sx')):
        print("eman/sparx command detected")
        eman2 = Domain.importFromPlugin('eman2', 'Plugin')
        env = eman2.getEnviron()
    elif programName.startswith('b'):
        print("Bsoft command detected")
        bsoft = Domain.importFromPlugin('bsoft', 'Plugin')
        env = bsoft.getEnviron()

    pwutils.runJob(None, program, params, env=env)
Esempio n. 3
0
    def _convertGain(self):
        """ We need to transform gain file for a possible polishing job. """
        rotation = self.gainRot.get()
        flip = self.gainFlip.get()
        gainFn = self.gainFile.get()

        if rotation or flip:
            args = "%s %s " % (gainFn, self._getPath(os.path.basename(gainFn)))

            if flip:
                # flip axis Y - left to right
                args += "--process xform.flip:axis=%s " % ("y" if flip == 2 else "x")

            if rotation:
                args += "--rotate %d " % (rotation * 90)

            from pwem import Domain
            eman2 = Domain.importFromPlugin('eman2')
            pwutils.runJob(self._log, eman2.Plugin.getProgram('e2proc2d.py'), args,
                           env=eman2.Plugin.getEnviron())

            return self._getPath(os.path.basename(gainFn))
        else:
            outputGain = self._getPath(os.path.basename(gainFn))
            pwutils.createAbsLink(gainFn, outputGain)
            return outputGain
 def launchBoxingGUIStep(self):
     program = emantomo.Plugin.getProgram("e2spt_boxer_convnet.py")
     args = "--label particles_00"
     if self.useGpu.get():
         args += " --gpuid %s" % self.getGpuList()[0]
     pwutils.runJob(None,
                    program,
                    args,
                    env=emantomo.Plugin.getEnviron(),
                    cwd=self._getExtraPath())
     self._createOutput()
    def createThumbnailStep(self, micFn, micId):
        outputFn = self._getOutputMicThumbnail(micId)
        args = "%s %s " % (micFn, outputFn)
        args += "--fouriershrink %s --process normalize" % self.scaleFactor.get(
        )

        # Internal workaround to launch an EMAN2 program. """
        import pyworkflow.em.packages.eman2 as eman2

        pwutils.runJob(self._log,
                       eman2.getEmanProgram('e2proc2d.py'),
                       args,
                       env=eman2.getEnviron())
Esempio n. 6
0
 def createCircularMask(self, radius, refImage, outputFile):
     """ Create a circular mask with the given radius (pixels)
     and with the same dimensions of the refImage.
     The radius should be less or equal dim(refImage)/2
     The mask will be stored in 'outputFile'
     """
     #TODO: right now we need to call an xmipp program to create 
     # the spherical mask, it would be nicer to have such utility in the binding
     import pyworkflow.em.packages.xmipp3 as xmipp3
     xmippEnv = xmipp3.getEnviron()
     inputRef = xmipp3.getImageLocation(refImage)
     runJob(None, 'xmipp_transform_mask', 
                 '-i %s --create_mask  %s --mask circular -%d' % (inputRef, outputFile, radius),
                 env=xmippEnv)
Esempio n. 7
0
    def _visualize(self, obj, **kwargs):
        views = []
        cls = type(obj)

        # For now handle both types of SetOfTiltSeries together
        if issubclass(cls, schrodingerScipion.objects.SchrodingerAtomStruct) or \
           issubclass(cls, schrodingerScipion.objects.SchrodingerBindingSites) or \
           issubclass(cls, schrodingerScipion.objects.SchrodingerPoses):
            pwutils.runJob(None,
                           Plugin.getHome('maestro'),
                           obj.getFileName(),
                           env=Plugin.getEnviron())

        return views
Esempio n. 8
0
def runGautomatch(micName, refStack, workDir, args, env=None):
    # We convert the input micrograph on demand if not in .mrc
    outMic = os.path.join(workDir, pwutils.replaceBaseExt(micName, 'mrc'))
    if micName.endswith('.mrc'):
        pwutils.createLink(micName, outMic)
    else:
        em.ImageHandler().convert(micName, outMic)
    if refStack is not None:
        args = ' %s --T %s %s' % (outMic, refStack, args)
    else:
        args = ' %s %s' % (outMic, args)

    pwutils.runJob(None, getProgram(), args, env=env)
    # After picking we can remove the temporary file.
    pwutils.cleanPath(outMic)
 def resizeTomograms(self):
     program = emantomo.Plugin.getProgram("e2proc3d.py")
     xDim = self.xDim.get()
     yDim = self.yDim.get()
     zDim = self.zDim.get()
     for tomo in self.inputTomograms.get().iterItems():
         tomo_file = tomo.getFileName()
         out_file = self._getExtraPath(
             pwutils.removeBaseExt(tomo_file) + ".mrc")
         args = "%s %s --process normalize --clip %d,%d,%d" \
                % (tomo_file, out_file, xDim, yDim, zDim)
         pwutils.runJob(None,
                        program,
                        args,
                        env=emantomo.Plugin.getEnviron())
 def _viewResults(self, e=None):
     import os
     views = []
     fnBaseDir = self.getResultsDir()
     if not fnBaseDir:
         if os.path.exists(self.protocol._getExtraPath(CQUARKSERVER)):
             os.system("rm -rf %s" %
                       self.protocol._getExtraPath(CQUARKSERVER))
         url = self.url.get().strip()
         if not url.endswith("index.html"):
             url += "/index.html"
         urlDir = url.replace("/index.html", "").split(".edu")[1]
         if 'I-TASSER' in urlDir:
             includeDirs = "-I jsmol,3Dmol,I-TASSER/output"
         else:
             includeDirs = "-I jsmol,3Dmol,%s" % urlDir
         os.system('cd %s; wget %s --mirror -p --convert-links -P . -r --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 5 %s'%\
                   (self.protocol._getExtraPath(),includeDirs,url))
         if 'I-TASSER' in urlDir:
             extraDownloads = [
                 'I-TASSER/output/bin/jmol/j2s/core/package.js',
                 'I-TASSER/output/bin/jmol/j2s/core/corescript.z.js',
                 'I-TASSER/output/bin/jmol/j2s/core/core.z.js',
                 'I-TASSER/output/bin/jmol/j2s/core/corebio.z.js',
                 'I-TASSER/output/bin/jmol/j2s/JM/Resolver.js',
                 'I-TASSER/output/bin/jmol/j2s/J/shape/Mesh.js',
                 'I-TASSER/output/bin/jmol/j2s/J/render/MeshRenderer.js',
                 'I-TASSER/output/bin/jmol/j2s/core/corescriptcmd.z.js',
                 'I-TASSER/output/bin/jmol/j2s/J/thread/SpinThread.js',
                 'I-TASSER/output/bin/jmol/j2s/J/g3d/HermiteRenderer.js',
                 'I-TASSER/output/bin/jmol/j2s/core/coretext.z.js'
             ]
             for fn in extraDownloads:
                 os.system('cd %s; wget --mirror -p --convert-links -P . -r --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 5 https://%s/%s'%\
                           (self.protocol._getExtraPath(),CQUARKSERVER,fn))
         fnBaseDir = self.getResultsDir()
     if fnBaseDir:
         url = os.path.abspath(os.path.join(fnBaseDir, "index.html"))
         pwutils.runJob(
             None, "python",
             Plugin.getPluginHome('utils/showZLPredictResults.py') + " " +
             url)
         #webbrowser.open_new_tab(url)
         if not hasattr(self.protocol, "outputPdb_1"):
             for fn in Path(fnBaseDir).rglob('model*.pdb'):
                 self.constructOutput(str(fn))
     return views
Esempio n. 11
0
def runGempicker(micName, workingDir, useGPU, args):
    # We convert the input micrograph on demand if not in .mrc
    outMic = os.path.join(workingDir, pwutils.replaceBaseExt(micName, 'mrc'))
    if micName.endswith('.mrc'):
        pwutils.createLink(micName, outMic)
    else:
        em.ImageHandler().convert(micName, outMic)

    refDir = join(workingDir, 'templates')
    maskSchDir = join(workingDir, 'maskSch')
    args += ' --dirTgt=%s --dirSch=%s --dirMskSch=%s ' % (workingDir, refDir,
                                                          maskSchDir)
    # Run Gempicker:
    for mode in [0, 1]:
        pwutils.runJob(None, getProgram(useGPU), args + ' --mode=%d' % mode)
    # After picking we can remove the temporary file.
    pwutils.cleanPath(outMic)
Esempio n. 12
0
def runProgram(program, params):
    env = None

    if program.startswith('xmipp'):
        import pyworkflow.em.packages.xmipp3 as xmipp3
        env = xmipp3.getEnviron()
    if program.startswith('relion'):
        import pyworkflow.em.packages.relion as relion
        env = relion.getEnviron()
    elif (program.startswith('e2') or program.startswith('sx')):
        import pyworkflow.em.packages.eman2 as eman2
        env = eman2.getEnviron()
    elif program.startswith('b'):
        import pyworkflow.em.packages.bsoft as bsoft
        env = bsoft.getEnviron()

    pwutils.runJob(None, program, params, env=env)
Esempio n. 13
0
def runProgram(program, params):
    env = None

    if program.startswith('xmipp'):
        import pyworkflow.em.packages.xmipp3 as xmipp3
        env = xmipp3.getEnviron()
    if program.startswith('relion'):
        import pyworkflow.em.packages.relion as relion
        env = relion.getEnviron()
    elif (program.startswith('e2') or
              program.startswith('sx')):
        import pyworkflow.em.packages.eman2 as eman2
        env = eman2.getEnviron()
    elif program.startswith('b'):
        import pyworkflow.em.packages.bsoft as bsoft
        env = bsoft.getEnviron()

    pwutils.runJob(None, program, params, env=env)
Esempio n. 14
0
def runGempicker(micName, workingDir, useGPU, args, log=None):
    # We convert the input micrograph on demand if not in .mrc
    outMic = os.path.join(workingDir, pwutils.replaceBaseExt(micName, 'mrc'))
    if micName.endswith('.mrc'):
        pwutils.createLink(micName, outMic)
    else:
        em.ImageHandler().convert(micName, outMic)

    refDir = join(workingDir, 'templates')
    maskSchDir = join(workingDir, 'maskSch')
    args += ' --dirTgt=%s --dirSch=%s --dirMskSch=%s ' % (workingDir,
                                                          refDir, maskSchDir)
    # Run Gempicker:
    for mode in [0, 1]:
        pwutils.runJob(log, getProgram(useGPU), args + ' --mode=%d' % mode,
                       env=getEnviron())
    # After picking we can remove the temporary file.
    pwutils.cleanPath(outMic)
    def test_AngBreakSymmetry(self):
        from tempfile import NamedTemporaryFile
        import pyworkflow.em.metadata as md
        
        fileTmp = NamedTemporaryFile(delete=False)
        partSet = SetOfParticles(filename=fileTmp.name)
        partSet.setAlignment(ALIGN_PROJ)
        # Populate the SetOfParticles with  images
        # taken from images.mrc file
        # and setting the previous alignment parameters
        
        m = np.array([[ 0.71461016, 0.63371837, -0.29619813, 15],
                      [ -0.61309201, 0.77128059, 0.17101008, 25],
                      [ 0.33682409, 0.059391174, 0.93969262, 35],
                      [ 0,          0,           0,           1]])
        p = Particle()
        p.setLocation(1, "kk.mrc")

        p.setTransform(Transform(m))
        partSet.append(p)
        partSet.write()
        
        print "import particles"
        protImport = self.newProtocol(ProtImportParticles, 
                                         sqliteFile=fileTmp.name, samplingRate=1, importFrom=4,
                                         checkStack=False, haveDataBeenPhaseFlipped=False)
        self.launchProtocol(protImport)
        
        print "Run AngBreakSymmetry particles"
        protBreakSym = self.newProtocol(XmippProtAngBreakSymmetry, symmetryGroup="i2")
        protBreakSym.inputParticles.set(protImport.outputParticles)
        self.launchProtocol(protBreakSym)
        os.chdir(protBreakSym._getPath())
        from pyworkflow.utils import runJob
        runJob(None, 'xmipp_angular_distance',
               "--ang1 images.xmd --ang2 input_particles.xmd --sym i2 --oroot kk",
               env=getEnviron())
        mdRober = md.MetaData("kk_vec_diff_hist.txt")
        objId = mdRober.firstObject()
        count = mdRober.getValue(md.MDL_COUNT, objId)
        
        self.assertEqual(count, 1, "There was a problem with break symmetry")
        os.unlink(fileTmp.name)
Esempio n. 16
0
    def runGautomatch(cls,
                      micNameList,
                      refStack,
                      workDir,
                      extraArgs,
                      env=None,
                      runJob=None):
        """ Run Gautomatch with the given parameters.
        If micrographs are not .mrc, they will be converted.
        If runJob=None, it will use pwutils.runJob.
        """
        args = ''

        ih = ImageHandler()

        for micName in micNameList:
            # We convert the input micrograph on demand if not in .mrc
            outMic = os.path.join(workDir,
                                  pwutils.replaceBaseExt(micName, 'mrc'))
            if micName.endswith('.mrc'):
                pwutils.createAbsLink(os.path.abspath(micName), outMic)
            else:
                ih.convert(micName, outMic)

        args += ' %s/*.mrc' % workDir

        if refStack is not None:
            args += ' -T %s' % refStack

        args += ' %s' % extraArgs

        environ = env if env is not None else cls.getEnviron()
        if runJob is None:
            pwutils.runJob(None, cls.getProgram(), args, env=environ)
        else:
            runJob(cls.getProgram(), args, env=environ)

        for micName in micNameList:
            outMic = os.path.join(workDir,
                                  pwutils.replaceBaseExt(micName, 'mrc'))
            # After picking we can remove the temporary file.
            pwutils.cleanPath(outMic)
Esempio n. 17
0
def convertMask(img, outputPath, newPix=None, newDim=None, threshold=True):
    """ Convert mask to mrc format read by Relion.
    Params:
        img: input image to be converted.
        outputPath: it can be either a directory or a file path.
            If it is a directory, the output name will be inferred from input
            and put into that directory. If it is not a directory,
            it is assumed is the output filename.
        newPix: output pixel size (equals input if None)
        newDim: output box size
    Return:
        new file name of the mask.
    """
    index, filename = img.getLocation()
    imgFn = locationToRelion(index, filename)
    inPix = img.getSamplingRate()

    if os.path.isdir(outputPath):
        outFn = os.path.join(outputPath, pwutils.replaceBaseExt(imgFn, 'mrc'))
    else:
        outFn = outputPath

    params = '--i %s --o %s --angpix %0.5f' % (imgFn, outFn, inPix)

    if newPix is not None:
        params += ' --rescale_angpix %0.5f' % newPix

    if newDim is not None:
        params += ' --new_box %d' % newDim

    if threshold:
        params += ' --threshold_above 1 --threshold_below 0'

    pwutils.runJob(None,
                   'relion_image_handler',
                   params,
                   env=Plugin.getEnviron())

    return outFn
Esempio n. 18
0
def _frombase(inFileName, outFileName, log, oParam=1):
    # check if maxit exists,
    # if it does not then complain
    # convert pdb to cif using maxit
    global maxitAvailable
    try:
        maxitAvailable
    except:
        if not os.path.exists(Plugin.getMaxitBin()):
            maxitAvailable = False
            # show error message
        else:
            maxitAvailable = True

    if maxitAvailable:
        args = ' -input "' + inFileName + '" -output "' + outFileName + \
               '" -o %d' % oParam
        log.info('Launching: ' + Plugin.getMaxitBin() + args)
        # run in the background
        env = getEnviron()
        pwutils.runJob(None, Plugin.getMaxitBin(), args, env=env)
    else:
        # this is not the ideal conversion but it is better
        # than nothing
        aSH = AtomicStructHandler()
        aSH.read(inFileName)
        aSH.write(outFileName)
        # show error message
        print(
            pwutils.redStr(
                "Please, install maxit with the command 'scipion installb maxit'"
            ))
        print(
            pwutils.redStr(
                "and restart scipion. Packages bison and flex are needed."))
        print(
            pwutils.redStr("If maxit is installed check %s in scipion.conf" %
                           MAXIT_HOME))
Esempio n. 19
0
def runProgram(program, params):
    """ Runs a em program setting its environment matching a prefix"""
    env = None

    # Allow passing absolute paths
    programName = basename(program)

    from pwem import Domain
    if programName.startswith('xmipp'):
        xmipp3 = Domain.getPlugin('xmipp3').Plugin
        env = xmipp3.getEnviron()
    if programName.startswith('relion'):
        relion = Domain.getPlugin("relion").Plugin
        env = relion.getEnviron()
        print(env)
    elif (programName.startswith('e2') or programName.startswith('sx')):
        eman2 = Domain.importFromPlugin('eman2', 'Plugin')
        env = eman2.getEnviron()
    elif programName.startswith('b'):
        bsoft = Domain.importFromPlugin('bsoft', 'Plugin')
        env = bsoft.getEnviron()

    pwutils.runJob(None, program, params, env=env)
    def _viewResults(self, e=None):
        views = []
        i = self.pose.get()
        fnPose = None
        for small in self.protocol.outputSmallMolecules:
            if small.getObjId() == i:
                fnPose = small.poseFile.get()
                break
        if fnPose:
            i = int(fnPose.split('@')[0])
            fnPv = self.protocol.outputPoses.getFileName()
            fnPose = self.protocol._getTmpPath('posei.maegz')
            pwutils.runJob(None, schrodinger_plugin.getHome('utilities/maesubset'),
                           "-n %d:%d %s -o %s" % (i, i, fnPv, fnPose))
            fnStruct = self.protocol.inputGrid.get().structureFile.get()
            fnBoth = self.protocol._getTmpPath('pv.maegz')
            pwutils.runJob(None, schrodinger_plugin.getHome('utilities/structcat'),
                           "-imae %s -imae %s -o %s" % (fnPose,fnStruct,fnBoth))

            pwutils.runJob(None, schrodinger_plugin.getHome('maestro'), fnBoth,
                           env=schrodinger_plugin.getEnviron())
        return views
Esempio n. 21
0
 def __runXmippProgram(self, program, args):
     """ Internal shortcut function to launch a Xmipp program. """
     import pyworkflow.em.packages.xmipp3 as xmipp3
     xmippEnv = xmipp3.getEnviron()
     runJob(None, program, args, env=xmippEnv)        
Esempio n. 22
0
def runScript(inputScript, ext, log=None, cwd=None):
    scriptName = removeBaseExt(inputScript)
    args = " %s @%s" % (ext, scriptName)
    runJob(log, SPIDER, args, env=dict(environment), cwd=cwd)
Esempio n. 23
0
def projectPhantom(featFileName, paramFileName, particlesFileName):
    args = "-i %s -o %s" % (featFileName, particlesFileName)
    args += " --params %s" % paramFileName
    runJob(None, "xmipp_phantom_project", args, env=Plugin.getEnviron())
Esempio n. 24
0
 def show(self):
     pwutils.runJob(None, '', self._cmd, env=Vmd.getEnviron())
Esempio n. 25
0
 def show(self):
     runJob(None, '', self._cmd, env=getVmdEnviron())
Esempio n. 26
0
def runXmippProgram(program, args=""):
    """ Internal shortcut function to launch a Xmipp program. """
    runJob(None, program, args, env=getEnviron())
Esempio n. 27
0
 def show(self):
     runJob(None, '', self._cmd, env=getVmdEnviron())
Esempio n. 28
0
# *
# **************************************************************************
"""
Launch main project window 
"""

import sys
import pyworkflow.utils as pwutils

if __name__ == '__main__':

    program = sys.argv[1]
    params = ' '.join('"%s"' % x for x in sys.argv[2:])

    env = None

    if program.startswith('xmipp'):
        import pyworkflow.em.packages.xmipp3 as xmipp3
        env = xmipp3.getEnviron()
    if program.startswith('relion'):
        import pyworkflow.em.packages.relion as relion
        env = relion.getEnviron()
    elif (program.startswith('e2') or program.startswith('sx')):
        import pyworkflow.em.packages.eman2 as eman2
        env = eman2.getEnviron()
    elif program.startswith('b'):
        import pyworkflow.em.packages.bsoft as bsoft
        env = bsoft.getEnviron()

    pwutils.runJob(None, program, params, env=env)
Esempio n. 29
0
 def runXmippProgram(cls, program, args=""):
     """ Internal shortcut function to launch a Xmipp program. """
     pwutils.runJob(None, program, args, env=cls.getEnviron())
Esempio n. 30
0
 def runChimeraProgram(cls, program, args="", cwd=None):
     """ Internal shortcut function to launch chimera program. """
     env = cls.getEnviron()
     pwutils.runJob(None, program, args, env=env, cwd=cwd)
Esempio n. 31
0
def runCCP4Program(program, args="", extraEnvDict=None, cwd=None):
    """ Internal shortcut function to launch a CCP4 program. """
    env = Plugin.getEnviron()
    if extraEnvDict is not None:
        env.update(extraEnvDict)
    pwutils.runJob(None, program, args, env=env, cwd=cwd)
Esempio n. 32
0
 def runProgram(cls, program=None, args="", cwd=None):
     """ Internal shortcut function to launch chimera program. """
     prog = program or cls.getProgram()
     pwutils.runJob(None, prog, args, env=cls.getEnviron(),
                    cwd=cwd)
Esempio n. 33
0
"""

import sys
import pyworkflow.utils as pwutils



if __name__ == '__main__':

    program = sys.argv[1]
    params = ' '.join('"%s"' % x for x in sys.argv[2:])
    
    env = None
    
    if program.startswith('xmipp'):
        import pyworkflow.em.packages.xmipp3 as xmipp3
        env = xmipp3.getEnviron()
    if program.startswith('relion'):
        import pyworkflow.em.packages.relion as relion
        env = relion.getEnviron()        
    elif (program.startswith('e2') or 
          program.startswith('sx')):
        import pyworkflow.em.packages.eman2 as eman2
        env = eman2.getEnviron()
    elif program.startswith('b'):
        import pyworkflow.em.packages.bsoft as bsoft
        env = bsoft.getEnviron()
    
    pwutils.runJob(None, program, params, env=env)
         
Esempio n. 34
0
def runScript(inputScript, ext, log=None, cwd=None):
    scriptName = removeBaseExt(inputScript)
    args = " %s @%s" % (ext, scriptName)
    runJob(log, SPIDER, args, env=dict(environment), cwd=cwd)
    def _viewResults(self, e=None):
        import os
        views = []
        fnBaseDir = self.getResultsDir()
        if not fnBaseDir:
            if os.path.exists(self.protocol._getExtraPath(SERVERDIR)):
                os.system("rm -rf %s" % self.protocol._getExtraPath(SERVERDIR))
            url = self.url.get().strip()
            if url.endswith('/'):
                url = url[:-1]
            includeDirs = '-I site_media/jsmol -I site_media/jsmol/j2s/core -I StructPredV2/myjobs'
            os.system('cd %s; wget %s --mirror -p --convert-links -P . -r --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 5 %s'%\
                      (self.protocol._getExtraPath(),includeDirs,url))
            fnResult = os.path.join(
                self.protocol._getExtraPath(SERVERDIR, 'StructPredV2',
                                            'myjobs',
                                            os.path.split(url)[1]))
            pwutils.createLink(
                fnResult,
                os.path.join(
                    self.protocol._getExtraPath(SERVERDIR, 'StructPredV2',
                                                'myjobs', 'index.html')))
            extraDownloads = [
                'site_media/jsmol/j2s/core/package.js',
                'site_media/jsmol/j2s/core/core.z.js',
                'site_media/jsmol/j2s/core/corescript.z.js',
                'site_media/jsmol/j2s/core/corescript2.z.js',
                'site_media/jsmol/j2s/core/corestate.z.js',
                'site_media/jsmol/j2s/core/coretext.z.js',
                'site_media/jsmol/j2s/core/corezip.z.js',
                'site_media/jsmol/j2s/core/coremenu.z.js',
                'site_media/jsmol/j2s/core/corebio.z.js',
                'site_media/jsmol/j2s/J/shape/Measures.js',
                'site_media/jsmol/j2s/J/shape/Mesh.js',
                'site_media/jsmol/j2s/J/render/MeasuresRenderer.js',
                'site_media/jsmol/j2s/J/render/MeshRenderer.js',
                'site_media/jsmol/j2s/J/util/Hermite.js',
                'site_media/jsmol/j2s/J/thread/SpinThread.js',
                'site_media/jsmol/j2s/J/g3d/HermiteRenderer.js'
            ]
            for fn in extraDownloads:
                os.system('cd %s; wget --mirror -p --convert-links -P . -r --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 5 http://%s/%s'%\
                          (self.protocol._getExtraPath(),SERVERDIR,fn))
            fh = open(fnResult, encoding="utf-8")
            for line in fh.readlines():
                if 'function loadSummaryPicture' in line:
                    tokens = line.split('function loadSummaryPicture')
                    otherId = tokens[1].split('(')[0]
                    fnSummary = os.path.join(
                        self.protocol._getExtraPath(
                            SERVERDIR, 'StructPredV2', 'myjobs',
                            '%ssummary_data' % otherId))
                    os.system('cd %s; wget --mirror -p --convert-links -P . -r --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 5 http://%s/%s'%\
                              (self.protocol._getExtraPath(),SERVERDIR,'StructPredV2/myjobs/%ssummary_data'%otherId))
                    urlId = url.split("_")[1]
                    pwutils.createLink(
                        fnSummary,
                        os.path.join(
                            self.protocol._getExtraPath(
                                SERVERDIR, 'StructPredV2', 'myjobs',
                                '%s.all_in_one.zip' % urlId)))
                    fnPDB = os.path.join(
                        self.protocol._getExtraPath(
                            SERVERDIR, 'StructPredV2', 'myjobs',
                            '%ssummary_pdb_image' % otherId))
                    os.system('cd %s; wget --mirror -p --convert-links -P . -r --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 5 http://%s/%s'%\
                              (self.protocol._getExtraPath(),SERVERDIR,'StructPredV2/myjobs/%ssummary_pdb_image'%otherId))
                    pwutils.createLink(
                        fnPDB,
                        os.path.join(
                            self.protocol._getExtraPath(
                                SERVERDIR, 'StructPredV2', 'myjobs',
                                '%s.pdb' % urlId)))
                    pwutils.createLink(
                        fnPDB, self.protocol._getExtraPath('%s.pdb' % urlId))
                if ".pdb'" in line:
                    fn = line.split(' = ')[1].replace(';', '').strip()
                    os.system('cd %s; wget --mirror -p --convert-links -P . -r --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 5 http://%s/%s.gz' % \
                        (self.protocol._getExtraPath(), SERVERDIR, fn))
                    fn = fn.replace("'", "")[1:]
                    fnDomain = self.protocol._getExtraPath(
                        os.path.split(fn)[1] + ".gz")
                    pwutils.copyFile(
                        self.protocol._getExtraPath(SERVERDIR + "/" + fn +
                                                    ".gz"), fnDomain)
                    os.system('cd %s; gunzip %s' %
                              (self.protocol._getExtraPath(),
                               os.path.split(fnDomain)[1]))
            fh.close()
            os.system('rm %s/wget-log*' % self.protocol._getExtraPath())

            fnBaseDir = self.getResultsDir()
        if fnBaseDir:
            url = os.path.abspath(os.path.join(fnBaseDir, "index.html"))
            pwutils.runJob(
                None, "python",
                Plugin.getPluginHome('utils/showRaptorXResults.py') + " " +
                url)
            if not hasattr(self.protocol, "outputPdb"):
                for fn in glob.glob(self.protocol._getExtraPath('*.pdb')):
                    suffix = ''
                    fnBase = os.path.split(fn)[1]
                    if '_' in fnBase:
                        suffix = '_Domain%s' % fnBase.split('_')[1].replace(
                            '.pdb', '')
                    self.constructOutput(fn, suffix)
        return views
Esempio n. 36
0
def runXmippProgram(program, args=""):
    """ Internal shortcut function to launch a Xmipp program. """
    runJob(None, program, args, env=getEnviron())
Esempio n. 37
0
def runScript(inputScript, log=None, cwd=None):
    args = " %s" % inputScript
    shellPath = '/bin/bash'
    runJob(log, shellPath, args, env=imagic.Plugin.getEnviron(), cwd=cwd)
Esempio n. 38
0
def runScript(inputScript, log=None, cwd=None):
    args = " %s" % inputScript
    shellPath = '/bin/bash'
    runJob(log, shellPath, args, env=getEnviron(), cwd=cwd)