本文整理汇总了C++中SharedUtil::getCombos方法的典型用法代码示例。如果您正苦于以下问题:C++ SharedUtil::getCombos方法的具体用法?C++ SharedUtil::getCombos怎么用?C++ SharedUtil::getCombos使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SharedUtil
的用法示例。
在下文中一共展示了SharedUtil::getCombos方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: execute
int ParsimonyCommand::execute() {
try {
if (abort == true) { if (calledHelp) { return 0; } return 2; }
//randomtree will tell us if user had their own treefile or if they just want the random distribution
//user has entered their own tree
if (randomtree == "") {
m->setTreeFile(treefile);
TreeReader* reader;
if (countfile == "") { reader = new TreeReader(treefile, groupfile, namefile); }
else { reader = new TreeReader(treefile, countfile); }
T = reader->getTrees();
ct = T[0]->getCountTable();
delete reader;
if(outputDir == "") { outputDir += m->hasPath(treefile); }
map<string, string> variables;
variables["[filename]"] = outputDir + m->getSimpleName(treefile) + ".";
output = new ColumnFile(getOutputFileName("parsimony",variables), itersString);
outputNames.push_back(getOutputFileName("parsimony",variables));
outputTypes["parsimony"].push_back(getOutputFileName("parsimony",variables));
sumFile = getOutputFileName("psummary",variables);
m->openOutputFile(sumFile, outSum);
outputNames.push_back(sumFile);
outputTypes["psummary"].push_back(sumFile);
}else { //user wants random distribution
getUserInput();
if(outputDir == "") { outputDir += m->hasPath(randomtree); }
output = new ColumnFile(outputDir+ m->getSimpleName(randomtree), itersString);
outputNames.push_back(outputDir+ m->getSimpleName(randomtree));
outputTypes["parsimony"].push_back(outputDir+ m->getSimpleName(randomtree));
}
//set users groups to analyze
SharedUtil util;
vector<string> mGroups = m->getGroups();
vector<string> tGroups = ct->getNamesOfGroups();
util.setGroups(mGroups, tGroups, allGroups, numGroups, "parsimony"); //sets the groups the user wants to analyze
util.getCombos(groupComb, mGroups, numComp);
m->setGroups(mGroups);
if (numGroups == 1) { numComp++; groupComb.push_back(allGroups); }
Parsimony pars;
counter = 0;
Progress* reading;
reading = new Progress("Comparing to random:", iters);
if (m->control_pressed) {
delete reading; delete output;
delete ct; for (int i = 0; i < T.size(); i++) { delete T[i]; }
if (randomtree == "") { outSum.close(); }
for (int i = 0; i < outputNames.size(); i++) { m->mothurRemove(outputNames[i]); } outputTypes.clear();
m->clearGroups();
return 0;
}
//get pscore for users tree
userData.resize(numComp,0); //data = AB, AC, BC, ABC.
randomData.resize(numComp,0); //data = AB, AC, BC, ABC.
rscoreFreq.resize(numComp);
uscoreFreq.resize(numComp);
rCumul.resize(numComp);
uCumul.resize(numComp);
userTreeScores.resize(numComp);
UScoreSig.resize(numComp);
if (randomtree == "") {
//get pscores for users trees
for (int i = 0; i < T.size(); i++) {
userData = pars.getValues(T[i], processors, outputDir); //data = AB, AC, BC, ABC.
if (m->control_pressed) {
delete reading; delete output;
delete ct; for (int i = 0; i < T.size(); i++) { delete T[i]; }
if (randomtree == "") { outSum.close(); }
for (int i = 0; i < outputNames.size(); i++) { m->mothurRemove(outputNames[i]); } outputTypes.clear();
m->clearGroups();
return 0;
}
//output scores for each combination
for(int k = 0; k < numComp; k++) {
//update uscoreFreq
map<int,double>::iterator it = uscoreFreq[k].find(userData[k]);
if (it == uscoreFreq[k].end()) {//new score
uscoreFreq[k][userData[k]] = 1;
}else{ uscoreFreq[k][userData[k]]++; }
//.........这里部分代码省略.........