1 /** 2 * Author: Mark Larkin 3 * 4 * Copyright (c) 2007 Des Higgins, Julie Thompson and Toby Gibson. 5 */ 6 /** 7 * The AlignmentSteps class is used to hold the progressive alignment steps that have 8 * been calculated from the guide tree. 9 * 10 * Note: I have pushed an empty vector onto steps, so that the steps will match up 11 * with the old sets array. 12 * 13 ***************************************************************************************/ 14 15 #ifndef ALIGNMENTSTEPS_H 16 #define ALIGNMENTSTEPS_H 17 18 #include <vector> 19 #include <string> 20 #include <iostream> 21 22 using namespace std; 23 24 namespace clustalw 25 { 26 27 class AlignmentSteps 28 { 29 public: 30 /* Functions */ AlignmentSteps()31 AlignmentSteps() : numSteps(0){steps.push_back(vector<int>());}; // Empty vector 32 void saveSet(int n, int *groups); 33 void saveSet(vector<int>* groups); 34 int getNumSteps(); 35 string getNextStep(); 36 void printAlignSteps(); getSteps()37 const vector<vector<int> >* getSteps(){return &steps;}; getStep(int i)38 vector<int>* getStep(int i){return &steps[i];}; 39 void clear(); 40 /* Attributes */ 41 42 private: 43 /* Functions */ 44 45 /* Attributes */ 46 vector<vector<int> > steps; 47 int numSteps; 48 }; 49 50 } 51 #endif 52