#include "command.hpp"
#include "database.hpp"
#include "alignment.hpp"
+#include "alignmentdb.h"
class AlignCommand : public Command {
public:
AlignCommand(string);
+ AlignCommand();
~AlignCommand();
+ vector<string> getRequiredParameters();
+ vector<string> getValidParameters();
+ vector<string> getRequiredFiles();
+ map<string, vector<string> > getOutputFiles() { return outputTypes; }
int execute();
void help();
private:
struct linePair {
- int start;
- int numSeqs;
- linePair(int i, int j) : start(i), numSeqs(j) {}
+ unsigned long int start;
+ unsigned long int end;
+ linePair(unsigned long int i, unsigned long int j) : start(i), end(j) {}
};
vector<int> processIDS; //processid
vector<linePair*> lines;
+ bool MPIWroteAccnos;
+ map<string, vector<string> > outputTypes;
- Database* templateDB;
+ AlignmentDB* templateDB;
Alignment* alignment;
- int driver(linePair*, string, string);
- void createProcesses(string, string);
+ int driver(linePair*, string, string, string, string);
+ int createProcesses(string, string, string, string);
void appendAlignFiles(string, string);
void appendReportFiles(string, string);
- string candidateFileName, templateFileName, distanceFileName, search, align;
- float match, misMatch, gapOpen, gapExtend;
+ #ifdef USE_MPI
+ int driverMPI(int, int, MPI_File&, MPI_File&, MPI_File&, MPI_File&, vector<unsigned long int>&);
+ #endif
+
+ string candidateFileName, templateFileName, distanceFileName, search, align, outputDir;
+ float match, misMatch, gapOpen, gapExtend, threshold;
int processors, kmerSize;
+ vector<string> candidateFileNames;
+ vector<string> outputNames;
- bool abort;
+ bool abort, flip;
};
#endif