Cppxfel Installation

From cctbx_xfel
Revision as of 23:06, 25 November 2015 by Helenginn (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

This details the installation instructions for cppxfel on Linux and Mac OS X. These installation instructions are not finished and will not currently result in a working version of cppxfel.

Installing the boost libraries

The boost library is a dependency of cppxfel allowing it to run on multiple threads from within C++. Either download source and compile from boost website, or if you have user privileges, you can use a package manager.

With user privileges

On CentOS:

yum install boost boost-devel

On Ubuntu:

apt-get install libboost-all-dev

On Mac OS X, install brew, and then:

brew install boost
CentOS Ubuntu Mac OS X
yum install boost boost-devel apt-get install libboost-all-dev Install brew, then: brew install boost

We need to make sure the boost library is visible to the DIALS/cppxfel installation. To see where the boost library was installed:

locate libboost_thread-mt.so

This will show a directory e.g.

/usr/lib64/libboost_thread-mt.so

This should be set to the environment variable BOOST_LOCATION.

Bash shell Csh shell
export BOOST_LOCATION="/usr/lib64/" setenv BOOST_LOCATION /usr/lib64

Without user privileges

DIALS distribution

Download the DIALS distribution for your flavour of OS from [the DIALS website]. Extract the dials-installer-dev to a new location. Navigate into this directory.

cd dials-installer-dev

Start the install command to a new directory to which you have write access.

./install --prefix=/absolute/path/to/dials

cppxfel distribution

The cppxfel source code must be downloaded into the modules directory.

cd /absolute/path/to/dials/modules

The repository can be cloned from the GitHub link for cppxfel.

git clone https://github.com/cppxfel/cppxfel.git

The DIALS distribution must be configured to compile the cppxfel code, and then the distribution must be compiled.

libtbx.configure cppxfel
cd ../build
make

Set the paths to the DIALS and cppxfel command line tools (bash):

. /absolute/path/to/dials/build/setpaths.sh

Bash shell Csh shell
. /absolute/path/to/dials/build/setpaths.sh source /absolute/path/to/dials/build/setpaths.csh

This needs to be repeated every time a new shell is started. Alternatively, place this in your appropriate file (bash)

Bash shell Csh shell
test -r /absolute/path/to/dials/build/setpaths.sh && \

. /absolute/path/to/dials/build/setpaths.sh

test -r /absolute/path/to/dials/build/setpaths.csh && \

source /absolute/path/to/dials/build/setpaths.csh

to ~/.bashrc to ~/.cshrc

Confirm that cppxfel runs:

cppxfel.run

The output should look something like this:

Welcome to cppxfel version 1.0!
Please refer to & cite paper in Journal of Applied Crystallography (unpublished)

Command order for regular structure solution:
	cppxfel.run_dials shot*.pickle
	cppxfel.input_gen
	cppxfel.run -i integrate.txt
	cppxfel.run -i refine.txt
	cppxfel.run -i merge.txt

Other functions for assessing data quality:

Correlation between two MTZ files:

	cppxfel.run -cc firstFile.mtz secondFile.mtz [ambiguity] [lowRes] [highRes] [bins]

ambiguity: 0, 1, 2 or 3 - will compare different indexing solutions where the Bravais lattice symmetry is higher than that of the point group for certain space groups. Default 0
lowRes and highRes: set to resolution in Angstroms to bound the results, or set to 0 to take lowest/highest resolution data. Default 0, 0
bins: number of bins to report correlation statistics. Default 20.

Partiality CSV files:

	cppxfel.run -partiality reference.mtz ref-img-shot-number.mtz [highRes]

highRes: 0, 1, 2 or 3 - highest resolution reflection to report results on. Default 1.4
This outputs partiality_[m].csv where m is bin number, which can be imported into other graphing softwares such as R.

Merging statistics:

	cppxfel.run -rpim unmerged_file.mtz [lowRes] [highRes] [bins]
	cppxfel.run -rmeas unmerged_file.mtz [lowRes] [highRes] [bins]
	cppxfel.run -rmerge unmerged_file.mtz [lowRes] [highRes] [bins]

lowRes and highRes: set to resolution in Angstroms to bound the results, or set to 0 to take lowest/highest resolution data. Default 0, 0
bins: number of bins to report correlation statistics. Default 20.

If you see this, cppxfel has been installed. A pointer to the CCP4 symmetry libraries is required.

CCP4 Symmetry libraries

The cppxfel distribution requires the CCP4 symmetry libraries. This needs to be pointed to by the SYMINFO environment variable. To set this:

Bash shell Csh shell
export SYMINFO="/absolute/path/to/cctbx/modules/ccp4io/libccp4/data/syminfo.lib" setenv SYMINFO /absolute/path/to/cctbx/modules/ccp4io/libccp4/data/syminfo.lib

This will prevent run-time errors from the CCP4 library functions not being able to find its symmetry information library.

Next steps

Try running the tutorial on a set of 1000 images from CPV, starting with indexing.