X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=collect.cpp;h=79e997de38bc8938bbcdb72d7134a566a7b9a2bb;hb=71c8b7190cf3a4dcedbab0273c938f6f868562bc;hp=34191a07a324fb255120b02bfabba4b56c9d0c48;hpb=4ba6188707e67c638ea5ee3c787d5d07ccd07e3e;p=mothur.git diff --git a/collect.cpp b/collect.cpp index 34191a0..79e997d 100644 --- a/collect.cpp +++ b/collect.cpp @@ -11,7 +11,7 @@ /***********************************************************************/ -void Collect::getCurve(int increment = 1){ +int Collect::getCurve(float percentFreq = 0.01){ try { RAbundVector* lookup = new RAbundVector(order->getNumBins()); SAbundVector* rank = new SAbundVector(order->getMaxRank()+1); @@ -21,9 +21,17 @@ void Collect::getCurve(int increment = 1){ for(int i=0;iregisterDisplay(displays[i]); //adds a display[i] to cdd displays[i]->init(label); //sets displays label - } + } + + //convert freq percentage to number + int increment = 1; + if (percentFreq < 1.0) { increment = numSeqs * percentFreq; } + else { increment = percentFreq; } + for(int i=0;icontrol_pressed) { delete lookup; delete rank; delete ccd; return 1; } + int binNumber = order->get(i); int abundance = lookup->get(binNumber); @@ -50,17 +58,19 @@ void Collect::getCurve(int increment = 1){ delete lookup; delete rank; delete ccd; + + return 0; } catch(exception& e) { - errorOut(e, "Collect", "getCurve"); + m->errorOut(e, "Collect", "getCurve"); exit(1); } } /***********************************************************************/ -void Collect::getSharedCurve(int increment = 1){ +int Collect::getSharedCurve(float percentFreq = 0.01){ try { - globaldata = GlobalData::getInstance(); + globaldata = GlobalData::getInstance(); vector lookup; vector subset; @@ -78,22 +88,31 @@ try { //initialize labels for output //makes 'uniqueAB uniqueAC uniqueBC' if your groups are A, B, C getGroupComb(); - groupLabel = ""; - for (int s = 0; s < groupComb.size(); s++) { - groupLabel = groupLabel + label + groupComb[s] + "\t"; - } - - //for multi displays - string groupLabelAll = groupLabel + label + "all\t"; for(int i=0;iregisterDisplay(displays[i]); //adds a display[i] to cdd + bool hasLciHci = displays[i]->hasLciHci(); + groupLabel = ""; + for (int s = 0; s < groupComb.size(); s++) { + if (hasLciHci) { groupLabel = groupLabel + label + groupComb[s] + "\t" + label + groupComb[s] + "lci\t" + label + groupComb[s] + "hci\t"; } + else{ groupLabel = groupLabel + label + groupComb[s] + "\t"; } + } + + string groupLabelAll = groupLabel + label + "all\t"; if ((displays[i]->isCalcMultiple() == true) && (displays[i]->getAll() == true)) { displays[i]->init(groupLabelAll); } else { displays[i]->init(groupLabel); } } + //convert freq percentage to number + int increment = 1; + if (percentFreq < 1.0) { increment = numSeqs * percentFreq; } + else { increment = percentFreq; } + //sample all the members for(int i=0;icontrol_pressed) { for (int j = 0; j < lookup.size(); j++) { delete lookup[j]; } delete ccd; return 1; } + //get first sample individual chosen = sharedorder->get(i); int abundance; @@ -155,10 +174,12 @@ try { for (int i = 0; i < lookup.size(); i++) { delete lookup[i]; } + + return 0; } catch(exception& e) { - errorOut(e, "Collect", "getSharedCurve"); + m->errorOut(e, "Collect", "getSharedCurve"); exit(1); } }