species = name;
}
-const std::string& Sequence::get_species() const
+std::string Sequence::get_species() const
{
return species;
}
const std::list<annot>& annotations() const;
const std::list<motif>& motifs() const;
void set_species(const std::string &);
- const std::string& get_species() const;
+ std::string get_species() const;
//! return a subsequence, copying over any appropriate annotation
Sequence subseq(int start=0, int count = std::string::npos) const;
#SET_SOURCE_FILES_PROPERTIES(${SOURCES} COM
- ADD_LIBRARY(_mussa MODULE ${SOURCES})
+ ADD_LIBRARY(mussa MODULE ${SOURCES})
ADD_LIBRARY(mussa_py STATIC ${SOURCES})
- ADD_CUSTOM_TARGET(_mussa.so ALL
- COMMAND cp lib_mussa.so _mussa.so
- DEPENDS _mussa)
+ ADD_CUSTOM_TARGET(mussa.so ALL
+ COMMAND cp libmussa.so mussa.so
+ DEPENDS mussa)
LINK_DIRECTORIES(${MUSSA_BINARY_DIR}/alg)
- TARGET_LINK_LIBRARIES(_mussa
+ TARGET_LINK_LIBRARIES(mussa
mussa_core
mussa_qui
${BOOST_PYTHON_LIBRARY}
IF(PYTHON_EXECUTABLE)
SET(PYTHON_TEST_DIR ${CMAKE_SOURCE_DIR}/py/test/)
- ADD_TEST(sequence ${PYTHON_EXECUTABLE} ${PYTHON_TEST_DIR}/TestSequence.py)
+ ADD_TEST(sequence_py
+ ${PYTHON_EXECUTABLE} ${PYTHON_TEST_DIR}/TestSequence.py)
ENDIF(PYTHON_EXECUTABLE)
#ELSE(BOOST_PYTHON_LIB)
#ENDIF(BOOST_PYTHON_LIB)
void export_sequence();
void export_mussa_window();
-BOOST_PYTHON_MODULE(_mussa)
+BOOST_PYTHON_MODULE(mussa)
{
export_conserved_path();
export_glsequence();
#include <boost/python.hpp>
+#include <boost/iterator.hpp>
#include <boost/python/return_internal_reference.hpp>
#include <boost/python/return_by_value.hpp>
#include <boost/python/return_value_policy.hpp>
#include <string>
#include "alg/glsequence.hpp"
+PyObject* seq_to_string(const Sequence& s) {
+ ::PyString_FromStringAndSize(s.data(), s.size());
+}
+
void export_sequence()
{
class_<Sequence>("Sequence")
.def(init<std::string>())
- //.def("__str__", &Sequence::get_seq, return_value_policy<return_by_value>())
+ .def("__str__", &seq_to_string)
.def("size", &Sequence::size)
.def("__len__", &Sequence::size)
.add_property("header", &Sequence::get_header, &Sequence::set_header)
- //.add_property("seq", &Sequence::get_seq, &Sequence::set_seq)
+ .add_property("species", &Sequence::get_species, &Sequence::set_species)
.def("rcseq", &Sequence::rev_comp, return_value_policy<return_by_value>())
;
}
self.failUnless(len(seq_text) == len(s))
self.failUnless(len(s) == s.size())
self.failUnless(str(s) == seq_text)
-
+ self.failUnless(str(s) == seq_text)
+
+ def testNames(self):
+ seq_text = "AAGGCCTT"
+ header_text = "hello"
+ species = "Goo Gooerific"
+
+ s = mussa.Sequence(seq_text)
+
+ s.header = header_text
+ s.species = species
+ self.failUnless(s.header == header_text)
+ self.failUnless(s.species == species)
+
def suite():
return unittest.makeSuite(TestSequence, 'test')