Originally designed for fast validation of molecular models against Ramachandran, rotamer and CABLAM (and future other...?) contours from MolProbity. The core classes are defined as pure header-only templates and should be readily applicable to a range of tasks with minor modification.
- a Python installation with (as a minimum) setuptools, wheel and numpy modules
- PyBind11
- The MolProbity Ramachandran, rotamer and CaBLAM contours from the Richardson lab at Duke University.
NOTE: the rota*.data files included here have been modified relative to the official ones by wrapping the axes to the range (-180..180) degrees in keeping with the Ramachandran and CaBLAM datasets. Building will work with either set, but the test rotamer values in test_interpolators.py
are based on the re-wrapped range.
test_nd_interp.cpp
contains a brief example of usage at the C++ API level. Compile it to an executable with:
gcc test_nd_interp.cpp -o test_nd_interp -pthread -std=c++11 -lstdc++ -lm -g -O2
python prepare_interpolators.py bdist_wheel
will parse the rama*.data and rota*.data files into C++ source and compile them into Python-compatible libraries. The resulting library files in build/lib... can be copied to the destination of your choice. Put them in the same directory astest_interpolators.py
and run it to test.