X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=metastatscommand.cpp;h=de03dab2a147174384d3e3ffce329c1e16fa07f5;hp=33b559fc2dc358017c90fd44fe77ec0be61acb65;hb=b206f634aae1b4ce13978d203247fb64757d5482;hpb=89cfcfcc9e648d2f956f2ff419e64ba7907106d2 diff --git a/metastatscommand.cpp b/metastatscommand.cpp index 33b559f..de03dab 100644 --- a/metastatscommand.cpp +++ b/metastatscommand.cpp @@ -9,6 +9,7 @@ #include "metastatscommand.h" #include "sharedutilities.h" +#include "sharedrabundfloatvector.h" //********************************************************************************************************************** @@ -213,7 +214,7 @@ MetaStatsCommand::MetaStatsCommand(string option) { int MetaStatsCommand::execute(){ try { - if (abort == true) { if (calledHelp) { return 0; } return 2; } + if (abort == true) { if (calledHelp) { return 0; } return 2; } //just used to convert files to test metastats online /****************************************************/ @@ -221,7 +222,6 @@ int MetaStatsCommand::execute(){ convertSharedToInput = false; if (convertInputToShared) { convertToShared(sharedfile); return 0; } /****************************************************/ - designMap = new GroupMap(designfile); designMap->readDesignMap(); @@ -256,15 +256,14 @@ int MetaStatsCommand::execute(){ else if (numGroups < 2) { m->mothurOut("Not enough sets, I need at least 2 valid sets. Unable to complete command."); m->mothurOutEndLine(); m->control_pressed = true; } if(processors != 1){ - int numPairs = namesOfGroupCombos.size(); - int numPairsPerProcessor = numPairs / processors; - - for (int i = 0; i < processors; i++) { - int startPos = i * numPairsPerProcessor; - if(i == processors - 1){ - numPairsPerProcessor = numPairs - i * numPairsPerProcessor; - } - lines.push_back(linePair(startPos, numPairsPerProcessor)); + int remainingPairs = namesOfGroupCombos.size(); + int startIndex = 0; + for (int remainingProcessors = processors; remainingProcessors > 0; remainingProcessors--) { + int numPairs = remainingPairs; //case for last processor + if (remainingProcessors != 1) { numPairs = ceil(remainingPairs / remainingProcessors); } + lines.push_back(linePair(startIndex, numPairs)); //startIndex, numPairs + startIndex = startIndex + numPairs; + remainingPairs = remainingPairs - numPairs; } } @@ -574,9 +573,11 @@ int MetaStatsCommand::convertToShared(string filename) { string header = m->getline(in); m->gobble(in); vector groups = m->splitWhiteSpace(header); - vector newLookup; + vector newLookup; + cout << groups.size() << endl; for (int i = 0; i < groups.size(); i++) { - SharedRAbundVector* temp = new SharedRAbundVector(); + cout << "creating group " << groups[i] << endl; + SharedRAbundFloatVector* temp = new SharedRAbundFloatVector(); temp->setLabel("0.03"); temp->setGroup(groups[i]); newLookup.push_back(temp); @@ -589,9 +590,9 @@ int MetaStatsCommand::convertToShared(string filename) { string otuname; in >> otuname; m->gobble(in); otuCount++; - + cout << otuname << endl; for (int i = 0; i < groups.size(); i++) { - int temp; + double temp; in >> temp; m->gobble(in); newLookup[i]->push_back(temp, groups[i]); } @@ -654,6 +655,8 @@ int MetaStatsCommand::convertToInput(vector& subset, string } out.close(); + cout << thisfilename+".matrix" << endl; + return 0; } catch(exception& e) {