e2ProjectManager

The e2projectmanager is a GUI project manager system for EMAN2, which guides the user through a series of steps to achieve either a single particle reconstruction or an sub tomogram average depending on the mode e2projectmanager is being used. This GUI is intended to replace the antiquated e2workflow system.

To run, simply type (in any directory):

e2projectmanager.py

If you run the project manager in a project directory, e2projectmanager will load this project. If you are not in a project directory or you want to work with a different project, simply browse to the desired directory by clicking, Project->Open Project. To edit an existing project(or configure a new project), Project->Edit Project.

e2ProjectManger can, currently, be run in two modes, SPR (Single Particle Reconstruction) and Tomo(tomographic). To change modes use the combobox above the workflow tree.

Creating a new project

To create a new project: 1) move to the desired directoty

Customizing the e2projectmanager worlflow tree:

Unlike, e2workflow.py, e2projectmanager can be easily customized. The SPR and Tomo workflow tree are constructed using the JSON files, spr.json and tomo.json, respectivly. These files reside in lib/pyemtbx or in the source code, libEM/pmconfig, and can be edited to customize the tree. The JSON file contains a list of dictionaries, which represents a toplevel(root/base) item in the workflow tree. Each dictionary must contain the following key-value pairs:

Enabling your e2program to be read by e2projectmanager:

To enable e2projectmanger to read your e2program and construct a GUI, some flags in the options code need to be set. You must use the EMAN2 parser, EMArgumentParser, a subclass of argparser. The standard key-value pairs of argparsers add_argument method can be set. In addition, in EMArgumentParser the following key-value pairs are used to build the GUI.

In addition to argparser's add_argument method, EMArgumentParser has the methods:

The add_pos_argument method has in addition to add_arguments key-value options:

The add_header method has in addition to add_arguments's key-value options:

For examples please see the programs, e2boxer.py, e2refine.py, e2ctf.py, etc

Resolving widget default values:

The widget default values are set according to the following rules:

  1. If a value for this widget(option) is found in the database, the default is set to the DB value
  2. If the mode flag is set and it has a defined default, this value will be used. For example mode="boxing['abc']" sets the default to 'abc' in mode "boxing".
  3. If a value is not in the database, the default is set to default key-value pair, listed in the options code
  4. otherwise the default=""

In addition to strings you can set mode['default'] to:

  1. self.getCS() which will set the default to the project spherical aberation
  2. self.getVoltage() which will set the default to the project voltage
  3. self.getAPIX() which will set the default to the project angstrom per pixel
  4. self.getMass() which will set the dafualt to the project mass

For example: mode="autofit['self.pm().getCS()']")