1 #ifndef MUSSA_ALIGNED_WINDOW_H
2 #define MUSSA_ALIGNED_WINDOW_H
6 #include <boost/shared_ptr.hpp>
11 #include "alg/mussa.hpp"
12 #include "qui/IntAction.hpp"
13 #include "qui/ZoomWidget.hpp"
14 #include "qui/seqbrowser/SequenceBrowserWidget.hpp"
16 //! Show sequence alignments
17 class MussaAlignedWindow : public QMainWindow
22 //! construct an aligned window for an analysis and selected paths
23 /*! \param analysis is a shared_ptr to a mussa analysis
24 * \param paths is a set of "paths" AKA integer offsets into the sequences stored in mussa
25 * \param parent is the typical Qt pointer to a parent widget
27 MussaAlignedWindow(MussaRef analysis, const std::set<int>& paths, QWidget *parent=0);
30 //! use selected_paths[pathid] to set the starting position of our sequence
31 void setAlignment(int pathid);
32 //! toggle whether or not to show the aligned basepairs of a window
33 void toggleViewAlignment(int alignment_index);
35 //! just force updating the window
39 // figure out what Alignments we have (needed for setupAlignmentMenus)
40 void setSelectedPaths(MussaRef m, const std::set<int>& sel_paths);
45 //! set menus (must be called after setSelectedPaths)
46 void setupAlignmentMenus();
47 void computeMatchLines();
50 //std::vector<Sequence> sequences;
51 //const std::set<int>& selected_paths;
52 std::vector<ConservedPath> selected_paths;
53 std::vector<bool> view_paths;
54 SequenceBrowserWidget browser;
55 QMenu pick_align_menu;
56 QMenu view_align_menu;
58 QAction *saveBrowserPixmapAction;
60 std::vector <IntAction *> pick_actions;
61 std::vector <IntAction *> view_actions;