ProSHADE  0.7.5.4 (MAR 2021)
Protein Shape Detection
pyProSHADE_bindings.cpp
Go to the documentation of this file.
1 
21 //==================================================== Include getopt_port for python
22 #include <getopt_port/getopt_port.h>
23 #include <getopt_port/getopt_port.c>
24 
25 //==================================================== Include ProSHADE
26 #include "ProSHADE.hpp"
27 
28 //==================================================== Include full ProSHADE (including cpp files looks horrible, but it is the only way I can find to stop PyBind11 from complaining)
29 #include "ProSHADE_misc.cpp"
30 #include "ProSHADE_maths.cpp"
31 #include "ProSHADE_tasks.cpp"
32 #include "ProSHADE_io.cpp"
33 #include "ProSHADE_data.cpp"
34 #include "ProSHADE_symmetry.cpp"
35 #include "ProSHADE_overlay.cpp"
37 #include "ProSHADE_spheres.cpp"
38 #include "ProSHADE_mapManip.cpp"
39 #include "ProSHADE_messages.cpp"
40 #include "ProSHADE_distances.cpp"
41 #include "ProSHADE_peakSearch.cpp"
43 #include "ProSHADE.cpp"
44 
45 //==================================================== Include PyBind11 header
46 #include <pybind11/pybind11.h>
47 #include <pybind11/stl.h>
48 #include <pybind11/stl_bind.h>
49 #include <pybind11/numpy.h>
50 #include <pybind11/complex.h>
51 
52 //==================================================== Forward declarations of pyProSHADE functions
53 void add_settingsClass ( pybind11::module& pyProSHADE );
54 void add_dataClass ( pybind11::module& pyProSHADE );
55 void add_distancesClass ( pybind11::module& pyProSHADE );
56 
57 //==================================================== Remove the bindings that are not modifyable in python
58 PYBIND11_MAKE_OPAQUE ( std::vector < std::string > )
59 
60 //==================================================== Include the other codes
61 #include "pyProSHADE.cpp"
62 #include "pyProSHADE_data.cpp"
63 #include "pyProSHADE_distances.cpp"
64 
65 //==================================================== Declare the exported functions
66 PYBIND11_MODULE ( proshade, pyProSHADE )
67 {
68  //================================================ Create new, modifyable bindings
69  pybind11::bind_vector < std::vector < std::string > > ( pyProSHADE, "<VectorOfStrings class> (Use append to add entries and [] to access them)", pybind11::module_local ( true ) );
70 
71  //================================================ Set the module description
72  pyProSHADE.doc ( ) = "Protein Shape Description and Symmetry Detection (ProSHADE) python module"; // Module docstring
73 
74  //================================================ Set the module version
75  pyProSHADE.attr ( "__version__" ) = __PROSHADE_VERSION__;
76 
77  //================================================ Export the ProSHADE_Task enum
78  pybind11::enum_ < ProSHADE_Task > ( pyProSHADE, "ProSHADE_Task" )
79  .value ( "NA", NA )
80  .value ( "Distances", Distances )
81  .value ( "Symmetry", Symmetry )
82  .value ( "OverlayMap", OverlayMap )
83  .value ( "MapManip", MapManip )
84  .export_values ( );
85 
86  //================================================ Export the ProSHADE_Settings class
87  add_settingsClass ( pyProSHADE );
88  add_dataClass ( pyProSHADE );
89  add_distancesClass ( pyProSHADE );
90 }
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...