provide python interpreter for mussa qui via a seperate thread
[mussa.git] / py / mussa.cpp
index a203c7a709706c2421797f76db4f3988109f440e..5f42599fb78111ea323fda0813c1dc3f43598c0f 100644 (file)
@@ -25,14 +25,14 @@ void export_mussa()
     .def("__delitem__", &std_item<Mussa::vector_sequence_type>::del)
   ;
  
-  py::class_<Mussa>("Mussa")
+  py::class_<Mussa>("_Mussa", py::no_init)
     .def("save", &Mussa::save)
     .def("load", &Mussa::load, "Load previous run analysis")
     .def("load_mupa", load_mupa_string, "Load mussa parameter file")
     .def("clear", &Mussa::clear, "Clear the current analysis")
-    .add_property("name", &Mussa::get_name, &Mussa::set_name)
-    .def("size", &Mussa::size, "Number of sequences to be used "
-                               "in this analysis")
+    .add_property("name", &Mussa::get_name, &Mussa::set_name, "Set the name of the analysis")
+    .def("size", &Mussa::size, "Number of sequences attached to "
+                               "this analysis")
     .add_property("window", &Mussa::get_window, &Mussa::set_window,
                   "the number of base pairs in the sliding window")
     .add_property("threshold", &Mussa::get_threshold, &Mussa::set_threshold,
@@ -42,11 +42,13 @@ void export_mussa()
                                    &Mussa::set_analysis_mode)
     .add_property("analysisModeName", &Mussa::get_analysis_mode_name)
     .def("analyze", &Mussa::analyze, "Run the analysis")
-    .def("paths", &Mussa::paths, py::return_internal_reference<>())
-    .def("sequences", &Mussa::sequences, py::return_internal_reference<>())
-    .def("add_sequence", append_sequence_ref)  
+    .def("paths", &Mussa::paths, py::return_internal_reference<>(), "return list of paths")
+    .def("sequences", &Mussa::sequences, py::return_internal_reference<>(), "return list of sequences")
+    .def("add_sequence", append_sequence_ref, "attach a sequence to the analysis")  
   ;
-
+  py::def("Mussa", &Mussa::init, "Construct a new Mussa object");
+  py::register_ptr_to_python< boost::shared_ptr<Mussa> >();
+  
   py::enum_<Mussa::analysis_modes>("analysis_modes")
     .value("TransitiveNway", Mussa::TransitiveNway )
     .value("RadialNway", Mussa::RadialNway )