Thursday, 28 February 2013

Phenix nightly builds and xia2

The most recent Phenix nightly builds are including some xia2 components within them via cctbx - which is deliberate. They are however not correctly built as of last night, though Nat Echols may well have fixed this now.

Anyhow, if you update Phenix you may see errors like:

/local/phenix-1.8.2-1309/build/intel-linux-2.6-x86_64/bin/phenix
the same run of xia2 as above gave me the following:
  File "/local/xia2-0.3.5.0/xia2-0.3.5.0//Applications/xia2.py", line 32, in
    from xia2setup import write_xinfo
  File "/local/xia2-0.3.5.0/xia2-0.3.5.0/Applications/xia2setup.py", line 34, in
    from Schema.Sweep import SweepFactory
  File "/local/xia2-0.3.5.0/xia2-0.3.5.0/Schema/Sweep.py", line 36, in
    from Wrappers.XIA.Diffdump import Diffdump
  File "/local/xia2-0.3.5.0/xia2-0.3.5.0/Wrappers/XIA/Diffdump.py", line 70, in
    from dxtbx.format.Registry import Registry
  File "/local/phenix-1.8.2-1309/cctbx_project/dxtbx/__init__.py", line 8, in
    ext = boost.python.import_ext("dxtbx_ext", optional = False)
  File "/local/phenix-1.8.2-1309/cctbx_project/boost_adaptbx/boost/python.py", line 36, in import_ext
    + ["  "+p for p in sys.path]))
ImportError: __import__("dxtbx_ext"): No module named dxtbx_ext
  sys.path:
    /local/xia2-0.3.5.0/xia2-0.3.5.0/Applications
    /local/phenix-1.8.2-1309/phenix
    /local/phenix-1.8.2-1309/reel
...
    /local/phenix-1.8.2-1309/build/intel-linux-2.6-x86_64/base/lib/python2.7/site-packages/wx-2.8-gtk2-ansi
    /local/xia2-0.3.5.0/xia2-0.3.5.0/
    /local/xia2-0.3.5.0/xia2-0.3.5.0/Interfaces
    /local/xia2-0.3.5.0/xia2core-0.3.5.0/Python

If you get this there are a few solutions:

 - just rename the dxtbx directory in phenix/cctbx_project to dxtbx_ignore (which should not break Phenix)
 - recompile the module (which takes a moment as *all* of phenix is recompiled) as follows, thanks to Nat Echols:

cd  /local/phenix-1.8.2-1309/build/intel-linux-2.6-x86_64
./bin/libtbx.configure dxtbx
./bin/libtbx.scons -j X

(replace 'X' with the number of processor cores you want to use)

  - go back to using your old phenix for a moment while I add a fix to xia2 to work around this.

I should have seen this coming, but it did take me by surprise... sorry for any inconvenience.

Graeme

No comments: