def run_scipion_qc(movie_file): manager = Manager() project = manager.loadProject(PROJECT) path, pattern = os.path.split(movie_file) add_movies = project.newProtocol( ProtImportMovies, filesPath=path, filesPattern=pattern, voltage=VOLTAGE, samplingRate=SAMPLING_RATE, ) project.launchProtocol(add_movies, wait=True) align_movies = project.newProtocol( ProtMovieAlignment, inputMovies=add_movies.outputMovies, ) project.launchProtocol(align_movies, wait=True) find_ctf = project.newProtocol( ProtCTFFind, inputMicrographs=align_movies.outputMicrographs, ) project.launchProtocol(find_ctf, wait=False)
class ProjectsView(tk.Frame): def __init__(self, parent, windows, **args): tk.Frame.__init__(self, parent, bg='white', **args) self.windows = windows self.manager = windows.manager self.root = windows.root #tkFont.Font(size=12, family='verdana', weight='bold') bigSize = pwgui.cfgFontSize + 2 smallSize = pwgui.cfgFontSize - 2 fontName = pwgui.cfgFontName self.projNameFont = tkFont.Font(size=bigSize, family=fontName, weight='bold') self.projDateFont = tkFont.Font(size=smallSize, family=fontName) self.projDelFont = tkFont.Font(size=smallSize, family=fontName, weight='bold') self.manager = Manager() btn = HotButton(self, text=Message.LABEL_CREATE_PROJECT, font=self.projNameFont, command=self._onCreateProject) btn.grid(row=0, column=0, sticky='nw', padx=10, pady=10) self.columnconfigure(0, weight=1) self.rowconfigure(1, weight=1) text = TaggedText(self, width=40, height=15, bd=0, bg='white') text.grid(row=1, column=0, sticky='news') self.createProjectList(text) text.setReadOnly(True) self.text = text def createProjectList(self, text): """Load the list of projects""" r = 0 text.setReadOnly(False) text.clear() parent = tk.Frame(text, bg='white') parent.columnconfigure(0, weight=1) colors = ['white', '#EAEBFF'] for i, p in enumerate(self.manager.listProjects()): try: project = self.manager.loadProject(p.getName(), chdir=False) # Add creation time to project info p.cTime = project.getCreationTime() frame = self.createProjectLabel(parent, p, color=colors[i % 2]) frame.grid(row=r, column=0, padx=10, pady=5, sticky='new') r += 1 except Exception, ex: print "ERROR loading project: %s" % p.getName() print ex text.window_create(tk.INSERT, window=parent) text.bindWidget(parent) text.setReadOnly(True)
def __init__(self): projName = self.__class__.__name__ manager = Manager() if manager.hasProject(projName): self.project = manager.loadProject(projName) else: self.project = manager.createProject(projName) # Use graph view as default settings = self.project.getSettings() settings.setRunsView(1) # graph view settings.write() self.loadWorkflow()
class ProjectsView(tk.Frame): def __init__(self, parent, windows, **args): tk.Frame.__init__(self, parent, bg='white', **args) self.windows = windows self.manager = windows.manager self.root = windows.root #tkFont.Font(size=12, family='verdana', weight='bold') bigSize = pwgui.cfgFontSize + 2 smallSize = pwgui.cfgFontSize - 2 fontName = pwgui.cfgFontName self.projNameFont = tkFont.Font(size=bigSize, family=fontName, weight='bold') self.projDateFont = tkFont.Font(size=smallSize, family=fontName) self.projDelFont = tkFont.Font(size=smallSize, family=fontName, weight='bold') self.manager = Manager() btn = HotButton(self, text=Message.LABEL_CREATE_PROJECT, font=self.projNameFont, command=self._onCreateProject) btn.grid(row=0, column=0, sticky='nw', padx=10, pady=10) self.columnconfigure(0, weight=1) self.rowconfigure(1, weight=1) text = TaggedText(self, width=40, height=15, bd=0, bg='white') text.grid(row=1, column=0, sticky='news') self.createProjectList(text) text.setReadOnly(True) self.text = text def createProjectList(self, text): """Load the list of projects""" r = 0 text.setReadOnly(False) text.clear() parent = tk.Frame(text, bg='white') parent.columnconfigure(0, weight=1) colors = ['white', '#EAEBFF'] for i, p in enumerate(self.manager.listProjects()): try: project = self.manager.loadProject(p.getName(), chdir=False) # Add creation time to project info p.cTime = project.getCreationTime() frame = self.createProjectLabel(parent, p, color=colors[i%2]) frame.grid(row=r, column=0, padx=10, pady=5, sticky='new') r += 1 except Exception, ex: print "ERROR loading project: %s" % p.getName() print ex text.window_create(tk.INSERT, window=parent) text.bindWidget(parent) text.setReadOnly(True)
def _writeSubset(self, subset): """ Generated the output of this subset. """ newSubsetName = 'outputParticles_%03d' % self._counter self.info("Creating new subset: %s" % newSubsetName) subset.write() self._defineOutputs(**{newSubsetName: subset}) self._defineTransformRelation(self.inputParticles, subset) # The following is required to commit the changes to the database self._store(subset) subset.close() from pyworkflow.manager import Manager manager = Manager() project = manager.loadProject(self.getProject().getName()) input2D = self.input2dProtocol.get() copyProt = project.copyProtocol(project.getProtocol(input2D.getObjId())) copyProt.inputParticles.set(project.getProtocol(self.getObjId())) copyProt.inputParticles.setExtended(newSubsetName) project.scheduleProtocol(copyProt, self._runPrerequisites) # Next schedule will be after this one self._runPrerequisites.append(copyProt.getObjId())
argc = len(sys.argv) if argc < 3 or argc > 4: usage("Incorrect number of input parameters") projName = sys.argv[1] protId = sys.argv[2] manager = Manager() if not manager.hasProject(projName): usage("Unexistent project: %s" % pwutils.red(projName)) project = manager.loadProject(projName) prot = project.getProtocol(protId) if prot is None: usage("Unexistent protocol: %s" % protId) outputParticles = getattr(prot, 'outputParticles', None) if outputParticles is None: usage("Protocol does not have 'outputParticles'") realDims = outputParticles.getDimensions() print "Real dimensions: ", realDims print "DB dimensions: ", outputParticles.getDim()
tempSpace = "loading-%s" % now.strftime('%Y%m%d-%H%M%S') customUserData = os.path.join(os.environ['SCIPION_USER_DATA'], 'tmp', tempSpace) projectsDir = os.path.join(customUserData, 'projects') pwutils.makePath(projectsDir) print "Loading projects from:\n", projectsDir projName = os.path.basename(pathToProj) pwutils.createAbsLink(pathToProj, os.path.join(projectsDir, projName)) # Create a new project manager = Manager(SCIPION_USER_DATA=customUserData) proj = manager.loadProject(projName) projPath = manager.getProjectPath(projName) class EditorProjectWindow(ProjectWindow): def close(self, e=None): try: print "Deleting temporary folder: ", customUserData pwutils.cleanPath(customUserData) except Exception, ex: print "Error: ", ex ProjectWindow.close(self, e) projWindow = EditorProjectWindow(projPath) projWindow.show()
class ProjectsView(tk.Frame): def __init__(self, parent, windows, **args): tk.Frame.__init__(self, parent, bg='white', **args) self.windows = windows self.manager = windows.manager self.root = windows.root #tkFont.Font(size=12, family='verdana', weight='bold') bigSize = pwgui.cfgFontSize + 2 smallSize = pwgui.cfgFontSize - 2 fontName = pwgui.cfgFontName self.projNameFont = tkFont.Font(size=bigSize, family=fontName, weight='bold') self.projDateFont = tkFont.Font(size=smallSize, family=fontName) self.projDelFont = tkFont.Font(size=smallSize, family=fontName, weight='bold') self.manager = Manager() btn = HotButton(self, text=Message.LABEL_CREATE_PROJECT, font=self.projNameFont, command=self._onCreateProject) btn.grid(row=0, column=0, sticky='nw', padx=10, pady=10) self.columnconfigure(0, weight=1) self.rowconfigure(1, weight=1) text = TaggedText(self, width=40, height=15, bd=0, bg='white') text.grid(row=1, column=0, sticky='news') self.createProjectList(text) text.setReadOnly(True) self.text = text def createProjectList(self, text): """Load the list of projects""" r = 0 text.setReadOnly(False) text.clear() parent = tk.Frame(text, bg='white') parent.columnconfigure(0, weight=1) colors = ['white', '#EAEBFF'] for i, p in enumerate(self.manager.listProjects()): project = self.manager.loadProject(p.getName(), chdir=False) # Add creation time to project info p.cTime = project.getCreationTime() frame = self.createProjectLabel(parent, p, color=colors[i%2]) frame.grid(row=r, column=0, padx=10, pady=5, sticky='new') r += 1 text.window_create(tk.INSERT, window=parent) text.bindWidget(parent) text.setReadOnly(True) def createProjectLabel(self, parent, projInfo, color): frame = tk.Frame(parent, bg=color) label = tk.Label(frame, text=projInfo.projName, anchor='nw', bg=color, justify=tk.LEFT, font=self.projNameFont, cursor='hand1', width=50) label.grid(row=0, column=0, padx=2, pady=2, sticky='nw') label.bind('<Button-1>', lambda e: self.openProject(projInfo.projName)) dateMsg = '%s%s %s%s' % (Message.LABEL_MODIFIED, prettyDate(projInfo.mTime), Message.LABEL_CREATED, prettyTime(projInfo.cTime, time=False)) dateLabel = tk.Label(frame, text=dateMsg, font=self.projDateFont, bg=color) dateLabel.grid(row=1, column=0, sticky='nw') delLabel = tk.Label(frame, text=Message.LABEL_DELETE_PROJECT, font=self.projDelFont, bg=color, cursor='hand1') delLabel.grid(row=1, column=1, padx=10) delLabel.bind('<Button-1>', lambda e: self.deleteProject(projInfo.projName)) mvLabel = tk.Label(frame, text=Message.LABEL_RENAME_PROJECT, font=self.projDelFont, bg=color, cursor='hand1') mvLabel.grid(row=1, column=2) mvLabel.bind('<Button-1>', lambda e: self.renameProject(projInfo.projName)) return frame def createNewProject(self, projName, projLocation): self.manager.createProject(projName, location=projLocation) self.createProjectList(self.text) self.openProject(projName) def _onCreateProject(self, e=None): projWindow = ProjectCreateWindow("Create project", self) projWindow.show() def openProject(self, projName): from subprocess import Popen script = pw.join('apps', 'pw_project.py') Popen([os.environ['SCIPION_PYTHON'], script, projName]) def deleteProject(self, projName): if askYesNo(Message.TITLE_DELETE_PROJECT, "Project *%s*. " % projName + Message.MESSAGE_DELETE_PROJECT, self.root): self.manager.deleteProject(projName) self.createProjectList(self.text) def renameProject(self, projName): newName = askString("Rename project %s" % projName, "Enter new name:", self.root) if not newName or newName == projName: return if self.manager.hasProject(newName): showError("Rename cancelled", "Project name already exists: %s" % newName, self.root) return self.manager.renameProject(projName, newName) self.createProjectList(self.text)
parser.add_argument('project', type=str, help='Scipion project') parser.add_argument('directory', type=str, help='Directory to monitor') args = parser.parse_args() PROJECT = args.project VOLTAGE = args.voltage SAMPLING_RATE = args.sampling_rate PROCESSES = args.processes POOL = Pool(processes=PROCESSES) # Create or load project manager = Manager() if manager.hasProject(PROJECT): project = manager.loadProject(PROJECT) else: project = manager.createProject(PROJECT) # First, start up watchdog event_handler = MyEventHandler() observer = Observer() observer.schedule(event_handler, path=args.directory, recursive=False) observer.start() print('Watchdog started; to exit, press Control-C') # Second, run all existing files for f in os.listdir(args.directory): try: ext = os.path.splitext(f)[1].split('.')[1] if ext in ACCEPTED_EXTENSIONS: