ppm3d is a 3D Point Pattern Matching package that is designed to find the closest match for a given 3D motif in a 3D point cloud. It is written in C++ and ships with a python wrapper.
- ppm3d on GitHub
This software is the implementation of the 3D point pattern matching algorithm that has been published in the following article. Please cite the following article if you use this algorithm in your research. Contact the NCSU (refer to the provided license) for commercial use.
If you are on a debian based OS, or Ubuntu, the repository ships with the compiled shared library(point_match.so
). On other linux distributions you will need to compile the package. For other OS contact the authors.
Clone the ppm3d repository from github:
$ git clone https://github.com/spatala/ppm3d
To compile the ppm3d
package:
Clone the ppm3d repository from github:
$ git clone https://github.com/spatala/ppm3d
Change your current directory to ppm3d:
$ cd /ppm3d_repo_path/ppm3d
Clean the original build:
$ make clean
Build the Repository: Contact the authors for use on mac and Windows.
$ make
Check the compilation: Up on successful compilation a shared library file named "point_match.so" will be created in this folder.
Add ppm3d to you path: if you are using bash:
$ export PATH=/ppm3d_repo_path/ppm3d:$PATH $ export PYTHONPATH="${PYTHONPATH}:/ppm3d_repo_path/ppm3d"
Call the
find_map
function from pppm3d.py to find a given set of points (model) in a 3d point target:>>> ppm3d.find_map(model, target, 3, True, weights)
Call the
absor
function to align the mapped target to the model:>>> ppm3d.absor(model, target, False, weights)
Call the
align_polys
function to perform the steps 1 and 2, combined:>>> rmsd_error, failure_flag, alignment_attributes = ppm3d.align_polys((model, target, model_weights, target_weights))
Consult the documentation for further details.
- install
GNU Compilers
from here. - install
python
from here. - install
numpy
from here. - install
setuptools
from here.
ppm3d is written by:
Copyright (c) 2018, Arash Dehghan Banadaki and Srikanth Patala.