ProSHADE  0.7.5.3 (FEB 2021)
Protein Shape Detection
pyProSHADE_bindings.cpp
Go to the documentation of this file.
1 
21 //==================================================== Include getopt_port for python
22 #if defined ( _WIN64 ) || defined ( _WIN32 )
23  #include <getopt_port/getopt.h>
24  #include <getopt_port/getopt.c>
25 #endif
26 
27 //==================================================== Include ProSHADE
28 #include "ProSHADE.hpp"
29 
30 //==================================================== Include full ProSHADE (including cpp files looks horrible, but it is the only way I can find to stop PyBind11 from complaining)
31 #include "ProSHADE_misc.cpp"
32 #include "ProSHADE_maths.cpp"
33 #include "ProSHADE_tasks.cpp"
34 #include "ProSHADE_io.cpp"
35 #include "ProSHADE_data.cpp"
36 #include "ProSHADE_symmetry.cpp"
37 #include "ProSHADE_overlay.cpp"
39 #include "ProSHADE_spheres.cpp"
40 #include "ProSHADE_mapManip.cpp"
41 #include "ProSHADE_messages.cpp"
42 #include "ProSHADE_distances.cpp"
43 #include "ProSHADE_peakSearch.cpp"
45 #include "ProSHADE.cpp"
46 
47 //==================================================== Include PyBind11 header
48 #include <pybind11/pybind11.h>
49 #include <pybind11/stl.h>
50 #include <pybind11/stl_bind.h>
51 #include <pybind11/numpy.h>
52 #include <pybind11/complex.h>
53 
54 //==================================================== Forward declarations of pyProSHADE functions
55 void add_settingsClass ( pybind11::module& pyProSHADE );
56 void add_dataClass ( pybind11::module& pyProSHADE );
57 void add_distancesClass ( pybind11::module& pyProSHADE );
58 
59 //==================================================== Remove the bindings that are not modifyable in python
60 PYBIND11_MAKE_OPAQUE ( std::vector < std::string > )
61 
62 //==================================================== Include the other codes
63 #include "pyProSHADE.cpp"
64 #include "pyProSHADE_data.cpp"
65 #include "pyProSHADE_distances.cpp"
66 
67 //==================================================== Declare the exported functions
68 PYBIND11_MODULE ( proshade, pyProSHADE )
69 {
70  //================================================ Create new, modifyable bindings
71  pybind11::bind_vector < std::vector < std::string > > ( pyProSHADE, "<VectorOfStrings class> (Use append to add entries and [] to access them)", pybind11::module_local ( true ) );
72 
73  //================================================ Set the module description
74  pyProSHADE.doc ( ) = "Protein Shape Description and Symmetry Detection (ProSHADE) python module"; // Module docstring
75 
76  //================================================ Set the module version
77  pyProSHADE.attr ( "__version__" ) = __PROSHADE_VERSION__;
78 
79  //================================================ Export the ProSHADE_Task enum
80  pybind11::enum_ < ProSHADE_Task > ( pyProSHADE, "ProSHADE_Task" )
81  .value ( "NA", NA )
82  .value ( "Distances", Distances )
83  .value ( "Symmetry", Symmetry )
84  .value ( "OverlayMap", OverlayMap )
85  .value ( "MapManip", MapManip )
86  .export_values ( );
87 
88  //================================================ Export the ProSHADE_Settings class
89  add_settingsClass ( pyProSHADE );
90  add_dataClass ( pyProSHADE );
91  add_distancesClass ( pyProSHADE );
92 }
ProSHADE_distances.cpp
This is the source file containing functions required for computation of shape distances.
ProSHADE_maths.cpp
This source file contains all the mathematical functions not simply available from elsewhere or modif...
ProSHADE_mapManip.cpp
This source file contains the functions required for internal map manipulation for various purposes.
ProSHADE_misc.cpp
This source file contains all miscellaneous functions.
ProSHADE_symmetry.cpp
This source file contains all the functions required to detect symmetry axes and types from the inver...
ProSHADE_io.cpp
This source file contains the functions required for specifc data format manipulations.
ProSHADE_data.cpp
This is the source file containing internal data representation and manipulation structures and funct...
ProSHADE_overlay.cpp
This source file contains the functions required for structure overlay computations.
ProSHADE_messages.cpp
This source file contains all user message functions.
ProSHADE_spheres.cpp
This source file contains function related to the ProSHADE_sphere class, which generally serve to pre...
ProSHADE.hpp
This is the main header file providing the main access class and its functions.
ProSHADE.cpp
This is the main source file providing the main access class and its functions.
ProSHADE_peakSearch.cpp
This source file declares functions required for peak searching and peak position optimisation.
ProSHADE_tasks.cpp
This source file contains the task functions, which drive the computation of a specific task.
ProSHADE_wignerMatrices.cpp
This source file contains all the functions required to compute the Wigner D matrices.
ProSHADE_sphericalHarmonics.cpp
This source file contains the function required to compute the spherical harmonics decompostion in Pr...