예제 #1
0
class CoordinatesTiltPair(TiltPairSet):
    """Represents a Coordinates Tilt Pair"""
    ITEM_TYPE = TiltPair
    
    def __init__(self, **kwargs):
        TiltPairSet.__init__(self, **kwargs)
        self._angles = SetOfAngles()
        self._micsPair = Pointer()
        
    def getAngles(self):
        return self._angles
    
    def getMicsPair(self):
        return self._micsPair.get()
    
    def setAngles(self, setAngles):
        self._angles = setAngles
        
    def setMicsPair(self, micsPair):
        self._micsPair.set(micsPair)
        
    def getFiles(self):
        filePaths = TiltPairSet.getFiles(self)
        filePaths.update(self.getAngles().getFiles())
        filePaths.update(self.getMicsPair().getFiles())
        
        return filePaths

    def _loadClassesDict(self):
        return globals()

    def close(self):
        TiltPairSet.close(self)
        self.getAngles().close()
예제 #2
0
class CoordinatesTiltPair(EMSet):
    """Represents a Coordinates Tilt Pair"""
    ITEM_TYPE = TiltPair
    
    def __init__(self, **args):
        EMSet.__init__(self, **args)
        self._tilted = None#SetOfCoordinates()
        self._untilted = None#SetOfCoordinates()
        self._angles = SetOfAngles()
        self._micsPair = Pointer()
        
    def getUntilted(self):
        return self._untilted
    
    def getTilted(self):
        return self._tilted
    
    def getAngles(self):
        return self._angles
    
    def getMicsPair(self):
        return self._micsPair.get()
    
    def setUntilted(self, untilted):
        self._untilted = untilted
        
    def setTilted(self, tilted):
        self._tilted = tilted
        
    def setAngles(self, setAngles):
        self._angles = setAngles
        
    def setMicsPair(self, micsPair):
        self._micsPair.set(micsPair)
        
    def getFiles(self):
        filePaths = set()
        filePaths.add(self.getTilted().getFiles)
        filePaths.add(self.getUntilted().getFiles)
        
        return filePaths

    def _loadClassesDict(self):
        return globals()

    def close(self):
        self._tilted.close()
        self._untilted.close()
        EMSet.close(self)
예제 #3
0
class ParticlesTiltPair(TiltPairSet):
    """Represents a Particles Tilt Pair"""
    ITEM_TYPE = TiltPair

    def __init__(self, **kwargs):
        TiltPairSet.__init__(self, **kwargs)
        self._coordsPair = Pointer()

    def getCoordsPair(self):
        return self._coordsPair.get()

    def setCoordsPair(self, coordsPair):
        self._coordsPair.set(coordsPair)

    def getFiles(self):
        filePaths = TiltPairSet.getFiles(self)
        filePaths.update(self.getCoordsPair().getFiles())

        return filePaths
예제 #4
0
class ParticlesTiltPair(EMSet):
    """Represents a Particles Tilt Pair"""
    ITEM_TYPE = TiltPair
    
    def __init__(self, **args):
        EMSet.__init__(self, **args)
        self._tilted = None#SetOfImages()
        self._untilted = None#SetOfImages()
        self._coordsPair = Pointer()
        
    def getUntilted(self):
        return self._untilted
    
    def getTilted(self):
        return self._tilted

    def getCoordsPair(self):
        return self._coordsPair.get()
        
    def setUntilted(self, untilted):
        self._untilted = untilted
        
    def setTilted(self, tilted):
        self._tilted = tilted

    def setCoordsPair(self, coordsPair):
        self._coordsPair.set(coordsPair)
                
    def getFiles(self):
        filePaths = set()
        filePaths.add(self.getTilted().getFiles)
        filePaths.add(self.getUntilted().getFiles)
        
        return filePaths    
    
    def _loadClassesDict(self):
        return globals()

    def close(self):
        self._tilted.close()
        self._untilted.close()
        EMSet.close(self)
예제 #5
0
class ParticlesTiltPair(TiltPairSet):
    """Represents a Particles Tilt Pair"""
    ITEM_TYPE = TiltPair
    
    def __init__(self, **kwargs):
        TiltPairSet.__init__(self, **kwargs)
        self._coordsPair = Pointer()
        
    def getCoordsPair(self):
        return self._coordsPair.get()
        
    def setCoordsPair(self, coordsPair):
        self._coordsPair.set(coordsPair)
                
    def getFiles(self):
        filePaths = TiltPairSet.getFiles(self)
        filePaths.update(self.getCoordsPair().getFiles())
        
        return filePaths    
        
예제 #6
0
class CoordinatesTiltPair(TiltPairSet):
    """Represents a Coordinates Tilt Pair"""
    ITEM_TYPE = TiltPair

    def __init__(self, **kwargs):
        TiltPairSet.__init__(self, **kwargs)
        self._angles = None
        self._micsPair = Pointer()

    def getAngles(self):
        return self._angles

    def getBoxSize(self):
        return self.getUntilted().getBoxSize()

    def getMicsPair(self):
        return self._micsPair.get()

    def setAngles(self, setAngles):
        self._angles = setAngles

    def setMicsPair(self, micsPair):
        self._micsPair.set(micsPair)

    def getFiles(self):
        filePaths = TiltPairSet.getFiles(self)
        filePaths.update(self.getAngles().getFiles())
        filePaths.update(self.getMicsPair().getFiles())

        return filePaths

    def _loadClassesDict(self):
        return globals()

    def close(self):
        TiltPairSet.close(self)
        if self.getAngles():
            self.getAngles().close()
예제 #7
0
def create_service_project(request):
    if request.is_ajax():
        import os
        from pyworkflow.object import Pointer
        from pyworkflow.em.protocol import ProtUnionSet, ProtImportAverages
        from pyworkflow.em.packages.xmipp3 import XmippProtRansac, XmippProtReconstructSignificant, XmippProtAlignVolumeForWeb
        from pyworkflow.em.packages.eman2 import EmanProtInitModel
        from pyworkflow.em.packages.simple import ProtPrime
        
        # Create a new project
        projectName = request.GET.get('projectName')
        
        # Filename to use as test data 
        testDataKey = request.GET.get('testData')
        
        #customMenu = os.path.join(os.path.dirname(os.environ['SCIPION_PROTOCOLS']), 'menu_initvolume.conf')
        
        manager = getServiceManager('myfirstmap')
        writeCustomMenu(manager.protocols)
        project = manager.createProject(projectName, runsView=1, 
                                        hostsConf=manager.hosts,
                                        protocolsConf=manager.protocols
                                        ) 
        
        project.getSettings().setLifeTime(14)
        project.saveSettings()
        #copyFile(customMenu, project.getPath('.config', 'protocols.conf'))
        
        # 1. Import averages
        
        # If using test data execute the import averages run
        # options are set in 'project_utils.js'
        dsMDA = DataSet.getDataSet('initial_volume')
        
        if testDataKey :
            fn = dsMDA.getFile(testDataKey)
            newFn = join(project.uploadPath, basename(fn))
            copyFile(fn, newFn)
            
            label_import = 'import averages ('+ testDataKey +')'
            protImport = project.newProtocol(ProtImportAverages, objLabel=label_import)
            protImport.filesPath.set(newFn)
            protImport.samplingRate.set(1.)
            project.launchProtocol(protImport, wait=True)
        else:
            protImport = project.newProtocol(ProtImportAverages, objLabel='import averages')
            project.saveProtocol(protImport)
            
        
        # 2a. Ransac 
        protRansac = project.newProtocol(XmippProtRansac)
        protRansac.setObjLabel('xmipp - ransac')
        protRansac.inputSet.set(protImport)
        protRansac.inputSet.setExtended('outputAverages')
        if testDataKey :
            setProtocolParams(protRansac, testDataKey)
        project.saveProtocol(protRansac)
        
        # 2b. Eman 
        protEmanInitVol = project.newProtocol(EmanProtInitModel)
        protEmanInitVol.setObjLabel('eman - initial vol')
        protEmanInitVol.inputSet.set(protImport)
        protEmanInitVol.inputSet.setExtended('outputAverages')
        if testDataKey :
            setProtocolParams(protEmanInitVol, testDataKey)
        project.saveProtocol(protEmanInitVol)
        
        # 2c. Significant 
        protSignificant = project.newProtocol(XmippProtReconstructSignificant)
        protSignificant.setObjLabel('xmipp - significant')
        protSignificant.inputSet.set(protImport)
        protSignificant.inputSet.setExtended('outputAverages')
        if testDataKey :
            setProtocolParams(protSignificant, testDataKey)
        project.saveProtocol(protSignificant)
        
        # 3. Join result volumes
        p1 = Pointer()
        p1.set(protRansac)
        p1.setExtended('outputVolumes')
        
        p2 = Pointer()
        p2.set(protEmanInitVol)
        p2.setExtended('outputVolumes')
        
        p3 = Pointer()
        p3.set(protSignificant)
        p3.setExtended('outputVolume')
        
        protJoin = project.newProtocol(XmippProtAlignVolumeForWeb)
        protJoin.setObjLabel('align volumes')
        protJoin.inputVolumes.append(p1)
        protJoin.inputVolumes.append(p2)
        protJoin.inputVolumes.append(p3)
#         protJoin.inputVolumes.append(p4)
        project.saveProtocol(protJoin)
        
        protValidate = project.newProtocol(XmippProtValidateNonTilt)
        protValidate.setObjLabel('validate nontilt')
        protValidate.inputVolumes.set(protJoin)
        protValidate.inputVolumes.setExtended('outputVolumes')
        protValidate.inputParticles.set(protImport)
        protValidate.inputParticles.setExtended('outputAverages')
        protValidate.numberOfThreads.set(8)
        if testDataKey :
            setProtocolParams(protValidate, testDataKey)
#         protJoin.inputVolumes.append(p4)
        project.saveProtocol(protValidate)
        
        
    return HttpResponse(mimetype='application/javascript')
예제 #8
0
def create_service_project(request):
    if request.is_ajax():
        import os
        from pyworkflow.object import Pointer
        from pyworkflow.em.protocol import ProtUnionSet, ProtImportAverages
        from pyworkflow.em.packages.xmipp3 import XmippProtRansac, XmippProtReconstructSignificant, XmippProtAlignVolumeForWeb
        from pyworkflow.em.packages.eman2 import EmanProtInitModel
        from pyworkflow.em.packages.simple import ProtPrime

        # Create a new project
        projectName = request.GET.get('projectName')

        # Filename to use as test data
        testDataKey = request.GET.get('testData')

        #customMenu = os.path.join(os.path.dirname(os.environ['SCIPION_PROTOCOLS']), 'menu_initvolume.conf')

        manager = getServiceManager('myfirstmap')
        writeCustomMenu(manager.protocols)
        project = manager.createProject(projectName,
                                        runsView=1,
                                        hostsConf=manager.hosts,
                                        protocolsConf=manager.protocols)

        project.getSettings().setLifeTime(336)  # 14 days * 24 hours
        project.saveSettings()
        #copyFile(customMenu, project.getPath('.config', 'protocols.conf'))

        # 1. Import averages

        # If using test data execute the import averages run
        # options are set in 'project_utils.js'
        dsMDA = DataSet.getDataSet('initial_volume')

        if testDataKey:
            fn = dsMDA.getFile(testDataKey)
            newFn = join(project.uploadPath, basename(fn))
            copyFile(fn, newFn)

            label_import = 'import averages (' + testDataKey + ')'
            protImport = project.newProtocol(ProtImportAverages,
                                             objLabel=label_import)
            protImport.filesPath.set(newFn)
            protImport.samplingRate.set(1.)
            project.launchProtocol(protImport, wait=True)
        else:
            protImport = project.newProtocol(ProtImportAverages,
                                             objLabel='import averages')
            project.saveProtocol(protImport)

        # 2a. Ransac
        protRansac = project.newProtocol(XmippProtRansac)
        protRansac.setObjLabel('xmipp - ransac')
        protRansac.inputSet.set(protImport)
        protRansac.inputSet.setExtended('outputAverages')
        if testDataKey:
            setProtocolParams(protRansac, testDataKey)
        project.saveProtocol(protRansac)

        # 2b. Eman
        protEmanInitVol = project.newProtocol(EmanProtInitModel)
        protEmanInitVol.setObjLabel('eman - initial vol')
        protEmanInitVol.inputSet.set(protImport)
        protEmanInitVol.inputSet.setExtended('outputAverages')
        if testDataKey:
            setProtocolParams(protEmanInitVol, testDataKey)
        project.saveProtocol(protEmanInitVol)

        # 2c. Significant
        protSignificant = project.newProtocol(XmippProtReconstructSignificant)
        protSignificant.setObjLabel('xmipp - significant')
        protSignificant.inputSet.set(protImport)
        protSignificant.inputSet.setExtended('outputAverages')
        if testDataKey:
            setProtocolParams(protSignificant, testDataKey)
        project.saveProtocol(protSignificant)

        # 3. Join result volumes
        p1 = Pointer()
        p1.set(protRansac)
        p1.setExtended('outputVolumes')

        p2 = Pointer()
        p2.set(protEmanInitVol)
        p2.setExtended('outputVolumes')

        p3 = Pointer()
        p3.set(protSignificant)
        p3.setExtended('outputVolume')

        protJoin = project.newProtocol(XmippProtAlignVolumeForWeb)
        protJoin.setObjLabel('align volumes')
        protJoin.inputVolumes.append(p1)
        protJoin.inputVolumes.append(p2)
        protJoin.inputVolumes.append(p3)
        #         protJoin.inputVolumes.append(p4)
        project.saveProtocol(protJoin)


#         protValidate = project.newProtocol(XmippProtValidateNonTilt)
#         protValidate.setObjLabel('validate nontilt')
#         protValidate.inputVolumes.set(protJoin)
#         protValidate.inputVolumes.setExtended('outputVolumes')
#         protValidate.inputParticles.set(protImport)
#         protValidate.inputParticles.setExtended('outputAverages')
#         protValidate.numberOfThreads.set(8)
#         if testDataKey :
#             setProtocolParams(protValidate, testDataKey)
# #         protJoin.inputVolumes.append(p4)
#         project.saveProtocol(protValidate)

    return HttpResponse(mimetype='application/javascript')
예제 #9
0
 def getInputMicrographsPointer(self):
     ptr = Pointer()
     ptr.set(self.getInputMicrographs())
     return ptr
예제 #10
0
def create_service_project(request):
    if request.is_ajax():
        
        # Create a new project
        projectName = getVarFromRequest(request, PROJECT_NAME)
        
        # Filename to use as test data 
        testDataKey = request.GET.get('testData')
        
        manager = getServiceManager(MYFIRSTMAP_SERVICE)
        writeCustomMenu(manager.protocols)
        project = manager.createProject(projectName, runsView=1, 
                                        hostsConf=manager.hosts,
                                        protocolsConf=manager.protocols,
                                        chdir=False)
        
        project.getSettings().setLifeTime(336) # 14 days * 24 hours
        project.saveSettings()
        #copyFile(customMenu, project.getPath('.config', 'protocols.conf'))
        
        # 1. Import averages
        
        # If using test data execute the import averages run
        # options are set in 'project_utils.js'
        dsMDA = DataSet.getDataSet('initial_volume')
        
        if testDataKey :
            fn = dsMDA.getFile(testDataKey)
            newFn = getImageFullPath(project.path, join(project.uploadPath, basename(fn)))
            copyFile(fn, newFn)
            
            label_import = 'import averages ('+ testDataKey +')'
            protImport = project.newProtocol(ProtImportAverages, objLabel=label_import)
            protImport.filesPath.set(newFn)
            protImport.samplingRate.set(1.)
            project.launchProtocol(protImport, wait=True, chdir=False)
        else:
            protImport = project.newProtocol(ProtImportAverages, objLabel='import averages')
            project.saveProtocol(protImport)
        
        # 2a. Ransac 
        protRansac = project.newProtocol(XmippProtRansac)
        protRansac.setObjLabel('xmipp - ransac')
        protRansac.inputSet.set(protImport)
        protRansac.inputSet.setExtended('outputAverages')
        setProtocolParams(protRansac, testDataKey)
        project.saveProtocol(protRansac)
        
        # 2b. Eman 
        protEmanInitVol = project.newProtocol(EmanProtInitModel)
        protEmanInitVol.setObjLabel('eman - initial vol')
        protEmanInitVol.inputSet.set(protImport)
        protEmanInitVol.inputSet.setExtended('outputAverages')
        setProtocolParams(protEmanInitVol, testDataKey)
        project.saveProtocol(protEmanInitVol)
        
        # 2c. Significant 
        protSignificant = project.newProtocol(XmippProtReconstructSignificant)
        protSignificant.setObjLabel('xmipp - significant')
        protSignificant.inputSet.set(protImport)
        protSignificant.inputSet.setExtended('outputAverages')
        setProtocolParams(protSignificant, testDataKey)
        project.saveProtocol(protSignificant)
        
        # 3. Join result volumes
        p1 = Pointer()
        p1.set(protRansac)
        p1.setExtended('outputVolumes')
        
        p2 = Pointer()
        p2.set(protEmanInitVol)
        p2.setExtended('outputVolumes')
        
        p3 = Pointer()
        p3.set(protSignificant)
        p3.setExtended('outputVolume')
        
        protJoin = project.newProtocol(XmippProtAlignVolumeForWeb)
        protJoin.setObjLabel('align volumes')
        protJoin.inputVolumes.append(p1)
        protJoin.inputVolumes.append(p2)
        protJoin.inputVolumes.append(p3)

        project.saveProtocol(protJoin)
        
#         protValidate = project.newProtocol(XmippProtValidateNonTilt)
#         protValidate.setObjLabel('validate nontilt')
#         protValidate.inputVolumes.set(protJoin)
#         protValidate.inputVolumes.setExtended('outputVolumes')
#         protValidate.inputParticles.set(protImport)
#         protValidate.inputParticles.setExtended('outputAverages')
#         protValidate.numberOfThreads.set(8)
#         if testDataKey :
#             setProtocolParams(protValidate, testDataKey)
# #         protJoin.inputVolumes.append(p4)
#         project.saveProtocol(protValidate)
        
        
    return HttpResponse(content_type='application/javascript')