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()
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)
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
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)
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()
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')
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')
def getInputMicrographsPointer(self): ptr = Pointer() ptr.set(self.getInputMicrographs()) return ptr
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')