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/ppm3dChange your current directory to ppm3d:
$ cd /ppm3d_repo_path/ppm3dClean the original build:
$ make cleanBuild the Repository: Contact the authors for use on mac and Windows.
$ makeCheck 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_mapfunction 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
absorfunction to align the mapped target to the model:>>> ppm3d.absor(model, target, False, weights)Call the
align_polysfunction 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 Compilersfrom here. - install
pythonfrom here. - install
numpyfrom here. - install
setuptoolsfrom here.
ppm3d is written by:
Copyright (c) 2018, Arash Dehghan Banadaki and Srikanth Patala.
