X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=heatmapsim.cpp;h=4fb3e37365fdba3dbec421a5c7495314803a6755;hb=5df1b242d9c2b604eb414da44b28de81d52567d7;hp=c68d0cc413855650efc86f2370ad7ab82508e6b7;hpb=5b9b3e01150055e3b4bb1a911ea4c61d0b755e89;p=mothur.git diff --git a/heatmapsim.cpp b/heatmapsim.cpp index c68d0cc..4fb3e37 100644 --- a/heatmapsim.cpp +++ b/heatmapsim.cpp @@ -20,20 +20,25 @@ #include "sharedbraycurtis.h" //********************************************************************************************************************** -HeatMapSim::HeatMapSim(){ +HeatMapSim::HeatMapSim(string dir) : outputDir(dir) { globaldata = GlobalData::getInstance(); + m = MothurOut::getInstance(); } //********************************************************************************************************************** -void HeatMapSim::getPic(vector lookup, vector calcs) { +vector HeatMapSim::getPic(vector lookup, vector calcs) { try { EstOutput data; vector sims; + vector outputNames; //make file for each calculator selected - for (int m = 0; m < calcs.size(); m++) { - - string filenamesvg = getRootName(globaldata->inputFileName) + lookup[0]->getLabel() + calcs[m]->getName() + ".heatmap.sim.svg"; + for (int k = 0; k < calcs.size(); k++) { + + if (m->control_pressed) { return outputNames; } + + string filenamesvg = outputDir + getRootName(getSimpleName(globaldata->inputFileName)) + lookup[0]->getLabel() + calcs[k]->getName() + ".heatmap.sim.svg"; openOutputFile(filenamesvg, outsvg); + outputNames.push_back(filenamesvg); //svg image outsvg << "\n"; @@ -57,12 +62,14 @@ void HeatMapSim::getPic(vector lookup, vector //get sim for each comparison and save them so you can find the relative similairity for(int i = 0; i < (lookup.size()-1); i++){ for(int j = (i+1); j < lookup.size(); j++){ - + + if (m->control_pressed) { outsvg.close(); return outputNames; } + vector subset; subset.push_back(lookup[i]); subset.push_back(lookup[j]); //get similairity between groups - data = calcs[m]->getValues(subset); + data = calcs[k]->getValues(subset); sims.push_back(data[0]); //save biggest similairity to set relative sim @@ -94,20 +101,20 @@ void HeatMapSim::getPic(vector lookup, vector } - + return outputNames; } catch(exception& e) { - errorOut(e, "HeatMapSim", "getPic"); + m->errorOut(e, "HeatMapSim", "getPic"); exit(1); } } //********************************************************************************************************************** -void HeatMapSim::getPic(vector< vector > dists, vector groups) { +string HeatMapSim::getPic(vector< vector > dists, vector groups) { try { vector sims; - string filenamesvg = getRootName(globaldata->inputFileName) + "heatmap.sim.svg"; + string filenamesvg = outputDir + getRootName(getSimpleName(globaldata->inputFileName)) + "heatmap.sim.svg"; openOutputFile(filenamesvg, outsvg); //svg image @@ -130,6 +137,8 @@ void HeatMapSim::getPic(vector< vector > dists, vector groups) { //get sim for each comparison and save them so you can find the relative similairity for(int i = 0; i < (dists.size()-1); i++){ for(int j = (i+1); j < dists.size(); j++){ + + if (m->control_pressed) { outsvg.close(); return filenamesvg; } float sim = 1.0 - dists[i][j]; sims.push_back(sim); @@ -161,9 +170,11 @@ void HeatMapSim::getPic(vector< vector > dists, vector groups) { outsvg << "\n\n"; outsvg.close(); + return filenamesvg; + } catch(exception& e) { - errorOut(e, "HeatMapSim", "getPic"); + m->errorOut(e, "HeatMapSim", "getPic"); exit(1); } } @@ -202,7 +213,7 @@ void HeatMapSim::printLegend(int y, float maxSim) { } catch(exception& e) { - errorOut(e, "HeatMapSim", "printLegend"); + m->errorOut(e, "HeatMapSim", "printLegend"); exit(1); } }