The PHENIX Environment

Back to Main

Overview

The goal of the PHENIX project is to advance automation of macromolecular structure determination. PHENIX depends on the Computational Crystallographic Toolbox (cctbx) for much of its functionality.

A central concept to PHENIX is the Project Directory. Ideally, this directory contains the input data files for the particular molecular structure of interest. This will also become the location of the Project Data Storage, the location for all data calculated by the PHENIX suite of codes. A diagrammatic representation of the PHENIX pieces is shown below.

images/pg_HDisComp.jpg

Diagrammatic representation of the interaction of the PHENIX Data Storage Server, Project Data Storage, the PHENIX GUI and the Process Masters.

The Project Data Storage (PDS) is created and accessed via the PHENIX Data Storage Server, a server that responses the requests from various clients including the GUI. The PDS server is a multi-threaded TCP socket server allowing multiple requests with negligible lag time via sockets. The port number is chosen randomly for each invocation of the PDS server.

The server provides a uniform single-point access to the project data. This helps maintain the integrity of the data. Data handling (insertion and retrieval) is bracketed by a locking mechanism to ensure only one process is interacting with that PDS object.

For purposes of distributed computing, the concept of a generalized directory is used by PHENIX to locate the PDS. To specify a connection to a PDS on a remote machine, both the machine name and the directory name on that machine are required.

Processes can be started on potentially differently machines uses the ssh protocol. These processes communicate with the PDS server for access to the PDS.

Concepts

Tasks

Tasks are the fundamental building block to the PHENIX approach to structure solution. In the journey from diffraction peaks to PDB submission, each step can be thought to be a task. These tasks are usually performed in series but parallel execution is conceivable. Often the next task to perform is determined by the success, failure or results from any number of the previous tasks.

Each task has a number of inputs and outputs. Within the PHENIX framework, inputs can be either files or objects saved in the PDS from a previous task's or tasks' calculation. Task supplied with PHENIX are available into the GUI via a menu in the left portion of the main window of the GUI.

A task is a python script. Therefore, a user can create his/her own tasks to customize the process to the problem. These task scripts can be added to the menu by placing them in a directory called phenixrc/tasks in the user's home directory. This directory can be changed in the user preferences.

Strategies

Task can be grouped into strategies. The task input, connectivity and position are included in this grouping.

There are two interfaces to strategies in the PHENIX GUI. There is strategy menu in the left portion of the main window that provides access to the strategies distributed with PHENIX. When these strategies are loaded the task inputs are not loaded. This provides a "clean slate" or template strategy for user customization.

The second interface is provided by the pull-down menu interface. This allows the user to save strategies complete with task inputs for later retrieval. These strategies are "ready-to-run". These strategies are located in the current project directory.

A user can make a strategy available via the strategy menu in the main window by placing them in a directory called phenixrc/strategies. These strategies can be loaded from the strategy menu on the left side of the main window. They are loaded as "clean slate" strategies without customized task input.

Wizards

Wizards are high-level programs that can carry out a sequence of operations such as heavy-atom solution, phasing, density modification and model-building, prompting the user for information when necessary.

Wizards can be operated in manual mode (ask lots of questions) or automatic mode (ask only when required). The user can change from manual to automatic at any time, change values of any parameter, navigate using any routines in the wizard, and start and stop while remembering what has been already done. Wizards can be run from a GUI or from scripts from the command line.

Wizards include AutoSol (heavy-atom solution through preliminary model-building), AutoBuild (iterative model-building and refinement), AutoMR (molecular replacement), and AutoLig (ligand-building).

See Quick Start with the PHENIX Wizards to get started with the wizards.

PHENIX Data Storage

Data management is the major concern of the PHENIX Data Storage (PDS). The large amount of data and the many calculations required to solve a structure require special handling. The PDS also provides a history of the solution process.

The PDS has divisions called workspaces. Each workspace is an independent data area for the running of strategies. When a strategy is run in a workspace, a copy of the strategy itself is saved to that workspace. Also any output from the strategy calculation, both data objects and printed output is saved to the workspace.

When a strategy is run from the PHENIX GUI, the GUI performs some checks before running the job. It checks to see if this strategy (including the task parameters and connectivity) has been run previously. If so it asks the user if it should do so again.

Since a strategy can be restarted from any task or restarted with differing task parameters, the PHENIX GUI also checks for these situations and asks the user to choose the same workspace or to generate a new workspace. There is also a pull-down menu option to change this behavior.

Back to Main