X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=hclustercommand.cpp;h=fd95323e745bd0ce499368c5ea4cb7bd0ce21bf8;hb=f663afa231c9bc1b5e18e0ea3bdd2b2ee784f5b2;hp=dc14e1670c5221599dd14929dd6d08fde6c6b766;hpb=725a3d4ff2442c79bfde0a75ed3e0904edcf03b7;p=mothur.git diff --git a/hclustercommand.cpp b/hclustercommand.cpp index dc14e16..fd95323 100644 --- a/hclustercommand.cpp +++ b/hclustercommand.cpp @@ -47,7 +47,7 @@ HClusterCommand::HClusterCommand(string option) { it = parameters.find("phylip"); //user has given a template file if(it != parameters.end()){ - path = hasPath(it->second); + path = m->hasPath(it->second); //if the user has not given a path then, add inputdir. else leave path alone. if (path == "") { parameters["phylip"] = inputDir + it->second; } } @@ -55,7 +55,7 @@ HClusterCommand::HClusterCommand(string option) { it = parameters.find("column"); //user has given a template file if(it != parameters.end()){ - path = hasPath(it->second); + path = m->hasPath(it->second); //if the user has not given a path then, add inputdir. else leave path alone. if (path == "") { parameters["column"] = inputDir + it->second; } } @@ -63,7 +63,7 @@ HClusterCommand::HClusterCommand(string option) { it = parameters.find("name"); //user has given a template file if(it != parameters.end()){ - path = hasPath(it->second); + path = m->hasPath(it->second); //if the user has not given a path then, add inputdir. else leave path alone. if (path == "") { parameters["name"] = inputDir + it->second; } } @@ -105,12 +105,12 @@ HClusterCommand::HClusterCommand(string option) { convert(temp, precision); temp = validParameter.validFile(parameters, "hard", false); if (temp == "not found") { temp = "F"; } - hard = isTrue(temp); + hard = m->isTrue(temp); temp = validParameter.validFile(parameters, "cutoff", false); if (temp == "not found") { temp = "10"; } convert(temp, cutoff); - if (!hard) { cutoff += (5 / (precision * 10.0)); } + cutoff += (5 / (precision * 10.0)); method = validParameter.validFile(parameters, "method", false); if (method == "not found") { method = "furthest"; } @@ -123,7 +123,7 @@ HClusterCommand::HClusterCommand(string option) { sort = validParameter.validFile(parameters, "sorted", false); if (sort == "not found") { sort = "F"; } - sorted = isTrue(sort); + sorted = m->isTrue(sort); timing = validParameter.validFile(parameters, "timing", false); if (timing == "not found") { timing = "F"; } @@ -131,16 +131,16 @@ HClusterCommand::HClusterCommand(string option) { if (abort == false) { - if (outputDir == "") { outputDir += hasPath(distfile); } - fileroot = outputDir + getRootName(getSimpleName(distfile)); + if (outputDir == "") { outputDir += m->hasPath(distfile); } + fileroot = outputDir + m->getRootName(m->getSimpleName(distfile)); if (method == "furthest") { tag = "fn"; } else if (method == "nearest") { tag = "nn"; } else { tag = "an"; } - openOutputFile(fileroot+ tag + ".sabund", sabundFile); - openOutputFile(fileroot+ tag + ".rabund", rabundFile); - openOutputFile(fileroot+ tag + ".list", listFile); + m->openOutputFile(fileroot+ tag + ".sabund", sabundFile); + m->openOutputFile(fileroot+ tag + ".rabund", rabundFile); + m->openOutputFile(fileroot+ tag + ".list", listFile); outputNames.push_back(fileroot+ tag + ".sabund"); outputNames.push_back(fileroot+ tag + ".rabund"); @@ -163,7 +163,7 @@ void HClusterCommand::help(){ m->mothurOut("The name parameter allows you to enter your name file and is required if your distance file is in column format. \n"); m->mothurOut("The hcluster command should be in the following format: \n"); m->mothurOut("hcluster(column=youDistanceFile, name=yourNameFile, method=yourMethod, cutoff=yourCutoff, precision=yourPrecision) \n"); - m->mothurOut("The acceptable hcluster methods are furthest and nearest, but we hope to add average in the future.\n\n"); + m->mothurOut("The acceptable hcluster methods are furthest, nearest and average.\n\n"); } catch(exception& e) { m->errorOut(e, "HClusterCommand", "help"); @@ -279,8 +279,14 @@ int HClusterCommand::execute(){ return 0; } - - float rndDist = roundDist(seqs[i].dist, precision); + + float rndDist; + if (hard) { + rndDist = m->ceilDist(seqs[i].dist, precision); + }else{ + rndDist = m->roundDist(seqs[i].dist, precision); + } + if((previousDist <= 0.0000) && (seqs[i].dist != previousDist)){ printData("unique"); @@ -354,7 +360,7 @@ int HClusterCommand::execute(){ void HClusterCommand::printData(string label){ try { - if (isTrue(timing)) { + if (m->isTrue(timing)) { m->mothurOut("\tTime: " + toString(time(NULL) - start) + "\tsecs for " + toString(oldRAbund.getNumBins()) + "\tclusters. Updates: " + toString(loops)); m->mothurOutEndLine(); } @@ -363,7 +369,7 @@ void HClusterCommand::printData(string label){ start = time(NULL); oldRAbund.setLabel(label); - if (isTrue(showabund)) { + if (m->isTrue(showabund)) { oldRAbund.getSAbundVector().print(cout); } oldRAbund.print(rabundFile);