]> git.donarmstrong.com Git - mothur.git/blobdiff - aligncommand.h
changed reading of name file to use buffered reads. note the splitAtWhiteSpace functi...
[mothur.git] / aligncommand.h
index 4a5eb11bf320a500ddfca34f0504130637fda0f0..d4b7e78ce01ba2b9e6507a2b5a502bae9dbb8b68 100644 (file)
@@ -1,6 +1,5 @@
 #ifndef ALIGNCOMMAND_H
 #define ALIGNCOMMAND_H
-
 /*
  *  aligncommand.h
  *  Mothur
@@ -10,7 +9,6 @@
  *
  */
 
-#include "mothur.h"
 #include "command.hpp"
 #include "database.hpp"
 #include "alignment.hpp"
@@ -25,7 +23,7 @@
 #include "nast.hpp"
 #include "nastreport.hpp"
 
-
+//test
 class AlignCommand : public Command {
        
 public:
@@ -45,9 +43,9 @@ public:
        
 private:
        struct linePair {
-               unsigned long int start;
-               unsigned long int end;
-               linePair(unsigned long int i, unsigned long int j) : start(i), end(j) {}
+               unsigned long long start;
+               unsigned long long end;
+               linePair(unsigned long long i, unsigned long long j) : start(i), end(j) {}
        };
        vector<int> processIDS;   //processid
        vector<linePair*> lines;
@@ -57,11 +55,10 @@ private:
        
        int driver(linePair*, string, string, string, string);
        int createProcesses(string, string, string, string);
-       void appendAlignFiles(string, string); 
        void appendReportFiles(string, string);
        
        #ifdef USE_MPI
-       int driverMPI(int, int, MPI_File&, MPI_File&, MPI_File&, MPI_File&, vector<unsigned long int>&);
+       int driverMPI(int, int, MPI_File&, MPI_File&, MPI_File&, MPI_File&, vector<unsigned long long>&);
        #endif
        
        string candidateFileName, templateFileName, distanceFileName, search, align, outputDir;
@@ -78,7 +75,8 @@ private:
 //custom data structure for threads to use.
 // This is passed by void pointer so it can be any data type
 // that can be passed using a single void pointer (LPVOID).
-typedef struct alignData {
+struct alignData {
+       string templateFileName;
        string alignFName; 
        string reportFName; 
        string accnosFName;
@@ -86,15 +84,16 @@ typedef struct alignData {
        string align;
        string search;
        bool flip;
-       unsigned long int start;
-       unsigned long int end;
+       unsigned long long start;
+       unsigned long long end;
        MothurOut* m;
        //AlignmentDB* templateDB;
        float match, misMatch, gapOpen, gapExtend, threshold;
        int count, kmerSize, threadID;
        
        alignData(){}
-       alignData(string a, string r, string ac, string f, string al, string se, int ks, MothurOut* mout, unsigned long int st, unsigned long int en, bool fl, float ma, float misMa, float gapO, float gapE, float thr, int tid) {
+       alignData(string te, string a, string r, string ac, string f, string al, string se, int ks, MothurOut* mout, unsigned long long st, unsigned long long en, bool fl, float ma, float misMa, float gapO, float gapE, float thr, int tid) {
+               templateFileName = te;
                alignFName = a;
                reportFName = r;
                accnosFName = ac;
@@ -118,7 +117,7 @@ typedef struct alignData {
 };
 
 /**************************************************************************************************/
-#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix)
 #else
 static DWORD WINAPI MyAlignThreadFunction(LPVOID lpParam){ 
        alignData* pDataArray;
@@ -145,7 +144,7 @@ static DWORD WINAPI MyAlignThreadFunction(LPVOID lpParam){
                
                pDataArray->count = pDataArray->end;
                
-               AlignmentDB* templateDB = new AlignmentDB("saved-silent", pDataArray->search, pDataArray->kmerSize, pDataArray->gapOpen, pDataArray->gapExtend, pDataArray->match, pDataArray->misMatch, pDataArray->threadID);
+               AlignmentDB* templateDB = new AlignmentDB(pDataArray->templateFileName, pDataArray->search, pDataArray->kmerSize, pDataArray->gapOpen, pDataArray->gapExtend, pDataArray->match, pDataArray->misMatch, pDataArray->threadID);
                
                //moved this into driver to avoid deep copies in windows paralellized version
                Alignment* alignment;