#include "mothur.h"
#include "command.hpp"
-#include "globaldata.hpp"
#include "validcalculator.h"
#include "dist.h"
#include "sequencedb.h"
+
class DistanceCommand : public Command {
public:
- DistanceCommand();
- ~DistanceCommand() {};
+ DistanceCommand(string);
+ ~DistanceCommand();
int execute();
+ void help();
private:
- GlobalData* globaldata;
- ValidCalculators* validCalculator;
+ struct linePair {
+ int start;
+ int end;
+ };
+
Dist* distCalculator;
- SequenceDB* seqDB;
- ofstream out, phylipOut;
- ifstream in;
- string outputFileName;
- string countends;
+ SequenceDB alignDB;
+
+ string countends, output, fastafile, calc, outputDir;
int processors;
float cutoff;
+ map<int, int> processIDS; //end line, processid
+ vector<linePair*> lines;
+
+ bool abort;
+ vector<string> Estimators; //holds estimators to be used
+
+ //void appendFiles(string, string);
+ void createProcesses(string);
+ int driver(/*Dist*, SequenceDB, */int, int, string, float);
+
+ #ifdef USE_MPI
+ int driverMPI(int, int, MPI_File&, float);
+ int driverMPI(int, int, string, long&);
+ #endif
- void appendFiles(string, string);
- int driver(Dist*, SequenceDB*, int, int, string, string, float);
+ int convertMatrix(string);
+ int convertToLowerTriangle(string);
};