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