X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=aligncommand.h;h=d42369520f127a8ba06c1c86ae9e9929c20f4fac;hb=8dd3c225255d7084e3aff8740aa4f1f1cabb367a;hp=193eeacae57c5bb62deb844bac610b40437d14a2;hpb=d3aed959ca3b68890eeb7b815e24210bcfeb256c;p=mothur.git diff --git a/aligncommand.h b/aligncommand.h index 193eeac..d423695 100644 --- a/aligncommand.h +++ b/aligncommand.h @@ -45,9 +45,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 processIDS; //processid vector lines; @@ -61,7 +61,7 @@ private: void appendReportFiles(string, string); #ifdef USE_MPI - int driverMPI(int, int, MPI_File&, MPI_File&, MPI_File&, MPI_File&, vector&); + int driverMPI(int, int, MPI_File&, MPI_File&, MPI_File&, MPI_File&, vector&); #endif string candidateFileName, templateFileName, distanceFileName, search, align, outputDir; @@ -78,7 +78,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 +87,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; + 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) { + 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; @@ -113,6 +115,7 @@ typedef struct alignData { search = se; count = 0; kmerSize = ks; + threadID = tid; } }; @@ -144,7 +147,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); + 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;