mxCuBE stands for macromolecular xtallography customized beamline environment; the project started in 2005 at ESRF, since then it has been adopted by other institutes in Europe. In 2010, a collaboration agreement has been signed for the development of mxCuBE with the following partners:
mxCuBE consists of 2 main parts:
- a graphical user interface
- data acquisition control layer
mxCuBE GUI is built on top of the Bliss Framework, a tool developed at ESRF for building graphical interfaces based on Python 2.x and the Qt 3 toolkit, especially designed for beamline experiment control applications.
Data acquisition control is made of Hardware Objects. Hardware Objects are Python classes associated with a configuration XML file. Hardware Objects are instanciated by the Hardare Repository.
Each Hardware Object should be based on an abstract class, defining a common API for mxCuBE. Then, implementation differs at each site depending on hardware and beamline specificities.
This repository includes two submodules, for both BlissFramework and HardwareRepository. After cloning you have to initialize and update submodules:
git submodule init; git submodule update
Or alternatively you can clone the repository with the --recursive option.
Within the bin directory you can find scripts to start mxCuBE and the HWR server. By default the mxcube script loads mxcube.gui ; this file is not shipped with the repository, for the first time it has to be created by making a copy of example_mxcube.gui.
- Python >= 2.6
- PyQt 3.x
- PyQwt 5
- louie (pydispatcher)
- gevent >= 1.0RC2
- Qub
- PyChooch
- PyMca
SpecClient(http://github.com/mxcube/specclient) is an optional dependency. If it is not present, the Hardware Repository Server does not work, though. In this case it is possible to specify a directory containing the Hardware Objects XML files instead of a "host:port" string for the --hardwareRepository command line argument.
Once dependencies are satisfied, and the mxcube.gui is present, just run the mxcube script:
./bin/mxcube --hardwareRepository=<directory or host:port>
See mxcube --help for more command line arguments.