Cppxfel Installation
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 && \
|
test -r /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.