X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=matrixoutputcommand.h;h=a19ffc813945e7d8b9ead51a716149881091ad2f;hb=250e3b11b1c9c1e1ad458ab6c7e71ac2e67e11d9;hp=8af539ba01ae59ed07027d63f2bd9d1859b4c217;hpb=91a27e0483827c06c21c4fe89558923bbfe86573;p=mothur.git diff --git a/matrixoutputcommand.h b/matrixoutputcommand.h index 8af539b..a19ffc8 100644 --- a/matrixoutputcommand.h +++ b/matrixoutputcommand.h @@ -54,6 +54,8 @@ #include "memchord.h" #include "memeuclidean.h" #include "mempearson.h" +#include "sharedjsd.h" +#include "sharedrjsd.h" // aka. dist.shared() @@ -73,7 +75,9 @@ public: vector setParameters(); string getCommandName() { return "dist.shared"; } string getCommandCategory() { return "OTU-Based Approaches"; } + string getHelpString(); + string getOutputPattern(string); string getCitation() { return "http://www.mothur.org/wiki/Dist.shared"; } string getDescription() { return "generate a distance matrix that describes the dissimilarity among multiple groups"; } @@ -101,7 +105,7 @@ private: bool abort, allLines, subsample; set labels; //holds labels to be used - string outputFile, calc, groups, label, outputDir; + string outputFile, calc, groups, label, outputDir, mode; vector Estimators, Groups, outputNames; //holds estimators to be used int process(vector, string, string); int driver(vector, int, int, vector< vector >&); @@ -119,6 +123,7 @@ struct distSharedData { unsigned long long start; unsigned long long end; MothurOut* m; + int count; distSharedData(){} distSharedData(MothurOut* mout, unsigned long long st, unsigned long long en, vector est, vector lu) { @@ -127,6 +132,7 @@ struct distSharedData { end = en; Estimators = est; thisLookup = lu; + count = 0; } }; /**************************************************************************************************/ @@ -220,7 +226,12 @@ static DWORD WINAPI MyDistSharedThreadFunction(LPVOID lpParam){ matrixCalculators.push_back(new MemEuclidean()); }else if (pDataArray->Estimators[i] == "mempearson") { matrixCalculators.push_back(new MemPearson()); + }else if (pDataArray->Estimators[i] == "jsd") { + matrixCalculators.push_back(new JSD()); + }else if (pDataArray->Estimators[i] == "rjsd") { + matrixCalculators.push_back(new RJSD()); } + } } @@ -228,7 +239,7 @@ static DWORD WINAPI MyDistSharedThreadFunction(LPVOID lpParam){ vector subset; for (int k = pDataArray->start; k < pDataArray->end; k++) { // pass cdd each set of groups to compare - + pDataArray->count++; for (int l = 0; l < k; l++) { if (k != l) { //we dont need to similiarity of a groups to itself