Skip to content

tristanic/nd_interpolation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nd_interpolation

Fast C++ N-dimensional interpolation on pre-defined data

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.

Dependencies

  • 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.

Getting started

  • 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 as test_interpolators.py and run it to test.

About

Fast C++ N-dimensional interpolation on pre-defined data

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published