X-Git-Url: http://woldlab.caltech.edu/gitweb/?a=blobdiff_plain;f=alg%2Fmussa.hpp;h=6a0ca4eeca4743df44d7af040233d788c40ed147;hb=2534e631c7aca3a93823ea3dc868808bba6cd824;hp=64f46499b2ccd0eb450d051e219335eb59256c2e;hpb=81354ba90b6b670d361263bb3ff70bef67f83d9f;p=mussa.git diff --git a/alg/mussa.hpp b/alg/mussa.hpp index 64f4649..6a0ca4e 100644 --- a/alg/mussa.hpp +++ b/alg/mussa.hpp @@ -13,7 +13,8 @@ // ---------------------------------------- // ---------- mussa_class.hh ----------- // ---------------------------------------- -#include +#include +#include #include #include @@ -31,13 +32,19 @@ std::string int_to_str(int an_int); +class Mussa; +//! provide a simple name to point to our Mussa shared_ptr +typedef boost::shared_ptr MussaRef; + class Mussa : public QObject { Q_OBJECT signals: //! call whatever signaling system we want - void progress(const std::string& description, int cur, int max); + void progress(const QString& description, int cur, int max); + //! triggered when our state changes between unsaved(true) and saved(false) + void isModified(bool); public: typedef std::set motif_set; @@ -47,12 +54,23 @@ public: Mussa(); Mussa(const Mussa &); + //! dynamically construct a new Mussa object and return a reference to it + static MussaRef init(); + //! save all of mussa void save(boost::filesystem::path save_path=""); + //! save all of mussa + void save(const std::string& save_path) { + save(boost::filesystem::path(save_path)); + } //! save the nway comparison void save_muway(boost::filesystem::path save_path); //! load a saved analysis directory void load(boost::filesystem::path ana_path); + //! load a saved analysis + void load(const std::string& ana_path) { + load(boost::filesystem::path(ana_path)); + } // ! return path to the where the analysis is stored boost::filesystem::path get_analysis_path() const; //! set analysis path @@ -62,8 +80,16 @@ public: void clear(); //! set parameters from a file - 'mupa' ~ mussa parameters - void load_mupa_file(std::string para_file_path) { load_mupa_file(boost::filesystem::path(para_file_path));} + void load_mupa_file(const std::string& para_file_path) { + load_mupa_file(boost::filesystem::path(para_file_path)); + } void load_mupa_file(boost::filesystem::path para_file_path); + //! load mussa parameters from a stream, specifing output location + void load_mupa_stream( + std::istream & para_file, + boost::filesystem::path& file_path_base + ); + // set parameters individually (eg from user input into gui classes) //! set analysis name @@ -95,11 +121,23 @@ public: //! must be in range [threshold..window size] void set_soft_threshold(int sft_thres); int get_soft_threshold() const; + + //! should we append the window size to the analysis name + void set_append_window(bool v); + //! should we append the window size to the analysis name + bool get_append_window(); + + //! should we append the threshold to the analysis name + void set_append_threshold(bool v); + //! should we append the threshold to the analysis name + bool get_append_threshold(); void set_analysis_mode(enum analysis_modes new_ana_mode); enum analysis_modes get_analysis_mode() const; //! return a string name for an analysis mode std::string get_analysis_mode_name() const; + //! set our current dirty state + void set_dirty(bool); //! return if we have unsaved changes bool is_dirty() const; //! is there anything loaded into this analysis? @@ -122,7 +160,7 @@ public: */ void analyze(); /*! Run the nway filtering algorithm, - * this might be used when changing the soft threshhold? + * automatically called when the soft threshhold has changed? */ void nway(); @@ -181,6 +219,10 @@ public: /*! \sa Mussa::load_motifs(boost::filesystem::path) */ void load_motifs(std::istream &); + //! save motif list to the specified filename + void save_motifs(boost::filesystem::path filename); + //! save motif list to an ostream + void save_motifs(std::ostream &); //! return our motifs; const motif_set& motifs() const; @@ -230,6 +272,4 @@ public: void seqcomp(); }; -//! provide a simple name to point to our Mussa shared_ptr -typedef boost::shared_ptr MussaRef; #endif